Ir para conteúdo
  • Cadastre-se

dev botao

Espelho MFD na Urano Logger3


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

Recommended Posts

Senhores,

Estava usando Urano Logger para preparar meu sistema para homologação do PAF-ECF (apesar do sistema funcionar com outras ECF's).

Eu não uso ACBrSerial, faço direto com as DLL's (uso outras bibliotecas do ACBr: SPED ICMS, PIS-COFINS, PAF-ECF, BALANÇA, etc)... pretendo migrar para ACBrSerial aos poucos.

Eu vi em outra thread o pessoal comentando sobre a implementação do "Espelho MFD" para Urano no ACBr, isso foi feito?

A maioria dos fabricantes desenvolveram DLL's com suporte a esta função, mas em contato com a Urano descobri que a DLL deles não tem suporte a isso... o homologador falou que sem essa função funcionando eu seria reprovado.

Antes de mudar para outra ECF pergunto: alguém conseguiu implementar "Espelho MFD" na "unha" para Urano?

Eles me passaram um exemplo de implementação em VB... mas nessa altura do campeonato não vou ter tempo para converter isso para Delphi... estou pensando em mudar de ECF. (estou copiando o exemplo em VB em anexo).

Alguma sugestão pessoal?

exemplo_espelho_urano.txt

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

Bom dia,

Para urano eu uso AcbrEcfFiscnet,

Implementei da seguinte maneira:

//Declaração

procedure EspelhoMFD_DLL(DataInicial, DataFinal: TDateTime;

NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; override ;

procedure EspelhoMFD_DLL(COOInicial, COOFinal: Integer;

NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; override ;

==================================================================================

procedure TACBrECFFiscNET.EspelhoMFD_DLL(DataInicial, DataFinal: TDateTime;

NomeArquivo: String; Documentos: TACBrECFTipoDocumentoSet = [docTodos]);

//Totall - Douglas

var

Linhas: TStringList;

begin

Linhas := TStringList.Create;

LeituraMFDSerial(DataInicial, DataFinal, Linhas, Documentos);

WriteToTXT(NomeArquivo, Linhas.Text, False);

end;

procedure TACBrECFFiscNET.EspelhoMFD_DLL(COOInicial, COOFinal: Integer;

NomeArquivo: String; Documentos: TACBrECFTipoDocumentoSet);

//Totall - Douglas

var

Linhas: TStringList;

begin

Linhas := TStringList.Create;

LeituraMFDSerial(COOInicial, COOFinal, Linhas, Documentos);

WriteToTXT(NomeArquivo, Linhas.Text, False);

end;

acredito que deve ter já implementado a função citada em vermelho,

caso não tenha avise que posto ela tbm.

para o funcionamento deve-se usar a dll leitura.dll que segue em anexo.

espero ter ajudado.

Urano1FIT.rar

Link para o comentário
Compartilhar em outros sites

Eu tinha visto exatamente seu post sobre isso. Muito legal.

Eu tenho o ACBr com a última revisão do SVN, vou fazer o teste.

Eu acredito que não fica "gambiarra" eu FECHAR minha comunicação com a DLL (forma direta), e mandar ABRIR a comunicação novamente usando ACBr somente para esse caso do ESPELHO.

O que acha?

Obrigado!!

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Um palpite...

Urano, DataRegis, Termoprinter, Elgin, ZPM usam o mesmo protocolo "FiscNet"

Experimente alterar a linha 2628 de ACBrECFFiscNet.pas, para inserir a Urano na pesquisa:

  if pos(fsMarcaECF, 'dataregis|termoprinter|urano') > 0 then
begin
LIB_FiscNet := 'DLLG2_Gerador.dll' ;
FiscNetFunctionDetect(LIB_FiscNet, 'Gera_AtoCotepe1704_Periodo_MFD',@xGera_AtoCotepe1704_Periodo_MFD );
FiscNetFunctionDetect(LIB_FiscNet, 'Gera_PAF',@xGera_PAF );
end
[/code]

PS: Verifique se a variável [b]fsMarcaECF[/b], contém o texto "urano", ou então ajuste conforme o caso

Isso permitirá tentar usar as DLLs da TermoPrinter e DataRegis para Urano... como eu disse, o protocolo básico de todos ECFs é o mesmo... mas a DLL pode ter alguma "trava por software" para não rodar em equipamentos de outras marcas

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.

Link para o comentário
Compartilhar em outros sites

Daniel,

Fiz UPDATE no repositório, recompilei os packages, e abri o ACBrECFFiscNET... alterei na linha 2637 (na última revisão incluíram mais alguma coisa e a linha mudou) e ficou conforme me mostrou:

if pos(fsMarcaECF, 'urano|dataregis|termoprinter') > 0 then

Debuguei, ele entra no IF, chama a DLLG2_Gerador.dll, mas me retorna a seguinte mensagem:

"EspelhoMFD_DLL por período ainda não Implementado para: urano"

Testei por COO, ocorre a mesma coisa.

Tenho que alterar e mais algum outro local?

Esse código que o Douglas postou, foi comitado?

Abraços,

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

Daniel,

Fiz UPDATE no repositório, recompilei os packages, e abri o ACBrECFFiscNET... alterei na linha 2637 (na última revisão incluíram mais alguma coisa e a linha mudou) e ficou conforme me mostrou:

if pos(fsMarcaECF, 'urano|dataregis|termoprinter') > 0 then

Debuguei, ele entra no IF, chama a DLLG2_Gerador.dll, mas me retorna a seguinte mensagem:

"EspelhoMFD_DLL por período ainda não Implementado para: urano"

Testei por COO, ocorre a mesma coisa.

Tenho que alterar e mais algum outro local?

Esse código que o Douglas postou, foi comitado?

Abraços,

Bom dia

Vc já buscou junto ao fabricante do ACF, se essa dll "DLLG2_Gerador.dll", é realmente a que deve ser usada? No demo do fabricante, qual a DLL, ele usa? Se tiver o Demo e nele funciona, anexe aqui os fontes (do fabricante), para que possa ser avaliado qual a diferença, e se no ACBr esta implementado e da mesma forma.

Abs

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Bom dia Isaque!

Na primeira mensagem do tópico eu postei o código que a Urano me mandou. A DLL deles não gera o espelho... é preciso baixar a MFD e tratar... o exemplo que me mandaram é em VB (está anexo na primeira mensagem).

Ontem brincando com o código do ACBr percebi que no método "LeituraMFDSerial" do ACBrECFFiscNET tem alguns "WriteFile" comentado. Eu descomentei, e solicitei via DemoECF do ACBr a LeituraMFD... o sistema gerou 2 arquivos, um com o nome "mfd_ret.txt" e outro com "mfd_limpo.txt". Esse mfd_limpo.txt está formatado e aparentemente tudo certinho. Esse seria o ESPELHO?

Se for só preciso entender como migrar esse mesmo código para o método de gerar Espelho.

Douglas, tem como postar o código da sua implementação? pelo que vi, ainda não está no SVN.

(o LMFC com Ato17 e Arq.MFD também aparece como não implementado, mas a DLL da Urano suporta, assim que resolver o espelho eu vou tentar implementar isso no ACBr e posto no fórum).

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

Bom dia Isaque!

Na primeira mensagem do tópico eu postei o código que a Urano me mandou. A DLL deles não gera o espelho... é preciso baixar a MFD e tratar... o exemplo que me mandaram é em VB (está anexo na primeira mensagem).

Ontem brincando com o código do ACBr percebi que no método "LeituraMFDSerial" do ACBrECFFiscNET tem alguns "WriteFile" comentado. Eu descomentei, e solicitei via DemoECF do ACBr a LeituraMFD... o sistema gerou 2 arquivos, um com o nome "mfd_ret.txt" e outro com "mfd_limpo.txt". Esse mfd_limpo.txt está formatado e aparentemente tudo certinho. Esse seria o ESPELHO?

Se for só preciso entender como migrar esse mesmo código para o método de gerar Espelho.

Douglas, tem como postar o código da sua implementação? pelo que vi, ainda não está no SVN.

(o LMFC com Ato17 e Arq.MFD também aparece como não implementado, mas a DLL da Urano suporta, assim que resolver o espelho eu vou tentar implementar isso no ACBr e posto no fórum).

Anexe aqui esses arquivo TXT, que gerou ai, para serem avaliados.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Segue anexo.

Olha aparentemente esse mfd_limpo.txt realmente esta certo, mas não sou a pessoa indicada para confirmar isso, deixe mais gente avaliar.

Agora vc tem que vê tb é que existem vários outros comandos que o ACBr usa as DLLs, para fazer leitura do ECF, ai no demo terá que testar todos para saber se os outros comando retornam um TXT, como esse.

Ato COTEPE 17/04, é um exemplo

T+

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Conversei com o Douglas no GTalk e o arquivo é esse mesmo... mas ele me mandou o "ACBrECFFiscNET.pas" que já está implementado no método correto (EspelhoMFD_DLL). Vou fazer uns testes no Espelho, e depois testo LMFC com Ato17 e Arq. MFD... se tiver tudo correto, eu mando o PAS e vocês enviam para o SVN.

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

Conversei com o Douglas no GTalk e o arquivo é esse mesmo... mas ele me mandou o "ACBrECFFiscNET.pas" que já está implementado no método correto (EspelhoMFD_DLL). Vou fazer uns testes no Espelho, e depois testo LMFC com Ato17 e Arq. MFD... se tiver tudo correto, eu mando o PAS e vocês enviam para o SVN.

Blz,

De uma lida no que estou propondo, acredito que esse problema que vc esteja enfrentando o que propuz ajudaria a resolver, pois seria particular desse modelo de ECF que vc esta usando.

viewtopic.php?f=10&t=1418&p=8959#p8885

Abs

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Pessoal,

Estou trabalhando com ajuda do Douglas na implementação das funcionalidades do PAF-ECF para Urano Logger. Assim que terminar eu envio os fontes.

Isaque, eu não conheço bem a estrutura do ACBr, acredito não ser a pessoa mais indicada para fazer essa reformulação nos componente no momento... mas estou à disposição para ajudar no que precisarem.

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

O status atual é o seguinte:

* Espelho MFD (funcionando por Data e COO);

* Arq. MFD (tenho um Demo da Urano que funciona, no ACBr estou levando uma SURRA, mas acredito que hoje fecho esse problema);

* LMFC com Ato 17 (a DLL da Urano tem método pronto, acredito que não será problema);

Estou usando a última revisão do ACBrECFFiscNET.pas, será tranquilo para fazer o merge.

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Oi Welkson,

Obrigado pelo seu empenho... Assim que tiver algo para submeter a analise por favor anexe aqui no forum

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.

Link para o comentário
Compartilhar em outros sites

Daniel.

Segue em anexo os fontes do ACBrECF.pas e ACBrECFFiscNET.pas.

As DLL's utilizadas estão aqui (ficou grande para anexar no fórum):

http://dl.dropbox.com/u/7260185/DLLs_Urano.zip

Primeira vez que altero algo no código do ACBr, espero não ter fugido muito do padrão de vocês! Se precisar corrigir algo, é só avisar.

Estou mandando também todos os arquivos que foram gerados no meu teste:

* LMFC em Espelho por Data e COO;

* LMFC em Ato 17 por Data e COO;

* LMFS em Espelho por Data e COO;

* Arq. MFD por Data e COO

* Espelho MFD por Data e COO;

No ACBrECFFiscNET eu criei uma função nova chamada "StrToPChar" (peguei do exemplo da Urano), pois usando PChar comum a DLL me retornava um erro. Eu acredito que este não seja o melhor local para essas funções utilitárias, talvez precise mover para o arquivo de funções.

O Douglas (Totall) já tinha quase tudo pronto... basicamente adaptei para última revisão do ACBrECFFiscNET e fiz os testes.

UranoACBr.zip

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

Pessoal,

Conversando agora com o Douglas atentei ao seguinte detalhe: a LMFC e LMFS para o "PAF-ECF" devem ser geradas por CRZ e não COO.

Estou vendo a documentação da DLL e já entrei em contato com o suporte Urano para verificar se existe essa possibilidade.

Se alguém tiver sugestão, por favor avise.

WRMedeiros

Focus

Link para o comentário
Compartilhar em outros sites

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