Compare commits

...

1 Commits

Author SHA1 Message Date
Lau-Odoo
b932426df7 [IMP] Inventory: Inventory doc improvement to fit Odoo 13 2020-04-01 16:23:40 +02:00
58 changed files with 299 additions and 404 deletions

View File

@ -7,8 +7,7 @@ Concepts
:glob: :glob:
concepts/use_routes concepts/use_routes
concepts/procurement_rule concepts/pull_push_rules
concepts/push_rule
concepts/inter_warehouse concepts/inter_warehouse
concepts/cross_dock concepts/cross_dock
concepts/stock_warehouses concepts/stock_warehouses

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,73 +0,0 @@
===========================
What is a procurement rule?
===========================
Overview
========
The procurement inventory control system begins with a customer's order.
With this strategy, companies only make enough product to fulfill
customer's orders. One advantage to the system is that there will be no
excess of inventory that needs to be stored, thus reducing inventory
levels and the cost of carrying and storing goods. However, one major
disadvantage to the pull system is that it is highly possible to run
into ordering dilemmas, such as a supplier not being able to get a
shipment out on time. This leaves the company unable to fulfill the
order and contributes to customer dissatisfaction.
An example of a pull inventory control system is the make-to-order. The
goal is to keep inventory levels to a minimum by only having enough
inventory, not more or less, to meet customer demand. The MTO system
eliminates waste by reducing the amount of storage space needed for
inventory and the costs of storing goods.
Configuration
=============
Procurement rules are part of the routes. Go to the Inventory
application>Configuration>Settings and tick "Advance routing of products
using rules".
.. image:: media/procurement_rule01.png
:align: center
Procurement rules settings
==========================
The procurement rules are set on the routes. In the inventory
application, go to :menuselection:`Configuration --> Routes`.
In the Procurement rules section, click on Add an item.
.. image:: media/procurement_rule02.png
:align: center
Here you can set the conditions of your rule. There are 3 types of
action possible :
- Move from another location rules
- Manufacturing rules that will trigger the creation of manufacturing
orders
- Buy rules that will trigger the creation of purchase orders
.. note::
The Manufacturing application has to be installed in order to
trigger manufacturing rules.
.. note::
The Purchase application has to be installed in order to trigger
**buy** rules.
.. image:: media/procurement_rule03.png
:align: center
.. note::
Some Warehouse Configuration creates routes with procurement
rules already defined.
.. seealso::
* :doc:`push_rule`
* :doc:`inter_warehouse`
* :doc:`cross_dock`

View File

