Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
167 changes: 167 additions & 0 deletions barcode_inventory/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=================
Barcode Inventory
=================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:6e091ec92aa76d0df302401d2b0aabbf5dd05d5d4351b9e3d45203bc50959e8b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbarcode--interface-lightgray.png?logo=github
:target: https://github.com/OCA/barcode-interface/tree/18.0/barcode_inventory
:alt: OCA/barcode-interface
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/barcode-interface-18-0/barcode-interface-18-0-barcode_inventory
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/barcode-interface&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Perform inventory adjustments and stock counts directly from the Barcode
scanner app.

The operator picks an internal location, scans the products found there
(with ``barcode_gs1`` installed, a GS1 label also brings its lot/serial
and quantity), types the counted quantity, and applies. Each adjustment
is recorded as a
`stock_inventory <https://github.com/OCA/stock-logistics-warehouse>`__
adjustment group — draft → in progress → done — so every barcode count
leaves a traceable, auditable record with its own move lines, using
Odoo's native on-hand adjustment mechanism (``stock.quant``).

This is a feature module on top of ``barcode_scanner``: it registers its
own screens, scan handling and home-screen tile into the scanner core
without patching it, so you install only what you need.

**Table of contents**

.. contents::
:local:

Usage
=====

From the Barcode app home screen, tap **Inventory Adjustment**.

Count a location
----------------

1. **Pick or scan the location** to count. Scanning a location barcode
jumps straight into the count; otherwise choose one from the
searchable list of internal locations.
2. The count screen shows the stock the location holds, one line per
product and lot. **Count by scanning** each product: a plain barcode
adds one unit. With ``barcode_gs1`` installed, a GS1 label also
brings its **lot/serial** and its **quantity**; without it, the
scanner reads plain EAN-13 barcodes only. You can also type the
counted quantity in each line, decimals included, which then shows
how far it is from the stock.
3. To count something not shown, tap **"+"** and scan or search the
product. A freshly scanned or added product jumps to the top of the
list and is highlighted, so you always see what the scan just
changed. Only storable products can be counted: services and
non-storable consumables are not offered, and scanning one says why
it is refused.
4. Tap **Apply Adjustment** to record the count. If the stock of a
counted product changed while you counted — goods came in or went out
— nothing is applied yet: the lines show the stock as it is now, and
you choose whether to apply your count anyway or to count again.

Lots and serial numbers
-----------------------

A lot/serial-tracked product needs its lot/serial before it can be
applied — read from a GS1 label, or typed into the line (the lots a
count at that location can use are suggested; a new name is created on
the server). The name is matched exactly first, as lots differing only
in case are different lots; in another case it is only taken when it
names a single lot. The same product can appear on **several lines**,
one per lot or serial number, so it stays available in the **"+"**
picker even after it already has a line.

A serial number counts one unit: reading it again warns instead of
counting it twice.

What it records
---------------

Each adjustment is applied as a
`stock_inventory <https://github.com/OCA/stock-logistics-warehouse>`__
adjustment group (draft → in progress → done), scoped to exactly the
counted products at the counted location, using Odoo's native on-hand
adjustment. Every barcode count therefore leaves one traceable,
auditable record with its own move lines. Lots are created in the
counted location's company.

A count covers the stock at the location itself, outside packages and
not owned by a partner: its sublocations are counted on their own, and
stock in a package or owned by someone else is neither shown nor
changed.

As in the back office, applying a count requires **Inventory
Administrator** rights. Other users are told so when they open
**Inventory Adjustment**.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/barcode-interface/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/barcode-interface/issues/new?body=module:%20barcode_inventory%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Binhex

Contributors
------------

- `Zuzanna Elzbieta Szalaty
Szalaty <https://github.com/szalatyzuzanna>`__

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-szalatyzuzanna| image:: https://github.com/szalatyzuzanna.png?size=40px
:target: https://github.com/szalatyzuzanna
:alt: szalatyzuzanna

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-szalatyzuzanna|

This module is part of the `OCA/barcode-interface <https://github.com/OCA/barcode-interface/tree/18.0/barcode_inventory>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions barcode_inventory/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
31 changes: 31 additions & 0 deletions barcode_inventory/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"name": "Barcode Inventory",
"version": "18.0.1.0.0",
"category": "Inventory/Inventory",
"summary": "Inventory adjustments and stock counts by barcode, on top of "
"stock_inventory",
"author": "Binhex, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/barcode-interface",
"maintainers": ["szalatyzuzanna"],
"license": "AGPL-3",
"depends": [
"barcode_scanner",
"stock_inventory",
],
"assets": {
"web.assets_backend": [
"barcode_inventory/static/src/scss/inventory.scss",
"barcode_inventory/static/src/xml/inventory_templates.xml",
"barcode_inventory/static/src/js/screens/inventory_location_screen.esm.js",
"barcode_inventory/static/src/js/screens/inventory_product_selector_screen.esm.js",
"barcode_inventory/static/src/js/screens/inventory_count_screen.esm.js",
"barcode_inventory/static/src/js/tiles/inventory_menu_tiles.esm.js",
],
"web.assets_unit_tests": [
"barcode_inventory/static/tests/**/*",
],
},
"installable": True,
"application": False,
"auto_install": False,
}
Loading
Loading