Metadata-Version: 2.1
Name: odoo-addon-barcode_purchase
Version: 18.0.1.0.0.4
Requires-Python: >=3.10
Requires-Dist: odoo-addon-barcode_scanner==18.0.*
Requires-Dist: odoo==18.0.*
Summary: Create purchase orders by barcode: scan products against a vendor and confirm the order from the scanner
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 Purchase
================

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

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

Create purchase orders directly from the Barcode scanner app.

The operator picks a vendor, a destination location and a buyer, then
scans or adds the products to order (with a GS1 parser installed, a GS1
label also gives its lot/serial and piece count) and confirms. The
module creates a ``purchase.order`` and, when asked, confirms it — which
raises the incoming picking — so a purchase can be raised on the
warehouse floor without opening the back office. The server does it all
in one call: a failure leaves no half-made order behind.

This is a feature module on top of ``barcode_scanner``: it registers its
own screens 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 **Purchase Orders**.

Raise an order
--------------

1. **Pick the vendor.** Scanning a partner barcode selects it straight
   away; otherwise choose one from the searchable list of suppliers.
2. Optionally set the **destination location** (the destinations of the
   receipt operations are offered, and scanning a location picks it),
   the **buyer** (Odoo's native purchase-order responsible user) and a
   **vendor reference**.
3. **Add the products.** Each line is ordered in the product's
   **purchase unit**, shown under its quantity. Scanning a product adds
   one purchase unit. With a GS1 parser installed, a GS1 label also
   gives its **lot/serial** and its **piece count** (AI 30/37), which is
   converted from the product's unit into the purchase unit (24 pieces
   of a product bought by the dozen are 2 Dozens); a net weight on the
   label is not taken as the quantity. Scanning the same product and lot
   again adds to its line; a serial number stands for a single unit and
   is listed once. You can also tap **"+"** to search and add a product,
   and edit the quantity on each line. Only goods that can be purchased
   are offered.
4. The **price** shown on each line is the one the order will take, as
   in the back office: the vendor's price, in the purchase unit and the
   order's currency. Type a price to use another one instead, 0
   included.
5. Tap **Confirm Order** to create and confirm the purchase order, or
   **Save Draft** to create it without confirming.

Destination and lots
--------------------

The destination and the lots read are kept on the order, so they hold
however the order is confirmed: from the scanner, or later in the back
office (a draft, or an order approved in two steps). The destination
picks the receipt operation of its warehouse and becomes the final
location of each line, which the stock moves follow: straight into it
with a reception in one step, through the input and the steps after it
with a reception in several. The lots read are kept on their lines
(*Lot/Serial Read*) and written on the receipt when it is created.

Automatic validation
--------------------

With **Validate automatically** ticked, **Confirm Order** confirms the
order on create, which raises the receipt. **Save Draft** always keeps
it as a draft.

A lot/serial-tracked product does not hold the order back: only a GS1
label carries a lot, and a vendor's lot is usually unknown until the
goods turn up, so the order is confirmed either way and the message
names the products whose lot/serial still has to be entered on the
receipt.

That message names the order and the state it ended in, because a
confirmation does not always confirm: with two-step validation the order
lands on **To Approve** and raises no receipt until somebody approves it
in the back office.

Creating and confirming a purchase order requires the **Purchase** user
rights, as in the back office.

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

The quantity a scan stands for comes from
``PurchaseScreen.scannedQuantity(scan, product)``, in the purchase unit:
the pieces the label counts, converted, or one purchase unit. A module
that reads more from a label (a GS1 net weight, say) can patch it to
convert that into the purchase unit.

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

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