Uploaded image for project: 'OFBiz'
  1. OFBiz
  2. OFBIZ-4559

InventoryWorker.getOutstandingProductQuantities returns inaccurate results when there are multiple ItemIssuances for an order

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug Crush Event - 21/2/2015, Community Day 2 - 2015

    Description

      If you create a purchase order for say 50 of an item, and then receive part of that order, say 10, and then receive another 10. If you then call InventoryWorker.getOutstandingProductQuantities(), the OrderItemQuantityReportGroupByItem.quantityOpen will report 80. This is because there will be two ItemIssuance records, resulting in 2 * 50 OrderItem.quantity minus the 20 ItemIssuance.quantity in the result set of the query.

      I was able to verify this by creating a second view entity that can be viewed in WebTools

      Here is the added view entity (essentially removing the group-by="false" values:

      <view-entity entity-name="OrderItemQuantityAndIssuance"
      package-name="org.ofbiz.order.order"
      never-cache="true"
      title="Reports quantity ordered, issued and open by item for OrderItems.">
      <member-entity entity-alias="OH" entity-name="OrderHeader"/>
      <member-entity entity-alias="OI" entity-name="OrderItem"/>
      <member-entity entity-alias="II" entity-name="ItemIssuance"/>
      <alias entity-alias="OH" name="orderTypeId" group-by="true"/>
      <alias entity-alias="OI" name="productId" group-by="true"/>
      <alias entity-alias="OI" name="quantityOrdered" function="sum">
      <complex-alias operator="-">
      <complex-alias-field entity-alias="OI" field="quantity" default-value="0"/>
      <complex-alias-field entity-alias="OI" field="cancelQuantity" default-value="0"/>
      </complex-alias>
      </alias>
      <alias entity-alias="II" name="quantityIssued" field="quantity" function="sum"/>
      <alias entity-alias="OI" name="quantityOpen" function="sum">
      <complex-alias operator="-">
      <complex-alias-field entity-alias="OI" field="quantity" default-value="0"/>
      <complex-alias-field entity-alias="OI" field="cancelQuantity" default-value="0"/>
      <complex-alias-field entity-alias="II" field="quantity" default-value="0"/>
      </complex-alias>
      </alias>
      <view-link entity-alias="OI" rel-entity-alias="OH">
      <key-map field-name="orderId"/>
      </view-link>
      <view-link entity-alias="OI" rel-entity-alias="II" rel-optional="true">
      <key-map field-name="orderId"/>
      <key-map field-name="orderItemSeqId"/>
      </view-link>
      </view-entity>

      If you use this entity and find a purchase order with multiple item issuances, the problem will be apparent.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            diveshdut Divesh Dutta
            skipdever Skip Dever
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Agile

                Completed Sprints:
                Bug Crush Event - 21/2/2015 ended 26/Feb/15
                Community Day 2 - 2015 ended 22/Jun/15
                View on Board

                Slack

                  Issue deployment