[IMP] inventory: update inventory adjustments

closes odoo/documentation#5422

X-original-commit: 3da457a501
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
This commit is contained in:
Brandon Seltenrich (BRSE) 2023-05-15 16:23:17 +00:00
parent 9b9587b882
commit c24f32c770
9 changed files with 195 additions and 60 deletions

View File

@ -4,35 +4,120 @@ Inventory adjustments
In any warehouse management system, the recorded inventory counts in the database might not always
match the actual inventory counts in the warehouse. The discrepancy between the two counts can be
due to theft, damages, human errors, or other factors. As such, inventory adjustments must be made
due to damages, human errors, theft, or other factors. As such, inventory adjustments must be made
to reconcile the differences, and ensure that the recorded counts in the database match the actual
counts in the warehouse.
In Odoo, inventory adjustments can be accessed through :menuselection:`Inventory --> Operations -->
Inventory Adjustments`.
Inventory Adjustments page
==========================
The :guilabel:`Inventory Adjustments` page shows all products that are currently in stock. Each
line contains the following information:
To view the *Inventory Adjustments* page, navigate to :menuselection:`Inventory app --> Operations
--> Inventory Adjustments`.
- :guilabel:`Product`
- :guilabel:`Lot/Serial Number`
- :guilabel:`On Hand Quantity`
.. image:: count_products/count-products-inventory-adjustments-page.png
:align: center
:alt: In stock products listed on the Inventory adjustments page.
Add a new line
==============
On the :guilabel:`Inventory Adjustments` page, all products that are currently in stock are listed,
with each product line containing the following information:
To add an inventory adjustment line, click :guilabel:`Create` and fill in the :guilabel:`Product`
and :guilabel:`Counted Quantity` fields. Then click :guilabel:`Save`.
- :guilabel:`Location`: the specific location in the warehouse where a product is stored.
- :guilabel:`Product`: the product whose quantity is listed on the inventory adjustment line.
- :guilabel:`Lot/Serial Number`: the tracking identifier assigned to the specific product listed. It
can contain letters, numbers, or a combination of both.
At this stage, the count is recorded but not yet *applied*. Meaning the quantity on hand is not yet
updated to match the new :guilabel:`Counted Quantity`.
.. note::
If a specific product has a quantity of more than `1.00` in stock, and more than one serial
number (or lot number) assigned to it, each uniquely-identified product is displayed on its own
product line with its own lot/serial number, displayed under the :guilabel:`Lot/Serial Number`
column.
To apply the new :guilabel:`Counted Quantity`, click :guilabel:`Apply` on the line or the
:guilabel:`Apply All` button on the top of the page. If :guilabel:`Apply All` is clicked, a
reference or reason can be entered before clicking :guilabel:`Apply`.
- :guilabel:`On Hand Quantity`: the quantity of the product currently recorded in the database.
- :guilabel:`UoM`: the *unit of measure* in which the product is measured. Unless otherwise
specified (i.e., in :guilabel:`Pounds` or :guilabel:`Ounces`), the default :abbr:`UoM (Unit of
Measure)` is :guilabel:`Units`.
- :guilabel:`Counted Quantity`: the real quantity counted during an inventory count. This field is
left blank by default, but can be changed, depending on if it matches the :guilabel:`On Hand
Quantity` or not.
- :guilabel:`Difference`: the difference between the :guilabel:`On Hand Quantity` and
:guilabel:`Counted Quantity`, once an inventory adjustment is made. The difference is
automatically calculated after every inventory adjustment.
- :guilabel:`Scheduled Date`: the date at which a count should be made. If not otherwise specified,
this date will default to the 31st of December of the current year.
- :guilabel:`User`: the person assigned to the count in the database. This can either be the person
physically counting the inventory, or applying the count in the database.
- :guilabel:`Product Category`: the category assigned internally to a specific product. Unless
otherwise specified (i.e., as :guilabel:`Consumable` or :guilabel:`Rental`), the default *Product
Category* is set to :guilabel:`All`.
- :guilabel:`Available Quantity`: the quantity of a specific product that is currently available,
based on any outstanding/uncompleted sales orders, purchase orders, or manufacturing orders that
might change the available quantity once fulfilled.
- :guilabel:`Accounting Date`: the date on which the adjustments will be accounted in the Odoo
*Accounting* app.
- :guilabel:`Company`: the company whose database these inventory adjustments are being made on. The
company is listed in the top right corner of the database, next to the user currently logged in.
.. image:: count_products/apply-inventory-adjustment.png
:scale: 60%
.. tip::
Some columns are hidden by default. To reveal these columns, click the :guilabel:`additional
options` button (three dots icon) to the far right of the form's top row, and select any desired
column to reveal by clicking the checkbox next to that option.
Create an inventory adjustment
------------------------------
To create a new inventory adjustment from the :menuselection:`Inventory Adjustments` page, click
:guilabel:`Create`. Doing so creates a new, blank inventory adjustment line at the bottom of the
page.
On this blank inventory adjustment line, click the drop-down menu under the :guilabel:`Product`
column, and select a product. If the selected product is tracked using either lots or serial
numbers, the desired lot or serial number can also be chosen from the drop-down menu under the
:guilabel:`Lot/Serial Number` column.
Next, set the value in the :guilabel:`Counted Quantity` column to the quantity counted for that
product during the inventory adjustment process.
.. note::
The :guilabel:`Counted Quantity` for new inventory adjustments is set to `0.00` by default. An
inventory move with `0.00` :guilabel:`Quantity Done` is recorded in the product's inventory
adjustment history, so it should be set to reflect the actual quantity counted.
To the right of the :guilabel:`Counted Quantity` column, the :guilabel:`Scheduled Date` and
:guilabel:`User` can also be changed via their respective drop-down menus. Changing the
:guilabel:`Scheduled Date` changes the date that the inventory adjustment should be processed on,
and selecting a responsible :guilabel:`User` assigns a user to the specific inventory adjustment
(for traceability purposes).
Once all changes have been made to the new inventory adjustment line, click away from the line.
Doing so saves the adjustment, and moves the line to the top of the page.
If the :guilabel:`Counted Quantity` is greater than the :guilabel:`On Hand Quantity`, the value in
the :guilabel:`Difference` column is **green**. If the :guilabel:`Counted Quantity` is less than the
:guilabel:`On Hand Quantity`, the value in the :guilabel:`Difference` column is **red**. If the
quantities match, and haven't been changed at all, no value appears in the :guilabel:`Difference`
column.
.. image:: count_products/count-products-difference-column.png
:align: center
:alt: Difference column on inventory adjustments page.
At this stage, the count (:dfn:`inventory adjustment`) is recorded, but not yet applied. This means
that the quantity on hand before the adjustment has not yet been updated to match the new, real
counted quantity.
There are two ways to apply the new inventory adjustment. The first way is to click the
:guilabel:`Apply` button on the line at the far right of the page. The second way is to click the
checkbox on the far left of the line. Doing so reveals new button options at the top of the page,
one of which is an :guilabel:`Apply` button. Clicking this button instead causes an
:guilabel:`Inventory Adjustment Reference / Reason` pop-up window to appear.
From this pop-up menu, a reference or reason can be assigned to the inventory adjustment. By
default, the :guilabel:`Inventory Reference / Reason` field is pre-populated with the date the
adjustment is being made on, but can be changed to reflect whatever reference or reason is desired.
Once ready, click :guilabel:`Apply` to apply the inventory adjustment.
.. image:: count_products/count-products-apply-inventory-adjustment.png
:align: center
:alt: Apply all option applies the inventory adjustment once a reason is specified.
@ -40,61 +125,111 @@ Count products
==============
Counting products is a recurring activity in a warehouse. Once a count is complete, go to
:menuselection:`Inventory --> Operations --> Inventory Adjustments` to update the
:menuselection:`Inventory app --> Operations --> Inventory Adjustments` to update the
:guilabel:`Counted Quantity` column for each product line.
If a count matches the :guilabel:`On Hand Quantity` recorded in the database, click on
:guilabel:`Set`, which will copy the value in the :guilabel:`On Hand Quantity` field and paste it
in the :guilabel:`Counted Quantity` field. A move with `0.00` :guilabel:`Quantity Done` will be
On each product line, identify whether the value in the :guilabel:`On Hand Quantity` column recorded
in the database matches the newly-counted value. If the recorded value and the counted value do
match, click the :guilabel:`Set` button (target icon) at the far right of the product line.
Doing so copies the value from the :guilabel:`On Hand Quantity` column over to the
:guilabel:`Counted Quantity` column, and sets the value of the :guilabel:`Difference` column to
`0.00`. Subsequently, once applied, an inventory move with `0.00` :guilabel:`Quantity Done` is
recorded in the product's inventory adjustment history.
If a count does *not* match the :guilabel:`On Hand Quantity` recorded in the database, record the
count in the :guilabel:`Counted Quantity` field. When :guilabel:`Apply` is clicked, a move with the
difference between the :guilabel:`On Hand Quantity` and :guilabel:`Counted Quantity` will be
recorded in the product's inventory adjustment history.
.. image:: count_products/count-products-zero-move.png
:align: center
:alt: Zero count inventory adjustment move.
.. image:: count_products/history-inventory-adjustments.png
If the newly-counted value for a given product does **not** match the value in the :guilabel:`On
Hand Quantity` recorded in the database, instead of clicking the :guilabel:`Set` button, record the
real value in the field in the :guilabel:`Counted Quantity` column.
To do so, click the field in the :guilabel:`Counted Quantity` column on the specific inventory
adjustment line for the product whose count is being changed. This automatically assigns a
:guilabel:`Counted Quantity` of `0.00`.
To change this value, type in a new value that matches the real, newly-counted value. Then, click
away from the line. Doing so saves the adjustment, and automatically adjusts the value in the
:guilabel:`Difference` column.
If the :guilabel:`Counted Quantity` is greater than the :guilabel:`On Hand Quantity`, the value in
the :guilabel:`Difference` column is **green**. If the :guilabel:`Counted Quantity` is less than the
:guilabel:`On Hand Quantity`, the value in the :guilabel:`Difference` column is **red**. If the
quantities match, and haven't been changed at all, no value appears in the :guilabel:`Difference`
column.
Subsequently, once applied, a move with the difference between the :guilabel:`On Hand Quantity` and
the :guilabel:`Counted Quantity` is recorded in the product's inventory adjustment history.
.. image:: count_products/count-products-history-inventory-adjustments.png
:align: center
:alt: Inventory Adjustments History dashboard detailing a list of prior product moves.
.. note::
Sometimes a count occurs, but can not be applied in the database right away. In the time between
the actual count and applying the inventory adjustment, product moves can occur. In that case,
the :guilabel:`On Hand Quantity` in the database can change and will not be consistent with the
counted quantity. As an extra caution measure, Odoo will ask for confirmation before applying
the inventory adjustment.
Plan counts
===========
Each inventory adjustment line contains the following information:
- :guilabel:`Scheduled Date`: the date at which a count should be made.
- :guilabel:`User`: the person in charge of the count.
- :guilabel:`Accounting Date`: the date at which the adjustments will be accounted. The column is
hidden by default, but can be made visible by opening the column options icon.
.. important::
In the Barcode app, users can only view counts assigned to them that are scheduled for today or
earlier.
Sometimes a count occurs, but cannot be applied in the database right away. In the time between
the actual count and applying the inventory adjustment, product moves can occur. In that case,
the on-hand quantity in the database can change and no longer be consistent with the counted
quantity. As an extra precaution, Odoo asks for confirmation before applying the inventory
adjustment.
To plan big counts, select the desired product lines on the :guilabel:`Inventory Adjustments` page.
Then, click :guilabel:`Request a Count` and fill in the following information:
Change inventory count frequency
================================
By default, the *scheduled date* for inventory adjustments are always scheduled for the 31st of
December of the current year. However, for some companies, it is crucial that they have an accurate
inventory count at all times. In such cases, the default scheduled date can be modified.
To modify the default scheduled date, go to :menuselection:`Inventory app --> Configuration -->
Settings`. Then, in the :guilabel:`Operations` section, locate the :guilabel:`Annual Inventory Day
and Month` setting, which includes a drop-down menu that is set to `31 December` by default.
.. image:: count_products/count-products-annual-inventory.png
:align: center
:alt: Adjust the next inventory count date with the Annual Inventory Day and Month setting.
To change the day, click the :guilabel:`31`, and change it to a day within the range `1-31`,
depending on the desired month of the year.
Then, to change the month, click :guilabel:`December` to reveal the drop-down menu, and select the
desired month.
Once all desired changes have been made, click :guilabel:`Save` to save all changes.
Plan big inventory counts
-------------------------
To plan big inventory counts, such as a full count of everything currently in stock, first navigate
to :menuselection:`Inventory app --> Operations --> Inventory Adjustments`.
Then, select the desired products to be counted by clicking the checkbox on the far left of each
product line.
.. tip::
To request a count of **all** products currently in stock, click the checkbox at the very top of
the table, in the header row next to the :guilabel:`Location` label. This selects **all** product
lines.
.. image:: count_products/count-products-count-popup.png
:align: center
:alt: Request a count popup on inventory adjustments page.
Once all desired products have been selected, click the :guilabel:`Request a Count` button at the
top of the page. This causes a :guilabel:`Request a Count` pop-up window to appear. From this
pop-up, fill in the following information:
- :guilabel:`Inventory Date`: the planned date of the count.
- :guilabel:`User`: the user responsible for the count.
- :guilabel:`Accounting Date`: the date at which the inventory adjustment will be accounted.
- :guilabel:`Count`: to leave the :guilabel:`On Hand Quantity` of each product line blank, select
:guilabel:`Leave Empty`. To prefill the :guilabel:`On Hand Quantity` of each product line with
the current value recorded in the database, select :guilabel:`Set Current Value`.
- :guilabel:`Count`: to leave the on-hand quantity of each product line blank, select
:guilabel:`Leave Empty`. To prefill the on-hand quantity of each product line with the current
value recorded in the database, select :guilabel:`Set Current Value`.
Finally, click :guilabel:`Confirm` to request the count.
Finally, once ready, click :guilabel:`Confirm` to request the count.
By default, after an inventory adjustment is applied, the scheduled date for the next count is the
31st of December of the current year. To modify the default scheduled date, go to
:menuselection:`Inventory --> Configuration --> Settings --> Operations` and change the date in the
:guilabel:`Annual Inventory Day and Month` setting.
.. important::
In the Odoo *Barcode* app, users can only view inventory counts that are assigned to **them**,
and are scheduled for **today** or **earlier**.
.. image:: count_products/annual-inventory.png
:align: center
:alt: Adjust the next inventory count date with the Annual Inventory Day and Month setting.
.. seealso::
:doc:`/applications/inventory_and_mrp/inventory/management/inventory_adjustments/cycle_counts`