About this project
it-programming / desktop-apps
Open
Aplicação que verifica de tempo em tempo (ex: 5000ms) se existe alterações a serem realizada em NFe e NFCe e realiza os procedimentos necessários..
Tabelas do DB
- organizacao: contém as informações do contribuinte
- nf: contém as informações da nota fiscal
modelo (55 - NFe / 65 - Nfce)
numero
serie
xml
protocolo_autorizacao
chave_acesso
status (1 - nf gerada, 2 - nf autorizada, 3 - nf denegada, 4 - nf em contingencia, 5 - nf cancelada, 6 - numeracao inutilizada)
cancelar (1 - cancelar nota)
inutilizar (1 - inutiliza a numeração)
retorno_cod (último código de retorno da resposta da sefaz)
retorno_msg (última msg de retorno da resposta da sefaz)
- danfe: contém as informações do tipo de danfe a ser gerada
id_nf (identifica a nota fiscal da qual o danfe vai ser gerado)
tipo_danfe (1 - impressão térmica, 2 - impressão laser, 3 - impressão pdf, 4 - sms com chave de acesso e protocolo de autorização, 5 - email com chave de acesso e protocolo de autorização, 6 - email com danfe pdf e xml)
impressora (identificação da impressora a ser utilizada)
- relatório: contém informações sobre o relatório gerencial a ser impresso
xml (arquivo xml do relatório a ser impresso - vamos definir as tags em breve - será bem simples)
status (1 - relatorio gerado, 2 - relatorio impresso)
pastas:
- xml_geradas
- xml_autorizadas
- xml_denegadas (xml da nota denegada / tag que diz que está denegada?)
- xml_contingencia
- xml_canceladas (xml da nota cancelada / xml do cancelamento)
- xml_inutilizadas (xml do pedido de inutilização / xml da homologação)
- danfe_pdf
- relatorio
quando houver registro com status = 1 na tabela nf, deverá assinar, validar e transmitir xml correspondente.
Se a Nota for autorizada => Salvar XML com autorização na pasta xml_autorizadas
=> Apagar XML da pasta xml_geradas
=> Salvar o protocolo de autorização e a chave de acesso no DB
=> Alterar status para 2
Se a Nota for denegada => Salvar XML na pasta xml_denegadas
=> Apagar XML da pasta xml_geradas
=> Alterar status para 3
Se a Nota for emitida em contingência => Salvar XML na pasta xml_contingencia
=> Apagar XML da pasta xml_geradas
=> Alterar status para 4
Quando houver registro com status = 4, na tabela nf, a aplicação deverá ficar tentando transmitir a nota, e quando conseguir, realizar as operações necessárioas
=> Salvar XML na pasta equivalente
=> Apagar XML da pasta xml_contingencia
=> Alterar status para o status equivalente, se autorizada, inserir protocolo e chave na base de dados
Quando houver registro com cancelar = 1, na tabela danfe
- faz o cancelamento da nota
- Apaga XML da pasta anterior
- Salva XML a pasta xml_canceladas
Quando houver registro com inutilizar = 1, na tabela danfe
- inutiliza a numeração da série especificada na tabela
- Salva xml na pasta xml_inutilizadas
Quando houver registro com status = 1, na tabela danfe
=> Pegar a impressora térmica de destino na base de dados
=> Imprimir o danfe referente ao arquivo xml referenciado na tabela
quando houver registro com status =2, na tabela danfe
=> pegar a impressora laser de destino na base de dados
=> imprimir o danfe referente ao arquivo xml referenciado na tabela
quando houver registro com status =3, na tabela danfe
=> salva arquivo pdf com a danfe a pasta danfe_pdf, cada um em seu formato, modelo 55 ou modelo 65.
Para os demais status da tabela danfe, a aplicação não precisará fazer nada.
Para o relatório vou desenhar um layout do tamanho da bobina da impressora e passo para você verificar. E os dados do relatório serão passados por xml de forma bem simples.
O sistema deverá verificar continuamente, a cada ciclo de tempo (ex: 5000ms, personalizavel), se existem alterações nas tabelas da nf e executa as ações necessárias.
Até a finalização do projeto, alguns ajustes de campos e informações podem ser precisos, como nome das tabelas, algumas informações, mas nada que mude o escopo geral do projeto.
No final entregar os códigos comentados e uma versão em funcionamento.
E dar o suporte necessário para utilização, obviamanete.
Seria interessante ter uma tela para especificar as queryes do mysql, os webservices da sefaz, dados de acesso a base de dados, etc..
Nos casos de cancelamento de nota, deve ser salvo o xml da nota + xml do cancelamento?
No caso de inutilização deve ser salvo o xml do pedido de inutilização + xml da homologação?
Sempre salvar o xml da resposta, com as tags adicionadas..
Category IT & Programming
Subcategory Desktop apps
What is the scope of the project? Create a new app
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
Experience in this type of projects Yes (I have managed this kind of project before)
API Integrations Other (Other APIs)
Required platforms Windows, Linux / Unix
Delivery term: Not specified
Skills needed