=========================== 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