I have many Warehouses, and this may be overkill, but it works for me:
(Local Warehouse) SHOP
(Local Warehouse) BODEGA
(Supplier Warehouse) Supplier1
(Supplier Warehouse) Supplier2
(Supplier Warehouse) Supplier3
(Supplier Warehouse) ...
(Supplier Warehouse) Supplier20
Each of the Warehouses are linked to their own Entity and Account.
I have 3 Inventory Transaction Types:
Inventory Purchase Tx
Inventory Txfr (SHOP to BODEGA)
Inventory Txfr (BODEGA to SHOP)
When a Supplier delivers Product, the first Type is used. This effectively transfers Stock from the Supplier Warehouse to the SHOP Warehouse. An Account Transaction is also created, moving money from one of my internal Accounts to the Supplier Account.
Then I transfer extra Stock from SHOP to BODEGA using the 2nd Type. No Account transaction is made, so it is like a zero cost Account Transaction, but the Stock Quantities in each Warehouse are updated. This is the Physical Stock counts, not the Consumptions.
Later in the week/month, I transfer Stock from BODEGA to SHOP using the 3rd Type. Again, no Account transaction is made, so it is like a zero cost Account Transaction, but the Stock Quantities in each Warehouse are updated. This is the Physical Stock counts, not the Consumptions.
The SHOP Warehouse is the only one which sees Consumption of Stock from Recipe definitions.
Here is an example of what it looks like … watch Croissant:
Purchase:
Transfers:
Transfer:
End of Day:
This is all done very easy, facilitated by this: