Author: sichen
Date: Mon Jun 25 12:36:23 2007 New Revision: 550585 URL: http://svn.apache.org/viewvc?view=rev&rev=550585 Log: Changed checkReturnComplete to use updateReturnHeader instead of delegator.store Modified: ofbiz/branches/release4.0/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java Modified: ofbiz/branches/release4.0/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release4.0/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java?view=diff&rev=550585&r1=550584&r2=550585 ============================================================================== --- ofbiz/branches/release4.0/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java (original) +++ ofbiz/branches/release4.0/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java Mon Jun 25 12:36:23 2007 @@ -477,13 +477,15 @@ // check return items status and update return header status public static Map checkReturnComplete(DispatchContext dctx, Map context) { - //appears to not be used: LocalDispatcher dispatcher = ctx.getDispatcher(); + LocalDispatcher dispatcher = dctx.getDispatcher(); GenericDelegator delegator = dctx.getDelegator(); String returnId = (String) context.get("returnId"); Locale locale = (Locale) context.get("locale"); + GenericValue userLogin = (GenericValue) context.get("userLogin"); GenericValue returnHeader = null; List returnItems = null; + try { returnHeader = delegator.findByPrimaryKey("ReturnHeader", UtilMisc.toMap("returnId", returnId)); if (returnHeader != null) { @@ -502,6 +504,9 @@ } } + // statusId resulting from the run of this service, which will be modified if we set it to completed + String resultStatusId = returnHeader.getString("statusId"); + // now; to be used for all timestamps Timestamp now = UtilDateTime.nowTimestamp(); @@ -521,29 +526,37 @@ // if all items are completed/cancelled these should match if (completedItems.size() == returnItems.size()) { - List toStore = new LinkedList(); - returnHeader.set("statusId", "RETURN_COMPLETED"); - toStore.add(returnHeader); + resultStatusId = "RETURN_COMPLETED"; // create the status change history and set it to be stored String returnStatusId = delegator.getNextSeqId("ReturnStatus"); GenericValue returnStatus = delegator.makeValue("ReturnStatus", UtilMisc.toMap("returnStatusId", returnStatusId)); - returnStatus.set("statusId", "RETURN_COMPLETED"); + returnStatus.set("statusId", resultStatusId); returnStatus.set("returnId", returnId); returnStatus.set("statusDatetime", now); - toStore.add(returnStatus); try { - delegator.storeAll(toStore); + returnStatus.create(); } catch (GenericEntityException e) { Debug.logError(e, module); return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderErrorUnableToCreateReturnStatusHistory", locale)); } + + // update the return header to completed + try { + Map tmpResult = dispatcher.runSync("updateReturnHeader", UtilMisc.toMap("returnId", returnId, "statusId", resultStatusId, "userLogin", userLogin)); + + if (ServiceUtil.isError(tmpResult)) { + return tmpResult; + } + } catch (GenericServiceException ex) { + return ServiceUtil.returnError(ex.getMessage()); + } } } Map result = ServiceUtil.returnSuccess(); - result.put("statusId", returnHeader.get("statusId")); + result.put("statusId", resultStatusId); return result; } |
Free forum by Nabble | Edit this page |