Design#
The stock module introduces or extends the following concepts.
Location#
A location represents the place where stock is stored. This may be a physical location, such as a shelf, or a virtual location such as the location used for products that have gone missing.
Locations are organised in to a structure with each location having a parent location and zero or more sub-locations. It is possible to restrict a location to only one level of children. This enables the use of an optimisation that improves the performance of the the stock quantity calculation.
A location also has a set of properties that allow the current and forecasted amounts of stock in the location to be obtained along with the stock’s value.
Warehouse#
Warehouses are special locations that represent a physical warehouse and as such can have an Address. They are also normally split up into a set of locations each with a particular purpose, such as for the input, output or storage of stock.
Location Lead Time#
A Location Lead Time is the amount of time that it normally takes to transfer stock between two Warehouses.
Move#
In Tryton a stock Move represents the transfer of a given amount of a Product between two different Stock Locations. Often stock moves will be grouped together into a Shipment.
Note
Service products have no physical presence, so are not available for use in stock moves.
A stock move has some properties that record the planned date for the stock move and also its effective date, which is when the move actually happened.
Some stock moves are also associated with unit and cost prices. These allow the value of stock to be calculated at any time, and for products’ cost prices to be updated based on the stock moves.
Each Company has its own stock moves which are kept separate from other company’s stock moves.
Assign Concept#
A stock move is assigned when the stock for the stock move has been found and reserved and cannot be assigned by any other stock move.
When attempting to assign a stock move Tryton looks at the stock move’s source locations and their sub-locations, and searches for the stock that is needed to complete the stock moves. If stock is found then the source location of the stock move is changed, or the stock move is split up into several stock moves, each of which may take stock from a different sub-location.
If there is not enough stock available to fully assign the stock move then the remainder is left in a stock move that is not assigned.
Note
Consumable products always get assigned even when there is not enough stock available for the stock move. This is the key difference between goods and consumable products.
Shipment#
In Tryton the concept of a Shipment is used to help organise and manage groups of related Stock Moves. There are different types of shipment which are used for different purposes. Some of these types of shipment may also be split up into stages. In each stage stock is moved to or from an intermediate Location. Each stage’s moves form a subset of the shipment’s total moves.
Supplier Shipment#
A Supplier Shipment has a set of properties that hold details about the shipment such as who the supplier is, what Warehouse it is going to and the date when the shipment is expected to be delivered.
It is made up from two sets of Stock Moves:
Incoming moves, these are used to move stock between a supplier Location and the warehouse’s input location, and
Inventory moves, these then put the stock away in the warehouse’s storage location, or one of its child locations.
Note
If the warehouse’s input location and storage location are the same then the inventory moves are not created.
Reports#
Restocking List#
The Restocking List report lists the items on an incoming shipment and the destination locations for the stock based on the inventory moves.
Supplier Return Shipment#
A Supplier Return Shipment has a set of properties that contain information about the shipment such as who the supplier was, what Address the shipment is going to, and the date the shipment is sent.
It is made up from a single set of Stock Moves that return the stock directly back to a supplier Location.
Customer Shipment#
A Customer Shipment has a set of properties that contain information about the shipment such as which Warehouse it is being sent from, what Address it is being delivered to, and the date it is being sent.
A customer shipment is made up from two sets of Stock Moves:
Inventory moves, these moves are used to pick the stock from the warehouse’s storage Location and put it in the output location, and
Outgoing moves, these then take the picked stock and send it to a customer location. The outgoing moves are created first and define what stock needs to be sent to the customer.
Note
If the warehouse’s picking location (or storage location if no picking location is defined) is the same as its output location then only outgoing moves are created and these moves do not get Assigned.
Reports#
Picking List#
The Picking List report lists the stock that is needed for a shipment. For each item on the shipment it details the location the stock should be taken from, and how much should be taken.
Delivery Note#
The Delivery Note report contains information about where the shipment is being sent, and when the delivery is happening. It also lists all the items on the shipment.
Customer Return Shipment#
A Customer Return Shipment has properties that contain information about which customer the stock is being returned from, which Warehouse it is sent to and the date the return is happening.
It is made up from two sets of Stock Moves:
Incoming moves, these are used to move stock between a customer Location and the warehouse’s input location, and
Inventory moves, these then put the stock away in the warehouse’s storage location, or one of its child locations.
Note
If the warehouse’s input location and storage location are the same then the inventory moves are not created.
Reports#
Customer Return Restocking List#
The Customer Return Restocking List report lists the items that were returned by a customer. For each item a destination location for the stock is also included based on the inventory moves.
Internal Shipment#
An internal shipment allows a group of Stock Moves, between locations within the same Company, to be managed as a single entity.
For internal shipments that are planned to start and end on different dates it is made up from two sets of moves. The first set are outgoing moves that put the stock in a transit Location and the second set are incoming moves that take the stock from the transit location and place it in the destination location.
Reports#
Internal Shipment Report#
The Internal Shipment Report provides a list of the items on the internal shipment along with their quantities. For shipments between Warehouses it also contains the Address of the warehouse the stock is being sent to.
Wizards#
Assign Shipment#
The Assign Shipment wizard is used to assign a shipment. Assigning a shipment tries to Assign the Stock Moves that take the stock for the shipment. If not all the stock moves can be assigned then it provides the user with a set of options of what to do next.
Inventory#
The Inventory concept is used to help check and correct the amount of stock stored in a Location.
Each inventory has a set of lines, one for each Product that is in, or is should be in, the location. Each line has an expected quantity and an actual quantity. The former is used to show how much stock is expected to be in the location and the latter is used to record how much stock was actually found there.
A option on the inventory specifies what to do with lines whose actual quantity is left empty.
When the Inventory is confirmed the stock in the location is updated by creating a set of Stock Moves. These moves correct the stock in the location. They do this by transferring stock to and from the lost and found location associated with location being checked.
Warning
Do not use inventories when Setting initial stock levels.
Wizards#
Inventory Count#
The Inventory Count wizard helps users fill in inventories on a Product by product basis. It takes a product and a quantity and adds this to the appropriate inventory line.
Period#
In Tryton a stock Period is used to group together the all stock moves that happened up to a specific date and that were also done after the date of any previous stock Period.
This allows the stock levels for the Products in all stock Locations to be calculated for the date of the period, and stored in the Stock Period Cache.
These cached values can then be used, where applicable, instead of having to recalculate them each time they are needed.
Period Cache#
The Period Cache is used to store the quantities of a product in a particular location on the date defined by its Period.
Configuration#
The Stock Configuration contains settings that are used to configure the behaviour and default values for stock related activities, including the sequences used to generate Shipment numbers.
Product#
When the Stock Module is activated, products gain some extra properties. These include a product’s stock and forecast quantities, which show its current and predicted future stock situation, and the cost value of its stock.
See also
The Product concept is introduced by the Product Module.
Product Quantity#
The amount, and the value, of a product in a Stock Location is calculated by adding up all the Stock Moves in to that location and subtracting those out of the same location.
Some values from the
Transaction context
are used to help determine which stock moves get included in this calculation
and which get left out.
These values include things like which locations to include in the
calculation, and what dates should be included.
Normally, when calculating stock quantities for a date in the past, only moves that are done are included in the calculation, and only if their effective date is early enough. This reflects the real situation based on completed stock moves. For dates in the future, draft and Assigned moves are also included, but only if their planned date is between today’s date and the future date, inclusive.
Note
The stock quantity of consumable products is calculated in exactly the same way as any other product, even though consumable products can always be assigned regardless of how much stock there is.
Wizards#
Recompute Cost Price#
The Recompute Cost Price wizard updates products’ cost prices using their cost price method.
Modify Cost Price#
The Modify Cost Price wizard is only way in which a product’s cost price can be changed once it has stock moves. The wizard takes a date and a fixed price or formula for the new cost price. These changes are stored in the Cost Price Revision concept and are applied at the beginning of the date that was selected when the cost price of the product gets re-calculated.
Product Quantities by Warehouse#
The idea of the Product Quantities by Warehouse concept is to provide information about how the stock levels of one or more products have varied over time in a particular Warehouse.
Product Quantities by Warehouse Move#
The Product Quantities by Warehouse Move concept provides information about how Stock Moves have affected the stock levels in a Warehouse over time.
Cost Price Revision#
The Cost Price Revision records changes to a product’s cost price. These revisions are automatically created when the product’s cost price is changed using the Modify Cost Price wizard.