Display orderables to fill with the OpenLMIS Ideal Product Model


As Philomena, I want to see my available products I can fulfill an order with, with their stock on hand amounts, grouped under the products that have been ordered so that I can easily see how to fulfill the order with my current stock (stock cards) at my facility.

Ideal Product Model
This changes the Fulfill Order screen to support the ideal product model. Currently if the same orderables are used for requisition/fulfillment and stock management, the Fulfill Order screen can show that orderable on the same line, with order quantity from the order, SOH from the stock card (of the fulfilling/supplying facility) and fill quantities to be entered. With the ideal product model, the commodity type orderable would be on one line with order quantity, and the trade item orderables (with lots) would be grouped under it with SOH and fill quantities to be entered.

This will look similar to what is described in and the same API from would be used. See mockup for grouping example.

Mock up

Acceptance Criteria

  • And a "Remaining SOH" column to the table

    • The value of the "Remaining SOH" for each row will be that row's stock on hand minus the entered fill quantity

    • For "orderable" rows, the stock on hand will be the total stock on hand for the ordered orderable, and the fill quanitity will be the total of all fill quantities related to the orderable

  • For each orderable in an order

    • Change the row color to the "secondary" row color from

    • Add the following information to the order orderable row (see red text in mockup) — assuming the orderable is a commodity type orderable

      • Stock on Hand: Display the sum of all related trade item's stock on hand at the supplying facility

      • Total Fill Quantity: Display the sum of all related trade item's fill quantity

      • Remaining SOH: Display the sum of all related trade item's remaining quantity

      • The above changes are similar to and

    • if the ordered orderable has related trade item orderables, then:

      • Each trade item orderable is shown below the ordered orderable

      • Trade item orderable rows are shown in the row's primary row color (ie white)

      • Lots for a trade item are shown as "child rows" which have less padding than normal rows. See for details.

    • If the ordered orderable is a generic orderable (not using the ideal product model meaning not a commodity type orderable or trade item orderable), then:

      • the Ordered Quantity and Stock on Hand for the supplier will appear on the same line since only the exact same orderable can fulfill an orderable which is not backed by either a CT or TI.

      • The row's color should be the primary row color (ie white)

  • Table columns are ordered with item meta data first, followed by order information, and lastly fulfilling facility stock information. This would read:

    • Product Code

    • Product

    • Lot Code which are shown if there are trade items with lots

    • VVM Status is showing if a trade item's lot has a VVM status

    • Expiry Date is showing if a trade item's lot has an expiry date

    • Order Quantity which is only shown on rows for ordered orderables

    • Fill Quantity

    • Available SOH

    • Remaining SOH

  • Implement openlmis-table-pane so table will virtually scroll

  • Page title has spaces before and after the "-": Fulfilling Order - [NUMBER]



Nikodem Graczewski


Nick Reid



Story Points


Time tracking


Epic Link




Fix versions