Se me olvidaba comentar un caso. Si estás trabajando en red y dos usuarios estan haciendo una factura a la vez y no le das un número provisonal distinto de factura a cada usuario, entonces se mezclarán las líneas de un usuario con las del otro y al grabar ocurrirá algo parecido a lo que dices. Si es una empresa pequeña y rara vez hay dos usuario haciendo facturas a la vez, puede ocurrir que esto parezca un fenómeno aleatorio.
Usuario 1, está haciendo sin saber si terminará o cancelara la factura:
07/000010
Usuario 2: lo mismo
07/000010
en este momento el detalle de las líneas de los dos se está anexando a la misma factura, usuario 1 cancela
Usuario 2 graba.
El usuario 2 se encuentra con 3 líneas que el no ha grabado, lo había el usuario uno.
Si esta fuera el caso, solución. Yo a cada usuario le doy un número y ese número a la hora de hacer una factura lo multiplico por un número dependiendo el número de usuarios.
Situación:
Ultima factura:07/000010
Usuario 1 * 10 =10
Factura:=07/000020
Usuario 2 * 10 =20
Factura:=07/000030
Ahora el usuari 1 está haciendo la factura provisional 20 y el 2 la 30 los detalles de uno y otro no colisionan.
Usuario 1, cancela la factura, se elimina primero el detalle por ejemplo mediante SQL y luego la factura que como quedó dicho era provisional.
Usuario 2 graba, no lo hace con el número 30, pues al momento de confirmar la grabación busca el último número le suma 1
Factura:=07/000011
Graba la cabecera y mediante un Update de se actualizan las líneas al número que les corresponga.
Un Saludo.
|