Business - Automação Comercial
Bematech: Arquivo MFD, Espelho MFD e Ato Cotepe 17/04 por COO e Data
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.
por André Luiz R. MunhozSe 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:
- Bematech_FI_DownloadMFD. Função que faz a captura da memória de fita-detalhe (MFD) da impressora e;
- 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: |
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"; |
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"; |
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:
- 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;
- 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" |
- Em Delphi, temos esta função implementada assim:
cArqMFD :=
"C:\DOWNLOAD.MFD"; |
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!
- DarumaFramework.SO no LinuxAutomação Comercial
- Palavra de status da impressora na DarumaFrameworkAutomação Comercial
- TEF – Comprovante de Crédito ou DébitoAutomação Comercial
- Comunicar com equipamentos Daruma em linguagens 16bits e DOSAutomação Comercial
- Verificando Redução Z nas Impressoras DarumaAutomação Comercial