Creo que tu problema no es bloqueo, es lógica.

En el grupo hay mucha gente inteligente que puede decirte simplemente los mecanismos de bloqueos que estas preguntando ( solo respuesta de la base de datos ), o podemos ayudarte en la lógica de tu sistema.

En lo personal creo que debes definir algunas cosas que no tengo claras

a) tu sistema quieres que facture offline o siempre online ?
( El SII en Chile permite facturas offline con algo llamado CAF ( que es asignación de números de folios en batch para ser procesados offline ). ( si vas a facturar offline, puedes hacer una regla que las facturas no hechas y/o reportadas en 1 mes, se puedes reutilizar, esto implica que tu sistema offline si detecta un numero de factura libre pero con más de 1 mes de tiempo no puede ser usado ).

b) Todo es central y online.

El numero de Folio o numero de factura ( no es lo mismo que el ID de la factura ), el ID de la factura puede ser una secuencia que no importa que numero tenga saltos. pero el numero de Factura si hay saltos debes tener un track de que factura no se hizo y usar el numero en el futuro ( el SII en Chile no te da nuevos números de folio si tienes muchas facturas disponibles y/o NO usadas ).

En el caso de ser Central te recomiendo usar el ID de factura y cuando este todo listo tiras las facturas a una tabla por_procesar ( así funciona el Registro Civil de Chile para manejar la concurrencia ), de esa forma tienes un único proceso que procesa las facturas y asigna un numero de Folio), esta forma de trabajar evita contención y el sistema es rápido, muy rápido de hecho.

Espero que esto te ayude a desarrollar algo genial.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Reply via email to