Jump to content

dev botao

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

Recommended Posts

Posted

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

Posted

É 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

Posted

Obrigado pela informação viallyisrael. É que não utilizo o ACBrECF, por isso queria saber como estava a implementação interna do componente para essa situação, então o Daniel me indicou onde poderia localizar nos fontes do componente.

Obrigado a todos,

Fabrício Gomes Araújo

Posted

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

  • 4 weeks later...
Posted

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!

  • Este tópico foi criado há 5133 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.

The popup will be closed in 10 seconds...