Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia a todos postei esta mesma mensagem no forum acbrndfe porem como la é dedicada a este componente e não o uso então resolvi postar aqui tambem que é onde sempre posto, os moderadorespodem remove-lo caso assim decidam.

 

Estou tendo alguns problemas em um programinha que faz a manifestação das nfe's que são disparadas contra o cnpj da empresa que é o seguinte

 

procedure TF_Importador.SpeedButton1Click(Sender: TObject);
var
 Chave, idLote, CNPJ: string;
 lMsg: string;
 i, codregional : integer;
begin//1
if Application.MessageBox('Voçê realmente deseja manifestar esta(s)nfe(s)','Aviso',1 + 0) = 1 then
begin// 2 inicio do messagebox
   try
configuracoes;
Dm.XmlNfe.DisableControls;
   idLote := InttoStr(Dm.inc_gen('GEN_LOTE_MANIF_ID'));
  Chave:='';
  CNPJ := '';
  CNPJ := trim(DM.empresa2CNPJ.AsString);
   dm.XmlNfe.First;
   //=========inicio do laço
   while not dm.XmlNfe.Eof do
   begin //3
         if dm.XmlNfeFLAG.AsString = 'M' then
        begin
        //idLote := InttoStr(Dm.inc_gen('GEN_LOTE_MANIF_ID'));
        Chave := trim(DM.XmlNfeCHAVE.AsString);
        with dm.ACBrNFe1.EventoNFe.Evento.Add do
              begin  //inicio do evento adionar
             //  InfEvento.cOrgao := 0;
               if CkAmbNac.Checked =  true then //inicio da condição de busca por orgão autorizador
                   begin
                   InfEvento.cOrgao := 91;
                   end
                   else
                   begin
                       codregional := null;
                       codregional:= StrtoInt(copy(dm.XmlNfeCHAVE.AsString, 0, 2));
                      if codregional in [12, 27, 13, 16, 29, 23, 53, 32, 52, 21, 31, 50, 51, 15, 25, 26, 22, 41, 33, 24, 11, 14, 43, 42, 28, 35, 17 ] then
                      begin
        //              showmessage('1'+IntToStr(codregional));
                         InfEvento.cOrgao := codregional;
                     //     showmessage(IntToStr(InfEvento.cOrgao));
                      end;
 
          end;  //fim da condição de busca por orgão autorizador
    { infEvento.chNFe := Chave;
     infEvento.CNPJ   := CNPJ;
     infEvento.dhEvento := now;}
     if cbxtipoop.ItemIndex = 0 then
     begin
     infEvento.tpEvento := teManifDestConfirmacao;
     end;
     if cbxtipoop.ItemIndex = 1 then
     begin
     infEvento.tpEvento := teManifDestCiencia;
     end;
     if cbxtipoop.ItemIndex = 2 then
     begin
     infEvento.tpEvento := teManifDestDesconhecimento;
     end;
     if cbxtipoop.ItemIndex = 3 then
     begin
     infEvento.tpEvento := teManifDestOperNaoRealizada;
     end;
     infEvento.chNFe := Chave;
     infEvento.CNPJ   := CNPJ;
     infEvento.dhEvento := now;
   end;  //tiro aqui #fim dcde dm.ACBrNFe1.EventoNFe.Evento.Add
  // end;
  dm.ACBrNFe1.EnviarEventoNFe(StrToInt(IDLote));
 
  with dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento do
  begin
    dm.XmlNfe.Edit;
    dm.XmlNfePROTOC_XML.AsString     := nProt;
    dm.XmlNfeDT_MANIF.AsDateTime     := dhRegEvento;
    dm.XmlNfeXMOTIVO.AsString        := xMotivo;
    dm.XmlNfeMANIFESTADA.AsString    := 'S';
    dm.XmlNfeFLAG.AsString           := 'S';
    dm.xmlnfeREG_EVENTO.AsString     := xEvento;
    dm.XmlNfeDES_SIT_MANIF.AsString  := 'Ciência da Operação';
    dm.XmlNfe.post;
   //  dm.XmlNfe.ApplyUpdates(0);
 
    lMsg:=
    'Id: '+Id+#13+ //id de retorno
    'tpAmb: '+TpAmbToStr(tpAmb)+#13+ //(taProducao, taHomologacao);
    'verAplic: '+verAplic+#13+//versão do aplicativo
    'cOrgao: '+IntToStr(cOrgao)+#13+ //valor inteiro
    'cStat: '+IntToStr(cStat)+#13+ //valor do tipo inteiro
    'xMotivo: '+xMotivo+#13+  //string
    'chNFe: '+chNFe+#13+  //chave nfe
    'tpEvento: '+TpEventoToStr(tpEvento)+#13+ //  teManifDestConfirmacao, teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada);
    'xEvento: '+xEvento+#13+  //string
    'nSeqEvento: '+IntToStr(nSeqEvento)+#13+ //valor inteiro
    'CNPJDest: '+CNPJDest+#13+ //cnpj do emitente//
    'emailDest: '+emailDest+#13+//email destinatario
    'dhRegEvento: '+DateTimeToStr(dhRegEvento)+#13+//data e hora da manifestação
    'nProt: '+nProt; //numero de protocolo//
    end;
                 //fim do laço wilhe
            end;//coloc aqui
            dm.XmlNfe.Next;
        end;
  dm.XmlNfe.ApplyUpdates(0);
  ShowMessage(lMsg);
     dm.ACBrNFe1.EventoNFe.Evento.Clear;
       // end;
   //=========fim do laço
  Except
