Blue Print - Inventory Module
- Add deployment setting to restrict editing inv. items directly (only through send/recv to maintain audit trail)
- Add feature to adjust item levels.
- Fix Incoming: A list of item shipment which have been sent from other warehouses to this warehouse but have not yet been received. From this page these shipments can be received and added to the warehouse. Currently broken due to complexity with site super entity join.
- Add Unique Shipment Reference Numbers
- Expiry times for Inventory Items need to be linked to the unique batch, not consolidated across all batches (like CTNs)
- From IFRC Logs procedures:
- Pictures of Items & Packs
- Have field for loose units
- Aggregation and kitting/dekitting Functionality
- User visible ID numbers for Received and Sent Shipments. Possibly using a site prefix and a sequential number per site to allow for easier filing of the printed (and potentially) signed forms.
Items can be moved from one site to another. This is managed by the shipment application. This application has a number of work-flows, which are briefly described here from a technical (developer rather than user) perspective.
- Send Items
- Receive Items
- Adjust Items
- Cancel a shipment
- Print Reports (Waybill, Goods Received, Donation Certificate)
- Return goods - typically this is for when:
- Goods are sent to a distribution point but
- It was not possible to distributed all the goods and so
- Some need to be returned to the warehouse
The shipment application manages the movement of stock items form one site to another. For clarity the word warehouse will be used for the site sending the goods although it would not necessarily be a warehouse. Whilst the place to where the items are being sent is referred to as the site. Both of these are references to org_site records.
Send & Receive
This involves a warehouse creating a send inventory record (inv_send) and populating it with stock item records (inv_inv_item) from the warehouse. The system will move these items from out of the warehouse totals, to avoid any potential problems with over-commitment, and into track item records (inv_track_item). At this point their will be a send inventory and multiple track item records, physically the items will still be in the warehouse and all the records will have a status of "In Process".
When each track item is created several actions are performed:
- The tracking number is validated to be unique within the organisation that owns the warehouse
- The organisation that is doing the shipment is added to the record
- Details from the inventory item are copied across so that they are preserved (for example if the price changes the price at time of shipping it retained)
When the items are ready to be sent (presumably they have been loaded onto some form of transport and are ready to leave the warehouse) they can then be sent (send shipment). At this point the status of the records are changed to "Sent". These records are now locked to prevent any change and a receive inventory record (inv_recv) is created. Each track item record is linked with this inventory receive record, the ownership of this record is set to being the site to where the goods are being sent.
Once the goods have been send a "Waybill" can be printed off. The shipment can be cancelled (presumably the lorries have been called back) or it is possible to confirm that the shipment has been received, this is used if the items are being received by a site which is not using Sahana-Eden to track the goods.
If a shipment is cancelled then the status is changed to "cancelled" (no surprises there) and the good are put back into the warehouse. The quantities in each track item are reduced to zero but the original values are added as a comment.
If a shipment is confirmed as having been received by the sending warehouse, then the status of the send inventory is changed to "Received" but within the system no site will actually receive the goods (although one hopes that reality is somewhat different).
When the goods arrive at a site a person responsible for the stock can receive these goods. In this case they will select the sent record and then Receive the shipment. The person needs to view each individual item record and confirm the quantity receives and (optionally) provide details of the bin to where they will go to. Once this is done for every record then the goods in the track items can be received and they will then be moved into the warehouse stock. If their are matching inventory records (same item same bin) then the quantity in those records will be incremented, otherwise a new inventory item record will be created.
Once stock has been received a Goods Received Notice and a Certificate can be printed off.
It is also possible to cancel a received shipment, in this case the goods need to come out of the warehouse and effectively back into the track item records. The sent inventory record is then set to being in transit and the warehouse of origin will then need to cancel the goods for them to go back into the warehouse stock levels.
- Inventory items can be set without being received by a different site.
- Inventory items can be received without being sent. For example this can cover:
- Inventory coming from a local supplier
- Inventory coming from a donor
Adjusting a Received Shipment
During a shipment if the goods send and good received totals are different then an adjustment is made (all the original figures are retained for a proper audit trail) During a shipment the adjustment is generated automatically.
The inventory totals in a warehouse are also fixed so once the goods arrive their is no way to adjust them except via a shipment process as described above. Obviously this is not sufficient since goods do get lost, damage or expire. To manage this a virtual stock-take can be done (potentially mirroring a real stock-take) which is essentially an adjustment. When an inventory adjustment is performed (as opposed to a shipment adjustment) all the items in the warehouse with non-zero quantities are automatically added to the adjustment record. It is possible to add new records to the adjustment but they can't be deleted. The user (warehouse manager) will then need to confirm the totals in each record. Once all the record quantities have been set the adjustment can be closes and then this record is locked and no further editing is possible.