Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[14.0][MIG] stock_checkout_sync #293

Merged
merged 9 commits into from
Sep 23, 2021
Merged
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
1 change: 1 addition & 0 deletions setup/stock_checkout_sync/odoo/addons/stock_checkout_sync
6 changes: 6 additions & 0 deletions setup/stock_checkout_sync/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
137 changes: 137 additions & 0 deletions stock_checkout_sync/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
==============================
Stock Checkout Synchronization
==============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |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%2Fwms-lightgray.png?logo=github
:target: https://github.com/OCA/wms/tree/14.0/stock_checkout_sync
:alt: OCA/wms
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/wms-14-0/wms-14-0-stock_checkout_sync
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/285/14.0
:alt: Try me on Runbot

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

Regroup moves at the same location when they reach an operation type.

Example of use case:

* We use several operation types for Picking Transfers (Pick Shelves, Pick Reserve)
* We use several operation types for Packing (Pack, Pack Post)
* The "Checkout Synchronization" flag is activated on the 2 Packing operation types
* The Packing can occur in several areas (Packing/PACK1, Packing/PACK2, Packing/PACK3)

Based on these assumptions, we have these pickings, all for the same order:

* SHELF001, pick 2 goods in the shelves
* RESER001, pick 2 goods in the reserve
* PACK001, pack 3 of the goods (2 from SHELF001, 1 from RESER001)
* PPOST001, pack the remaining good of the reserve

The operator uses the button "Checkout Sync" on a pick transfer,
for instance SHELF001, and select Packing/PACK2 as destination.
We want all the lines that reach PACK001 to be updated with:

* The move lines (except the one that goes to PPOST001) must now reach
Packing/PACK2
* The same moves' destination must reach Packing/PACK2 as well:
we constrain the user to move the goods there as we want to move
all the goods at the same place for the packing.
* As the moves' destinations are updated to the same packing location,
new move lines will have the correct destination as well


.. figure:: https://raw.githubusercontent.com/OCA/wms/14.0/stock_checkout_sync/static/description/sync-assistant.png
:alt: Checkout Synchronization Assistant Screen
:width: 600 px


Notes:

Works best when used with ``stock_available_to_promise_release``:

* When using the mentioned module, we assume that we release moves (which
creates the whole chain of moves) only when we know that we have the
quantities in stock (otherwise the module splits the delivery). Any exception
(which is now rare when you release this ways) that would lead to a backorder
is handled by canceling the remaining line.
* When the module is not used, then the destination of the backorders may be
changed at the same time

Compatible with ``stock_dynamic_routing``.

.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
:local:

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

Activate syncing on the picking type form view (Inventory > Settings > Operations Types)
by marking ``Checkout Synchronization``.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/wms/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/wms/issues/new?body=module:%20stock_checkout_sync%0Aversion:%2014.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
~~~~~~~

* Camptocamp

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

* Akim Juillerat <akim.juillerat@camptocamp.com>
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
* `Trobz <https://trobz.com>`_:

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

The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp

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/wms <https://github.com/OCA/wms/tree/14.0/stock_checkout_sync>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions stock_checkout_sync/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from . import wizards
21 changes: 21 additions & 0 deletions stock_checkout_sync/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
{
"name": "Stock Checkout Synchronization",
"summary": "Sync location for Checkout operations",
"version": "14.0.1.0.0",
"development_status": "Alpha",
"category": "Warehouse Management",
"website": "https://github.com/OCA/wms",
"author": "Camptocamp, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["stock_move_common_dest"],
"data": [
"security/ir.model.access.csv",
"views/stock_picking_type_views.xml",
"views/stock_picking_views.xml",
"wizards/stock_move_checkout_sync_views.xml",
],
}
223 changes: 223 additions & 0 deletions stock_checkout_sync/i18n/es_AR.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_checkout_sync
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-02-07 02:44+0000\n"
"Last-Translator: Ignacio Buioli <ibuioli@gmail.com>\n"
"Language-Team: none\n"
"Language: es_AR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"

#. module: stock_checkout_sync
#: code:addons/stock_checkout_sync/wizards/stock_move_checkout_sync.py:0
#, python-format
msgid "<li><strong>{}: {} move(s)</strong></li>"
msgstr "<li><strong>{}: {} movimiento(s)</strong></li>"

#. module: stock_checkout_sync
#: code:addons/stock_checkout_sync/wizards/stock_move_checkout_sync.py:0
#, python-format
msgid "<li>{}: {} move(s)</li>"
msgstr "<li>{}: {} movimiento(s)</li>"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_picking__can_sync_to_checkout
msgid "Can Sync To Checkout"
msgstr "Puede Sincronizar Al Checkout"

#. module: stock_checkout_sync
#: code:addons/stock_checkout_sync/wizards/stock_move_checkout_sync.py:0
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_picking_form
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_stock_move_checkout_sync
#, python-format
msgid "Checkout Sync"
msgstr "Sincronizar Checkout"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_picking_type__checkout_sync
msgid "Checkout Synchronization"
msgstr "Sincronización Checkout"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__create_uid
msgid "Created by"
msgstr "Creado por"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__create_date
msgid "Created on"
msgstr "Creado el"

