PARCHE DESPACHO + DEVOLUCIONES POR NOTA DE CREDITO - RIGA
Fecha: 30/09/2026

OBJETIVO
- La validacion de la NC NO mueve stock.
- La mercancia vuelve al inventario solo cuando almacen la recibe desde el modulo Despacho.
- Permite devoluciones totales o parciales por cada linea de la NC.
- Impide devolver mas que la cantidad de la NC.
- Impide devolver mas que la cantidad fisicamente despachada.
- Registra movimiento positivo en llx_stock_mouvement.
- Conserva la salida original; no borra trazabilidad.
- No reabre el pedido origen al procesar una devolucion por NC.
- Mantiene historial en llx_despacho_nuevo y en llx_despacho_nc_devolucion.

ARCHIVOS A COPIAR A htdocs/custom/despacho/
1. formulario_despacho.php        (reemplazar)
2. devolucion_pedido.php          (reemplazar; solo mejora trazabilidad legacy)
3. devolucion_nc.php              (nuevo)
4. nc_stock_helper.php            (nuevo)

BASE DE DATOS
El parche intenta crear automaticamente la tabla llx_despacho_nc_devolucion.
Si el usuario MySQL no tiene permiso CREATE, ejecutar una sola vez:
  sql/01_instalar_control_devoluciones_nc.sql

PRUEBA RECOMENDADA EN LOCAL
1. Validar PROV181861 usando un N° de Control DE PRUEBA en la base local.
2. Ir a Despacho.
3. Buscar por ID 181861 o por la referencia definitiva de la NC.
4. Debe indicar:
   - Factura afectada FACT260842499
   - Pedido PED28082026-178168
   - Producto Caja de 360 Huevos Tipo A Medianos
   - Cantidad NC 15
5. Procesar devolucion de 15.
6. Volver a buscar la misma NC: debe mostrar pendiente 0 y no permitir duplicarla.
7. Verificar stock antes/despues y llx_stock_mouvement.

IMPORTANTE
- Al validar la NC sigue siendo obligatorio el N° de Control porque esa regla pertenece a la facturacion fiscal actual.
- No usar "Actualizar el tipo de cambio" para esta NC historica.
- La opcion legacy "Revertir despacho completo" es distinta: revierte un despacho operativo completo y reabre el pedido. Para una devolucion fiscal usar la NC.
