User cases for negative SOH balance

Assumption:
End user is allowed to create a stock line item whose occurred date is a past date;
End user sometimes not record the stock line item orderly, e.g. record the current stock line item and then add back a previous stock line item;

Tradeoff:
Usability > Policy (system build-in rules), meaning OpenLMIS should encourage end users to use our system and input data

Business scenarios:
Example 1:  User forgot to make a past-date stock line item
For example, there is a stock card:

DateSourceReceived QuantityDestinationIssued QuantityAdjustment ReasonAdjustment QuantityStock on Hand
1 JanDistrict1100



100
2 Jan
Ward120


80
4 JanDistrict2100



180
5 Jan

Ward250

130


On 6th Jan, the storeroom manager realized that he forgot to record an issue stock line item on 3rd Jan so he adds that stock line item and gives the issue quantity as 100. This issue 100 stock event will pass our current validation rule because we only compare the current stock on hand which is 130 within the stock event quantity which is 100 and 130>100. 
Thus, an issue 100 stock event occurred date 3rd Jan will be created and it would impact all following stock line items' stock on hand and the stock card would be updated as below:


DateSourceReceived QuantityDestinationIssued QuantityAdjustment ReasonAdjustment QuantityStock on Hand
1 JanDistrict1100



100
2 Jan
Ward120


80
3 Jan
Ward1 100


-20
4 JanDistrict2100



80
5 Jan

Ward250

30


Example 2: User wants to make an issue stock line item although the current stock on hand is 0

Another stock card is like below:

DateSourceReceived QuantityDestinationIssued QuantityAdjustment ReasonAdjustment QuantityStock on Hand
1 Jan District1100



100
2 Jan

Ward1100

0

















3rd Jan, storeroom manager A received 50 quantity from district 2 but he did not have time to record it. Thus, the real SOH is 50 instead of 0.
4th Jan, storeroom manager B started to work and he wanted to issue 30 quantity to a patient because he had 50 quantity of this orderable. Thus, he needed to create an issue stock line item to record this 30 quantity issue although the SOH in the system was 0.
The stock card might be updated as below:


DateSourceReceived QuantityDestinationIssued QuantityAdjustment ReasonAdjustment QuantityStock on Hand
1 Jan District1100



100
2 Jan

Ward1100

0
4 Jan

Ward130

-30









5th Jan, storeroom manager A realized that he forgot to make the receive stock line item happened on 3rd Jan so he added that stock line item back. 
The stock card updated as below:


DateSourceReceived QuantityDestinationIssued QuantityAdjustment ReasonAdjustment QuantityStock on Hand
1 Jan District1100



100
2 Jan

Ward1100

0
3 JanDistrict150



50
4 Jan

Ward130

20