diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo.rst b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo.rst index 2f17b44ab..7352cce54 100644 --- a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo.rst +++ b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo.rst @@ -5,8 +5,82 @@ FEFO removal The *First Expired, First Out* (FEFO) removal strategy targets products for removal based on their assigned removal dates. -.. seealso:: - :doc:`About removal strategies <../removal_strategies>` +.. _inventory/warehouses_storage/fefo_enable: + +Enabling the FEFO removal strategy +================================== + +Lots and serial numbers differentiate identical products and track information like arrival or +expiration dates. To enable this feature, navigate to :menuselection:`Inventory --> Configuration +--> Settings`. Under the :guilabel:`Traceability` heading, check the box beside :guilabel:`Lots & +Serial Numbers`. After :guilabel:`Lots & Serial Numbers` is enabled, the :guilabel:`Expiration Date` +feature appears. Enable it to track expiration dates, best-before dates, removal dates, and alert +dates. + +.. image:: fefo/enable-features.png + :alt: Enable Lots & Serial Numbers and Expiration Dates in the Inventory settings. + +Enable tracking by lots or serial numbers +----------------------------------------- + +Next, ensure the intended product is tracked by lots or serial numbers by navigating to the product +form through :menuselection:`Inventory --> Products --> Products` and selecting the desired product. +On the product form, open the :guilabel:`General Information` tab and select the check box next to +the :guilabel:`Track Inventory` field, then select either :guilabel:`By Unique Serial Number` or +:guilabel:`By Lots`. + +.. image:: fefo/track-by-lots.png + :alt: Enable tracking by lot. + +Setting dates +------------- + +Next, set the :guilabel:`Expiration Date`, :guilabel:`Best Before Date`, :guilabel:`Removal Date`, +and :guilabel:`Alert Date` settings for the product. In the :guilabel:`Inventory` tab of the product +form, under the :guilabel:`Traceability` heading, select the :guilabel:`Expiration Date` check box. +The :guilabel:`Dates` heading appears. See :ref:`Removal date +` for more information. + +Assigning lots and serial numbers +--------------------------------- + +After enabling the features, assign lot or serial numbers to products using an :doc:`inventory +adjustment <../../warehouses_storage/inventory_management/count_products>` or during :ref:`product +reception `. + +Setting removal strategies +-------------------------- + +After lot or serial numbers have been assigned, set the removal strategy on the storage location or +product category. + +.. image:: fefo/location-categories.png + :alt: Find the Locations or Categories from the Configuration menu. + +On the location +~~~~~~~~~~~~~~~ + +Open :menuselection:`Inventory app --> Configuration --> Locations`. Select the desired location. On +the location form, under the :guilabel:`Logistics` heading, select :guilabel:`First Expiry First Out +(FEFO)` from the list of removal strategies. + +.. image:: fefo/set-on-location.png + :alt: Set First Expiry First Out as the location removal strategy. + +On the product category +~~~~~~~~~~~~~~~~~~~~~~~ + +Configure removal strategies on product categories by going to :menuselection:`Inventory app --> +Configuration --> Categories` and selecting the intended product category. Next, in the +:guilabel:`Force Removal Strategy` field, specify :guilabel:`First Expiry First Out (FEFO)`. + +.. image:: fefo/set-on-category.png + :alt: Set First Expiry First Out as the product category removal strategy. + +.. important:: + When there are different removal strategies applied on both the location and product category for + a product, the value set on the :guilabel:`Force Removal Strategy` field set on a product + category form is applied as top priority. .. _inventory/warehouses_storage/removal-date: @@ -34,9 +108,6 @@ number of days specified in the :guilabel:`Expiration Date` field of the product The removal date takes this expiration date, and subtracts the number of days specified in the :guilabel:`Removal Date` field of the product form. -.. seealso:: - :doc:`Expiration dates <../../product_management/product_tracking/expiration_dates>` - .. example:: In the :guilabel:`Inventory` tab of the product, `Egg`, the following :guilabel:`Dates` are set by the user: @@ -45,7 +116,6 @@ The removal date takes this expiration date, and subtracts the number of days sp - :guilabel:`Removal Date`: `15` days before expiration date .. image:: fefo/user-set-date.png - :align: center :alt: Display expiration and removal dates set on the product form. A shipment of Eggs arrive at the warehouse on January 1st. So, the expiration date of the Eggs is @@ -54,16 +124,20 @@ The removal date takes this expiration date, and subtracts the number of days sp .. _inventory/warehouses_storage/exp-date: -To view the expiration dates of items in stock, navigate to the product form, and click the -:guilabel:`On Hand` smart button. - -Next, click the additional options icon, located on the far-right, and select the columns: -:guilabel:`Expiration Date` and :guilabel:`Removal Date`. +To view the expiration dates of items in stock, go to :menuselection:`Inventory app --> Products --> +Lots / Serial Numbers`. By default, this report is grouped by location. If necessary, remove that +grouping in the search bar and group by product. Expand the product to show its lots. Next, click +the :icon:`oi-settings-adjust` :guilabel:`(Additional Options)` icon, located on the far-right, and +select the columns: :guilabel:`Expiration Date` and :guilabel:`Removal Date`. .. image:: fefo/removal-date.png - :align: center - :alt: Show expiration dates from the inventory adjustments model accessed from the *On Hand* - smart button from the product form. + :alt: Show expiration dates from the Lots / Serial Numbers list. + +Alternatively, view these dates by clicking the :guilabel:`Lot/Serial Numbers` smart button on the +product form. + +.. image:: fefo/removal-date-lots-serial-numbers.png + :alt: Show expiration dates from the Lots/Serial Numbers list on the product form. Workflow ======== @@ -72,15 +146,10 @@ Using the :abbr:`FEFO (First Expired, First Out)` removal strategy ensures that nearest removal date are picked first. To understand how this removal strategy works, consider the following example below about the -product, `Carton of eggs`, which is a box containing twelve eggs. +product, `Carton of Eggs`, which is a box containing twelve eggs. The product is tracked :guilabel:`By Lots`, and the product category's :guilabel:`Force Removal -Strategy` is set to :guilabel:`First Expired, First Out (FEFO)`. - -.. seealso:: - - :ref:`Set up force removal strategy ` - - :ref:`Enable lots tracking ` - - `Odoo Tutorials: Perishable Products `_ +Strategy` is set to :guilabel:`First Expiry First Out (FEFO)`. .. list-table:: :header-rows: 1 @@ -95,32 +164,38 @@ Strategy` is set to :guilabel:`First Expired, First Out (FEFO)`. - 2 - 1 * - Expiration date - - April 4 - - April 10 - - April 15 + - January 8, 2026 + - January 15, 2026 + - January 22, 2026 * - :ref:`Removal date ` - - February 26 - - March 4 - - March 9 + - December 24, 2025 + - December 31, 2025 + - January 7, 2026 To see the removal strategy in action, go to the :menuselection:`Sales app` and create a new quotation. -Clicking :guilabel:`Confirm` creates a delivery order for today, December 29th, and the lot numbers +Clicking :guilabel:`Confirm` creates a delivery order for today, December 9th, and the lot numbers with the soonest expiration dates are reserved, using the :abbr:`FEFO (First Expired, First Out)` removal strategy. -To view the detailed pickings, click the :guilabel:`⦙≣ (bulleted list)` icon, located on the -far-right of the Carton of egg's product line, in the :guilabel:`Operations` tab of the delivery -order. Doing so opens the :guilabel:`Open: Stock move` pop-up window. +To view the detailed pickings, click the :guilabel:`Details` link, located on the far-right of the +Carton of Eggs' product line, in the :guilabel:`Operations` tab of the delivery order. Doing so +opens the :guilabel:`Detailed Operations` pop-up window. -In the :guilabel:`Open: Stock move` pop-up window, the :guilabel:`Pick from` field displays where +In the :guilabel:`Detailed Operations` pop-up window, the :guilabel:`Pick From` field displays where the quantities to fulfill the :guilabel:`Demand` are picked from. -Since the order demanded six Cartons of eggs, using the :abbr:`FEFO (First Expired, First Out)` -removal strategy, all five Cartons from `LOT1`, with the removal date of February 26th, are picked. -The remaining Carton is selected from `LOT2`, which has a removal date of March 4th. +Since the order demanded six Cartons of Eggs, using the :abbr:`FEFO (First Expired, First Out)` +removal strategy, all five Cartons from `LOT1`, with the removal date of December 24, are picked. +The remaining Carton is selected from `LOT2`, which has a removal date of December 31. .. image:: fefo/eggs-picking.png - :align: center - :alt: The stock moves window that shows the lots to be removed using FEFO. + :alt: The detailed operations window that shows the lots to be removed using FEFO. + +.. seealso:: + - :doc:`Removal strategies <../removal_strategies>` + - :ref:`Set up force removal strategy ` + - :doc:`Expiration dates <../../product_management/product_tracking/expiration_dates>` + - :ref:`Enable lots tracking ` + - `Odoo Tutorials: Perishable Products `_ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/eggs-picking.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/eggs-picking.png index 256e408c9..e53f0de90 100644 Binary files a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/eggs-picking.png and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/eggs-picking.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/enable-features.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/enable-features.png new file mode 100644 index 000000000..40ce0ba25 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/enable-features.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/location-categories.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/location-categories.png new file mode 100644 index 000000000..8684edc93 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/location-categories.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/removal-date-lots-serial-numbers.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/removal-date-lots-serial-numbers.png new file mode 100644 index 000000000..ab1f88522 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/removal-date-lots-serial-numbers.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/removal-date.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/removal-date.png index 9dbb46d49..52efddceb 100644 Binary files a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/removal-date.png and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/removal-date.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/set-on-category.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/set-on-category.png new file mode 100644 index 000000000..4f55dd606 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/set-on-category.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/set-on-location.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/set-on-location.png new file mode 100644 index 000000000..2190f1279 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/set-on-location.png differ diff --git a/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/track-by-lots.png b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/track-by-lots.png new file mode 100644 index 000000000..ce5e58166 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/shipping_receiving/removal_strategies/fefo/track-by-lots.png differ