Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 3832 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 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 manifesto mais de uma nfe de uma só vez ele sempre retorna mensagens de erro tipo duplicidade de eventos na tag xmotivo porem manifesta sem nenhum problema esse erro somente acontece quando tento manifestar mais de uma nfe de uma unica vez
 
problema 2====> quando tento usar em o código do estado para fazer a manifestação da a mensagem de erro que o código do Orgão difere do Orgão autorizador
 
alguém pode me dar uma ajuda
  • Este tópico foi criado há 3832 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.