Hola Pedro, asumiendo que brindas una solución y no solo un servicio de programación de software dire:
Considero que debes "obligar" a los usuarios a que primero creen el maestro de producto (den de alta), luego de eso realicen el ingreso (sea por compra, traslado o ajuste) y recién allí puedan vender.
Salvo que manejes stock negativos (no lo recomiendo para nada porque a la larga trae mas problemas).
Tu, yo y los demás sabemos que se puede programar casi cualquier cosa como el crear el producto en plena venta, pero no se debe hacer eso. Esto crea un pésimo habito ¿porque?
Primero: Si se da de alta en la creación tendrás problemas graves si tu sistema trabaja en un entorno de red, deberás validar que dos no estén creando lo mismo.
Segundo: Creas el producto con que stock?? lo cuentas en caliente??? sin stock?? por tanto.. saldo negativo??? entonces ¿que controlas?
Tercero: Crearías un cuello de botella en el momento de venta por las diversas validaciones que debes realizar.
Cuarto: ¿Que hace el personal de venta creando productos? y bajo que criterio la harían?. Eso denota un problema estructural en la empresa.
Por donde lo vea, trae mas problemas que soluciones crear el producto en el momento de venta, puede parecer al principio que es mejor, pero no, es una mala practica y NO SE DEBEN PROGRAMAR las malas practicas. Los usuarios pedirán lo que se les ocurra porque ellos solo piden en función de sus propias y egoístas necesidades, no piensan a nivel empresarial (la gran mayoría), si accedes a esas peticiones deberás jurar por las 1000 vírgenes que tu sistema no entrara en inconsistencias que luego asumirás a tu costo (salvo que seas intrépido y hagas pagar al cliente lo que no debiste hacer).
Resumiendo, te recomiendo que estos pasos exija tu sistema:
1.- Crear maestro (obligatorio)
2.- Realizar el ingreso de aquello que esta creado en el maestro y valorizado.
3.- No permitas saldos negativos, el usuario se acostumbra y termina volviendo todo los stocks en negativos y al final se la pasan ajustando, el sistema allí no controla nada. Si no hay stock la venta no debe realizarse. Te dirán ¿pero si hay en físico?, entonces dirás: "Alguien no hizo su tarea, falta el paso 2".
4.- Cargar en el modulo de venta o egreso SOLAMENTE los artículos con stock, no todo el maestro.
Bueno, creo que me extendí así que corto aquí, salvo que te pueda servir algún comentario que quieras que agregue.
Saludos.