@ -0,0 +1,116 @@
===========================
What are Pull & Push Rules?
===========================
In inventory management, the supply chain strategy determines when
products should be fabricated, delivered to distribution centers and
made available in the retail channel.
Under a pull supply chain, actual customer demand drives the process,
while push strategies are driven by long-term projections.
Pull Inventory Control System
=============================
The *procurement inventory control system* begins with a customer's
order. With this strategy, companies only produce enough to fulfill their
customer's orders. One advantage is that there are no
extra goods that need to be stored, thus reducing inventory levels
and the cost of carrying and storing. However, one major
disadvantage to the pull system is that it is highly possible to run
into ordering dilemmas, such as a supplier not being able to get a
shipment out on time. This leaves the company unable to fulfill the
order and contributes to customer dissatisfaction.
An example of a pull inventory control system is the make-to-order. The
goal is to keep inventory levels to a minimum by only having enough
inventory to meet customer's demand. The :abbr:`MTO (Make-to-order)` system
eliminates waste by reducing the amount of storage space needed for
inventory and the costs of storing goods.
Push Inventory Control System
=============================
The *push system of inventory control* involves forecasting inventory
needs to meet customer's demand. Companies must predict which products
customers will purchase along with determining what quantity of goods
will be purchased. The company will, in turn, produce enough product to
meet the forecast demand and sell, or push, the goods to the consumer.
Disadvantages of the push inventory control system are that forecasts
are often inaccurate as sales can be unpredictable and vary from one
year to the next, but it also increases the company's costs for storing
these goods if the minimum stock isnt well defined. An advantage of the push system is that the
company is fairly assured it will have enough product on hand to complete customer orders,
preventing the inability to meet customer demand for the product.
A push flow indicates how locations are chained with other ones. As soon
as a given quantity of products is moved in the source location, a
chained move is automatically foreseen according to the parameters set
on the flow specifications (destination location, delay, type of move).
It can be triggered automatically or manually.
Configuration
=============
Pull and push rules are part of the routes. Go to :menuselection:`Inventory --> Configuration -->
Settings` and tick *Multi-Step Routes*.
.. image:: media/pull_push_rules_01.png
:align: center
:alt: Enabling multi-step routes to use pull and push rules
.. Note::
Storage Locations are automatically activated at the same time as
Multi-Step Routes.
Rules settings
==============
The rules are defined on the routes. In the inventory application, go to
:menuselection:`Inventory --> Configuration --> Routes`. In the *Rules* section, click on *Add a line*.
.. image:: media/pull_push_rules_02.png
:align: center
:alt: Add a line on Odoo routes to use Pull & Push rules
Here you can set the action to be triggered by the rule. Choose from:
- **Pull From**: this rule will be triggered by a need for the product in a specific stock
location. The need can come from a sale order which has been validated or for a manufacturing order
which requires a specific component. When the need appears in the source location, Odoo generates a
picking to fulfill this need thanks to the pull rule.
- **Push To**: this rule will be triggered by the arrival of some products in the defined source
location. In case you move products to the source location, Odoo generates a picking to move those
products to the destination location.
- **Push & Pull**: it allows to generate a picking in the two different situations explained above,
when products are required in a specific source location as well as when they are pushed to a
specific source location.
- **Buy**: when products are needed the source location, a request for quotation is created to
fulfill the need.
- **Manufacture**: when products are needed in the source location, a manufacturing order is
created to fulfill the need.
- Many translated example sentences containing
.. image:: media/pull_push_rules_03.png
:align: center
:alt: Creating rules inside of Routes
The *Operation Type* allows you to define which kind of picking will
be created from this rule, in the example, I would like to create an
internal transfer.
The *Supply Method* allows you to define what happens at the source
location:
- **Take From Stock**: the products will be taken from the available stock of the source location.
- **Trigger Another Rule**: the system will try to find a stock rule to bring the products in the
source location. The available stock will be ignored.
- **Take From Stock, if Unavailable, Trigger Another Rule**: the products will be taken from the
available stock of the source location. If there is no stock available, the system will try to find
a rule to bring the products in the source location.
In the *Scheduling* section, you can determine how will Odoo behave
when one of the pickings of the chain is rescheduled. In case you decide
to Propagate Rescheduling, the next move will also be rescheduled. In
case you prefer to have the choice to manually reschedule the next move
or not, you can decide to receive an alert about it under the form of
the next activity.

View File

@ -1,81 +0,0 @@
====================
What is a push rule?
====================
Overview
=========
The push system of inventory control involves forecasting inventory
needs to meet customer demand. Companies must predict which products
customers will purchase along with determining what quantity of goods
will be purchased. The company will in turn produce enough product to
meet the forecast demand and sell, or push, the goods to the consumer.
Disadvantages of the push inventory control system are that forecasts
are often inaccurate as sales can be unpredictable and vary from one
year to the next. Another problem with push inventory control systems is
that if too much product is left in inventory, this increases the
company's costs for storing these goods. An advantage to the push system
is that the company is fairly assured it will have enough product on
hand to complete customer orders, preventing the inability to meet
customer demand for the product.
A push flow indicates how locations are chained with the other ones. As
soon as a given quantity of products is moved in the source location, a
chained move is automatically foreseen according to the parameters set
on the flow specification (destination location, delay, type of move,
journal). It can be triggered automatically or manually.
Configuration
=============
Push rules are part of the routes. Go to the menu
:menuselection:`Inventory --> Configuration --> Settings`
and tick **Advance routing of products using rules**.
.. image:: media/push_rule01.png
:align: center
Push rules settings
===================
The push rules are set on the routes.
Go to :menuselection:`Configuration --> Routes`.
In the push rule section, click on **Add an item**.
.. image:: media/push_rule02.png
:align: center
Here you can set the conditions of your rule. In this example, when a
good is in **Input location**, it needs to be moved to the quality control.
In the 3 steps receipts, another push rule will make the goods that are
in the quality control location move to the stock.
.. image:: media/push_rule03.png
:align: center
.. note::
Some warehouse configuration creates routes with push rules
already defined.
Stock transfers
===============
The push rule will trigger stock transfer. According to the rule set on
your route, you will see that some transfers might be ready and other
are waiting.
The push rule that was set above will create moves from **WH/Input**
location to the **WH/Quality Control** location.
.. image:: media/push_rule04.png
:align: center
In this example, another move is waiting according to the second push
rule, it defines that when the quality control is done, the goods will
be moved to the main stock.
.. seealso::
* :doc:`procurement_rule`
* :doc:`inter_warehouse`
* :doc:`cross_dock`

