e possivel gerar nota fiscal eletronica em desktop alguem poderia me dar uma luz de como comecar pois nao tenho nenhuma nocao de como comecar a desenvolver uma nota fiscal eletronica
em um programa em desktop alguem pode me ajudar a comecar?
nossa valeu esse site pelo visto e muito bom…nao olhei mto bem porque estou no servico mais depois vou ver xD mais pelo pouco que vi ja me deu uma luz rsrs
D
daniferreira
assim agora vc pode me falar o passo a passo que preciso fazer pra gerar essa nfe tipo
se primeiro tenho que criar a xml
depois puxar do banco os dados e por ai vai?
tem como me falar so isso?
porque ai ja vou ter nocao do que eu preciso fazer passo a passo pra atingir esse objetivo de desenvolver as notas fiscais seria muito bom…ai ja saberia o que tinha que fazer pra isso muito obrigadaa mesmo \o
Passo a passo é meio difícil porque vai depender de como a sua aplicação manipula os dados da nota.
O que eu posso te dizer é o seguinte: vc pega os beans (essas classes devem ser geradas a partir dos esquemas xml disponíveis na site da nfe) do seu form p. ex. (vai depender se o usuário digita as notas ou se elas são importadas via arquivos txt ou como for) preenchidos com os dados da nota, gera o xml baseado nesses beans, assina-o com o certificado digital do cnpj que vai enviar a nfe, valida-o pra se ele ele está ok e envia pro webservice.
e se eu quiser guardar as notas que chegam em xml para um banco de dados? existe o problema da estrutura… como posso fazer um objeto que identifique toda a estrutura? pois nem todas as notas sao iguais… e para gravar no banco ja nao daria… se eu usar o hibernate consigo pois ele verifica a estrutura do objeto e cria a tabela, ou altera caso ela ja exista. Alguem sabe como fazer isso? identificação de estrutura do xml?
L
leopoldof
Creio que se vc quiser guardar o xml da nfe no banco terá que guardar como texto puro…ou seja um varchar(…). Quando vc quiser ler usa uma api para transforar o XML em um objeto , o dom ou sax ou o xmlstream se naõ me engano faz isso também…
Eu particularmente, armazeno as nfe enviadas e todos os xml necessários da NFe em arquivos em pastas separadas no servidor nfe
Quanto a quetão do daniferreira de criar uma aplicação desktop para NFe…é possível sim…eu criei uma e está rodando perfeitamente em vários clientes meus.
O caminho das pedras seria primeiramente como já foi citado acima, baixar o manual do contribuinte para ver bem certinho o que se tem a fazer e estudar como você irá realizar a comunicação com o webservice da SEFAZ do seu estado… existem bibliotecas que facilitam a sua vida, como por exemplo o JAXWS e o AXIS…dentre outras… sujiro que de uma olhada nessas apis, pois elas vao resolver uma parte dos seus problemas…depois tens que estudar como manipular certificados digitais, assinaturas digitais em arquivos, interpretar as respostas dos webservices, acessar webservices de contingência e por aí vai…
Não é tão simples,mas depois que você pega o jeito… “a coisa anda”…he he he
L
luiz_renato
Olha,
Acho que porque o arquivo xml está assinado e ser um documento fiscal, deveria ser armazenado em campo blob no banco (aqui os arquivos são grardados em disco)
D
denisspitfire
entao, mas eu só quero guardar as notas fiscais em banco. Mas nao pode ser texto puro.
Nao tem nada que crie um objeto pela estrutura? e nao algo que analise a estrutura pegue as informações e depois com um objeto PRONTO e uma estrutura PRONTA ele jogue as informações la dentro…
eu quero que o objeto seja x e amanha seja y dependendo da nota fiscal…
D
denisspitfire
a ideia é para se fazer consultas depois entende?
D
daniferreira
rsrsrs entao eu sei que nao hehehe que e complicadinho rsrss maiss vou estudar sim sobre isso vamos ver o que vai da rsrs obrigadaa pela ajuda xD vou testa sim as apis agradeco a voces qualquer duvida posto aqui novamente xD
D
denisspitfire
É mais ou menos isso... primeiro eu queria entender essa joça kkk ao ler parece que o codigo faz exatamente oque eu quero
He he he…sei que faz tempo já…mas se caso ainda não descobriu…
O “unmarshall” faz exatamente o que eu disse na mensagem que postei…transforma o xml em um objeto…
Esse código faz o seguinte…
1)Lê um arquivo xml com os mapeamentos e regras do xml (arquivo de configuração do XML)
2)Lê o arquivo xml (Text.xml) que no seu caso por exemplo seria a nfe.xml
3)Transforma o arquivo num objeto para manipulá-lo
… Assim como vc pode transformar um xml num objeto, pode fazer o contrário…tranformar um objeto em um xml
D
denisspitfire
onde posso achar esse “mapa” da nfe?
L
leopoldof
Creio que no seu caso não se aplica esse map.xml… (isso dependendo da api)
Eu usei para ler as NFe o JAXB e não esse exloab.castor…daí não prescisa nada de mapeamento…só informa o arquivo xml e o objeto que quer
Mas lembre-se…totas as tags existentes no xml devem ter variáveis equivalentes em seu objeto para funcionar
Dê uma estudada no JAXB, nos comando JAXBContext e no próprio Unmarshaller do java
L
leopoldof
Daqui uns dias vou ter que mecher no sistema NFe novamente para adicionar essas novas regras criadas pela SEFAZ ultimamente…
Mecher no emaranhado de XMLs, Schemas…, ow God
D
denisspitfire
no caso quando criamos pelo JAXB temos que ja ter um objeto pronto… com o tal do castor precisamos de um mapa correto?
mas eu queria que fosse dinamico isso nao tem como?
L
leopoldof
Com esse do castor não sei…nunca usei…não posso te afirmar nada…
mas eu queria que fosse dinamico isso nao tem como?
o que vc se refere a dinâmico? … o Objeto? não ter variáveis definidas?
Não entendi ainda o motivo disso…já que as NFe serão sempre nfes…terão sempre as mesma estrutura…
D
denisspitfire
ok… mas a cada atualização preciso mudar a sua estrutura…
e se eu pudesse ler um xml e definir na hora a estrutura do objeto?
L
leopoldof
Como assim…a cada atualização?
D
denisspitfire
leopoldof:
Daqui uns dias vou ter que mecher no sistema NFe novamente para adicionar essas novas regras criadas pela SEFAZ ultimamente…
Mecher no emaranhado de XMLs, Schemas…, ow God
essas modificações ou atualizações…
eu queria algo dinamico, que ele veja o xml e ja se estruture pelo xml, só quero que guarde… nao precisa validar nem nada… só guardar o xml em formato de banco de dados.
L
leopoldof
leopoldof:
Daqui uns dias vou ter que mecher no sistema NFe novamente para adicionar essas novas regras criadas pela SEFAZ ultimamente…
Mecher no emaranhado de XMLs, Schemas…, ow God
Me referi a regras de validação e novos serviços, como por exemplo o cancelamento que agora é deve ser feito de uma maneira diferente, porém a NFe em si fica a mesma coisa…faz tempo que não é mudado…acho que só na versão 1.0 que tinha um campo a menos…mas isso faz tempo que não é mudado…
Creio que sua idéia é montar algo que não prescise mecher depois quando o pessoal da SEFAZ anuncie alguma modificação…mas acho que isso não funcionará…pois estão sempre implementando novas regras, novos campos,… sempre vai ter que mecher em algo do sistema…
D
denisspitfire
mas é algo que só ira guardar…
nao vejo porque ter uma regra de validação ou algo do genero…
por exemplo, se eu jogar uma estrutura hoje no hibernate ele vai ler e vai gravar direto sem perguntar nada…
se eu enviar uma amanha diferente da que enviei hoje, ele vai modificar e gravar…
mas imagina ter que fazer isso nos xmls?
L
leopoldof
Então grava em formato de texto…ou em array de bits[] …daí vc guarda o que quiser lá dentro
D
denisspitfire
eu quero fazer calculos com as notas de x cliente depois… acho que jogando como texto nao vai rolar.
D
denisspitfire
nao da pra gravar objetos DOM?
R
RenataFA
Eu faço o envio de NF-e e NFS-e num sistema desktop. Depois que envio a nota e recebo a resposta de que está tudo ok, eu gravo o XML retornado (aquele assinado e validado certinho) num blob, mas também mantenho as informações da nota (campo a campo, todos os dados que eu usei pra montar o XML de envio) no meu BD. Aqui eu movo os registros pra uma tabela de “notas enviadas”, mas vc pode simplesmente marcar um flag de que aquela nota já foi enviada e pronto.
Ai todos os relatórios, comparativos e qq coisa que vc precise, vc usa esses dados que vc guardou. E qdo o cliente por ex pede o XML, ou o escritório de contabilidade pede… vc tem de onde pegar tb pq armazenou num blob.
É isso que vc precisa?
L
leopoldof
Unindo a sugestão da Renata…
Cria uma tabela com os campos que vc prescisa para fazer os cálculos, código de clientes, etc…todos os campos que vc prescisa para fazer as estatísticas, consultas, etc…e por fim…cria um blob para gravar o xml inteiro… assim vc tem como pesquisar, e como fornecer o xml inteiro…
D
denisspitfire
é isso mesmo! Vou dar uma pesquisada no que é blob porque agora fiquei perdido.
é só por meio do blob que eu posso gravar o xml no banco? mesmo usando hibernate?
R
RenataFA
Blob é o tipo do campo no banco de dados.
É um tipo de campo que te permite gravar arquivos, imagens por ex, no seu caso… o arquivo xml.
Então não importa se vc vai usar hibernate ou seja lá a forma que quiser pra acessar a base de dados, o tipo do campo seria um blob.