Já pensou em um dia seu aplicativo fiscal atender a todas as legislações estaduais de geração de arquivos sem ter que alterar nenhuma linha de código em seu projeto?

Hoje iremos conhecer melhor as novas implementações na DarumaFramework.dll responsáveis por tal geração, que são as chaves do grupo Redução Z localizadas nas propriedades do produto ECF.

Listagem 1. Todas estas chaves estão relacionadas ao comando da emissão de Redução Z.


            <REDUCAOZ>
            <Relatorios></Relatorios>
            <ChavePrivada></ChavePrivada>
            <RetornarInformacao></RetornarInformacao>
            <AvisarOperacoesReducaoZ>0</AvisarOperacoesReducaoZ>
            <MensagemAviso></MensagemAviso>
            <ExecutarAntesOuDepois>1</ExecutarAntesOuDepois>
            <AvisarReducaoZ>0</AvisarReducaoZ>
        </REDUCAOZ>
        

Confira abaixo a utilização de cada uma chaves.

Chave “Relatorios”

Esta é a chave que indica os relatórios que serão gerados antes ou depois da Redução Z ser realizada. A chave pode ser programada para a geração de apenas um relatório ou de múltiplos relatórios. Quando a geração for acima de um relatório a indicação dos relatórios pode ser feita colocando um sinal “+” para separar um relatório do outro conforme abaixo:


                <Relatorios>NFP+MFD+NFPTDM</Relatorios>
            

Tabela com cada um dos relatórios que o método possibilita a geração:

Parâmetro Legislação
NFP Nota Fiscal Paulista (SP)
NFPTDM Nota Legal (DF), Nota Rondoniense (RO), Nota Alagoana (AL)
MFD Cupom Mania (RJ)

Nome dos arquivos gerados

MFD - ATO_MFD_DATA.TXT.

NFP - O nome dos arquivos de nota fiscal paulista seguem o formato FFM12345.DMA, onde FF é a identificação do fabricante (DR no caso da Daruma), M é a identificação do modelo do ECF, 12345 são os 5 últimos caracteres do número de fabricação do ECF e DMA é a identificação do dia, mês e ano do movimento codificados com números de 1 a 9 e letras de A à Z.

NFPTDM - O nome dos arquivos de Nota Legal (DF), Nota Rondoniense (RO), Nota Alagoana (AL), seguem o formato FFM12345.DMA, onde FF é a identificação do fabricante (DR no caso da Daruma), M é a identificação do modelo do ECF, 12345 são os 5 últimos caracteres do número de fabricação do ECF e DMA é a identificação do dia, mês e ano do movimento codificados com números de 1 a 9 e letras de A à Z. Caso a opção NFP também seja selecionada, o arquivo vai ser criado com o texto "_TDM" no final do nome.

É importante ressaltar que o arquivo de NFPTDM gerado pode ser apresentado para atender as legislações dos estados de DF, RO, e AL da mesma maneira, sendo compatíveis com ambas as legislações.

Ao configurar esta chave, antes ou após da Redução Z o respectivo relatório será gerado.

Durante a geração dos relatórios a impressora ficará com seu LED de Ligado piscando constantemente.

Chave “ChavePrivada”

Os arquivos gerados automaticamente podem ser assinados digitalmente, e para isto é necessário que você indique apenas o path da chave que será utilizada para assinar os relatórios gerados.

Ex:


            <ChavePrivada>C:/pvd/assinatura.key</ChavePrivada>
        

Pronto! Isso é o suficiente para que seus arquivos sejam assinados automaticamente.

Chave “RetornarInformacao”

Já pensou em gerar um arquivo apenas com as informações que você precisa relacionadas ao ECF e ainda organizado da maneira que achar melhor?

Pensamos nisto ao desenvolver esta chave. E o motivo mais relevante que nos levou à implementação da mesma, foi um recurso no qual você, desenvolvedor, pudesse capturar as informações que o contador ou um sistema de contabilidade solicite, sem ter que modificar uma linha se quer em seu aplicativo fiscal.

É isto aí, você é quem determina o layout deste arquivo!

Este foi mais um feedback solicitado pela comunidade e implementado na DarumaFramework.DLL.

Na chave indicamos os códigos das informações as quais a DLL armazenará em um arquivo de texto e estes códigos de informações devem ser indicados da seguinte forma: 78+90+91+92.

No exemplo, a DLL irá gerar um arquivo contendo as informações conforme os índices e ordenação solicitados acima.

78- Número de fabricação do ECF

90- CNPJ do usuário atual

91- IE do usuário atual

92- IM do usuário atual

O arquivo de texto é gerado no PATH indicado no XML com o nome “InformacoesECF+NumeroDeSerieECF”.

Exemplo:

Arquivo Gerado
Figura 2. Arquivo Gerado.
Conteúdo do Arquivo gerado
Figura 3. Conteúdo do Arquivo gerado

Para indicarmos os índices no qual desejamos que os arquivos sejam constituídos, é necessário que os valores sejam inseridos na chave conforme a tabela de consulta a informações do ECF.

Chave “AvisarOperacoesReducaoZ”

No momento em que os relatórios estão sendo gerados a impressora não pode ser interrompida, por este motivo criamos a chave AvisarOperacoesReducaoZ que possibilita a impressão de uma mensagem de aviso que os relatórios serão gerados, em um Relatório Gerencial. Está é uma chave binária, na qual habilita ou desabilita a impressão de um relatório gerencial antes da Redução Z ser impressa. Caso a chave esteja com o valor "1" o relatório será impresso, caso contrario, o relatório não será impresso.

Obs.: O relatório também não será impresso se a Redução Z estiver pendente.

É possível que a mensagem deste relatório seja configurada, para isto insira a mensagem desejada na chave MensagemAviso.

Exemplo:


            <MensagemAviso>
            Geracao de relatorio sera executada automaticamente 
            apos a reducao Z, favor nao desligar a impressora
            </MensagemAviso>
        

Veja como será impresso o relatório conforme configurado antes da emissão da Redução Z

Impressão do relatório>
Figura 4. Impressão do relatório

Chave “ExecutarAntesOuDepois”

A configuração desta chave é o que determina se os relatórios serão gerados antes ou depois da Redução Z.

Caso a chave possua o valor "0” os relatórios serão gerados antes da Redução Z, ou caso a chave possua valor "1” os relatórios serão gerados imediatamente após a emissão do documento de Redução Z.

Exemplo:


            <ExecutarAntesOuDepois>1</ExecutarAntesOuDepois>
        

No caso acima os relatórios serão gerados após a emissão da Redução Z.

Chave “AvisarReducaoZ”

Chega de emitir a Redução Z do movimento atual por engano e a sua impressora ficar bloqueada até o dia seguinte.

Está é uma chave binária, na qual quando configurada com o valor "1" permite que a DLL devolva no retorno da função de emissão da Redução Z (iReducaoZ_ECF_Daruma) o numero de retorno “-13” que se tratado corretamente utilizando o tratamento de retornos da DarumaFramework.DLL nos devolverá uma mensagem avisando que a impressora estará bloqueada até as 23:59:59 impedindo que a Redução Z seja impressa, sendo preciso chamar o método novamente para que a Redução Z seja emitida e assim evitando o bloqueio indesejado do ECF.

Fluxo do processo
Figura 5. Fluxo do processo.
Simulação através do exemplo DarumaFramework_Delphi.exe
Figura 6. Simulação através do exemplo DarumaFramework_Delphi.exe.

Um bom trabalho e até a próxima!