Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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

Postado

É 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

Postado

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

Postado

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 semanas depois ...
Postado

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á 4963 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.