Metadata-Version: 2.1
Name: odoo-addon-barcode_scrap
Version: 18.0.1.0.0.2
Requires-Python: >=3.10
Requires-Dist: odoo-addon-barcode_scanner==18.0.*
Requires-Dist: odoo==18.0.*
Summary: Scrap damaged or lost goods from the Barcode app
Home-page: https://github.com/OCA/barcode-interface
License: AGPL-3
Author: Binhex, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 18.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Description-Content-Type: text/x-rst

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

=============
Barcode Scrap
=============

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

.. |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_scrap
    :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_scrap
    :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|

Scrap damaged or lost goods directly from the Barcode scanner app.

The operator picks the internal location the goods are written off from,
scans them (with a GS1 parser installed, a GS1 label also gives its
lot/serial and piece count), sets the quantities, chooses the scrap
reasons and scraps. Each line becomes a native ``stock.scrap``, created
and validated on the spot, so the stock leaves the location for the
scrap location exactly as it does from the back office.

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 **Scrap Products**.

Scrap goods
-----------

1. **Pick or scan the location** the goods are written off from.
   Scanning a location barcode jumps straight to the scrap lines;
   otherwise choose one from the searchable list of internal locations.
2. **Scan each product** to scrap: a plain barcode adds one unit. With a
   GS1 parser installed, a GS1 label also gives its **lot/serial** and
   its **piece count** (AI 30/37); a net weight on the label is not
   taken as the quantity. Scanning the same product and lot again adds
   to its line. Tap **"+"** to add a product by hand; with no search it
   lists what the location holds. Only goods can be scrapped, as in the
   back office: services are not offered.
3. Each line shows how much of it the location holds. Adjust the
   quantity if needed.
4. Choose the **scrap reasons** and tap **Scrap**. A reason that does
   not exist yet can be created on the spot with **New reason**, as the
   back office's reason field allows; typing the name of an existing one
   (in any case) picks that one instead of creating a duplicate.

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

A lot is found by its exact name: lots whose names differ only in case
are different lots. A name typed in another case finds its lot only when
it names a single one.

A lot/serial-tracked product needs its lot/serial: read from the GS1
label, or typed into the line, which suggests the lots stored in that
location. When the location holds a single lot of the product, it is
filled in. A serial number is scrapped one unit at a time and can only
appear once.

Stock shown and not enough stock
--------------------------------

The quantity each line shows is what a scrap made from the scanner can
take: the net quantity at the location itself, outside packages and not
owned by a partner, as validating the scrap counts it. Goods in a
package or owned by a partner are scrapped from the back office, where
the scrap takes a package and an owner.

When a line asks for more than that, nothing is scrapped yet: the
scanner lists what is short and asks whether to **scrap anyway** — the
same choice the back office offers through its insufficient-quantity
wizard. Confirming scraps the lines it was asked about; lines changed in
between are checked again.

Destination
-----------

The goods go to the scrap location the back office preselects for the
company, and can be sent to any scrap location of the company or a
shared one instead. When the company has none of its own, the first
shared one is taken; with no scrap location at all, scrapping waits
until one is created.

Reading more from a label
-------------------------

The quantity a scan stands for comes from
``ScrapScreen.scannedQuantity(scan, productUomId)``: the piece count, or
one unit. A module that reads more from a label (a GS1 net weight, say)
can patch it to convert that into the product's unit, as
``barcode_stock`` offers with its own ``scannedQuantity``.

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_scrap%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_scrap>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
