+1
I know we will need this
Fred
Si Chen wrote:
Hi everybody -
We've been talking about partial picking of orders on and off on JIRA
for a while now. I finally got around to it and then realized that it
just took this little change:
--- applications/product/script/org/ofbiz/shipment/picklist/
PicklistServices.xml (revision 1576)
+++ applications/product/script/org/ofbiz/shipment/picklist/
PicklistServices.xml (working copy)
@@ -144,6 +144,7 @@
<condition-expr field-
name="shipGroupSeqId" env-name="orderItemShipGrpInvRes.shipGroupSeqId"/>
<condition-expr field-
name="orderItemSeqId" env-name="orderItemShipGrpInvRes.orderItemSeqId"/>
<condition-expr field-
name="inventoryItemId" env- name="orderItemShipGrpInvRes.inventoryItemId"/>
+ <condition-expr field-
name="statusId" operator="not-equals" value="PICKLIST_PICKED"/>
<condition-expr field-
name="statusId" operator="not-equals" value="PICKLIST_CANCELLED"/>
</condition-list>
</entity-condition>
This code was originally checking whether the order item was already on
a picklist, and the criteria was that the picklist be in any status
which is not cancelled - ie, if the item is already on a picklist which
was picked, then it would not show up on a new pick list.
However, I found that by checking that it is not on a picklist which is
neither cancelled nor picked is a good way to support partial picks.
The idea is that you'd create a picklist, then pick the items. While
the picklist is open, the item would not show up on another picklist.
Then when you're done, you can mark the picklist picked. If the item
has been fully shipped, then all OrderItemShipGrpInvRes for it will be
removed from the database (this is what I didn't realize before this
morning). As a result, the item won't show up any more for picking.
If it has not been fully shipped, then with the change above, it'll
show up on future pick lists again.
Is this a good change to commit? It would basically allow for picking
of items which have not shipped over and over again until they are
shipped or the order is cancelled manually, whereas the current code
would put any order item on one picklist only (unless that picklist is
cancelled.)
Si