The purpose of this application is to provide a framework to store inventory levels. This application introduces a table structure that stores inventory dimensions and allows users to adjust values and move materials. Other applications can be made on top of this structure to execute inventory transactions.
There are many ways to interact with inventory data. For example, You may decide to make an application which consumes (or backflushes) material as products are created. You may also decide to create a warehouse application which facilitates a picking and shipping process. In these examples, and in others, there should be a standard table structure to help facilitate this. The inventory management app is intended to introduce this table structure as well as provide some basic functions. There are a number of parameters to consider, referred to as "Inventory Dimensions":
The ID or SKU of the part number
This is the physical location where the item is stored. Multiple items can be in the same location
This is the status of the material. Some material may be "reserved", "quarantined", or "available". You may decide on other statuses, as well
This is the unique serial number of the inventory. Some items may be identified by a serial number and, once identified as such, they will be stored in inventory as that serial number
This is the current quantity of the inventory within the location, it is permitted to be zero
When inventory is first moved into a location, it is stored as a new record in the inventory table with an ID of "Item-Location-Serial-Status". These dimensions are sufficient to adequately describe the inventory and all subsequent transactions (adding material to a location, etc.) will be acted upon this inventory record. If inventory is brought down to zero, the record will remain but will show up as having a QTY of 0.