Módulo de Entradas (Recepción)
A. Filosofía del Proceso (El Por Qué)
La recepción de materia prima es el punto de origen de la trazabilidad. Cada lote que entra debe quedar identificado de forma única para poder seguir su recorrido hasta el cliente final. El sistema genera automáticamente un Lote Interno (formato L-AAA-BBB, donde AAA = día del año, BBB = especie) que actúa como identificador principal.
El Peso Neto se calcula siempre como Peso Bruto − Tara. La validación de temperatura (alerta si > -18ºC para "Inspección Requerida") ayuda a detectar incidencias de cadena de frío antes de aceptar el producto. Los datos de origen (barco, zona FAO, arte de pesca) se heredan en todo el flujo de trazabilidad.
B. Diagrama de Flujo
flowchart TD
A[Contexto Compra / Pedido SAP] --> B[Capturar Peso Bruto]
B --> C[Introducir Tara]
C --> D[Seleccionar Especie]
D --> E{Peso Neto OK?}
E -->|Sí| F[Confirmar Recepción]
F --> G[Crear Recepción + Lote]
G --> H[Modal Etiqueta]
H --> I[Imprimir / Cerrar]
C. Guía de Pantalla (Nueva Recepción)
Columna izquierda — Contexto de Compra:
- Pedido SAP: Desplegable de pedidos de compra abiertos (MockSAPService). Al seleccionar, autocompleta Proveedor, Artículo y Barco.
- Proveedor, Artículo: Obligatorios (min 2 caracteres). Se validan en backend.
- Lote Externo, Zona FAO, Barco, Arte de Pesca, Contenedor: Opcionales para trazabilidad.
- Fecha Caducidad: Acepta formato Y-m-d o d/m/Y.
- Temperatura: Si > -18ºC, se muestra alerta roja y se solicita confirmación antes de guardar.
Columna central — La Báscula:
- Display Peso: Muestra la lectura actual. Inicialmente 0.00 kg.
- Botón CAPTURAR PESO: Simula lectura de báscula (800–1200 kg aleatorio). Actualiza el display y el campo oculto peso_bruto.
- Tara (kg): Input numérico. Peso Neto = Lectura − Tara.
- Cantidad de Piezas: Controles +/− para incrementar/decrementar.
Columna derecha — Resumen y Acción:
- Especie: Select obligatorio (BFT, YFT, BET, SWO, ALB). Determina el prefijo del lote.
- Botón CONFIRMAR RECEPCIÓN & IMPRIMIR ETIQUETA: Envía formulario vía AJAX. Validación oculta: peso_bruto > 0. Si temperatura > -18ºC pide confirmación.
D. Resultado Esperado
- Tabla recepciones: Nueva fila con numero_registro (REC-YYYY-NNNNN), pedido_compra_sap, proveedor, fecha_recepcion, temperatura_recepcion.
- Tabla lotes_entrada: Nueva fila con articulo, especie, lote_interno (generado), lote_externo, zona_fao, barco, arte_pesca, peso_bruto, tara, peso_neto, fecha_congelacion, fecha_caducidad.
- Modal Etiqueta: Vista previa con Lote, Especie, Peso Neto, Caducidad, Zona FAO y código de barras CODE128. Botones Imprimir y Cerrar.
- Botón Ver Histórico: Navega a recepcion/historial con listado de recepciones ordenadas por fecha descendente.