Jump to content

dev botao

Requisito VII – Item 3c


Fabrício G. Araújo
  • Este tópico foi criado há 4919 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Amigos,

Vi alguns tópicos falando sobre a questão do Requisito VII – Item 3c, que o ACBrECF utiliza as dlls do fabricante do ECF para atender esse requisito.

No caso específico da Bematech é a função Bematech_FI_ArquivoMFD da BemaFI32.dll, utilizando a opção 0 = MF.

Só que tem um problema, a função do fabricante apenas aceita intervalo de DATA e COO, e o requisito VII deve ser informado DATA e CRZ.

Liguei no suporte da Bematech e eles falaram que teria que emitir um espelho da Leitura da Memória fiscal (por CRZ), assim gerando um arquivo em disco, e então me virar para vasculhar o arquivo e identificar o intervalo correspondentes das CRZs extraindo o período de DATA ou COOs. Só depois disso, utilizar a função Bematech_FI_ArquivoMFD.

Como vocês estão fazendo internamente do ACBrECF?

Apesar de que o teste 17A ser falho e não informa o tipo de período utilizado, os meus homologadores (PUC-GO) utilizam os dois (DATA e CRZ) no teste.

Quem puder me ajudar agradeço.

Fabrício Gomes Araújo

Link to comment
Share on other sites

É isso mesmo que queria Daniel. Muito obrigado.

Já tínhamos até desenvolvido a nossa rotina, a de vocês ficou bem mais enxuta. :-)


    try

      StrList := TStringList.Create;

      StrList.LoadFromFile(ArqAux);


      for i := 0 to StrList.Count-1 do

      begin

        Registro := StrList.Strings[i];


        // Primeiro procura este registro, e a partir dele começa a procura do intervalo

        RegistroProcurado := 'CRZ   CRO   COO                 DATA     HORA';

        if Pos(Registro, RegistroProcurado)> 0 then

        begin

          indice := i;


          for c := indice to StrList.Count-1 do

          begin

            Registro := StrList.Strings[c];


            // teste com o emulador

            CRZ := Copy(Registro, 2, 4);


            if (StrToIntDef(CRZ, 0) <> 0) then

            begin

              if (COO2 = '') then

                COO2 := Copy(Registro, 24, 10)

              else

                COO1 := Copy(Registro, 24, 10);

            end;

          end;


          Break;

        end;

      end;

Fabrício Gomes Araújo

Link to comment
Share on other sites

ah, blz...

mas a dica que eu dou (e que me deram também) é que atualize, pq parece que a geração do ArqMFD pelo ato cotepe parece que continha um erro nas versões mais antigas

vou tentar manter o acbr atualizado, uma vez por semana ou a cada 15 dias pra n ter preocupação.

Ass. Vially Israel

Link to comment
Share on other sites

  • 4 weeks later...

Boa Noite,

Eu gero este arquivo usando a função 'EspelhoMFD_DLL' do ACBr, minha dúvida é a seguinte:

Como o ACBr vai saber se o campo é um COO ou um CRZ ?

Preciso chamar alguma função ou setar algum parametro antes de chamar 'EspelhoMFD_DLL' ?

Alguem poderia postar um exemplo?

Obrigado!

Link to comment
Share on other sites

  • Este tópico foi criado há 4919 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.