Ir para conteúdo
  • Cadastre-se

Liandrocs

Membros
  • Total de ítens

    87
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por Liandrocs

  1. Não utilizo nenhuma DLL do ACBR, nem altero o XML, o ACBR é que faz todo o processo, crio ele em tempo de execução... Tenho outro sistema de NFe e faço do mesmo modo e funciona tudo.

     

    Tenho que usar as Dlls do ACBR ? (Quais que preciso ?)

     

    O que me parece é que fica algo em memória no componente, que não é limpo, dai quando envio o segundo dá erro, o problema maior é que o primeiro sempre funciona, quando vou fazer o segundo Cte que da o erro, (tando para envio como cancelamento).

     

    Um teste que eu tinha feito, era com uma executavel a parte que cria o ACBR para cancelamento, que tb dava erro no segundo cancelamento.

  2. Se não for muito incomodo, segue abaixo, os fontes de meu teste que deu o mesmo erro, só no segundo cancelamento(O primeiro funciona).

     

    É uma rotina simples de cancelamento pelo XML do Cte. Nele tem as configurações que eu uso, vê se esta faltando algo.

     

    http://www.4shared.com/zip/ZZArfIsO/Teste.html

     

    Outra coisa, tanto faz se for dois cancelamentos ou duas emissões, o primeiro processo funciona o segundo dá erro.

     

    Grato...

  3. Se alguém poder me ajudar, eu poderia passar os fontes do cancelamento para quem poder testar, com seu certificado.

     

    é bem simples, cancela o primeiro no segundo cancelamento já da erro para mim...

  4. Sim, incluir ele está agora em um datamodule, e da a mesma coisa...

     

    Fiz outro teste tambem, crie um projeto novo com um unico form e uma lista de Cte aprovados, e um unico botão para cancelar,

    crio e configuro no show do form.

     

    Unica coisa que é feita é cancelamento...

     

    cte.conhecimento.clear

    cte.conhcimento.loadfronfile(xxx)

    cte.conhecimento.cancela('ffffffffffffffffffffff')

    ....

    O primeiro cancela normalmente, sem erros o segundo que vou mandar cancelar da erro : REJEIÇÃO: Assinatura difere do calculado.

     

    ***

    Tentei pegar outro certificado, para ver se é problema nele, mas não consegui um que seja de transportadora...

  5. é coisa doutro, de outro mundo...

     

    Passei o ACBR para dentro do data module, crio ele e configuro no create, destruo no detroi..

     

    Até para cancelamento ou envio o primeiro funciona, imprime e envia email, o segundo não vai mais, dá erro e só volta ao normal quando fecho o programa e abro novamente, parece que fica algo em memoria, tambem tentei direto pelo executavel sem o delphi e dá no mesmo.

     

    REJEIÇÃO: Assinatura difere do calculado.

     

     

    HELP, HELP, HELP....

  6. Boa Tarde.

     

    Criei um projeto novo de um único form.

     

    como segue abaixo, só que este executável pega um XML já aprovado em homologação e o cancela. (O primeiro ele cancela, mas o segundo da erro de ASSINATURA DIFERE DO CALCULADO. (Por favor preciso de ajuda, talvez eu esteja esquecendo de algo)

     

    //////***********************************************************************************************

    unit Unit12;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, FileCtrl, JvDriveCtrls,
      QuickRpt, ACbrCte, ACBrCTeDACTeQRClass, pcnConversao, pcnAuxiliar;
     
    type
      TForm12 = class(TForm)
        JvFileListBox1: TJvFileListBox;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        ACBrCTE_C: TACBrCTE;
        procedure ConfiguraCTE;
      end;
     
    var
      Form12: TForm12;
     
    implementation
     
    {$R *.dfm}
     

    procedure TForm12.Button1Click(Sender: TObject);

    var
      NomeArquivo: string;
    begin
     
      NomeArquivo := JvFileListBox1.Directory + '\' +  JvFileListBox1.Items[JvFileListBox1.ItemIndex];
     
      ACBrCTE_C.Conhecimentos.Clear;
      if FileExists(NomeArquivo) then
        ACBrCTE_C.Conhecimentos.LoadFromFile(NomeArquivo)
      else
        raise Exception.create('Arquivo XML do conhecimento não localizado!');
     
      // Cancela
      if ACBrCTE_C.Cancelamento('TESTE CANCELAMENTO AMBIENTE HOMOLOGACAO') then
      begin
        ShowMessage('Cancelou');
        ACBrCTE_C.Conhecimentos.Imprimir;
        DeleteFile(NomeArquivo);
        JvFileListBox1.Refresh;
      end;
    end;
     
    procedure TForm12.FormDestroy(Sender: TObject);
    begin
      if Assigned(ACBrCTE_C) then
        FreeAndNil(ACBrCTE_C);
    end;
     
    procedure TForm12.ConfiguraCTE;
    var
      PastaInicial: string;
    begin
      PastaInicial := ExtractFilePath(Application.ExeName);
     
      ACBrCTE_C.Configuracoes.Arquivos.AdicionarLiteral := True;
      ACBrCTE_C.Configuracoes.Arquivos.EmissaoPathCTe := True;
      ACBrCTE_C.Configuracoes.Arquivos.PastaMensal := True;
      ACBrCTE_C.Configuracoes.Arquivos.PathCan := PastaInicial + 'Canceladas';
      ACBrCTE_C.Configuracoes.Arquivos.PathDPEC := PastaInicial + 'DPEC';
      ACBrCTE_C.Configuracoes.Arquivos.PathInu := PastaInicial + 'Inutilizacoes';
      ACBrCTE_C.Configuracoes.Arquivos.PathCTe := PastaInicial + 'CTE';
      ACBrCTE_C.Configuracoes.Arquivos.Salvar := True;
     
      // Criação das pastas
      ForceDirectories(PastaInicial + 'Canceladas');
      ForceDirectories(PastaInicial + 'DPEC');
      ForceDirectories(PastaInicial + 'Inutilizacoes');
      ForceDirectories(PastaInicial + 'PDF');
      ForceDirectories(PastaInicial + 'CTE');
      ForceDirectories(PastaInicial + 'Geral');
     
      // Configurações -> Certificados
      ACBrCTE_C.Configuracoes.Certificados.NumeroSerie := NumerodeSerie
      ACBrCTE_C.Configuracoes.Certificados.Senha := Senha'';
     
      // Configurações -> Geral
      ACBrCTE_C.Configuracoes.Geral.FormaEmissao := teNormal;
      ACBrCTE_C.Configuracoes.Geral.PathSalvar := PastaInicial + 'Geral';
      ACBrCTE_C.Configuracoes.Geral.PathSchemas := PastaInicial + 'Schemas'; ;
      ACBrCTE_C.Configuracoes.Geral.Salvar := True;
     
      // Configurações -> WebServices
      ACBrCTE_C.Configuracoes.WebServices.AguardarConsultaRet := 0;
      ACBrCTE_C.Configuracoes.WebServices.AjustaAguardaConsultaRet := False;
     
      ACBrCTE_C.Configuracoes.WebServices.Ambiente := taHomologacao;
     
      ACBrCTE_C.Configuracoes.WebServices.IntervaloTentativas := 0;
      ACBrCTE_C.Configuracoes.WebServices.ProxyHost := '';
      ACBrCTE_C.Configuracoes.WebServices.ProxyPass := '';
      ACBrCTE_C.Configuracoes.WebServices.ProxyPort := '';
      ACBrCTE_C.Configuracoes.WebServices.ProxyUser := '';
      ACBrCTE_C.Configuracoes.WebServices.Tentativas := 5;
      ACBrCTE_C.Configuracoes.WebServices.UF := 'RS';
     
      ACBrCTE_C.DACTe.PathPDF := PastaInicial + 'PDF';
      ACBrCTE_C.DACTe.ImprimirDescPorc := False;
      ACBrCTE_C.DACTe.ImprimirHoraSaida := True;
      ACBrCTE_C.DACTe.ImprimirHoraSaida_Hora := DateToStr(Date);
    //  ACBrCTE_C.DACTe.Logo := PastaInicial + 'LogoCte.jpg';
      ACBrCTE_C.DACTe.MostrarPreview := True;
      ACBrCTE_C.DACTe.Sistema := Application.Title;
      ACBrCTE_C.DACTe.Site := '';
      ACBrCTE_C.DACTe.TipoDACTE := tiPaisagem;
      ACBrCTE_C.DACTe.Usuario := '';
    end;
     
    procedure TForm12.FormShow(Sender: TObject);
    begin
      JvFileListBox1.Directory := ExtractFilePath(Application.ExeName) + 'XML';
     
      ACBrCTE_C := TACBrCTE.Create(nil);
      ACBrCTE_C.DACTe := TACBrCTeDACTeQR.Create(nil);
      //
      ConfiguraCTE;
    end;
  7. Sim, mas a eu centralizo todos os comando do ACBRCte dentro deste form, crio uma unica vez, e destruo só no ondestroy desta tela, inclusive a configuração dele é só na criação..

  8. Eu crio o acbrcte em tempo de execução.

     

    1) Crio ele no show de minha tenha de emissão

    2) configuro ele, após criar.

    3) ao enviar, eu populo as informações e envio.

     

    Obs.

    a primeira sempre dá certo (Grava XML, imprime e imprimePDF), testei duas com dados semelhantes, a segunda que dá o erro de ASSINATURA DIFERE DO CALCULADO.

    Isso para emissão ou cancelamento.

     

    Para voltar a funcionar tenho que fechar a aplicação e retirar o token e reiniciar o processo.

     

    Sempre antes de começar a popular a ACBRCte eu uso o ACBRCte.conhecimentos.Clear; Tem outro comando que devo usar para limpar as informações do anterior.

    Grato.

  9. Boa tarde,

     

       Estou com um problema que não estou achando a solução.

       

      Envio o Cte normalmente, ele envia, salva em PDF e imprime, mas se eo vou cancelar ou emitir um segundo da a mensagem de: REJEIÇÃO - Assinatura Difere do Calculado.

     

      Se eu removo o token da invia, fecho o programa e ecoloco o token e renicio o meu programa volta a funcionar mas só para uma tentativa, na segunda dá o mesmo erro de novo.

  10. Bom Dia

     

      Estou enviando o XML e esta aprovando mas ao imprimir da erro.

     

      Ao tentar enviar o email tambem da o erro.
     
       ACBRCTEConhecimentos (Linha 287)
       TACBrCTe( TConhecimentos( Collection ).ACBrCTe ).DACTE.ImprimirDACTEPDF(CTe);
     
     
    cai nesta ACBRCTEDacteClass
     
    procedure TACBrCteDACTEClass.ErroAbstract(NomeProcedure: String);
    begin
      raise Exception.Create( NomeProcedure );  <<-- ImprimirPDF
    end;
  11. Sim, com uma POG.

    Se o retorno for status = 657 -  Codigo do Orgao diverge do orgao autorizador.

    Isso resolveu meu problema.

     

      ACBrNFe1 := TACBrNFe.Create(nil);

      try
        ConfiguraACBRNFE(ACBrNFe1);
     
        NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
     
        ACBrNFe1.EventoNFe.Evento.Clear;
        ACBrNFe1.EventoNFe.idLote := NumeroLote;
        with ACBrNFe1.EventoNFe.Evento.Add do
        begin
          infEvento.chNFe := Chave;
          infEvento.CNPJ := CNPJ;
          infEvento.dhEvento := now;
          infEvento.tpEvento := teManifDestCiencia;

    ;

        end;
     
        // Enviar o evento de manifestação
        if ACBrNFe1.EnviarEventoNFe(NumeroLote) then
        begin
          // 657 = Rejeicao: Codigo do Orgao diverge do orgao autorizador
          //       Em todos os casos testados deveria ser o 91 que vem no arquivo de resposta
          //       que eu atribuo ele ao evento e reenvio..
          if ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 657 then
          begin
            ACBrNFe1.EventoNFe.Evento.Items[0].InfEvento.cOrgao := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.cOrgao;
            if not ACBrNFe1.EnviarEventoNFe(NumeroLote) then
            begin
              with ACBrNFe1.WebServices.EnvEvento do
              begin
                raise Exception.Create('Ocorreram erros ao tentar efetuar a manifestação:' + sLineBreak +
                                       'Lote: ' + IntToStr(EventoRetorno.idLote) + sLineBreak +
                                       'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak +
                                       'Orgao: ' + IntToStr(EventoRetorno.cOrgao) + sLineBreak +
                                       'Status: ' + IntToStr(EventoRetorno.cStat) + sLineBreak +
                                       'Motivo: ' + EventoRetorno.xMotivo);
              end;
            end;
          end;
    • Curtir 1
  12. Lendo alguns tópicos passados achei isso, que foi alterado...

     

     

     

    Pessoal, consegui realizar o cancelamento comentando o que tinha sido feito anteriormente na linha 167 da Unit pcnEventoNFe

    function TInfEvento.getcOrgao: integer;

     

    na parte em que está eu comentei e passou normalmente:

     

     

         {Estados que utilizam a SVAN: ES, MA, PA, PI, RN => Devem utilizar 91}
    //     if Result in [32,21,15,22,24] then
    //       Result := 91;
  13. <envEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
    <idLote>1304221517</idLote>
    <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
    <infEvento Id="ID2102104313040344231500018755001000016687101834949401">
    <cOrgao>43</cOrgao>
    <tpAmb>1</tpAmb>
    <CNPJ>93632370000122</CNPJ>
    <chNFe>43130403442315000187550010000166871018349494</chNFe>
    <dhEvento>2013-04-22T15:17:49-03:00</dhEvento>
    <tpEvento>210210</tpEvento>
    <nSeqEvento>1</nSeqEvento>
    <verEvento>1.00</verEvento>
    <detEvento versao="1.00">
    <descEvento>Ciencia da Operacao</descEvento>
    ...
  14. <retEnvEvento versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe">
    idLote>1304221517</idLote>
    <tpAmb>1</tpAmb>
    <verAplic>AN_1.0.0</verAplic>
    <cOrgao>91</cOrgao>
    <cStat>128</cStat>
    <xMotivo>Lote de evento processado</xMotivo>
    <retEvento versao="1.00"><infEvento>
    <tpAmb>1</tpAmb>
    <verAplic>AN_1.0.0</verAplic>
    <cOrgao>91</cOrgao>
    <cStat>657</cStat>
    <xMotivo>Rejeicao: Codigo do Orgao diverge do orgao autorizador</xMotivo>
    <chNFe>43130403442315000187550010000166871018349494</chNFe>
    <tpEvento>210210</tpEvento>
    <nSeqEvento>1</nSeqEvento>
    <dhRegEvento>2013-04-22T15:20:15-03:00</dhRegEvento></infEvento></retEvento></retEnvEvento>
  15. Estou um problema:

     

    Tenho a seguinte NFE para manifestação,  

    43130403442315000187550010000166871018349494

     

    O Acbr esta colocando no código do orgão 43, e aparece a seguinte mensagem "Codigo do orgao diverge do orgao autorizador", vi que na mensagem de retorno vinha com código do Orgao = 91

    dai preenchi o codigo do orgão com 91 e voi aprovado a manifestação. Só que o codigo 43 não foi eu quem informou foi o acbr.

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