Login  Register

simple modification to support partial picking of orders

Posted by Si Chen-2 on Aug 30, 2006; 8:12pm
URL: http://ofbiz.116.s1.nabble.com/simple-modification-to-support-partial-picking-of-orders-tp171129.html

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