Numero de factura automático

Quisiera saber si existe alguna forma de manejar los errores de concurrencia. Me explico debo hacer un sistema de facturación multiusuario. El sistema debe asignar automáticamente el numero de la factura. Este numero debe ser consecutivo. Si reservo el numero al entrar a hacer la factura y después el usuario la cancela pierdo el numero. Si no lo reservo y lo asigno al guardar la factura, no me permite ir guardando las lineas de detalle porque no se el numero de la factura. ¿Existe alguna solución para esto?

2 Respuestas

Respuesta
1
Puedes utilizar la segunda opción y utilizar como campo clave IdFactura que ademas puede ser autonumérico.
Cuando finalizas numeras la factura en otro campo NumFactura buscando:
UPDATE tabla
SET NumFactura =
(SELECT ISNULL(MAX(NumFactura), 0) + 1 FROM Tabla WHERE Year(FechaFactura) = @Año)
WHERE IdFactura = @IdFactura
Como veras necesitas 2 variables:
SET @IdFactura = @@Identity
si IdFactura lo has hecho autonumerico
SET @Año = Year(@FechaFactura)
Si el contador de facturas vuelve a cero cada año.
Respuesta
1
El problema que planteas es el gran quebradero de cabeza de los programas de facturación multipuesto. De hecho muchos de los grandes programas del mercado no lo tienen realmente conseguido al cien por cien. De todas formas siempre hay pequeños trucos para ir consiguiendo lo que quieres. Uno de esos trucos lo dices tu mismo, ¿por qué no esperar a asignar el número de factura hasta que se mete la primera linea?, así sabemos a ciencia cierta que la factura ya es real, en cuanto hay una linea de factura ya hay una factura.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas