Jump to content

Facturas, FS, NC, ND - Dúvida para não duplicar os números dos documentos


Recommended Posts

Boa tarde,

Gostava que me ajudassem. Passo a explicar a minha dúvida. 

O programa permite criar documentos fiscais (factura simplificada "FS" por exemplo) e posteriormente é gravada na base de dados (bd) com o respectivo tipo de documento, série, número de documento e a hashkey. Quando é "gerado" um novo número de documento de uma determinada série também é actualizada a tabelas das séries na bd (o campo do último número gerado na série).

O programa é usado por vários utilizadores finais, o que pode coincidir estarem vários utilizadores a criar documentos. Sabem que para gerar a hashkey preciso do número do documento e não podem ser números repetidos, como devo fazer?

Colocar a lógica (gerar número, gerar hashkey...) na minha classe do documento e depois gravar ou na minha camada de acesso a bd? Colocando tudo dentro de uma transaction?

Obrigado!

Link to comment
Share on other sites

A atribuição do número só deve ser feita na gravação do documento, posteriormente a todas as validações que tenha que efectuar, e só a partir daí ser impresso. Esta abordagem também ajuda a implementação da funcionalidade de gravação de documentos em rascunho, sem número atribuído. Quando tem vários utilizadores em simultâneo, ou atribui séries diferentes, ou terá que garantir que a atribuição do número é feita em tempo real sobre o mesmo contador e suportando a concorrência na atribuição desse número. 

 
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.