Completed

Monitor de Nfe e Nfce - Modelos 55 e 65

Published on the September 01, 2016 in IT & Programming

About this project

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

Other projects posted by J. L. D.