Olá,
Estou tentando criar uma classe que seria a nota fiscal da Aplicação, usando hibernate para persistir.
O problema está na chave, que para uma nota fiscal dever ser pelo menos a SÉRIE + NÚMERO.
Estou usando anotações para criar minhas Entities e gostaria de saber como posso implementar esta chave na classe de forma que o sistema gere da seguinte forma:
SERIE NÚMERO
001 1
001 2
001 3
…
002 1
002 2
002 3
…
Ninguém respondeu…
Eu encontrei este link: http://www.guj.com.br/java/143595-hibernate---chave-primaria-composta-gerar-id-autoincremento
Ele é de 2009.
A resposta ainda continua a mesma?
a principio essa esse tipo de incremento com chave composta nao funciona pq so é possivel manter uma sequencia unica… no caso ali vc teria duas sequencias diferentes… e nao teria como o sistema controlar isso em um mesmo campo. ( pelo menos ate onde meu conhecimento vai nao…)… porem se tratando de nota fiscal creio que a sua serie e numero podem ser pensadas de uma outra maneira…
vc esta fazendo a integracao do sistema com nf-e certo?
o interessante seria ter um campo … id_nf como chave primaria auto increment… e outros dois campos sendo SERIE e NUMERO… no caso eu chamaria NUMERO como sequencial e funcionaria mais ou menos assim…
pode existir uma nf criada no seu sistema… porem nao foi homologada ainda … e o ideal seria gerar o sequencial dela no momento da homologaçao… para garantir que nao ocorra problemas do tipo … emitir um sequencial maior e depois um sequencial retroativo… isso de certa forma pode trazer problemas…
nao sei exatamente qual sua necessidade… espero nao ter piorado a situacao rsrs
Acho que entendi que terei uma chave primaria ID e os campos SÉRIE E NÚMERO.
Eu estarei gerando o número no momento do envio desta nota fiscal para receita ou no momento da impressao em formulário (este caso acredito nem ser utilizado mais).
Para fazer este auto-incremento no NÚMERO eu estaria fazendo um comando para buscar o último número e somar mais um exatamente no momento de envio entao…
O auto-incremento seria da forma que coloquei acima? Usando um HQL para buscar a numeração…
nao entendi exatamente o que vc quer dizer… a principio vc queria fazer uma chave com SERIE e NUMERO e fazer essa chave auto incremente de forma q cada serie tenha uma sequencia de NUMERO… porem automaticamente nao funciona assim… entao vc tem que fazer esse controle manualmente… por exemplo
seria mais ou menos assim
id serie numero
1 1 1
2 1 2
3 2 1
4 2 2
5 1 3
… vc pode criar a nota fiscal no banco de dados… porem nao emiti - la … dessa forma ela estaria assim no seu banco…
id serie numero
1 0 0
(obs caso vc ja tenha a serie pode colocar no banco tb msm q nao seja emitido… tendo em vista que a serie de uma empresa eh sempre a mesma ate que mude a forma de emissao de nota fiscal… ou seja cada forma de emitir nf q a empresa utilizou desde os blocos de notas ate nf-e eh uma serie… entao se a empresa nunca emitiu nf e vai iniciar ja na nf-e a serie dela eh 0 )
depois de o usuario incluir todos os itens e fazer o que tem que ser feito
ele vai emitir a nf
entao nesse momento
vc verifica o sequencial da empresa… qual foi o numero da ultima nota emitida por essa empresa… e entao faz o ultimo numero + 1
e sua nota ficaria assim por exemplo…
id serie numero
350 1 350
entao resumindo … id vai ser auto incremente… e eh a chave primaria a serie depende da empresa… e o numero da nota vc gera somente na hora que emitir… com o ultimo numero emitido + 1 certo… abrass
Obrigado, agora eu ja sei o que deve ser feito.