none
Arquivo MFD, Espelho MFD e Ato Cotepe 17/04 por COO e Data

    General discussion

  • 46ª Edição • Curitiba, 28 de julho de 2009


     
    Arquivo MFD, Espelho MFD e Ato Cotepe 17/04 por COO e Data

     

    Caro parceiro,

    Se você está preparando sua aplicação para homologar o PAF-ECF, já deve ter se deparado com o "Requisito VII" do Roteiro de Análise Funcional, mais especificamente os itens 5 e 6, onde tratam da geração do espelho MFD por intervalo de COO e data, e geração do Ato Cotepe 17/04 com base no arquivo MFD também por intervalo de COO e data, respectivamente.

    Reprodução dos itens 5 e 6:

    ITEM 5: “Espelho MFD”, para gerar arquivo eletrônico da Memória de Fita Detalhe, no formato de “espelho” dos documentos nela contidos, com possibilidade de seleção por período de data e por intervalo de COO, devendo assiná-lo digitalmente inserindo ao final do arquivo uma linha com o registro tipo EAD...

    ITEM 6: “Arq. MFD” para gerar arquivo eletrônico da Memória de Fita Detalhe conforme leiaute estabelecido no Ato COTEPE/ICMS 17/04 com possibilidade de seleção por período de data e por intervalo de COO, devendo assiná-lo digitalmente inserindo ao final do arquivo uma linha com o registro tipo EAD...

    Então, o objetivo deste Flash Tip é orientá-lo a como atender estes dois itens, com dicas de programação usando nossa dll de alto-nível BemaFI32.dll, e também as BemaMFD.dll e BemaMFD2.dll na geração do Ato Cotepe 17/04.

    Vamos lá!

    - ITEM 5:

    O espelho MFD nada mais é do que a imagem, na íntegra, dos cupons emitidos no ECF. Para atender este item, devemos usar simplesmente duas funções encontrada na BemaFI32.dll:

    1. Bematech_FI_DownloadMFD. Função que faz a captura da memória de fita-detalhe (MFD) da impressora e;
    2. Bematech_FI_FormatoDadosMFD. Função que formata a MFD para arquivo texto.

    A função Bematech_FI_DownloadMFD possui os seguintes parâmetros:

    par1: String com o caminho + nome do arquivo de saída que será criado com o conteúdo da MFD da impressora. Exemplo: "C:\DOWNLOAD.MFD".
    par2:

    String com o tipo do download da MFD, onde:
    "0" (zero) para download total da MFD da impressora;
    "1" (um) para download por intervalo de data ou;
    "2" (dois) para download por intervalo de COO.

    par3: String com a data inicial ou o COO inicial, no formato "DDMMAA" ou "DDMMAAAA" para a data, ou COO com no máximo 6 dígitos (formato "999999").
    par4: String com a data final ou o COO final, no formato "DDMMAA" ou "DDMMAAAA" para a data, ou COO com no máximo 6 dígitos (formato "999999").
    par5: String com o número do usuário proprietário do ECF, no tamanho de 1 dígito.

    Importante: Se o tipo do download for "Total", não será necessário informar os parâmetros par3, par4 e par5. Neste caso, estes parâmetros são informados com string nula.

    • Em VB, temos esta função implementada assim:

    iRetorno = Bematech_FI_DownloadMFD("C:\DOWNLOAD.MFD", "2", "000500", "001000", "1")

    • Em Delphi, temos esta função implementada assim:

    cArquivo      := 'C:\DOWNLOAD.MFD';
    cTipoDownload := '2';
    cCOOInicial   := '000500';
    cCOOFinal     := '001000';
    cUsuario      := '1';

    iRetorno := Bematech_FI_DownloadMFD( pchar( cArquivo ), pchar( cTipoDownload ), pchar( cCOOInicial ), pchar( cCOOFinal ),
    pchar( cUsuario ) );

    Neste exemplo, estamos fazendo um download da MFD da impressora por intervalo de COO do "000500" ao "001000" e para o usuário "1".

    A função Bematech_FI_FormatoDadosMFD possui os seguintes parâmetros:

    par1: String com o caminho + nome do arquivo de origem contendo o download da MFD da impressora. Exemplo: "C:\DOWNLOAD.MFD".
    par2:

    String com o caminho + nome do arquivo de saída que será criado com o conteúdo convertido da MFD da impressora. Exemplo: "C:\ESPELHO.TXT".

    par3: String com o tipo do formato de conversão da MFD, onde:
    "0" (zero) para formato .TXT (é criado um arquivo TXT com a imagem dos cupons referentes ao movimento);
    "1" (um) para formato .RTF (é criado um arquivo RTF com a imagem dos cupons referentes ao movimento) ou;
    "2" (dois) para formato .MDB (é criado um arquivo MDB com tabelas referentes ao movimento)
    par4: String com o tipo do download da MFD, onde:
    "0" (zero) para download total da MFD da impressora;
    "1" (um) para download por intervalo de data ou;
    "2" (dois) para download por intervalo de COO.
    par5: String com a data inicial ou o COO inicial, no formato "DDMMAA" ou "DDMMAAAA" para a data, ou COO com no máximo 6 dígitos (formato "999999").
    par6: String com a data final ou o COO final, no formato "DDMMAA" ou "DDMMAAAA" para a data, ou COO com no máximo 6 dígitos (formato "999999").
    par7: String com o número do usuário proprietário do ECF, no tamanho de 1 dígito.

    Importante: Se o tipo do download for "Total", não será necessário informar os parâmetros par5, par6 e par7. Neste caso, estes parâmetros são informados com string nula.

    • Em VB, temos esta função implementada assim:

    iRetorno = Bematech_FI_FormatoDadosMFD("C:\DOWNLOAD.MFD", "C:\ESPELHO.TXT", "0", "2", "000500", "001000", "1")

    • Em Delphi, temos esta função implementada assim:

    cArquivoOrigem  := 'C:\DOWNLOAD.MFD';
    cArquivoDestino := 'C:\ESPELHO.TXT';
    cTipoFormato    := '0';
    cTipoDownload   := '2';
    cCOOInicial     := '000500';
    cCOOFinal       := '001000';
    cUsuario        := '1';

    iRetorno := Bematech_FI_FormatoDadosMFD( pchar( cArquivoOrigem ), pchar( cArquivoDestino ), pchar( cTipoFormato ), pchar( cTipoDownload ), pchar( cCOOInicial ), pchar( cCOOFinal ),
    pchar( cUsuario ) );

    Neste exemplo, estamos gerando um espelho em texto da MFD da impressora por intervalo de COO do "000500" ao "001000" e para o usuário "1".

    Assim, atendemos o item 5 do requisito VII do PAF-ECF.

    - ITEM 6:

    Este item pede para gerar o arquivo de download da MFD no formato do Ato Cotepe 17/04, o mesmo exigido para a Nota Fiscal Paulista, porém assinado (registro EAD). Para isso, precisamos também de apenas duas funções:

    1. Bematech_FI_DownloadMFD (função já vista anteriormente). Usaremos esta função para fazer a captura da MFD da impressora, pois iremos passar no primeiro parâmetro da função abaixo, o arquivo .mfd previamente gerado e;
    2. BemaGeraRegistrosTipoE. Função encontrada na BemaMFD.dll e BemaMFD2.dll para geração dos registros tipo E pertencentes ao layout do Ato Cotepe 17/04.

    A função BemaGeraRegistrosTipoE possui os seguintes parâmetros:

    par1: String com o caminho + nome do arquivo de origem contendo o download da MFD da impressora. Exemplo: "C:\DOWNLOAD.MFD".
    par2:

    String com o caminho + nome do arquivo de saída que será criado com o conteúdo convertido da MFD da impressora. Exemplo: "C:\COTEPE1704.TXT".

    par3: String com a data inicial, no formato "DDMMAAAA".
    par4: String com a data final, no formato "DDMMAAAA".
    par5: String com a razão social do estabelecimento proprietário do ECF.
    par6: String com o endereço do estabelecimento proprietário do ECF.
    par7: String nula.
    par8: String com o comando de geração dos registros, fixo em "2".
    par9: String nula.
    par10: String nula.
    par11: String nula.
    par12: String nula.
    par13: String nula.
    par14: String nula.
    par15: String nula.
    par16: String nula.
    par17: String nula.
    par18: String nula.
    par19: String nula.
    par20: String nula.
    par21: String nula.
    • Em VB, temos esta função implementada assim:

    cArqMFD = "C:\DOWNLOAD.MFD"
    cArqTXT = "C:\COTEPE1704.TXT"
    cRazao = "Bematech S/A"
    cEndereco = "Rua ABCDEF, 1234"
    cCMD = "2"
    cDataIni = "01062009" ' DDMMAAAA
    cDataFim = "30062009" ' DDMMAAAA

    iRetorno = BemaGeraRegistrosTipoE(cArqMFD, cArqTXT, cDataIni, cDataFim, cRazao, cEndereco, "", cCMD, "", "", "", "", "", "", "", "", "", "", "", "", "")

    • Em Delphi, temos esta função implementada assim:

    cArqMFD   := 'C:\DOWNLOAD.MFD';
    cArqTXT   := 'C:\COTEPE1704.TXT';
    cRazao    := 'Bematech S/A';
    cEndereco := 'Rua ABCDEF, 1234';
    cCMD      := '2';
    cDataIni  := 01062009; // DDMMAAAA
    cDataFim  := 30062009; // DDMMAAAA

    iRetorno := BemaGeraRegistrosTipoE(pchar(cArqMFD), pchar(cArqTXT), pchar(cDataIni), pchar(cDataFim), pchar(cRazao), pchar(cEndereco), '', pchar(cCMD), '', '', '', '', '', '', '', '', '', '', '', '', '');

    Importante:

     

    • Para os modelos de impressoras fiscais MP-2000 TH FI e MP-6000 TH FI, a função BemaGeraRegistrosTipoE deve ser chamada da BemaMFD.dll.
    • Para os modelos de impressoras fiscais MP-2100 TH FI, MP-3000 TH FI, MP-4000 TH FI, MP-6100 TH FI e MP-7000 TH FI, a função BemaGeraRegistrosTipoE deve ser chamada da BemaMFD2.dll.

    No exemplo acima, temos a geração do Ato Cotepe 17/04 por intervalo de datas. Podemos também realizar esta geração por intervalo de COOs. Para isso, temos dois exemplos prontos disponíveis para baixar através dos links:

    - em VB: http://www.bematech.com.br/suporte/downloads/fisc_win/RegistrosTipoE_VB.zip
    - em Delphi:

    http://www.bematech.com.br/suporte/downloads/fisc_win/RegistrosTipoE_Delphi.zip

    Assim, atendemos o item 6 do requisito VII do PAF-ECF.

    Além disso, não podemos esquecer que tanto o arquivo contendo o espelho da MFD quanto o arquivo do Ato Cotepe 17/04 devem ser assinados (registro EAD). Sendo assim, podemos usar facilmente a sign_bema.dll.

    Maiores detalhes sobre estas funções, podemos consultar no help on-line da BemaFI32.dll, disponível na WEB.

     

    Boas implementações!

     
    NOVOS CANAIS DE
    SUPORTE EXCLUSIVO AO DESENVOLVEDOR BEMATECH !



    MSN, Email e Skype






    FÓRUM DE AUTOMAÇÃO BEMATECH

    Venha trocar informações e obter conhecimentos sobre as dlls, drivers, produtos e serviços que a Bematech presta à sua comunidade de desenvolvedores!

    Não perca mais tempo! Registre-se agora mesmo.






    TABELA DE PRODUTOS BEMATECH EXCLUSIVA PARA PARTNERS!

    A Bematech lançou uma tabela exclusiva para os Partners. Agora, você pode adquirir produtos Bematech para desenvolvimento a preços subsidiados!

    Se você ainda não está cadastrado no programa Bematech Software Partners, cadastre-se e obtenha mais esta vantagem exclusiva para Partners Bematech.

    Consulte nossa filial mais próxima de você:

    - Bahia
    (71) 3341-3621

    - Centro-Oeste
    (62) 3092-8555

    - Amazonas
    (92) 3212-6500

    - Minas Gerais
    (31) 2121-4500

    - Pernambuco
    (81) 3312-9800

    - Ribeirão Preto
    (16) 3911-4434

    - Rio de Janeiro
    (21) 3282-7600

    - Rio Grande do Sul
    (51) 3337-7771

    - Santa Catarina/Paraná
    (48) 3241-4373
    (41) 3351-2717

    - São Paulo
    (11) 5033-4700



    O Bematech Software Partners, lançado em 1997, continua sendo o mais inovador programa de parcerias já lançado no mercado brasileiro de Automação Comercial.

    Contando com o talento de desenvolvedores de software de todo o país e do suporte técnico Bematech esse programa tornou-se referência no mercado de Automação Comercial.

    O Bematech Software Partners traz novidades para você! Simplificando o relacionamento, agregando maior valor à parceria e dando ganhos reais ao parceiro, o BSP apresenta novos benefícios às modalidades Developer, Certified e Solution Partner.

    Para participar, basta cadastrar os dados de sua empresa.







    O 1º PODCAST do desenvolvedor de Automação Comercial.

    Agora ficou ainda mais fácil acompanhar as notícias da Bematech.





    BEMATECH
    DEVELOPER´S DAY

    Você pode conferir as fotos dos eventos Bematech Developer´s Day no

    BemaCast Eventos!







     
    Caso não queira receber mais o Flash Tip clique aqui
    Copyright © Bematech Ind. e Com. de Equipamentos Eletrônicos S/A


    Tuesday, July 28, 2009 3:15 PM

All replies

  • Você teria um exemplo de implementação do DownloadMFD em Java?
    Estou tendo problema com essa função onde ela está me retornando o valor 3.

    Wednesday, July 21, 2010 5:45 PM