Sobre este projeto
it-programming / desktop-apps
Aberto
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..
Categoria TI e Programação
Subcategoria Aplicativos desktop
Qual é o alcance do projeto? Criar um novo aplicativo
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Experiência nesse tipo de projeto Sim (Eu já gerenciei esse tipo de projeto)
Integrações de API Outros (Outras APIs)
Plataformas exigidas Windows, Linux / Unix
Prazo de Entrega: Não estabelecido
Habilidades necessárias