[ 
https://issues.apache.org/jira/browse/OFBIZ-4386?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13102398#comment-13102398
 ] 

Paul Foxworthy commented on OFBIZ-4386:
---------------------------------------

Thanks Jacques.

Fuzz would be due to my other recent submission OFBIZ-4344. I kept the patch 
for this issue independent of that.

Setting field shipmentId: There already is one in trunk at 
https://fisheye6.atlassian.com/browse/ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml?hb=true#to541
within the context of the issueInventoryItemToShipment simple method. I've 
added a second one in issueOrderItemShipGrpInvResToShipment. While the latter 
does call the former, issueInventoryItemToShipment is a service in its own 
right, so it can't assume a field has already been created, and must look in 
the parameters. So I think two occurrences are OK. Let me know if you see a 
problem with this.

Logging: Oops, sorry about that. I don't think it should be a warning - I'd 
suggest info instead. But I'm happy to stick with warning if you prefer that.

Delete commented out line: Yes, I agree. It was there in trunk, so I didn't 
touch it. In general, like you, I would rather simply delete obsolete code.


> 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_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