También me parece correcto Arnaldo, hacerlo de manera automática te podría dar problemas, es mejor (no lo optimo) que el usuario indique que lotes va ha ha sacar y cuanto de cada lote, ya que suponiendo podría haber un lote que esta en observación y el cual no se va ha despachar (ya que dicho lote no se ha dado de baja saldría en la lista de lotes atender) por lo tanto si fuera automático posiblemente el sistema descargue dicho lote que no debería. Ademas de mejorar la trazabilidad y determinar por producto que lotes dispone, cantidad y fechas de vencimiento de dicho lote, aunque también podrías dar la opción de manejo automático, dejando de esta manera la decisión de cual de las dos formas se adapta mejor a su modo de trabajo.
Así quedaría tu kardex de lotes
las líneas amarillas representan el ingreso y las blancas las salidas.
Y este es el listado de lotes existentes con sus fechas de vencimiento, numero de lotes, ingresos, salidas y saldos.
Y aquí un reporte de cada producto con sus lotes, donde en lotes tienes la cantidad existente por cada lotes siguiente el formato de cantidad*descripción del lote ejemplo 72*ISBN 29890 que indica 72 del lote ISB 29890, y una columna donde acumulas en este caso metraje, podría ser unidades, kilos depende del tipo de producto.
en este listado sirve para comparar el stock del producto con el stock de lotes, permitiendo ver si hay mas o menos lotes en relación al stock del producto.
Saludos