How is FIFO applied in All Orders

Generally FIFO requires costs be applied in date order starting with an earliest date. For example, assume you received an 50 units of an item on Dec 20 for $3 per unit and a further 75 units on Jan 2 for $3.10 per unit . You sold 25 units on each of ship docs 1,2,3 and 4 on Dec 22, Dec 28, Jan 1 and Jan 2 respectively. The first 2 ships docs would be costed at $3 per unit and the last 2 at $3.1 per unit. Now you delete Ship Doc 2. Under FIFO you should first undo the costing (we calll this 'restacking') applied to ship docs 3 and 4, delete ship doc 2 and then redo the costing for ship docs 3 and 4. Now Ship doc 1 and 3 is costed at $3 per unit, ship doc # 4 is costed at $3.10 and there is 50 units left at $3.10. Now you create a new ship doc #5 dated Jan 6 and ship doc #6 dated Dec 28. When recording ship doc #6, under FIFO you should first undo the costing applied to ship docs 3 and 4 (because it has a date after ship doc 6), apply the costing to ship doc 6 then redo the costing for ship docs 3 and 4. Now Ship doc 1 and 5 is costed at $3 per unit and ship docs 3, 4 and 6 is costed at $3.10 per unit. 

The same concept applies to finishing work orders, receiving items or any transaction recorded out of date sequence. Depending on the number of transactions preceding it that uses the same item this process can take a long time and the system appears to hang or be not responding. In fact the database is working and All Orders is waiting for a response. 

In order to improve performance we have decided to remove restacking effective version 5.0.7 The consequences is that All Order will apply FIFO based on when it gets recorded in the ledger instead of on date sequence. Using the above sequence of events, All Orders will not undo and redo costing for transactions out of sequence so that when ship doc 2 was deleted, Ship doc 1 costed at $3 per unit, ship doc 3 & 4 are costed at $3.10 and there is 25 units left at $3.00 and $25 units left at $3.10. Ship Doc # 5 would be costed at $3.00 because it is the next to be recorded and ship doc 6 would be costed at $3.10. In most circumstances this is a minor inaccuracy. 

Transactions are recorded depending on their type as follows 

- Ship Docs/Customer Returns - when Shipped is checked (note this will also happen when you click Invoice if the prereneces to mark as shiiped is selected) 
- Work Orders - when status is changed to In Production of Finished 
- Receivers/ Vendor Retunrs - when saved 
- Adjustments - when saved 
- Transfers - when saved 

The reports that track FIFO costs in All Orders (all of which can be found under Reports - Invenotory Tracking) are as follows: 

1. Transactions - shows the Journal Entries 
2. Inventory Ledger - shows the per item detail of how costs were determined. 
3. Inventory Valuation - shows the inventory value at a point in time.