OFBiz
  1. OFBiz
  2. OFBIZ-4386

Order not completed when filled from more than one InventoryItem

    Details

      Description

      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.

      1. OFBIZ-4386_IssuanceTests.patch
        19 kB
        Paul Foxworthy
      2. OFBIZ-4386_IssuanceServices.patch
        10 kB
        Paul Foxworthy
      3. OFBIZ-4386_IssuanceServices.patch
        11 kB
        Jacques Le Roux
      4. OFBIZ-4386_IssuanceServices.patch
        11 kB
        Jacques Le Roux
      5. OFBIZ-4386_IssuanceServices.patch
        10 kB
        Paul Foxworthy
      6. OFBIZ-4386_IssuanceServices.patch
        10 kB
        Jacques Le Roux

        Activity

          People

          • Assignee:
            Jacques Le Roux
            Reporter:
            Paul Foxworthy
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development