You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by le...@apache.org on 2009/11/13 02:44:30 UTC
svn commit: r835701 -
/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
Author: lektran
Date: Fri Nov 13 01:44:30 2009
New Revision: 835701
URL: http://svn.apache.org/viewvc?rev=835701&view=rev
Log:
Cleaned up the invoiceServiceItems service, no functional changes just removed unnecessary code and made more use of utility methods
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=835701&r1=835700&r2=835701&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java Fri Nov 13 01:44:30 2009
@@ -3191,26 +3191,18 @@
GenericValue userLogin = (GenericValue) context.get("userLogin");
String orderId = (String) context.get("orderId");
Locale locale = (Locale) context.get("locale");
-
- // need the order header
- GenericValue orderHeader = null;
+
+ OrderReadHelper orh = null;
try {
- orderHeader = delegator.findByPrimaryKey("OrderHeader", UtilMisc.toMap("orderId", orderId));
- } catch (GenericEntityException e) {
+ orh = new OrderReadHelper(delegator, orderId);
+ } catch (IllegalArgumentException e) {
Debug.logError(e, "ERROR: Unable to get OrderHeader for orderId : " + orderId, module);
return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderErrorUnableToGetOrderHeaderForOrderId", UtilMisc.toMap("orderId",orderId), locale));
}
- // get all the items for the order
+ // get all the approved items for the order
List<GenericValue> orderItems = null;
- if (orderHeader != null) {
- try {
- orderItems = orderHeader.getRelated("OrderItem");
- } catch (GenericEntityException e) {
- Debug.logError(e, "ERROR: Unable to get OrderItem list for orderId : " + orderId, module);
- return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderErrorUnableToGetOrderItemListForOrderId", UtilMisc.toMap("orderId",orderId), locale));
- }
- }
+ orderItems = orh.getOrderItemsByCondition(EntityCondition.makeCondition("statusId", "ITEM_APPROVED"));
// find any service items
List<GenericValue> serviceItems = FastList.newInstance();
@@ -3224,24 +3216,10 @@
Debug.logError(e, "ERROR: Unable to get Product from OrderItem", module);
}
if (product != null) {
- GenericValue productType = null;
- try {
- productType = product.getRelatedOne("ProductType");
- } catch (GenericEntityException e) {
- Debug.logError(e, "ERROR: Unable to get ProductType from Product", module);
- }
-
- if (productType != null) {
- String productTypeId = productType.getString("productTypeId");
-
- // check for service goods
- if (productTypeId != null && "SERVICE".equalsIgnoreCase(productTypeId)) {
- // we only invoice APPROVED items
- if ("ITEM_APPROVED".equals(item.getString("statusId"))) {
- serviceItems.add(item);
- serviceProducts.put(item, product);
- }
- }
+ // check for service goods
+ if ("SERVICE".equals(product.get("productTypeId"))) {
+ serviceItems.add(item);
+ serviceProducts.put(item, product);
}
}
}
@@ -3249,19 +3227,12 @@
// now process the service items
if (UtilValidate.isNotEmpty(serviceItems)) {
- // single list with all invoice items
- List<GenericValue> itemsToInvoice = FastList.newInstance();
- itemsToInvoice.addAll(serviceItems);
-
// do something tricky here: run as a different user that can actually create an invoice, post transaction, etc
Map<String, Object> invoiceResult = null;
try {
- GenericValue permUserLogin = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", "system"));
- Map<String, Object> invoiceContext = UtilMisc.toMap("orderId", orderId, "billItems", itemsToInvoice, "userLogin", permUserLogin);
+ GenericValue permUserLogin = ServiceUtil.getUserLogin(dctx, context, "system");
+ Map<String, Object> invoiceContext = UtilMisc.toMap("orderId", orderId, "billItems", serviceItems, "userLogin", permUserLogin);
invoiceResult = dispatcher.runSync("createInvoiceForOrder", invoiceContext);
- } catch (GenericEntityException e) {
- Debug.logError(e, "ERROR: Unable to invoice service items", module);
- return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderProblemWithInvoiceCreationServiceItems", locale));
} catch (GenericServiceException e) {
Debug.logError(e, "ERROR: Unable to invoice service items", module);
return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderProblemWithInvoiceCreationServiceItems", locale));
@@ -3271,35 +3242,16 @@
}
// update the status of service goods to COMPLETED;
- for(GenericValue item : itemsToInvoice) {
- GenericValue productType = null;
- GenericValue product = (GenericValue) serviceProducts.get(item);
- boolean markComplete = false;
- if (product != null) {
- try {
- productType = product.getRelatedOne("ProductType");
- } catch (GenericEntityException e) {
- Debug.logError(e, "ERROR: Unable to get ProductType from Product", module);
- }
- if (item != null && productType != null) {
- String productTypeId = productType.getString("productTypeId");
- if (productTypeId != null && "SERVICE".equalsIgnoreCase(productTypeId)) {
- markComplete = true;
- }
- }
- }
-
- if (markComplete) {
- Map<String, Object> statusCtx = FastMap.newInstance();
- statusCtx.put("orderId", item.getString("orderId"));
- statusCtx.put("orderItemSeqId", item.getString("orderItemSeqId"));
- statusCtx.put("statusId", "ITEM_COMPLETED");
- statusCtx.put("userLogin", userLogin);
- try {
- dispatcher.runSyncIgnore("changeOrderItemStatus", statusCtx);
- } catch (GenericServiceException e) {
- Debug.logError(e, "ERROR: Problem setting the status to COMPLETED : " + item, module);
- }
+ for(GenericValue item : serviceItems) {
+ Map<String, Object> statusCtx = FastMap.newInstance();
+ statusCtx.put("orderId", item.getString("orderId"));
+ statusCtx.put("orderItemSeqId", item.getString("orderItemSeqId"));
+ statusCtx.put("statusId", "ITEM_COMPLETED");
+ statusCtx.put("userLogin", userLogin);
+ try {
+ dispatcher.runSyncIgnore("changeOrderItemStatus", statusCtx);
+ } catch (GenericServiceException e) {
+ Debug.logError(e, "ERROR: Problem setting the status to COMPLETED : " + item, module);
}
}
}