You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mo...@apache.org on 2009/05/29 12:54:48 UTC
svn commit: r779926 - in /ofbiz/trunk/applications/order:
script/org/ofbiz/order/order/OrderReturnServices.xml servicedef/secas.xml
servicedef/services_return.xml
src/org/ofbiz/order/order/OrderReturnServices.java
webapp/ordermgr/return/ReturnForms.xml
Author: mor
Date: Fri May 29 10:54:48 2009
New Revision: 779926
URL: http://svn.apache.org/viewvc?rev=779926&view=rev
Log:
Improve the Return Status process so that it also take into account the ReturnItem status change.
Slightly modified patch from Awdesh Singh Parihar, part of OFBIZ-2541 (https://issues.apache.org/jira/browse/OFBIZ-2541)
Modified:
ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
ofbiz/trunk/applications/order/servicedef/secas.xml
ofbiz/trunk/applications/order/servicedef/services_return.xml
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
ofbiz/trunk/applications/order/webapp/ordermgr/return/ReturnForms.xml
Modified: ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml?rev=779926&r1=779925&r2=779926&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml (original)
+++ ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml Fri May 29 10:54:48 2009
@@ -443,8 +443,11 @@
<find-by-and entity-name="ReturnItem" map="lookupPKMap" list="returnItems"/>
<iterate entry="item" list="returnItems">
<set field="item.statusId" from-field="parameters.statusId"/>
+ <set-service-fields service-name="updateReturnItem" map="item" to-map="serviceInMap"/>
+ <call-service service-name="updateReturnItem" in-map-name="serviceInMap"/>
+ <clear-field field="serviceInMap"/>
+ <clear-field field="item"/>
</iterate>
- <store-list list="returnItems"/>
</simple-method>
<simple-method method-name="removeReturnItem" short-description="Remove Return Item">
<check-permission permission="ORDERMGR" action="_DELETE"><fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunRemoveQuoteItem"/></check-permission>
@@ -526,15 +529,17 @@
<field-map field-name="returnItemSeqId" from-field="receipt.returnItemSeqId"/>
</entity-one>
<set field="returnItem.receivedQuantity" from-field="${totalsMap.receipt.returnItemSeqId}" type="BigDecimal"/>
+ <set-service-fields service-name="updateReturnItem" map="returnItem" to-map="serviceInMap"/>
<if-compare-field field="totalsMap.receipt.returnItemSeqId" to-field="returnItem.returnQuantity" operator="greater-equals" type="BigDecimal">
<!-- update the status for the item -->
- <set field="returnItem.statusId" value="RETURN_RECEIVED"/>
- <store-value value-field="returnItem"/>
+ <set field="serviceInMap.statusId" value="RETURN_RECEIVED"/>
+ <call-service service-name="updateReturnItem" in-map-name="serviceInMap"/>
</if-compare-field>
<!-- update the returnItem with at least receivedQuantity, and also statusId if applicable -->
- <store-value value-field="returnItem"/>
+ <call-service service-name="updateReturnItem" in-map-name="serviceInMap"/>
+ <clear-field field="serviceInMap"/>
</iterate>
<!-- check to see if all items have been received -->
@@ -1084,17 +1089,21 @@
</if-not-empty>
</simple-method>
- <simple-method method-name="createReturnStatus" short-description="Create Return Status">
- <entity-one value-field="returnHeader" entity-name="ReturnHeader">
- <field-map field-name="returnId" from-field="parameters.returnId"/>
- </entity-one>
+ <simple-method method-name="createReturnStatus" short-description="Create ReturnHeader and ReturnItem Status">
<make-value entity-name="ReturnStatus" value-field="newEntity"/>
+ <if-empty field="parameters.returnItemSeqId">
+ <entity-one entity-name="ReturnHeader" value-field="returnHeader"/>
+ <set field="newEntity.statusId" from-field="returnHeader.statusId"/>
+ <else>
+ <entity-one entity-name="ReturnItem" value-field="returnItem"/>
+ <set field="newEntity.returnItemSeqId" from-field="returnItem.returnItemSeqId"/>
+ <set field="newEntity.statusId" from-field="returnItem.statusId"/>
+ </else>
+ </if-empty>
<sequenced-id sequence-name="ReturnStatus" field="newEntity.returnStatusId"/>
<set field="newEntity.returnId" from-field="parameters.returnId"/>
- <set field="newEntity.statusId" from-field="returnHeader.statusId"/>
<set field="newEntity.changeByUserLoginId" from-field="userLogin.userLoginId"/>
<now-timestamp field="newEntity.statusDatetime"/>
<create-value value-field="newEntity"/>
</simple-method>
-
</simple-methods>
\ No newline at end of file
Modified: ofbiz/trunk/applications/order/servicedef/secas.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/secas.xml?rev=779926&r1=779925&r2=779926&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/servicedef/secas.xml (original)
+++ ofbiz/trunk/applications/order/servicedef/secas.xml Fri May 29 10:54:48 2009
@@ -210,7 +210,6 @@
<action service="processRepairReplacementReturn" mode="sync"/>
<action service="processCreditReturn" mode="sync"/>
<action service="processRefundOnlyReturn" mode="sync"/>
- <action service="createReturnStatus" mode="sync"/>
</eca>
<eca service="updateReturnStatusFromReceipt" event="global-commit">
<condition field-name="returnHeaderStatus" operator="equals" value="RETURN_RECEIVED"/>
@@ -376,4 +375,12 @@
<condition field-name="leadPartyId" operator="is-not-empty"/>
<action service="createSalesOpportunityLeadRole" mode="sync"/>
</eca>
+ <eca service="createReturnItem" event="commit">
+ <action service="createReturnStatus" mode="sync"/>
+ </eca>
+ <eca service="updateReturnItem" event="commit">
+ <condition field-name="statusId" operator="is-not-empty"/>
+ <condition-field field-name="statusId" operator="not-equals" to-field-name="oldStatusId"/>
+ <action service="createReturnStatus" mode="sync"/>
+ </eca>
</service-eca>
\ No newline at end of file
Modified: ofbiz/trunk/applications/order/servicedef/services_return.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services_return.xml?rev=779926&r1=779925&r2=779926&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/servicedef/services_return.xml (original)
+++ ofbiz/trunk/applications/order/servicedef/services_return.xml Fri May 29 10:54:48 2009
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
@@ -339,9 +338,10 @@
<attribute name="returnId" type="String" mode="IN" optional="true"/>
<attribute name="inventoryItemId" type="String" mode="IN" optional="true"/>
</service>
- <service name="createReturnStatus" default-entity-name="ReturnHeader" engine="simple"
+ <service name="createReturnStatus" engine="simple"
location="component://order/script/org/ofbiz/order/order/OrderReturnServices.xml" invoke="createReturnStatus">
<description>Create Return Status</description>
<attribute name="returnId" type="String" mode="IN" optional="false"/>
+ <attribute name="returnItemSeqId" type="String" mode="IN" optional="true"/>
</service>
</services>
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java?rev=779926&r1=779925&r2=779926&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java Fri May 29 10:54:48 2009
@@ -781,31 +781,19 @@
String itemResponseId = (String) serviceResults.get("returnItemResponseId");
// loop through the items again to update them and store a status change history
- List toBeStored = new ArrayList();
for (Iterator itemsIter = returnItems.iterator(); itemsIter.hasNext(); ) {
GenericValue item = (GenericValue) itemsIter.next();
-
- // set the response on the item and flag the item to be stored
- item.set("returnItemResponseId", itemResponseId);
- item.set("statusId", "RETURN_COMPLETED");
- toBeStored.add(item);
-
- // 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", item.get("statusId"));
- returnStatus.set("returnId", item.get("returnId"));
- returnStatus.set("returnItemSeqId", item.get("returnItemSeqId"));
- returnStatus.set("statusDatetime", now);
- toBeStored.add(returnStatus);
- }
-
- // store the item changes (attached responseId)
- try {
- delegator.storeAll(toBeStored);
- } catch (GenericEntityException e) {
- Debug.logError(e, "Problem storing ReturnItem updates", module);
- return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderProblemStoringReturnItemUpdates", locale));
+ Map returnItemMap = UtilMisc.toMap("returnItemResponseId", itemResponseId, "returnId", item.get("returnId"), "returnItemSeqId", item.get("returnItemSeqId"), "statusId", "RETURN_COMPLETED", "userLogin", userLogin);
+ // store the item changes (attached responseId)
+ try {
+ serviceResults = dispatcher.runSync("updateReturnItem", returnItemMap);
+ if (ServiceUtil.isError(serviceResults)) {
+ return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderProblemStoringReturnItemUpdates", locale), null, null, serviceResults);
+ }
+ } catch (GenericServiceException e) {
+ Debug.logError(e, "Problem storing ReturnItem updates", module);
+ return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderProblemStoringReturnItemUpdates", locale));
+ }
}
// create the PaymentApplication for the billing account
@@ -1164,22 +1152,15 @@
Iterator itemsIter = items.iterator();
while (itemsIter.hasNext()) {
GenericValue item = (GenericValue) itemsIter.next();
- item.set("returnItemResponseId", responseId);
- item.set("statusId", returnItemStatusId);
-
- // Create the status history
- String returnStatusId = delegator.getNextSeqId("ReturnStatus");
- GenericValue returnStatus = delegator.makeValue("ReturnStatus", UtilMisc.toMap("returnStatusId", returnStatusId));
- returnStatus.set("statusId", item.get("statusId"));
- returnStatus.set("returnId", item.get("returnId"));
- returnStatus.set("returnItemSeqId", item.get("returnItemSeqId"));
- returnStatus.set("statusDatetime", now);
-
+
+ Map returnItemMap = UtilMisc.toMap("returnItemResponseId", responseId, "returnId", item.get("returnId"), "returnItemSeqId", item.get("returnItemSeqId"), "statusId", returnItemStatusId, "userLogin", userLogin);
//Debug.log("Updating item status", module);
try {
- item.store();
- delegator.create(returnStatus);
- } catch (GenericEntityException e) {
+ serviceResults = dispatcher.runSync("updateReturnItem", returnItemMap);
+ if (ServiceUtil.isError(serviceResults)) {
+ return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderProblemUpdatingReturnItemReturnItemResponseId", locale), null, null, serviceResults);
+ }
+ } catch (GenericServiceException e) {
Debug.logError("Problem updating the ReturnItem entity", module);
return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderProblemUpdatingReturnItemReturnItemResponseId", locale));
}
Modified: ofbiz/trunk/applications/order/webapp/ordermgr/return/ReturnForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/return/ReturnForms.xml?rev=779926&r1=779925&r2=779926&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/return/ReturnForms.xml (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/return/ReturnForms.xml Fri May 29 10:54:48 2009
@@ -180,7 +180,8 @@
<form name="ReturnStatusHistory" type="list" list-name="orderReturnStatusHistories"
odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
- <field name="returnId"><display description="${returnId}"/></field>
+ <field name="returnId"><display/></field>
+ <field name="returnItemSeqId"><display/></field>
<field name="statusId"><display-entity entity-name="StatusItem" description="${description}"/></field>
<field name="statusDatetime" title="${uiLabelMap.CommonDate}"><display/></field>
<field name="changeByUserLoginId" title="${uiLabelMap.FormFieldTitle_modifiedByUserLoginId}"><display/></field>