Ir para conteúdo
  • Cadastre-se

itamarluiz

Membros
  • Total de ítens

    21
  • Registro em

  • Última visita

Posts postados por itamarluiz

  1. Prezados,

    Este assunto já rolou por aqui, mas os tópicos estão fechados, então tomei a liberdade de abrir um novo. 

    Ao atualizar o FastReport para a versão 2024.2.2 me deparei com o erro do título, associado às seguintes units: ACBrBoletoFCFR.pas, ACBrCTeDACTEFR.pas, ACBrMDFeDAMDFEFR.pas, ACBrNFeDANFEFR.pas e ACBrNFeDANFEFRDM.pas.

    Como foi discutido aqui, o problema só acontece em DEBUG, e a solução encontrada foi instalar o ACBR com "Deixar desmarcado somente a pasta LibXX no Library Path do Delphi". Essa solução faz recompilar todo o código do ACBr no "build all", que além de demorar mais, ainda mostra um monte de warnings e hints do ACBr que incomodam chatos como eu.

    Encontrei uma "solução paliativa" que foi copiar as ditas units para a pasta LibD28\Win32. Assim eu consigo compilar em DEBUG e RELEASE sem problemas, mas agora tenho que ficar de olho nas atualizações do projeto ACBr.

    Pergunto: isso é um problema do FastReport ou seria possível resolver fazendo um ajuste no instalador do ACBr?

    Abraços a todos!

  2. Olá pessoal,

    Eu estou com um problema parecido com o desse tópico. A propriedade rodo.veicTracao.tpRod está gerando a informação aparentemente correta, mas ao tentar validar, o ACBrMDFe retorna erro:

    Element '{http://www.portalfiscal.inf.br/mdfe}tpRod' is unexpected according to content model of parent element '{http://www.portalfiscal.inf.br/mdfe}veicTracao'.

    Meu código:

          if edtVeicTracao.Text <> EmptyStr then
          begin
            Veiculo.PegaDadosVeiculo(edtVeicTracao.Text);
            if Veiculo.Placa <> EmptyStr then
              with rodo.veicTracao do
              begin
                rodo.veicTracao.cInt := Veiculo.CodigoInterno;
                rodo.veicTracao.RENAVAM := Veiculo.Renavam;
                rodo.veicTracao.placa := Veiculo.Placa;
                rodo.veicTracao.tara := Veiculo.Tara;
                rodo.veicTracao.capKG := Veiculo.CapacidadeKG;
                rodo.veicTracao.capM3 := Veiculo.CapacidadeM3;
                rodo.veicTracao.tpRod := TpcteTipoRodado(Veiculo.Rodado); // aqui o problema
                //rodo.veicTracao.tpRod := trTruck; // já tentei fazer assim também
                rodo.veicTracao.tpCar := TpcteTipoCarroceria(Veiculo.Carroceria);
                rodo.veicTracao.UF := Veiculo.Estado;
              end;
          end;

    Abaixo um trecho do XML gerado:

     <infModal versaoModal="1.00">
    - <rodo>
      <RNTRC>11223344</RNTRC> 
    - <veicTracao>
      <cInt>MTQ0001</cInt> 
      <placa>MTQ0001</placa> 
      <RENAVAM>012345678</RENAVAM> 
      <tara>1234</tara> 
      <capKG>123</capKG> 
      <capM3>123</capM3> 
      <tpRod>03</tpRod> 
      <tpCar>00</tpCar> 
      <UF>ES</UF> 
      </veicTracao>
      </rodo>
      </infModal>

    Pela mensagem de erro, parece que o problema nem é com o conteúdo da propriedade, e sim a relação com a propriedade "pai".

    Alguma ajuda?

     

    Obrigado!

  3. Olá pessoal,

     

    Vocês tem novidades a respeito dos eventos para o CT-e?

     

    Estou fazendo alguns testes aqui, e como estou no ES, o ACBrCTe altera o código do órgão de 32 para 91 (pcteEventoCTe.pas, linha 276), mas essa informação não é aceita pelo schema.

     

    Valew!

     

    Itamar

  4. Meu projeto também não compila mais depois da última atualização do ACBr.

    [DCC Error] ACBrCTeDACTEFRDM.pas(263): E2003 Undeclared identifier: 'CST00'

    [DCC Error] ACBrCTeDACTEFRDM.pas(264): E2003 Undeclared identifier: 'CST00'

    [DCC Error] ACBrCTeDACTEFRDM.pas(265): E2003 Undeclared identifier: 'CST00'

    [DCC Error] ACBrCTeDACTEFRDM.pas(504): E2003 Undeclared identifier: 'CPais'

    [DCC Error] ACBrCTeDACTEFRDM.pas(505): E2003 Undeclared identifier: 'XPais'

    [DCC Error] ACBrCTeDACTEFRDM.pas(641): E2003 Undeclared identifier: 'cMunEmi'

    [DCC Error] ACBrCTeDACTEFRDM.pas(642): E2003 Undeclared identifier: 'xMunEmi'

    [DCC Error] ACBrCTeDACTEFRDM.pas(643): E2003 Undeclared identifier: 'UFEmi'

    [DCC Error] ACBrCTeDACTEFRDM.pas(1221): E2003 Undeclared identifier: 'vMerc'

  5. Pessoal,

    Estou tendo um probleminha aqui com o ACBrNFe2 e o Delphi XE2. A compilação acontece sem problemas, mas ao executar, tenho a mensagem de erro: "Não encontrei inicio do URI: Id=". Isso acontece no carregamento do XML da NFe, linha 121 da pcnNFeR.pas.

    Verifiquei que compilando o mesmo projeto com o Delphi 2010 o problema não acontece.

    Alguém pode ajudar? Obrigado!

  6. Olá Pessoal,

    Finalmente meu TEF foi homologado usando o ACBrTEFD V&S Pague em modo Background.

    Gostaria de agradecer ao Projeto ACBr, ao Daniel, ao Régys Silveira, ao Moisés (Cemay Informática) e a todos os outros que de alguma forma me ajudaram nessa empreitada.

    Como o arquivo ACBrVeSPague.pas foi alterado por muita gente, eu (com a supervisão do Régys) acabei tendo que alterar também. Então estou postando aqui as alterações que fiz para que o Daniel (coitado, vai ter muito trabalho) possa compilar e anexar ao projeto. Tive que fazer uma pequena alteração também no arquivo ACBrTEFDClass.pas. Importante dizer que as alterações foram feitas para o modo Background, onde não existe tela do cliente; todas as telas são do PAF-ECF.

    Enfim, obrigado a todos!

    ACBrTEFDVeSPague.rar

  7. Olá Ivan, obrigado pela atenção.

    Não sei se entendi direito (to mó cansadão hoje e raciocinio leeeento), mas sobre o ponto onde ao inicializar a aplicação ele tem que perguntar sobre as transações pendentes existentes dentro do loop, está implementado dentro da procedure VerificarTransacoesPendentesClass, você vai ver que depois do 1o. try..except tem um while que faz justamente isso, ou seja, caso o usuário cancele a operação ou informe login ou senha incorreto, o vespague retorna erro com codigo 3, então ele fica dentro do while chamando o admin novamente e realizando a pergunta sobre transações pendentes.

    Eu coloquei o código novo de vocês pra rodar aqui, e ele realmente faz o loop, mas ao confirmar ou desfazer a transação o sistema trava. Tem um post acima que fala sobre um try..except que resolve esse problema do travamento, mas eu testei também sem sucesso. Então resolvi voltar ao código "oficial" e tentar entendê-lo. Isso é meio complicado por causa do raciocínio lento causado pelo volume de trabalho e a pressão.

    O ACBrTEFD faz o loop automaticamente sem esse código novo de vocês, desde que o arquivo de backup esteja na pasta. Só que se o processo for cancelado, propositalmente ou não, ele apaga o backup. Eu continuo aqui debugando e tentando entender como fazer para tratar o retorno do diálogo de forma que ao cancelar ele não apague o backup. Não apagando, o resto ele faz sem problemas.

  8. Pessoal (e principalmente ao Daniel),

    Procedimento:

    Realizar uma transação de Crédito no valor de R$ 900,00. Desligar a ECF no Comprovante Vinculado (CCD) e após exibir a mensagem “Erro na impressão. Deseja tentar novamente? . ” Desligar o Computador. Após o retorno da energia, manter a ECF Desligada e iniciar a Automação.

    Resultado esperado:

    Procedimento semelhante ao teste anterior (texto do teste anterior: "A automação deve solicitar o desfazimento da Transação TEF e exibir a seguinte mensagem “A(s) trasanção(s) TEF NSU: XXXXXX e Valor: XX,XX está PENDENTE. Favor realizar o DESFAZIMENTO no menu administrativo. Cancelar o cupom fiscal ! ” - ao confirmar essa mesagem a automação deve abrir o menu ADM - transações pedentes, para DESFAZER a transação."), mas: AO ABRIR A TELA COM A TRANSAÇÃO PENDENTE FECHE SEM TRATAR, E REINICIA A APLICAÇÃO, A APLICAÇÃO DEVE APRESENTAR A MENSAGEM NOVAMENTE.

    Eu estive estudando isso aqui, fazendo testes, debugando, e consegui entender algumas coisas:

    Quando eu abro o sistema e inicializo o ACBrTEFDVeSPague ele chama automaticamente o método CancelarTransacoesPendentesClass. Tudo funciona certinho se eu seguir essa linha: informo login e senha; confirmo ou cancelo a transação. Se eu escolher a opção *Fechar* no menu e clicar no botão OK do diálogo, o sistema também funciona como esperado, ou seja, ele sai do ADM, exibe novamente a mensagem de que existem transações pendentes e chama o ADM novamente.

    Até aqui tudo funciona maravilhosamente bem.

    O problema acontece quando:

    • [*:2187jcks]clico no botão cancelar do diálogo de coleta ou do menu do TEF[*:2187jcks]digito login ou senha errados.

    Nesses casos, o arquivo de backup é apagado, e então o loop (sair do ADM, exibir a mensagem e voltar ao ADM) não acontece mais.

    Não consegui descobrir como tratar o retorno do diálogo de coleta ou do menu do TEF. Creio que se isso puder ser feito (não apagar o arquivo de backup em caso de cancelamento) o código do EddieBR e do Ivan Orosco pode ser descartado. Eu fiz testes com esse código (ainda não oficial) e o sistema trava ao terminar de confirmar ou cancelar as transações.

    Alguma sugestão? Obrigado.

  9. O TEFD já faz isso automáticamente no Inicializar... (que deve ser chamado no Inicio do seu programa)

    Ele simplesmente chama:

    CancelarTransacoesPendentesClass

    Sim, ele realmente chama no inicializar.

    Mas aqui comigo está acontecendo o seguinte: após o desligamento, ao religar a máquina entrar no PAF-ECF, o TEFD chama o ADM. Mas o teste manda fechar sem tratar para que o sistema chame novamente o ADM. É isso que não acontece. Esse loop não é feito pelo TEFD. O PAF-ECF tem que implementar isso?

    Mais um detalhe. Se eu fecho o ADM sem tratar e logo em seguida fecho o PAF-ECF, ao reabrir o PAF-ECF o ADM não é chamado.

    Eu devo estar fazendo alguma coisa errada em algum lugar. Eu uso o seguinte código ao iniciar o PAF-ECF:

        try
    
          TEF.Inicializar(gpVeSPague);
    
    
          (* esse código comentado não resolve o problema
    
          while TEF.RespostasPendentes.Count > 0 do
    
          begin
    
            MyDlgInformation('Existem respostas pendentes não tratadas.');
    
            TEF.ADM(gpVeSPague);
    
          end;
    
          *)
    
    
        except
    
          on E: Exception do
    
          WriteLog('Ativação do TEF V&S Pague: ' + E.Message);
    
        end;
    
    

    Está faltando alguma coisa?

    Obrigado.

  10. Pessoal,

    O teste Pré-Certificação da Cielo com o V&S Pague, no passo 1.1.2.1a diz o seguinte:

    Procedimento:

    Realizar uma transação de Crédito no valor de R$ 900,00. Desligar a ECF no Comprovante Vinculado (CCD) e após exibir a mensagem “Erro na impressão. Deseja tentar novamente? . ” Desligar o Computador. Após o retorno da energia, manter a ECF Desligada e iniciar a Automação.

    Resultado esperado:

    Procedimento semelhante ao teste anterior (texto do teste anterior: "A automação deve solicitar o desfazimento da Transação TEF e exibir a seguinte mensagem “A(s) trasanção(s) TEF NSU: XXXXXX e Valor: XX,XX está PENDENTE. Favor realizar o DESFAZIMENTO no menu administrativo. Cancelar o cupom fiscal ! ” - ao confirmar essa mesagem a automação deve abrir o menu ADM - transações pedentes, para DESFAZER a transação."), mas: AO ABRIR A TELA COM A TRANSAÇÃO PENDENTE FECHE SEM TRATAR, E REINICIA A APLICAÇÃO, A APLICAÇÃO DEVE APRESENTAR A MENSAGEM NOVAMENTE.

    Observações:

    "Duas opções: 1- Ao fechar a tela com a transação pendente, deve solicitar o usuário e senha novamnete para que seja realizado o tratamento da transação. Impedindo que o operador saia do fluxo sem tratar. 2. Ao fechar a janela com a transação pendente, não deve permitir abrir a o caixa, toda vez que tentar abrir o caixa irá apresentar a mesma mensagem, até que seja resolvido."

    Eu pergunto: qual método do ACBrTEFD eu uso pra saber se tem transação pendente para poder abrir novamente o ADM? Eu fiz um teste usando o RespostasPendentes.Count mas ele não me dá a informação.

    Agradeço qualquer ajuda.

  11. Eu dei um tempo no desenvolvimento do TEF para o V&S Pague, e logo depois tirei férias. Agora estou retomando o desenvolvimento e quero terminar.

    Peço por favor aos colegas que homologaram: ajudem postando suas alterações para que o Daniel possa incluí-las no código do ACBr.

    Obrigado! Obrigado!

  12. Se a transação TEF estiver pendente (ou seja, se o arquivo dela ainda existir no diretório de Backup) o próprio ACBRTEFD chamará o cancelamento quando for inicializado

    Sim, exatamente. Mas o roteiro fala de uma mensagem. Eu coloquei a mensagem no evento OnAntesCancelarTransacao e está funcionando, mas tenho dúvidas de que é exatamente assim:

    procedure TfrmPrincipal.acbrTEFAntesCancelarTransacao(RespostaPendente: TACBrTEFDResp);
    
    const
    
      sAviso = 'A transação TEF NSU: %s e valor: %s está pendente. Favor realizar o desfazimento no Menu Administrativo e cancelar o Cupom Fiscal.';
    
    var
    
      Estado: TACBrECFEstado;
    
    begin
    
      Estado := ECF.Estado;
    
    
      if RespostaPendente.ValorTotal > 0 then
    
        MyDlgInformation(Format(sAviso, [RespostaPendente.NSU, FormatFloat(',0.00', RespostaPendente.ValorTotal)]));
    
    
      case Estado of
    
        estVenda, estPagamento: ECF.CancelaCupom;
    
        estRelatorio: ECF.FechaRelatorio;
    
      else
    
        if not (Estado in [estLivre, estDesconhecido, estNaoInicializada]) then
    
          ECF.CorrigeEstadoErro(False);
    
      end;
    
    end;
    
    

    Outra coisa: o teste seguinte me manda apenas fechar o diálogo sem tratar, e fechar a aplicação. Quando voltar, a aplicação deve mostrar novamente a pendência. Acontece que não mostra. Parece que está limpando os dados.

  13. Pessoal,

    Estou aqui fazendo os testes da pré-certificação do V&S Pague via background. Tenho algumas dúvidas e gostaria de usar esse tópico para saná-las. Ficarei muito grato se alguém de vocês puder me ajudar.

    A primeira delas é a seguinte: pré-teste 1.1.2.1

    Procedimento: Realizar uma transação de Crédito no valor de R$ 900,00. Desligar a ECF no Comprovante Vinculado (CCD) e após exibir a mensagem “Erro na impressão. Deseja tentar novamente? . ” Desligar o Computador. Após o retorno da energia, manter a ECF Desligada e iniciar a Automação.

    Resultado esperado: A automação deve solicitar o desfazimento da Transação TEF e exibir a seguinte mensagem “A(s) trasanção(s) TEF NSU: XXXXXX e Valor: XX,XX está PENDENTE. Favor realizar o DESFAZIMENTO no menu administrativo. Cancelar o cupom fiscal ! ” - ao confirmar essa mesagem a automação deve abrir o menu ADM - transações pedentes, para DESFAZER a transação.

    Observação: A automação deve realizar o tratamento independente de a ECF estar ligada ou não.

    Se eu simplesmente inicializar o TEF ao abrir o aplicativo o ACBrTEFD entra no ADM e me dá a opção de confirmar, desfazer ou fechar o diálogo. Mas infelizmente a mensagem não é exibida. Então creio que eu mesmo tenho que fazer isso.

    Gostaria que os colegas pudessem me dizer se existe um evento específico pra fazer isso, e/ou como fazer isso.

    Obrigado.

  14. Olá Daniel,

    Obrigado pela sua atenção.

    Usei o código que você sugeriu, mas não mudou nada. A aplicação continua sendo "jogada" pra trás entre a primeira e a segunda vias do CDC.

    Talvez eu esteja fazendo algo errado em outro lugar.

    Obrigado

  15. Você programou corretamente o evento OnRestauraFocoAplicacao ?

    Daniel,

    Estou usando mesmo código do exemplo:

    procedure TfrmPrincipal.acbrTEFRestauraFocoAplicacao(var Tratado: Boolean);
    
    begin
    
      Application.BringToFront;
    
      Tratado := False;  { Deixa executar o código de Foco do ACBrTEFD }
    
    end;
    
    

    Testei também trocando o valor de Tratado para True, e a situação piorou: a aplicação passou a ser sobreposta durante o período de espera para passar o cartão.

  16. Pessoal,

    Estou implementando o TEF via background da V&S Pague.

    Percebi que durante a impressão do CDC, mais exatamente entre a primeira e a segunda vias, o sistema vai pra segundo plano, e uma outra aplicação qualquer aberta fica por cima dele. Isso só não acontece quando ele é a unica aplicação aberta.

    Podem me ajudar?

    Obrigado

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