Ir para conteúdo
  • Cadastre-se

dev botao

Requisito VII – Item 3c


  • Este tópico foi criado há 4722 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

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 para o comentário
Compartilhar em outros sites

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