addons-cm/stock_picking_batch_collect/README.rst
GitHub Copilot 18cfd38347
Some checks failed
CI / lint (pull_request) Successful in 32s
CI / test (pull_request) Failing after 3m15s
CI / review (pull_request) Has been skipped
[IMP] stock_picking_batch_collect: demanded quantity on the move line lists
The move lists already show the demand, the move line ones do not: the
detailed operations of the batch and of the transfer, and the operator
(Basket Assembly) view. Adds a read-only column with the demand of the
line's move, in the unit of the line, next to the ordered quantity.

Closes #21

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 18:34:56 +02:00

167 lines
7 KiB
ReStructuredText

===========================
Stock Picking Batch Collect
===========================
Visión general
==============
Este módulo convierte un lote de picking en una hoja de trabajo para el operario
que monta las cestas: amplía las operaciones detalladas, añade un resumen por
producto y una vista a pantalla completa para el almacén.
- ``picking_partner_id`` (Partner del albarán) para que el personal de almacén
identifique rápido el cliente/proveedor.
- ``product_categ_id`` (Categoría de producto) para ordenar y agrupar. Las
líneas del lote se ordenan por categoría, producto y partner.
- ``product_default_code`` (Referencia interna) como columna opcional.
- ``is_collected`` (Recogido) como check manual en cada línea para marcar si se
ha recolectado.
- Nueva pestaña **Product Summary** con totales por producto (demandado, hecho,
pendiente), categoría y el check de recogido consolidado.
- Botón **Basket Assembly**: una vista de lista a pantalla completa, con
cantidades grandes y controles táctiles, pensada para tablet en el almacén.
- Restricciones de validación configurables por compañía: el lote no se puede
validar hasta que las líneas estén marcadas como recogidas.
- Los mismos checks en los albaranes sueltos (fuera de un lote), activables por
tipo de operación.
- Columna **Cantidad pedida** (``sale_ordered_qty``), de sólo lectura, con lo
que pidió el cliente en el pedido de venta. Al teclear el peso real la demanda
del movimiento se ajusta a lo pesado, así que esta columna es la que permite
comparar lo pedido con lo preparado en la misma pantalla. Está en las
operaciones detalladas, la vista de operario, la pestaña *Operations* y el
resumen por producto del lote, y en el albarán.
- Columna **Cantidad demandada** (``move_demand_qty``), de sólo lectura, en las
listas de líneas de movimiento, que no la traen de serie: las operaciones
detalladas del lote y del albarán y la vista de operario. Es la demanda del
movimiento completo, así que se repite en cada línea de un movimiento
repartido en varias (lotes, ubicaciones).
- Informe **Albaranes** en el lote: todos sus albaranes de entrega en un PDF.
Las columnas se añaden con ``optional="show"`` en la vista de líneas del lote
(salvo ``product_default_code``, oculta por defecto), de modo que el usuario
puede desactivarlas desde el selector de columnas sin recargar la vista.
Si además está instalado ``website_sale_aplicoop``, ese módulo añade a estas
mismas vistas las columnas de grupo de consumo (**Consumer Group** y **Home
Delivery**). Este módulo no depende de él: funciona igual sin la parte de
eCommerce.
Instalación
===========
Actualizar o instalar el módulo:
::
docker-compose run --rm odoo odoo -d odoo --stop-after-init -u stock_picking_batch_collect
Este módulo sustituye a ``stock_picking_batch_custom``. Al instalarlo sobre una
base de datos que tuviera el módulo antiguo, un ``pre_init_hook`` adopta sus
datos (ver ``hooks.py``): se conservan las líneas recogidas, el resumen por
producto y la configuración por compañía.
Configuración
=============
Restricciones de validación
---------------------------
En **Inventory > Configuration > Settings**, bloque *Operations*, hay dos
ajustes por compañía:
- **Restricciones del resumen de productos**: exige que las líneas de la
pestaña *Product Summary* estén marcadas como recogidas para validar el lote.
Desactivado por defecto (el check es sólo informativo).
- **Restricciones de operaciones detalladas**: exige que las líneas de la
pestaña *Detailed Operations* estén marcadas como recogidas.
**Activado por defecto**: recién instalado el módulo, un lote no se puede
validar hasta marcar las líneas.
Cada restricción tiene un alcance:
- *Sólo procesadas*: se comprueban únicamente las líneas con cantidad hecha
mayor que cero (por defecto).
- *Todas*: se comprueban todas las líneas del lote, procesadas o no.
Albaranes fuera de un lote
--------------------------
Para exigir los checks también en los albaranes sueltos, marcar **Exigir líneas
recogidas** en el tipo de operación (**Inventory > Configuration > Operation
Types**, p. ej. *Delivery Orders*). Viene desactivado: sin él, los albaranes
sueltos de ese tipo se validan como siempre.
Un albarán suelto no tiene resumen por producto, así que las dos restricciones
comprueban sus líneas; si alguna usa el alcance *Todas*, se aplica ese.
Columnas
--------
Las columnas están visibles por defecto. Para ajustarlas:
- Abrir un **Lote de picking**.
- Ir a la pestaña **Detailed Operations**.
- Abrir el **selector de columnas** y activar o desactivar *Partner*,
*Product Category*, *Product Code* o *Collected* según necesidad.
Uso
===
1. Accede a **Inventory > Operations > Batch Transfers** y abre un lote.
2. Pestaña **Detailed Operations**: usa el selector de columnas para ajustar:
- **Partner** (``picking_partner_id``) para ver el cliente/proveedor.
- **Product Category** (``product_categ_id``) para ordenar/agrupación por categoría.
- **Collected** (``is_collected``) para marcar manualmente líneas recolectadas.
3. Pestaña **Product Summary**: consulta los totales por producto (demandado,
hecho y pendiente) y marca el check de recogido consolidado si corresponde.
4. Con el lote **en progreso**, el botón **Basket Assembly** abre la vista de
operario: la misma lista de líneas a pantalla completa, con la cantidad en
grande y el check *Collected* como interruptor táctil. Está pensada para
trabajar desde una tablet mientras se montan las cestas.
5. Ordena o agrupa por categoría en cualquiera de las vistas según convenga.
6. La cantidad que teclea el operario (el peso real de la balanza) queda fijada:
se marca como *Picked* y ni el planificador ni la validación de otros
albaranes vuelven a modificarla. Marcar **Collected** protege igualmente la
cantidad de la línea. Ver ``stock_move_manual_quantity``.
7. Al validar el lote, según la configuración de la compañía, se comprueba que
las líneas estén recogidas y se avisa con la lista de productos pendientes.
La comprobación se ejecuta después de resolver el backorder, de modo que
sólo bloquea sobre las líneas que realmente se van a procesar.
8. En un albarán suelto, la pestaña **Operations** tiene un check
**Collected** por producto, que marca todas sus líneas; las operaciones
detalladas lo tienen por línea. Si su tipo de operación lo exige, el
albarán no se valida hasta marcarlos.
9. La columna **Cantidad pedida** muestra lo que pidió el cliente, frente a la
demanda (ya ajustada al peso) y la cantidad preparada. En el resumen por
producto del lote es la suma de los pedidos.
La columna **Cantidad demandada** está junto a ella en todas las vistas,
también en la vista de operario.
10. **Imprimir > Albaranes** en el lote genera un único PDF con el albarán de
entrega de cada uno de sus traslados (salvo los cancelados), ordenados por
cliente.
Contribuidores
==============
* Criptomart
Créditos
========
Autor
-----
* Criptomart
Financiador
-----------
* Elika Bilbo