Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Prezados, 
Quando executo o comando

ECF.ArquivoMFD_DLL( "01/10/2014", "31/10/2014", "c:\teste\SintegraECF201410.txt", docTodos, finSintegra )
numa Bematech ou Daruma, tudo ok. Gera o arquivo esperado com registros 60.

 

Mas rodando em uma Epson TM-T81 FBIII ele me gerou o arquivo anexo e um segundo arquivo com o nome ACBr_CTP.txt idêntico ao arquivo c:\teste\SintegraECF201410.txt

Seguem arquivos anexos.

 

 

ACBr_CTP.txt

SINTEGRA-EP081210000000037204-201410.txt

  • Fundadores
Postado

Segue uma prévia... (em anexo)

 

Notei que no caso da Epson, existe um método específico para informar os dados do registro 10 e 11...

 

Não sei bem como poderíamos passar essas informações pro ACBrECF, de dentro do ACBrMonitor

function EPSON_Config_Dados_Sintegra(pszRazaoSocial:PChar; pszLogradouro:PChar; pszNumero:PChar;
pszComplemento:PChar; pszBairro:PChar; pszMunicipio:PChar;
pszCEP:PChar; pszUF:PChar; pszFax:PChar; pszFone:PChar;
pszNomeContato:PChar):Integer;StdCall;External 'InterfaceEpson.dll';

ACBrMonitor.zip

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Daniel, funcionou o relatório corretamente, sem as informações de empresa e etc... como esperado no momento, pois não foram passados os argumentos. Mas como eu fundo esse arquivo aos xml de compra e venda, para mim, resolveu. Esses dados podem ser pegos do próprio cadastro que se faz na parte de configuração do ACBrMonitor, não? Lá informamos dados da empresa. E se não tiver, vai vazio como está indo.

 

Uma coisa que notei foi o seguinte. Ao validar no validador sintegra, faltou o registro 75 do registro 60I de itens cancelados. Ele não gerou o 75 quando o item foi cancelado. Esse é o comportamento mesmo? Creio que deveria gerar, pois o sintegra deve ser válido, correto? E sendo assim não validou corretamente.

 

Outra coisa. Ele continuou a gerar os mesmos arquivos que estava gerando e gerou um ACBr_SIN nesse arquivo está o relatório do Sintegra. Na imagem em anexo eu mostro o que ele gerou. Deveria ter somente o SINTEGRA-EP081210000000037204 com o conteúdo do ACBr_SIN.

 

Abraço!

post-25555-0-88898900-1415729978_thumb.p

  • Fundadores
Postado

A geração do arquivo é toda feita pela DLL...

 

Somente o suporte da Epson poderia responder: https://epsonstars.com/v3/php/

 

Quanto aos demais arquivos gerados... eles provavelmente são criados pela DLL como arquivos temporários...  A limpeza deveria ser feita por eles...

 

Se tivermos informações precisas de como os temporários são criados, poderíamos apagá-los após a geração do arquivo...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)

Mas as dlls deles geraria arquivos com o nome sugestivo ACBr_....? Creio que haja um erro de lógica ali, mesmo porque nem o nome que eu dei ao arquivo ele respeitou.

Editado por Siepi
  • Fundadores
Postado

O Nome é informado no parâmetro da DLL...

 

Veja o código... nenhum processamento de arquivo é feito pelo ACBr...

procedure TACBrECFEpson.ArquivoMFD_DLL(DataInicial, DataFinal: TDateTime;
  NomeArquivo: AnsiString; Documentos: TACBrECFTipoDocumentoSet;
  Finalidade: TACBrECFFinalizaArqMFD);
Var
  Resp, Tipo, Sintegra : Integer ;
  ArqTmp, DiaIni, DiaFim : AnsiString ;
  OldAtivo : Boolean ;
begin
  LoadDLLFunctions ;

  ArqTmp := ExtractFilePath( NomeArquivo ) + 'ACBr' ;
  DeleteFiles( ArqTmp + '_???.txt' ) ;

  Tipo     := FinalidadeParaTipo( Finalidade );
  Sintegra := FinalidadeParaSintegra( Finalidade );

  OldAtivo := Ativo ;
  try
    AbrePortaSerialDLL ;

    DiaIni := FormatDateTime('ddmmyyyy',DataInicial) ;
    DiaFim := FormatDateTime('ddmmyyyy',DataFinal) ;

    GravaLog( '   xEPSON_Obter_Dados_MF_MFD' );
    Resp := xEPSON_Obter_Dados_MF_MFD(  DiaIni, DiaFim,
                                        0,                // 0 = Faixa em Datas
                                        0,                // 0 = Sem Espelhos
                                        Tipo,
                                        Sintegra,
                                        ArqTmp );
    if (Resp <> 0) then
      raise EACBrECFERRO.Create( ACBrStr( 'Erro ao executar EPSON_Obter_Dados_MF_MFD.'+sLineBreak+
                                       'Cod.: '+IntToStr(Resp) ))
  finally
    FechaPortaSerialDLL(OldAtivo);
  end ;

  if FileExists( ArqTmp + '_CTP.txt' ) then
   begin
     if not CopyFileTo( ArqTmp + '_CTP.txt', NomeArquivo ) then
        raise EACBrECFERRO.Create( ACBrStr( 'Erro ao copiar: '+sLineBreak+
                                ArqTmp + '_CTP.txt'+sLineBreak+
                                'para'+sLineBreak+NomeArquivo ))
   end
  else
     raise EACBrECFERRO.Create( ACBrStr( 'Erro na execução de EPSON_Obter_Dados_MF_MFD.'+sLineBreak+
                            'Arquivo: '+ArqTmp + '_CTP.txt não gerado' ))
end;

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Cara, que estranho. Ele cria o arquivo com os registros R no arquivo que era para ser do SINTEGRA e o que tem os registros 60 ele cria em outro nada a ver.

×
×
  • 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.