Saltearse al contenido

Inventario

Inventario gobierna las existencias: cuánto hay, cuándo entra, cuándo se ajusta y qué está por debajo del mínimo. Su clave es inventory. Es la bodega, no la vitrina: lo que se muestra en una ficha de producto es otra cosa.

  • El saldo es la suma de un libro de movimientos, no una columna que se actualiza. Cada lectura suma entradas, salidas y ajustes.
  • Existencias con saldo vivo, mínimo y código principal; el detalle del producto trae su historial con qué entró o salió y por qué.
  • Ajuste manual que fija el saldo escribiendo la diferencia, con un bloqueo para que dos ajustes seguidos no lean el mismo saldo viejo.
  • Recepción contra proveedor. Mientras está abierta solo guarda líneas; al confirmar ingresa al libro con su coste unitario. Confirmarla dos veces no duplica el ingreso.
  • Conteo. Al cerrar fija cada producto contado al número contado. Abierto no mueve nada.
  • Proveedores, mínimos por producto y códigos de barras: el de fábrica y uno interno con dígito verificador.
  • Aviso de “bajo mínimo” en la lista de atención del panel.
  • El módulo inventory y el catálogo: solo lo que es producto lleva existencias.
  • El libro vive en el núcleo y lo escriben también el POS y los pedidos. Por eso el módulo no es su dueño: un módulo no puede importar a otro.
  • La recepción alimenta el último coste que lee Cóndor para calcular el margen.
  • Las listas responden 200 con lista vacía, nunca 403: el panel pinta la compuerta sin un error de red.
  • El detalle del producto y todas las escrituras sí dan 403.
  • El libro no se borra. Al encenderlo vuelve el saldo, porque nunca fue una columna.
  • Entregar un pedido deja de descontar existencias.
  • El aviso de bajo mínimo desaparece de la lista de atención.
  • stock es null cuando no hay ni un movimiento, no 0. “No se ha tocado” y “se contó y dio cero” son estados distintos, y confundirlos pinta faltantes donde no los hay.
  • Un servicio no lleva existencias: ajustarlo da 422 y no crea movimiento; ponerle mínimo se ignora en silencio.
  • “Sin mínimo” y “mínimo cero” no son lo mismo: guardar vacío borra la fila, guardar cero la deja.
  • El bloqueo es sobre el sitio, no por producto: serializa también ajustes de otros productos del mismo sitio.
  • No hay orden de compra. El mínimo se pone a mano: el plazo de entrega del proveedor existe en el modelo y no alimenta ningún cálculo.
  • Un código de barras de otro producto da 422; el mismo código sobre el mismo producto es una actualización silenciosa.
  • Un producto de otro sitio se descarta en las líneas de recepción y de conteo en lugar de rechazar el lote; un código ajeno sí da 422.
  • El aviso de bajo mínimo no tiene prueba propia: es la única pieza del módulo sin red de seguridad.