none
Mejor manera de manejar numeros de series y correlativos en facturacion y ventas

    Pregunta

  • Hola siempre eh tenido esta duda y de una manera y de otra lo hacia a mi propia manera.

    Se trata la manera en la que se debe generar el correlativos y los numeros de serie en facturacion, eh visto por ahi que algunos crean una tabla configuracion, en donde en dicha tabla manejan el correlativo, numero de serie e incluso el IGV o impuesto actual.

    Esto es muy valido desde mi punto de vista, pero no estoy muy familiarizado, eh hecho un par de sistemas de ventas pero nunca eh aplicado esta tecnica, quiza cometi ese error, y pucha me gustaria saber cual es la mejor manera de controlar esta parte.

    Otra de las dudas es que por ejemplo si el sistema de facturacion esta en una sucursal de la misma empresa, como se maneja el correlativo y numero de serie en ese aspecto.

     

    Ojala puedan ayudarme y contribuir con links, articulos, codigos fuentes, ideas sobre el tema que planteo. Para poder retroalimentarme.

     

     


    Programador .NET - Desarrollador 5 Estrellas.
    domingo, 08 de mayo de 2011 2:38

Respuestas

  • Si quieres una alternativa al tema de los correlativos, otra opción en lugar de llevar una tabla separada es la de leer el último desde la propia tabla de facturas. Básicamente, a la hora de grabar una nueva factura, se inicia transacción, se lee el max(numerodefactura) desde la tabla de facturas, se le suma 1 y se graba con ese número la nueva factura; después se hace un commit de la transacción. Esto es más lento que leer el último número de una tabla separada, pero te evita tener que manejar dicha tabla y elimina el riesgo de que en algún momento se te "desincronicen" las dos tablas. No digo que sea mejor ni peor, dependerá de las circunstancias, pero es algo que se puede tomar en consideración.

    En cuanto al tema de las sucursales, no sé en qué país estás, pero en España la normativa permite que cada sucursal anteponga una "serie" al número de factura, y luego aplique números correlativos por detrás de esa serie. Por ejemplo, la sucursal 1 podría numerar las facturas como SUC1-0001, SUC1-0002, etc., mientras que la sucursal 2 generaría SUC2-0001, SUC2-0002, etc. De esta forma cada sucursal puede llever localmente su tabla de correlativos sin necesidad de mantener una comunicación con la central para poder generar un correlativo único.

    domingo, 08 de mayo de 2011 7:32

Todas las respuestas

  • Si quieres una alternativa al tema de los correlativos, otra opción en lugar de llevar una tabla separada es la de leer el último desde la propia tabla de facturas. Básicamente, a la hora de grabar una nueva factura, se inicia transacción, se lee el max(numerodefactura) desde la tabla de facturas, se le suma 1 y se graba con ese número la nueva factura; después se hace un commit de la transacción. Esto es más lento que leer el último número de una tabla separada, pero te evita tener que manejar dicha tabla y elimina el riesgo de que en algún momento se te "desincronicen" las dos tablas. No digo que sea mejor ni peor, dependerá de las circunstancias, pero es algo que se puede tomar en consideración.

    En cuanto al tema de las sucursales, no sé en qué país estás, pero en España la normativa permite que cada sucursal anteponga una "serie" al número de factura, y luego aplique números correlativos por detrás de esa serie. Por ejemplo, la sucursal 1 podría numerar las facturas como SUC1-0001, SUC1-0002, etc., mientras que la sucursal 2 generaría SUC2-0001, SUC2-0002, etc. De esta forma cada sucursal puede llever localmente su tabla de correlativos sin necesidad de mantener una comunicación con la central para poder generar un correlativo único.

    domingo, 08 de mayo de 2011 7:32
  • Yo particularmente, aplico lo comentado por A.Población, siempre iniciando una transacción para bloquear la tabla.

    También recurro a select @@indentity para obtener el último autonumérico generado, en casos similares.

    Respecto a que 'el sistema de facturación está en una sucursal', que quieres decir? te refieres a la impresora fiscal o el software en general?

    domingo, 08 de mayo de 2011 11:13