- The collected checks also apply to transfers outside a batch, opt-in per
operation type ("Require Collected Lines"), with the batch restrictions of
the settings. A per-product toggle in the transfer's Operations tab collects
all its lines.
- Read-only ordered quantity from the sale line on every batch and transfer
view, since the weighed demand overwrites it. Adds a dependency on
sale_stock; a migration fills it in the summary of open batches.
- "Delivery Slips" report on the batch: all its delivery slips in one PDF.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
160 lines
6.6 KiB
ReStructuredText
160 lines
6.6 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.
|
|
- 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.
|
|
|
|
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
|