Completed

Software para emissão de Nfe e Nfce / impressão de Danfe

Published on the November 22, 2016 in IT & Programming

About this project

Open

Preciso de um software para rodar no Ubuntu Server, sem Graphic User Interface (GUI). No servidor, utilizo apenas a versão do terminal.
Acredito que por se tratar de linux possa ser desenvolvido em java, mas aceito sugestões.

Especificações gerais:
- Base de dados: MySQL
- A comunicação com a base de dados será feita via "procedures", que são alguns procedimentos armazenados na base de dados que retornar informações específicas, tanto para obter os dados (select) quanto para atualizar as informações após a missão realizada (update)

Especificações de rotinas:
1 - Gerar chave, assinar, validar e transmitir NF para autorização
2 - Cancelar NF
3 - Inutilizar numeração de NF
4 - Imprimir (DANFE e Relatório)

Rotina 1
Nome do procedimento para obter os dados de emissão: NFautorizacao
Campos retornados: id, xml, cnpj, ie, razao_social, csc, certificado, certificado_senha
*id é a identificação da NF na base de dados
*csc é o código de segurança do contribuinte
*xml é o arquivo xml com as informações da nota fiscal no leiaute padrão do fisco
*certificado é a identificação do certificado a ser utilizada (previamente cadastrado no sistema Java no Ubuntu)
*certificado_senha é a senha para o respectivo certificado escolhido

Nome do procedimento para atualizar as informação da base após a rotina: NFautorizacaoUpdate
Campos que deverão ser preenchidos: id, xml_envio, xml_resposta, webservice_codigo, webservice_mensagem, protocolo_autorizacao, situacao
*id é o id obtido no procedimento anterior
*xml_envio é o xml enviado ao webservice do fisco
*xml_resposta é o xml obtido como resposta
*webservice_codigo e webservice_mensagem são o código e a mensagem do status do webservice
*protocolo_autorizacao é o protocolo de AUTORIZAÇÃO de uso da Nota Fiscal
*situacao é a situacao da Nota Fiscal após o evento (para esta rotina as situações poderão ser: "2" se a Nota foi autorizada / "3" se foi emitida em contingencia / "4" se o uso foi denegado)

Para NF modelo 65 (NFCe) quando não for possível emitir por falta de comunicação ou outro erro, emitir em cotingência offline e gravar o arquivo xml com as mensagens obrigatórias de contingência exigidas pelo fisco e tag tpEmis = 9.


Rotina 2
Nome do procedimento para obter os dados: NFcancelamento
Campos retornados: id, xml, cnpj, ie, razao_social, certificado, certificado_senha
*id na base de dados da NF já autorizada
*xml nesta chamada é o arquivo da Nota Fiscal a ser cancelada (arquivo autorizado, com protocolo de autorização)
*certificado é a identificação do certificado a ser utilizada (previamente cadastrado no sistema Java no Ubuntu)
*certificado_senha é a senha para o respectivo certificado escolhido

Nome do procedimento para atualizar as informação da base após a rotina: NFcancelamentoUpdate
Campos: id, xml_envio, xml_resposta, webservice_codigo, webservice_mensagem, protocolo_autorizacao, situacao
*id é o id obtido no procedimento anterior
*xml_envio é o xml enviado ao webservice do fisco
*xml_resposta é o xml obtido como resposta
*webservice_codigo e webservice_mensagem são o código e a mensagem do status do webservice
*protocolo_autorizacao é o protocolo de CANCELAMENTO de uso da Nota Fiscal
*situacao é a situacao da Nota Fiscal após o evento (para este, poderá ser: 5 se a Nota foi cancelada)


Rotina 3
Nome do procedimento para obter os dados: NFinutilizacao
Campos retornados: id, modelo, numero, serie, cnpj, ie, razao_social, certificado, certificado_senha
*modelo, numero e serie são os dados da numeração a ser inutilizada

Nome do procedimento para atualizar as informação da base após a rotina: NFinutilizacaoUpdate
Campos que deverão ser informados: id, xml_envio, xml_resposta, webservice_codigo, webservice_mensagem, protocolo_autorizacao, situacao
*id é o id obtido no procedimento anterior
*xml_envio é o xml enviado ao webservice do fisco
*xml_resposta é o xml obtido como resposta
*webservice_codigo e webservice_mensagem são o código e a mensagem do status do webservice
*protocolo_inutilizacao é o protocolo de homologação da INUTILIZAÇÃO de uso da numeração da Nota
*situacao é a situacao da Nota Fiscal após o evento (para este, poderá ser: 6 se a numeração foi inutilizada)


Rotina 4
Imprimir danfe ou relatório
Procedimento utilizado para obter as informações a serem impressas: impressao
Funcionamento: Retorna as informações necessárias para realizar impressões
Campos retornados: id, tipo, leiaute, arquivo, destino
*tipo é o tipo de impressão (1 para impressão física (em impressora térmica ou laser) / 2 para impressão em pdf)
*leiaute é o leiaute a impressão (1 para o leiaute NFCe / 2 para NFe / 3 para relatório / 4 senha). É Importante respeitar o leiaute da impressão mas impressões em pdf.
*Arquivo é o arquivo para ser impresso (para leiautes "1"-NFCe e "2"-Nfe será sempre o xml de uma nota fiscal com protocolo de autorização de uso ou informação de emissão em contingência (importante observar que o leiaute de impressão de danfe em contingência necessita da exibição de alguns campos com informações obrigatórias, informações essas escritas no arquivo xml quando a nf é emitida em contingencia bem como a ocultação de outras informações, como o protocolo de autorização de uso, entre outros..), Para leiautes "3"-Relatório e "4"-Senha será um arquivo xml com os campos especificados no final da especificação.
*Destino é a identificação da impressora a ser utilizada  (previamente cadastradas no sistema Java no Ubuntu) ou a pasta de destino para armazenar o arquivo em pdf em caso de impressão em PDF

Procedimento utilizada para informar o resultado da impressão: impressaoUpdate
Funcionamento: Utilizada para gravar o resultado da chamada impressao na base de dados
Campos: id, situacao, erro_codigo, erro_mensagem
*situacao é a situacao da impressão (2 se foi impresso com sucesso / 3 se houve erro com a impressora / 4 se houve erro desconhecido)
*erro_codigo e erro_mensagem são os  retornados pela impressora


Estrutura XML para Relatório:
<relatorio>
<pdv></pdv>
<qtdePessoas></qtdePessoas>
<tempoPermanencia></tempoPermanencia/>
<qtdeItens></qtdeItens>

<produtos>
      <produto>
              <nome></nome>
              <valorUnitario></valorUnitario>
              <qtde></qtde>
              <valorTotal></valorTotal>
      </produto>
</produtos>

<subtotal></subtotal>
<comissao></comissao>
<total></total>
<totalPago></totalPago>
<restaPagar></restaPagar>
</relatorio>

Estrutura XML para Senhas:
<senha>
        <numero></numero>
        <horarioPedido></horarioPedido>
</senha>

Entrega: Arquivos para instalação, código comentado e assistência para instalar e configurar no UBUNTU: Software desenvolvido, impressora bematech MP4200TH e certificado A1 e A3.

O leiaute gráfico do relatório e senha eu passarei.

Category IT & Programming
Project size Small
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)

Delivery term: Not specified

Skills needed

Other projects posted by J. L. D.