[ 
https://issues.apache.org/jira/browse/OFBIZ-4386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jacques Le Roux reassigned OFBIZ-4386:
--------------------------------------

    Assignee: Jacques Le Roux

> Order not completed when filled from more than one InventoryItem
> ----------------------------------------------------------------
>
>                 Key: OFBIZ-4386
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-4386
>             Project: OFBiz
>          Issue Type: Bug
>    Affects Versions: SVN trunk
>         Environment: rev 1163479
>            Reporter: Paul Foxworthy
>            Assignee: Jacques Le Roux
>              Labels: issuance, order, shipment
>         Attachments: OFBIZ-4386_IssuanceServices.patch, 
> OFBIZ-4386_IssuanceTests.patch
>
>
> There is a nasty bug in IssuanceServices in the situation where the order is 
> filled from more than one InventoryItem. When the order is created, there are 
> OrderItemShipGrpInvRes reservations created for all the inventory items 
> needed to fill the order.
> In the simple method issueOrderItemShipGrpInvResToShipment in 
> IssuanceServices, at line 173 
> (https://fisheye6.atlassian.com/browse/ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml?hb=true#to173),
>  there is an assumption that if the OrderShipment already exists, we are some 
> sort of adjustment, and we should adjust the OrderShipment quantity by the 
> difference between the old OrderShipment quantity and the new one. This all 
> works fine in the situation where there is only one InventoryItem needed to 
> fill the order. However, if there are two or more InventoryItems, the simple 
> method is called twice, and an incorrect quantity is calculated.
> The crux of the problem is that OrderShipment doesn't care about 
> InventoryItems, so there will be only one OrderShipment row for a given 
> product. In contrast, ItemIssuance does care about InventoryItems, so there 
> will be more than one if the product is supplied from more than one 
> InventoryItem. The ItemIssuance code doesn't take account of this distinction.
> I have provided two patches. One is a new unit test that exemplifies the bug. 
> If you just apply this patch to trunk, the unit test will fail with an 
> OrderShipment quantity of 4 when it ought to be 6.
> The other patch is my fix for IssuanceServices, which now looks for a 
> relevant ItemIssuance to decide if we are adjusting quantities, or creating a 
> new ItemIssuance (and possibly a new OrderShipment).
> Feedback welcomed.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to