#. module: stock_checkout_sync
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_stock_move_checkout_sync
msgid "Date Expected"
msgstr "Fecha Esperada"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__picking_type_location_id
msgid "Default Source Location"
msgstr "Recurso Predeterminado de la Ubicación"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__dest_picking_id
msgid "Dest Picking"
msgstr "Entrega de Destino"

#. module: stock_checkout_sync
#: model:ir.model.fields,help:stock_checkout_sync.field_stock_move_checkout_sync__location_id
msgid "Destination location where all the moves will be sent."
msgstr "Ubicación de destino donde se enviarán todos los movimientos."

#. module: stock_checkout_sync
#: model:ir.model.fields,help:stock_checkout_sync.field_stock_move_checkout_sync__dest_picking_id
msgid "Destination operation for these moves."
msgstr "Operación de destino para estos movimientos."

#. module: stock_checkout_sync
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_stock_move_checkout_sync
msgid "Discard"
msgstr "Descartar"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__display_name
msgid "Display Name"
msgstr "Mostrar Nombre"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__done_dest_picking_ids
msgid "Done Dest Picking"
msgstr "Entrega de Destino Realizada"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__id
msgid "ID"
msgstr "ID"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync____last_update
msgid "Last Modified on"
msgstr "Última Modificación el"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__write_uid
msgid "Last Updated by"
msgstr "Última Actualización por"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__write_date
msgid "Last Updated on"
msgstr "Última Actualización el"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__location_id
msgid "Location"
msgstr "Ubicación"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__move_ids
msgid "Move"
msgstr "Movimiento"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__picking_ids
msgid "Picking"
msgstr "Entrega"

#. module: stock_checkout_sync
#: model:ir.model,name:stock_checkout_sync.model_stock_picking_type
msgid "Picking Type"
msgstr "Tipo de Entrega"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__remaining_help
msgid "Remaining Help"
msgstr "Ayuda Restante"

#. module: stock_checkout_sync
#: model:ir.model.fields,field_description:stock_checkout_sync.field_stock_move_checkout_sync__show_skip_button
msgid "Show Skip Button"
msgstr "Mostrar Botón de Omisión"

#. module: stock_checkout_sync
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_stock_move_checkout_sync
msgid "Skip"
msgstr "Omitir"

#. module: stock_checkout_sync
#: model:ir.model,name:stock_checkout_sync.model_stock_move
msgid "Stock Move"
msgstr "Movimiento de Inventario"

#. module: stock_checkout_sync
#: model:ir.model,name:stock_checkout_sync.model_stock_move_checkout_sync
msgid "Stock Move Checkout Sync"
msgstr "Sincronizar Checkout del Movimiento de Stock"

#. module: stock_checkout_sync
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_stock_move_checkout_sync
msgid "Sync Destination"
msgstr "Sincronizar Destino"

#. module: stock_checkout_sync
#: model:ir.model.fields,help:stock_checkout_sync.field_stock_picking__can_sync_to_checkout
msgid ""
"Technical field. Indicates if the button to synchronize the destination "
"towards a checkout location is visible."
msgstr ""
"Campo técnico. Indica si el botón para sincronizar el destino hacia una "
"ubicación de pago está visible."

#. module: stock_checkout_sync
#: model:ir.model.fields,help:stock_checkout_sync.field_stock_move_checkout_sync__picking_type_location_id
msgid ""
"This is the default source location when you create a picking manually with "
"this operation type. It is possible however to change it or that the routes "
"put another location. If it is empty, it will check for the supplier "
"location on the partner. "
msgstr ""
"Esta es la ubicación de origen predeterminada cuando crea una entrega "
"manualmente con este tipo de operación. Sin embargo, es posible cambiarlo o "
"que las rutas pongan otra ubicación. Si está vacío, buscará la ubicación del "
"proveedor en el contacto. "

#. module: stock_checkout_sync
#: model:ir.model,name:stock_checkout_sync.model_stock_picking
msgid "Transfer"
msgstr "Transferencia"

#. module: stock_checkout_sync
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_stock_move_checkout_sync
msgid "Unit of Measure"
msgstr "Unidad de Medida"

#. module: stock_checkout_sync
#: model_terms:ir.ui.view,arch_db:stock_checkout_sync.view_stock_move_checkout_sync
msgid ""
"Use this assistant to select a checkout location for all the moves going to the same operation (including in other transfers).\n"
" The destination location of the moves below will be updated with the selected location."
msgstr ""
"Utilice este asistente para seleccionar una ubicación de checkout para todos "
"los movimientos que van a la misma operación (incluso en otras "
"transferencias).\n"
" La ubicación de destino de los movimientos a "
"continuación se actualizará con la ubicación seleccionada."

#. module: stock_checkout_sync
#: model:ir.model.fields,help:stock_checkout_sync.field_stock_picking_type__checkout_sync
msgid ""
"When checked, a button on transfers allow users to select a single location "
"for all moves reaching this operation type. On selection, all the move lines"
" are updated with the same destination."
msgstr ""
"Cuando está marcado, un botón en transferencias permite a los usuarios "
"seleccionar una única ubicación para todos los movimientos que llegan a este "
"tipo de operación. En la selección, todas las líneas de movimiento se "
"actualizan con el mismo destino."
Loading