All of the widget on hand quantity updates are done in code in the old application. For example, the PartMaster table has the OnHandQty field. It gets adjusted whenever a new record is added/edited in the Production table or the Shipments table. Also, each month a physical inventory is taken (full plant) and these numbers (stored in an InventoryTransaction table) are synchronized with the OnHandQty in the PartsMaster table.
One of our goals is to eliminate the monthly inventories and rely on the system to present good running totals. So, I am taking a look at this from a practical perspective with my StrataFrame helmet on.
At the moment, I am considering an InventoryAdjustments table (to handle all of those interim inventory adjustments that always seem to occur because of scrap, miscounts, etc.). The SQL view would combine all four tables (Parts, Production, Shipments, Adjustments) and present something like this:
PartIndex, ProdTotal, ShipTotal, AdjTotal, OnHandQty
With this layout, I could total each table within the view by transaction entry date which would allow for a point-in-time inventory total. This has great promise. I would no longer have to code for changes in the totals...the normal BO functionality handles all of that in each of the tables. This may be the better way to handle the inventory for us.
By the way, one flaw that I am seeing is time-sensitivity. The longer we go with this, the more data involved in the queries. Is there a way to data overhead? Not seeing an easy way to do that...we would have to maintain all production, shipping and adjustment records indefinitely. I suppose I could write something to move stuff to a history table of sorts and make a cumulative entry into the adjustment table....kind of like a beginning balance.
Well, I am rambling, now. If anyone can see major gotchas in my approach, just holler. I think this will help us best transition into the new application without upsetting the data structure too much.
Bill