Skip to content

[17.0][FIX] stock_ux: evitar validar remitos con seriales sin asignar (#119570)#944

Open
jcadhoc wants to merge 1 commit into
ingadhoc:17.0from
adhoc-dev:17.0-h-119570-jc
Open

[17.0][FIX] stock_ux: evitar validar remitos con seriales sin asignar (#119570)#944
jcadhoc wants to merge 1 commit into
ingadhoc:17.0from
adhoc-dev:17.0-h-119570-jc

Conversation

@jcadhoc

@jcadhoc jcadhoc commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Cambio

Agrega _check_serial_quantity_consistency() en el _sanity_check()
de stock.picking para bloquear validacion de remitos donde la
cantidad hecha en un producto con tracking por serial no coincida
con la cantidad de seriales asignados.

Odoo standard verifica que cada move line picked tenga su serial,
pero nunca reconcilia move.quantity contra la cantidad de lineas
con serial. Esto permitia validar un remito con 5 unidades hechas
pero solo 4 seriales asignados, dejando un movimiento inconsistente
imposible de retornar.

Fix adicional

_check_number_of_packages() cambia de return {"warning": ...}
a raise UserError para mantener consistencia con el resto de las
validaciones del modulo.

Test plan

  1. Crear un producto con tracking por serial
  2. Crear un remito de delivery con qty 5
  3. Asignar solo 4 seriales, dejar linea remanente sin serial (no picked)
  4. Validar -> debe fallar con el mensaje del nuevo guard

Agregado test automatizado test_serial_quantity_consistency.py.

Refs: https://www.adhoc.inc/odoo/web#id=119570&model=helpdesk.ticket

@roboadhoc

Copy link
Copy Markdown
Collaborator

Pull request status dashboard

@jcadhoc jcadhoc force-pushed the 17.0-h-119570-jc branch 2 times, most recently from cbc0674 to a016774 Compare June 9, 2026 15:07
Agrega _check_serial_quantity_consistency en _sanity_check de
stock.picking para que la validacion de un remito con productos
trackeados por serial exija que la cantidad hecha coincida con la
cantidad de seriales asignados.

Odoo standard solo verifica que cada move line existente con
picked=True tenga su lote/serie, pero nunca reconcilia move.quantity
contra el conteo de seriales. Esto permitia remitir N unidades con
menos de N seriales (ej. 5 unidades, 4 seriales), dejando un movimiento
inconsistente imposible de retornar.

Usa abs(move.quantity) y != 0 para manejar cantidades negativas
(ajustes de inventario, devoluciones) sin falsos bloqueos.

Incluye fix adicional: _check_number_of_packages cambia de return
warning a raise UserError para mantener consistencia con el resto
de las validaciones.
@jcadhoc jcadhoc force-pushed the 17.0-h-119570-jc branch from a016774 to 9b992d5 Compare June 9, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants