You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by su...@apache.org on 2020/02/26 13:56:59 UTC
[ofbiz-framework] branch release17.12 updated: Fixed: Picklist is
in Input status even after order is completed. (OFBIZ-10883)
This is an automated email from the ASF dual-hosted git repository.
surajk pushed a commit to branch release17.12
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release17.12 by this push:
new 545be00 Fixed: Picklist is in Input status even after order is completed. (OFBIZ-10883)
545be00 is described below
commit 545be005768ba98606517b52329fd605606a7a3f
Author: Suraj Khurana <su...@apache.org>
AuthorDate: Wed Feb 26 19:26:43 2020 +0530
Fixed: Picklist is in Input status even after order is completed.
(OFBIZ-10883)
Thanks Rashi Dhagat for reporting, Shikha Jaiswal for the patch and Pawan Verma for review.
---
.../datamodel/entitydef/shipment-entitymodel.xml | 11 ++++++++
.../ofbiz/shipment/packing/PackingSession.java | 29 ++++++++++++++++++++++
2 files changed, 40 insertions(+)
diff --git a/applications/datamodel/entitydef/shipment-entitymodel.xml b/applications/datamodel/entitydef/shipment-entitymodel.xml
index 0e35bcd..9774688 100644
--- a/applications/datamodel/entitydef/shipment-entitymodel.xml
+++ b/applications/datamodel/entitydef/shipment-entitymodel.xml
@@ -191,6 +191,17 @@ under the License.
<key-map field-name="picklistBinId"/>
</view-link>
</view-entity>
+ <view-entity entity-name="PicklistAndBin"
+ package-name="org.apache.ofbiz.shipment.picklist"
+ title="Picklist and PicklistBin View">
+ <member-entity entity-alias="PL" entity-name="Picklist"/>
+ <member-entity entity-alias="PLB" entity-name="PicklistBin"/>
+ <alias-all entity-alias="PL"/>
+ <alias-all entity-alias="PLB"/>
+ <view-link entity-alias="PL" rel-entity-alias="PLB">
+ <key-map field-name="picklistId"/>
+ </view-link>
+ </view-entity>
<entity entity-name="PicklistBin"
package-name="org.apache.ofbiz.shipment.picklist"
title="Picklist Entity">
diff --git a/applications/product/src/main/java/org/apache/ofbiz/shipment/packing/PackingSession.java b/applications/product/src/main/java/org/apache/ofbiz/shipment/packing/PackingSession.java
index 7e30dfb..e7d48ee 100644
--- a/applications/product/src/main/java/org/apache/ofbiz/shipment/packing/PackingSession.java
+++ b/applications/product/src/main/java/org/apache/ofbiz/shipment/packing/PackingSession.java
@@ -674,6 +674,8 @@ public class PackingSession implements java.io.Serializable {
this.setShipmentToPacked();
// set role on picklist
this.setPickerOnPicklist();
+ // set picklist to picked
+ this.setPicklistToPicked();
// run the complete events
this.runEvents(PackingEvent.EVENT_CODE_COMPLETE);
@@ -865,6 +867,33 @@ public class PackingSession implements java.io.Serializable {
}
}
+ protected void setPicklistToPicked() throws GeneralException {
+ Delegator delegator = this.getDelegator();
+ if (picklistBinId != null) {
+ GenericValue picklist = EntityQuery.use(delegator).from("PicklistAndBin").where("picklistBinId", picklistBinId).queryFirst();
+ if (picklist == null) {
+ if (!"PICKLIST_PICKED".equals(picklist.getString("statusId")) && !"PICKLIST_COMPLETED".equals(picklist.getString("statusId")) && !"PICKLIST_CANCELLED".equals(picklist.getString("statusId"))) {
+ Map<String, Object> serviceResult = this.getDispatcher().runSync("updatePicklist", UtilMisc.toMap("picklistId", picklist.getString("picklistId"), "statusId", "PICKLIST_PICKED", "userLogin", userLogin));
+ if (!ServiceUtil.isSuccess(serviceResult)) {
+ throw new GeneralException(ServiceUtil.getErrorMessage(serviceResult));
+ }
+ }
+ }
+ } else {
+ List<GenericValue> picklistBins = EntityQuery.use(delegator).from("PicklistAndBin").where("primaryOrderId", primaryOrderId).queryList();
+ if (UtilValidate.isNotEmpty(picklistBins)) {
+ for (GenericValue picklistBin : picklistBins) {
+ if (!"PICKLIST_PICKED".equals(picklistBin.getString("statusId")) && !"PICKLIST_COMPLETED".equals(picklistBin.getString("statusId")) && !"PICKLIST_CANCELLED".equals(picklistBin.getString("statusId"))) {
+ Map<String, Object> serviceResult = this.getDispatcher().runSync("updatePicklist", UtilMisc.toMap("picklistId", picklistBin.getString("picklistId"), "statusId", "PICKLIST_PICKED", "userLogin", userLogin));
+ if (!ServiceUtil.isSuccess(serviceResult)) {
+ throw new GeneralException(ServiceUtil.getErrorMessage(serviceResult));
+ }
+ }
+ }
+ }
+ }
+ }
+
protected void setPickerOnPicklist() throws GeneralException {
if (picklistBinId != null) {
// first find the picklist id