on e: exception do
  begin //3
    showmessage('Erro ao Manifestar nfe' + e.message);
    dm.XmlNfe.CancelUpdates;
 
end; //3fim do messagebox
end; //2
Dm.XmlNfe.EnableControls;
dm.XmlNfe.First;
end; //1
 
end;
 
problema 1 - sempre que tento manifestar mais de uma nota fiscal de uma unica vez da a seguinte mensagem
"rejeição - duplicidade de evento" porem manifesta todas as notas ficais sem problemas porem o retorno que tenho em xmotivo é sempre este
 
problema 2 - quando tento manifestar usando o código do próprio estado autorizador da a seguinte mensagem
"código do órgão diverge do órgão autorizador"
 
alguém poderia me dar uma força com isso porque é somente isto que esta dando erro
 
dcesde ja grato pela ajuda
  • Consultores
Postado

Boa tarde Reij,

 

Primeiramente o fórum ACBrMDFe se refere ao componente para emissão do Manifesto de Documentos Fiscais Eletrônicos.

 

Não tem nada haver com a Manifestação do Destinatário que é uma funcionalidade do componente ACBrNFe.

 

Segundo, quando postar um arquivo ou fragmento de rotina, por favor, post como anexo para que o post fique curto.

 

Existem coisas a mais na sua rotina no que diz respeito a checagem do cOrgao e por outro lado esta faltando a justificativa quando o manifestação for de operação não realizada.

 

Notei também que esta faltando a seguinte linha:

 

   infEvento.nSeqEvento := 1;
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

obrigado ítalo pela ajuda farei conforme vc orientou de mandar codigos em anexo quanto ao nseqevento realmente esqueci e quanto a a questão da justificativa quando o manifestação for de operação não realizada.acho que não a esqueci não veja

 

 if cbxtipoop.ItemIndex = 3 then

     begin
     infEvento.tpEvento := teManifDestOperNaoRealizada;
     end;
 
adicionar a clausula que esqueci e verificar se resolve o problema e deu um retorno
 
desde ja grato pela ajuda
  • 3 meses depois ...
Postado

Boa noite;

 

Não estou conseguindo passar a justificativa como paramêtro, da erro de compilação informando que o metodo infEvento.xJust não esta declarado atualizaei hoje o componete ACBR.

 

    dtmConexao.acbrNFe.EventoNFe.Evento.Clear;
    with dtmConexao.acbrNFe.EventoNFe.Evento.Add do
    begin
      infEvento.cOrgao   := 91;
      infEvento.chNFe    :=               pChave_Acesso;
      infEvento.CNPJ     :=               pCNPJ_Empresa;
      infEvento.dhEvento := StrToDateTime(vData_BD + ' ' + vHora_BD);

      case pManifestacao of
        1: infEvento.tpEvento := teManifDestConfirmacao;
        2: infEvento.tpEvento := teManifDestDesconhecimento;
        3:
        begin
          infEvento.tpEvento := teManifDestOperNaoRealizada;
          infEvento.xJust    := pJustificativa;
        end;
        4: infEvento.tpEvento := teManifDestCiencia;
      end;
    end;

 

Agradeço desde já pela atenção!

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