Inforges · SAP Business One Premier Partner

Capítulo 1: Producción y Despiece (Maquila)

A. Filosofía del Proceso (El Por Qué)

Balance de Masas Determinístico: El sistema garantiza que Entradas = Salidas. La suma de Merma de Limpieza + todos los cortes por calidad (A+, A, B, C) debe igualar exactamente el Peso Neto del contenedor. El backend calcula un planDistribucion con pesos objetivos (~18% merma, ~10% A+, ~40% A, ~30% B, ~20% C del producto neto restante). Este plan se pasa al frontend como JSON; nunca se usa para renderizar HTML inicial. La última acción recibe automáticamente el peso restante para cuadrar a cero.

Flujo Paso a Paso: El usuario experimenta un flujo de pesaje simulado. La tabla de productos se construye exclusivamente con historialReal (registros ya existentes en BD). Un contenedor nuevo muestra la tabla vacía. Solo al confirmar cada pesada se inyecta la fila y se guarda en BD. Overlay "CONECTANDO CON BÁSCULA" (1.5 s) antes de mostrar el peso.

Limpieza Automática: Si el contenedor no está en estado en_proceso, al cargar la ejecución el sistema borra automáticamente cualquier registro previo en productos_elaborados asociado a ese lote. Un contenedor nuevo está siempre vacío.

Cierre Manual: Cuando el peso restante llega a 0, no hay redirección automática. Se muestra el Estado Resumen con tabla de líneas, impresión individual o masiva, y dos opciones: Volver a Revisar (editar/borrar) o Finalizar y Salir.

Edición y Borrado: Cada fila tiene botones ✏️ Editar (corregir peso) y 🗑️ Borrar (elimina en BD y devuelve el peso al contador). El contenedor solo pasa a en_proceso al registrar el primer peso; no al pulsar INICIAR.

B. Diagrama de Flujo

graph TD A[Planificación: Matchmaking] --> B[Seleccionar Contenedor Ocupado] B --> C[INICIAR → Ejecución] C --> D{estado en_proceso?} D -->|No| E[Limpieza: DELETE previos] D -->|Sí| F[Cargar historialReal] E --> F F --> G[Registrar Merma / Calidades A+, A, B, C] G --> H[Overlay: Báscula 1.5s] H --> I[Modal: Confirmar Peso] I --> J{Aceptar?} J -->|Sí| K[Guardar AJAX → Inyectar fila] K --> L[Etiqueta industrial si corte] L --> M{pesoRestante == 0?} M -->|Sí| N[Estado Resumen] N --> O[Imprimir / Volver Revisar / Finalizar] O --> P[FINALIZAR → estado consumido] J -->|No| G M -->|No| G

C. Guía Paso a Paso

Planificación: Acordeón Órdenes en Curso. Panel La Demanda (pedidos con líneas expandibles). Panel La Oferta (contenedores). Botón INICIAR por contenedor.

Ejecución de Despiece:

  1. Cabecera: Lote Madre, Especie, Peso Neto. Enlaces: Ver Stock Generado, Planificación.
  2. Registrar Pesada: Botones Merma, A+, A, B, C. Select Artículo (Lomo/Ventresca). Al pulsar: Overlay 1.5s → Modal peso → CONFIRMAR PESO.
  3. Productos Generados: Tabla con historialReal. Botones Editar y Borrar por fila. Barra de rendimiento.
  4. Estado Resumen (peso=0): Panel verde "PROCESO FINALIZADO". Tabla Resumen con 🖨️ por fila. Botón IMPRIMIR TODAS. VOLVER A REVISAR o FINALIZAR Y SALIR.

D. Resultados y Documentos

  • productos_elaborados: Un registro por merma y uno por cada corte (articulo, calidad, peso, lote_hijo, codigo_barras_interno).
  • contenedores: estado en_proceso (primer peso) → consumido (al finalizar).
  • Etiquetas: Térmicas 100×150 mm, GS1-128 (01)(10)(3102). Imprimir individual o masiva con page-break entre etiquetas.