====================
Mobile App - Picking
====================

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

.. |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/licence-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%2Fstock--logistics--barcode-lightgray.png?logo=github
    :target: https://github.com/OCA/stock-logistics-barcode/tree/11.0/mobile_app_picking
    :alt: OCA/stock-logistics-barcode
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/stock-logistics-barcode-11-0/stock-logistics-barcode-11-0-mobile_app_picking
    :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/stock-logistics-barcode&target_branch=11.0
    :alt: Try me on Runboat

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

This module provides a light Web app to scan products Barcode to handle
stock pickings with a barcode reader.

This module was written to extend the functionality of odoo Stock module.

You could be interested by different OCA implementions of such features:

* ``stock_scanner`` approach:
  https://github.com/OCA/stock-logistics-barcode/tree/11.0/stock_scanner

* ``stock_barcodes`` approach:
  https://github.com/OCA/stock-logistics-barcode/tree/11.0/stock_barcodes

**Table of contents**

.. contents::
   :local:

Configuration
=============

* Go to 'Inventory' / 'Configuration' / 'Warehouse Management' / 'Operations Types'
* Select an operation type you want to handle with your mobile

* Check the box 'Available on Mobile'

Optionaly you can put two extra settings:

* 'Create backorder' if you want that confirm picking on the Mobile App
  generate or not a backorder by default.
* 'Product fields' to select extra custom fields that will be displayed
  on the mobile app.


.. figure:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/stock_picking_type_form.png

Usage
=====

Enter the url http://MY-ODOO-INSTANCE/mobile_app_picking/static/www/index.html

You can also enter the url http://MY-ODOO-INSTANCE/mobile_app_picking
if all your odoo databases have ``mobile_app_picking`` installed.

+----------------------------------------------+------------------------------+
| Description                                  | Screenshot                   |
+==============================================+==============================+
|                                              |                              |
| Select a database (if your instance          |  |authentication|            |
| has many databases)                          |                              |
|                                              |                              |
| Enter your credentials and confirm           |                              |
|                                              |                              |
+----------------------------------------------+------------------------------+
|                                              |                              |
| Select a picking type                        |  |list_picking_type|         |
|                                              |                              |
+----------------------------------------------+------------------------------+
|                                              |                              |
| Select a picking.                            | |list_picking|               |
|                                              |                              |
| (you can scan its barcode)                   |                              |
|                                              |                              |
+----------------------------------------------+------------------------------+
|                                              |                              |
| The next screen displays the detail of the   | |list_move|                  |
| operations.                                  |                              |
|                                              |                              |
| To go the scan screen, click on the          |                              |
| 'Scanner' button                             |                              |
|                                              |                              |
| You can also click on a move line            |                              |
|                                              |                              |
+----------------------------------------------+------------------------------+
|                                              |                              |
| Scan the product barcode:                    | |scan_mode|                  |
|                                              |                              |
| This will display the detail of the          |                              |
| operation. (expected and done quantity,      |                              |
| the UoM, and also extra fields you could     |                              |
| have set in the picking type configuration)  |                              |
|                                              |                              |
| Everytime you scan a product, the done       |                              |
| quantity will be increased by 1.             |                              |
|                                              |                              |
| You can also put a custom quantity in the    |                              |
| field if it is easy for your operator        |                              |
| to count the number of products              |                              |
|                                              |                              |
| At the end of the process, go back to        |                              |
| the list of move lines, by clicking on       |                              |
| the according button.                        |                              |
|                                              |                              |
+----------------------------------------------+------------------------------+
|                                              |                              |
| You can reset a quantity if you did a bad    | |list_move_change|           |
| operation, by clicking on the button on the  |                              |
| end of each line.                            |                              |
|                                              |                              |
| When your picking is finished, click on the  |                              |
| 'Validate' button.                           |                              |
|                                              |                              |
+----------------------------------------------+------------------------------+
|                                              |                              |
| It will create a                             |                              |
| backorder or not, depending on the           |                              |
| setting of the picking type.                 |                              |
|                                              |                              |
| Once validated, the screen will go the       |                              |
| screen to select another picking.            |                              |
+----------------------------------------------+------------------------------+

**Colors depending on the quantity**

The field quantity will have a different background color depending on the
difference between expected and done quantity :

* ``white`` : no quantity set
* ``yellow`` : expected quantity not reached
* ``green`` : done quantity corresponds to the expected quantity
* ``red``: done quantity is over the expected quantity

.. |authentication| image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/mobile_01_authentication.png
   :width: 300 px

.. |list_picking_type| image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/mobile_02_list_picking_type.png
   :width: 300 px

.. |list_picking| image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/mobile_03_list_picking.png
   :width: 300 px

.. |list_move| image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/mobile_04_list_move.png
   :width: 300 px

.. |scan_mode| image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/mobile_05_scan_mode.png
   :width: 300 px

.. |list_move_change| image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/mobile_06_list_move_change.png
   :width: 300 px

.. |confirmation| image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/11.0/mobile_app_picking/static/description/mobile_07_confirmation.png
   :width: 300 px


**Typical Errors and Warning at the login screen**

* It will not possible to log in if the user is not member of the
  'Warehouse / User' group.


**Typical Errors and Warning at the scanner screen**

* 'Incorrect quantity' if the quantity entered is negative, or is not a float.

* 'Barcode not found in the picking' if the operator tries to scan a product
  that is not in the list of move lines.

* 'Many operations found' if there are many lines with the same products.
  In that case, the operator should select manually the line he want to treat.

Known issues / Roadmap
======================

* For the time being, this module doesn't handle 'Lot', 'Pack' and 'Owner'.

* The UI doesn't allow to add an unexpected product on the fly.

* In practice, the mobile app emulate the actions of the user, changing
  Done quantity of stock moves of a given picking.
  This action is allowed by odoo under certain conditions, that are
  defined by the field ``is_quantity_done_editable`` of the ``stock.picking``.
  Using this module if this field is unchecked could generate problems.
  This field is disabled (amoung others conditions) if user is member of
  ``stock.group_stock_multi_locations`` or ``stock.group_tracking_owner``
  See the functions ``_compute_show_details_visible`` and
  ``_compute_is_quantity_done_editable`` for more detals.

* Could be interesting to merge the two views ``list_move`` and
  ``main_scan`` into a single one module.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-barcode/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/stock-logistics-barcode/issues/new?body=module:%20mobile_app_picking%0Aversion:%2011.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
~~~~~~~

* GRAP

Contributors
~~~~~~~~~~~~

* Sylvain LE GAL (https://www.twitter.com/legalsylvain)

Other credits
~~~~~~~~~~~~~

The development of this module has been financially supported by:

* Cycle En Terre (https://cycle-en-terre.be/)

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.

This module is part of the `OCA/stock-logistics-barcode <https://github.com/OCA/stock-logistics-barcode/tree/11.0/mobile_app_picking>`_ project on GitHub.

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