View File

@ -1,154 +1,144 @@
================== ==========
How to use routes? Use Routes
================== ==========
Overview A route is a collection of :doc:`push and pull rules <pull_push_rules>`. In Odoo, you can manage
======== advanced push/pull routes configurations, like:
A route is a collection of procurement rules and push rules. Odoo can - Manage product manufacturing chains;
manage advanced push/pull routes configuration, for example: - Manage default locations per product;
- Define routes within your warehouse according to the business needs, such as quality control, after-sales services or supplier returns;
- Help rental management, by generating automated returning moves for rented products.
- Manage product manufacturing chains .. note::
- You can find documentation about those subjects :doc:`../../inventory`
- Manage default locations per product
- Define routes within your warehouse according to business needs, such
as quality control, after sales services or supplier returns
- Help rental management, by generating automated return moves for
rented products
Configuration Configuration
============= =============
Procurement rules are part of the routes. Go to the **Inventory** To configure routes, go to :menuselection:`Inventory --> Configuration --> Settings` and enable
application, :menuselection:`Configuration --> Settings` and tick the *Multi-Step Routes* feature.
**Advance routing of products using rules**.
.. image:: media/use_routes01.png .. note::
:align: center Enabling the *Multi-Step Routes* automatically enables the *Storage Location* feature too.
Pre-configured routes .. image:: media/use_routes_01.png
:align: center
:alt: Enabling multi-step routes to work with routes
Pre-Configured Routes
===================== =====================
Odoo has some pre-configured routes for your warehouses. Of course, Odoo offers some pre-configured routes for your warehouses. To
see them, open the *Warehouses* menu, under *Configuration*.
In the Inventory application, go to In the *Warehouse Configuration* tab, some routes are automatically
:menuselection:`Configuration --> Warehouses`. created based on your choices for *Incoming Shipments* and *Outgoing
Shipments*.
In the **Warehouse Configuration** tab, **Incoming Shipments** and **Outgoing .. image:: media/use_routes_02.png
Shippings** options set some routes according to your choices. :align: center
:alt: automatically generated routes for incoming and outgoing shipments
.. image:: media/use_routes02.png
:align: center
Custom Routes Custom Routes
============= =============
In the **Inventory** application, go to In the *Inventory* application, open :menuselection:`Configuration --> Routes`. Then,
:menuselection:`Configuration --> Routes`. you have to select the places where this route can be selected. You can
combine several choices if needed.
.. image:: media/use_routes03.png
:align: center
First, you have to select the places where this route can be selected.
You can combine several choices.
Routes applied on warehouses Routes applied on warehouses
---------------------------- ----------------------------
If you tick **Warehouses**, you have to choose on which warehouse it will If you tick *Warehouses*, you have to choose on which warehouse it
be applied. The route will be set for all transfer in that warehouse will be applied. The route will be set for all transfers in that
that would meet the conditions of the procurement and push rules. warehouse that would meet the conditions of the pull and push rules.
.. image:: media/use_routes04.png .. image:: media/use_routes_03.png
:align: center :align: center
:alt: Applicable routes on warehouse
Routes applied on products Routes applied to products
--------------------------- --------------------------
If you tick **Products**, you have to manually set on which product it If you choose *Products*, you have to manually set on which product it
will be applied. is applied.
.. image:: media/use_routes05.png .. image:: media/use_routes_04.png
:align: center :align: center
:alt: Applicable routes on products
Open the product on which you want to apply the routes To do so, open the product on which you want to apply the routes. Open
(:menuselection:`Inventory --> Control --> Products`). the *Inventory tab* and select the route youve created.
In the Inventory Tab, select the route(s):
.. image:: media/use_routes06.png .. image:: media/use_routes_05.png
:align: center :align: center
:alt: Choosing products the route is applicable on
Routes applied on Product Category Routes applied on Product Category
---------------------------------- ----------------------------------
If you tick **Product Categories**, you have to manually set on which Then, you can also choose to apply routes to *product categories*.
categories it will be applied. Just like you did for products, you have to manually set on which
categories it must be applied.
.. image:: media/use_routes07.png .. image:: media/use_routes_06.png
:align: center :align: center
:alt: Applicable routes on product categories
Open the product on which you want to apply the routes To do so, open the product category you want to apply the route to.
(:menuselection:`Configuration --> Product Categories`). Then, select the route under the *Logistic* section.
Select the route(s) under the **Logistics** section :
.. image:: media/use_routes08.png .. image:: media/use_routes_07.png
:align: center :align: center
:alt: Routes registration in the product category logistics field
Routes applied on Sales Order lines Routes applied on Sales Order Lines
----------------------------------- -----------------------------------
If you tick **Sales order lines**, you have to manually set the route You can also apply routes on sales order lines. For that, tick *Sales
every time you make a sale order. Order Lines* on your route form.
.. image:: media/use_routes09.png .. image:: media/use_routes_08.png
:align: center :align: center
:alt: Applicable routes on sales order lines
In order to make it work, you also have to activate the use of the Next, open a sale order. You can now add the *Route* in the view. Once
routes on the sales order. done, you can choose the routes for each of your sales orders lines.
In the Sales application, go to .. image:: media/use_routes_09.png
:menuselection:`Configuration --> Settings` and tick :align: center
**Choose specific routes on sales order lines (advanced)**. :alt: Enabling the routes on sales order lines
.. image:: media/use_routes10.png .. image:: media/use_routes_10.png
:align: center :align: center
:alt: Sales orders showing the routes between the description and quantity
You can now choose the routes for each lines of your sales orders: Pull and Push Rules
-------------------
.. image:: media/use_routes11.png For detailed explanations about *Pull and Push Rules*, please refer to the following
:align: center documentation: :doc:`pull_push_rules`.
Procurement and push rules Pull Configuration
========================== ------------------
Please refer to the documents: When making a procurement request, you can force the route you want to
use. On the product form, click on *Replenish*. Then, choose the route you
want to use.
- :doc:`procurement_rule` .. image:: media/use_routes_11.png
:align: center
:alt: Product replenishment
- :doc:`push_rule` .. image:: media/use_routes_12.png
:align: center
:alt: Replenishment with preferred routes and chosen quantity
Procurement configuration Replenish on Order (MTO) Route
========================= ------------------------------
When doing a procurement request, you can force the route you want to If you do not work with stock, it is better to use the *Replenish on Order
use. On the product (:menuselection:`Inventory Control --> Products`), (MTO)* route. Combined with the *Buy* or *Manufacturing* routes, it
click on **Procurement Request**. Choose the route you want to use next to automatically triggers the purchase order or manufacturing order
**Preferred Routes**: when your products are out-of-stock.
.. image:: media/use_routes12.png
:align: center
Make-to-Order Route
===================
If you work with no stock, or with minimum stock rules, it is better to
use the **Make To Order** route. Combine it with the route **Buy** or
**Manufacture** and it will trigger automatically the purchase order or
the Manufacturing Order when your products are out-of-stock.
.. seealso::
* :doc:`push_rule`
* :doc:`inter_warehouse`
* :doc:`cross_dock`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,192 +1,136 @@
================================================== ==================================================
What is a removal strategy (FIFO, LIFO, and FEFO)? What is a Removal Strategy (FIFO, LIFO, and FEFO)?
================================================== ==================================================
Overview Removal strategies are a set of rules defined in picking operations that change which products
======== are moved first. A removal strategy can optimize the distance for the worker, for
quality control purposes or to first move the products with the closest
Removal strategies are usually in picking operations to select the best expiration date.
products in order to optimize the distance for the worker, for quality
control purpose or due to reason of product expiration.
When a product movement needs to be done, Odoo will find available When a product movement needs to be done, Odoo will find available
products that can be assigned to shipping. The way Odoo assign these products that can be assigned to the transfer. The way Odoo assigns
products depend on the **removal strategy** that is defined on the **product these products depends on the *removal strategy* that is defined in
category** or on the **location**. the *product category* or on *the location*.
Configuration Configuration
============= =============
In the **Inventory** application, go to :menuselection:`Configuration In order to be able to identify some units from other ones, in Odoo, you
--> Settings`: need to track them either by lot or by serial number. Go to
:menuselection:`Inventory --> Configuration --> Settings`.
.. image:: media/removal01.png Activate *Storage Locations*, *Multi-Step Routes* and *Lots &
:align: center Serial Numbers*.
.. image:: media/removal02.png .. image:: media/removal_01.png
:align: center :align: center
:alt: Enabling lots and serial numbers to use FIFO, LIFO and FEFO strategies
Check **Track lots or serial numbers**, **Manage several location per In case you want to work with FEFO, *Expiration Dates* should also be
warehouse** and **Advanced routing of products using rules**, then click activated.
on **Apply**.
Then, open :menuselection:`Configuration --> Locations` You can then define your removal strategy, either on *Product
and open the location on which you want to apply a removal strategy. Categories* via the :menuselection:`Inventory --> Configuration --> Product
Categories`, or on *Locations*, in :menuselection:`Inventory -->
Configuration --> Locations`.
.. image:: media/removal03.png .. image:: media/removal_02.png
:align: center :align: center
:alt: Selecting the good removal strategy on the product category form
Types of removal strategy .. image:: media/removal_03.png
========================= :align: center
:alt: Selecting the removal strategy on the location form
FIFO ( First In First Out ) Removal Strategy Types
--------------------------- ======================
A **First In First Out** strategy implies that the products that were FIFO (First In First Out)
stocked first will move out first. Companies should use FIFO method if -------------------------
they are selling perishable goods. Companies selling products with
A First In First Out strategy implies that the products that were
stocked first are moved out first. Companies should use the FIFO method
if they are selling perishable goods. Companies selling products with
relatively short demand cycles, such as clothes, also may have to pick relatively short demand cycles, such as clothes, also may have to pick
FIFO to ensure they are not stuck with outdated styles in inventory. FIFO to ensure they are not stuck with outdated styles in inventory.
Go to :menuselection:`Inventory --> Configuration --> Locations`, Go to :menuselection:`Inventory > Configuration > Locations`, open the Stock location and
open the stock location and set **FIFO** removal strategy. set FIFO as the removal strategy.
Let's take one example of FIFO removal strategy. In your stock location (WH/Stock), there are 3 lots of Hand Cream
available.
In your warehouse stock (``WH/Stock``) location, there are ``3`` lots of ``iPod .. image:: media/removal_04.png
32 Gb`` available. :align: center
:alt: View of stock location with products in it
You can find details of available inventory in inventory valuation Create a sales order for 25 units of Hand Cream and validate it. If you
report. go on the delivery order linked to the picking, you can see that the
oldest lot numbers have been automatically reserved thanks to the FIFO
removal strategy.
.. image:: media/removal04.png .. image:: media/removal_05.png
:align: center :align: center
:alt: View of reserved products to deliver a customer thanks to removal strategies
Create one sales order ``25`` unit of ``iPod 32 GB`` and confirm it.
You can see in the outgoing shipment product that the ``Ipod 32
Gb`` are assigned with the **oldest** lots, using the FIFO removal
strategy.
.. image:: media/removal05.png
:align: center
LIFO (Last In First Out) LIFO (Last In First Out)
------------------------ ------------------------
In this warehouse management, the products which are brought in the In LIFO, the products which are brought the last move out the first.
last, moves out the first. LIFO is used in case of products which do not LIFO is used when products do not have a shelf life.
have a shelf life.
Go to :menuselection:`Inventory --> Configuration --> Locations`, Go to :menuselection:`Inventory --> Configuration --> Locations`, open the location WH/Stock
open the stock location and set **LIFO** removal strategy. and set the LIFO removal strategy. With the exact same data in the
database, we can now see that on the picking, the lot numbers which are
privileged are the ones created the last.
In our example, let's check the current available stock of ``Ipod 32 Gb`` .. image:: media/removal_06.png
on ``WH/Stock`` location. :align: center
:alt: Vie of reserved products thanks to removal strategies
.. image:: media/removal06.png FEFO (First Expiry First Out)
:align: center -----------------------------
Create a sale order with ``10`` units of ``Ipod 32 Gb``.
You can see in the outgoing shipment product that the ``Ipod 32
Gb`` are assigned with the **newest** lots, using the LIFO removal
strategy.
.. image:: media/removal07.png
:align: center
FEFO ( First Expiry First Out )
--------------------------------
In FEFO warehouse management, the products are dispatched from the In FEFO warehouse management, the products are dispatched from the
warehouse according to their expiration date. warehouse according to their expiration date.
Go to :menuselection:`Inventory --> Configuration --> Setting`. In case you want more information about Expiration Dates, please have a
Check the option **Define Expiration date on serial numbers**. look at :doc:`manage expiration dates <../../management/lots_serial_numbers/expiration_dates>` documentation.
Then click on **Apply** to save changes.
.. image:: media/removal08.png The activation of the *Expiration Dates* functionality allows you to
:align: center define different dates on the serial/lot numbers, which are used in
FEFO. These dates can be set from :menuselection:`Inventory --> Master Data --> Lots/Serial
Numbers`.
This will allow you to set four expiration fields for each lot or serial number: .. image:: media/removal_07.png
**best before date**, **end of life date**, **alert date** and **removal date**. :align: center
These dates can be set from :menuselection:`Inventory Control --> Serial Numbers/Lots`. :alt: View of removal date when using a FEFO strategy
.. image:: media/removal09.png Lots are picked based on their removal date, from earliest to
:align: center latest. Lots without a removal date defined are picked after lots
with removal dates.
- **Best Before Date**: This is the date on which the goods with this All dates except *removal dates* are for informational and reporting
serial/lot number start deteriorating, without being dangerous yet. purposes only. Lots that are past any or all of the above expiration
dates may still be picked for delivery orders.
- **End of Life Date:** This is the date on which the goods with this To set the removal strategy on location, go to :menuselection:`Inventory --> Configuration -->
serial/lot number may become dangerous and must not be consumed. Locations`, open WH/Stock and choose FEFO.
- **Removal Date:** This is the date on which the goods with this
serial/lot number should be removed from the stock. Using the FEFO
removal strategy goods are picked for delivery orders using this date.
- **Alert Date:** This is the date on which an alert should be sent
about the goods with this serial/lot number.
Lots will be picked based on their **removal date**, from earliest
to latest. Lots without a removal date defined will be picked after
lots with removal dates.
All dates except **removal date** are for informational and reporting purposes only.
Lots that are past any or all of the above expiration dates may still be picked
for delivery orders, and no alerts will be sent when lots pass their **alert date**.
Expiration dates on lots can also be set automatically when goods are received into stock.
After enabling expiration dates on serial numbers, four new fields will become available
in the inventory tab of the product form: **product life time**, **product use time**,
**product removal time**, and **product alert time**. When an integer is entered into one
of these fields, the expiration date of a lot/serial of the product in question will be set
to the creation date of the lot/serial number plus the number of days entered in the time
increment field. If the time increment field is set to zero, then the expiration date of
a lot/serial must be defined manually after the lot has been created.
Each of these time increment fields is used to generate one of the lot expiration date fields as follows:
Product Use Time --> Best Before Date
Product Removal Time --> Removal Date
Product Life Time --> End of Life Date
Product Alert Time --> Alert Date
To set the removal strategy on location, go to
:menuselection:`Configuration --> Locations` and choose FEFO.
.. image:: media/removal10.png
:align: center
Let's take an example, there are ``3`` lots of ``ice cream`` available in
``WH/Stock`` location: ``LOT0001``, ``LOT0002``, ``LOT0003`` with
different expiration date.
+-----------------------+---------------+-----------------------+ +-----------------------+---------------+-----------------------+
| **Lot / Serial No** | **Product** | **Expiration Date** | | **Lot / Serial No** | **Product** | **Expiration Date** |
+=======================+===============+=======================+ +=======================+===============+=======================+
| LOT0001 | Ice Cream | 08/20/2015 | | 0000001 | Hand Cream | 09/30/2019 |
+-----------------------+---------------+-----------------------+ +-----------------------+---------------+-----------------------+
| LOT0002 | Ice Cream | 08/10/2015 | | 0000002 | Hand Cream | 11/30/2019 |
+-----------------------+---------------+-----------------------+ +-----------------------+---------------+-----------------------+
| LOT0003 | Ice Cream | 08/15/2015 | | 0000003 | Hand Cream | 10/31/2019 |
+-----------------------+---------------+-----------------------+ +-----------------------+---------------+-----------------------+
We will create a sale order with ``15kg`` of ``ice cream`` and confirm it. When we sell for 25 units of Hand Cream, we can see that the
lot numbers which have been automatically reserved by Odoo are the ones
with the closest expiration date, meaning 0000001 and 0000003.
The outgoing shipment related to sale order will make the move based on .. image:: media/removal_08.png
removal strategy **FEFO**. :align: center
:alt: View of which lots are reserved when using a FEFO strategy
It will take ``10kg`` from ``LOT0002`` and ``5kg`` from ``LOT0003`` based on the
removal dates.
.. image:: media/removal11.png
:align: center
.. seealso::
* :doc:`../../management/reporting/inventory_valuation_config`