Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

   Bom dia pessoal.

 

   Estou usando o ACBrCTE e graças a Deus está funcionando bem, o único detalhe é que na maioria das vezes que retorna o erro, não vem identificado, não sei se estou fazendo algo errado

 

   A maioria dos erros retorna que acontece, o sistema sempre retorna a mesma mensagem, e a mensagem diz que ele não está encontrado o caminho do XML ou então não está conseguindo gravar o XML. Na maioria das vezes é problema com inscrição Estadual errada, mas eu acho que a mensagem deveria ser especifica o que não está acontecendo, o que será que posso estar fazendo de errado?

 

   Vou postar uma parte do meu codigo aqui e se alguem puder me ajudar, vou ficar agradecido.

 

      sERRO:=' ';
      IF NOT CTE.Enviar(0,false) then  // esta funcao assina e valida
      begin
          sERRO:='X';
          sTxtErro:=CTE.WebServices.Retorno.RetornoWS;
          ShowMessage(CTE.WebServices.Retorno.xMotivo);
          ShowMessage(CTE.WebServices.Retorno.xMsg);
      end
      else
      begin

        // buscando protocolo gerado ----------------------------------------------------
        sProtocolo:=CTE.WebServices.Retorno.Protocolo;
        sRecibo:=CTE.WebServices.Retorno.Recibo;
        sNomeArquivo:=CTE.Conhecimentos.Items[0].NomeArq;
        sChaveCTE:=CTE.WebServices.Retorno.ChaveCte;

        // Atualiza dados no CTRC - DBF ------------------------------------------------
        dm1.Nota.Edit;
        dm1.NotaRECIBO.Value:=sRecibo;
        dm1.NotaPROTOC.Value:=sProtocolo;
        dm1.NotaCHAVECTE.Value:=sChaveCTE;
        dm1.NotaARQUIVO.Value:=sNomeArquivo;
        dm1.NotaRANDOM.AsInteger:=iNum;
        dm1.NotaEMAILENV.AsString:=Para;
        if (sERRO='X') then
        Begin
           dm1.NotaTXTERRO.Value:=sTxtErro;
           dm1.NotaERROCTE.Value:=sERRO;
        End;
        dm1.Nota.Post;

        CTE.DACTe.NumCopias:=dm1.CadFilVIAS.AsInteger;

        if (dm1.CadFilDAC_APOS.AsString='S') then
           CTE.Conhecimentos.Imprimir;
        CTE.Conhecimentos.ImprimirPDF;

       MemoResp.Lines.Text   := UTF8Encode(CTE.WebServices.Retorno.RetWS);
       memoRespWS.Lines.Text := UTF8Encode(CTE.WebServices.Retorno.RetWS);
       LoadXML(MemoResp, WBResposta);

       MemoDados.Lines.Add('');
       MemoDados.Lines.Add('Envio CTe');
       MemoDados.Lines.Add('tpAmb: '+ TpAmbToStr(CTE.WebServices.Retorno.TpAmb));
       MemoDados.Lines.Add('verAplic: '+ CTE.WebServices.Retorno.verAplic);
       MemoDados.Lines.Add('cStat: '+ IntToStr(CTE.WebServices.Retorno.cStat));
       MemoDados.Lines.Add('cUF: '+ IntToStr(CTE.WebServices.Retorno.cUF));
       MemoDados.Lines.Add('xMotivo: '+ CTE.WebServices.Retorno.xMotivo);
       MemoDados.Lines.Add('cMsg: '+ IntToStr(CTE.WebServices.Retorno.cMsg));
       MemoDados.Lines.Add('xMsg: '+ CTE.WebServices.Retorno.xMsg);
       MemoDados.Lines.Add('Recibo: '+ CTE.WebServices.Retorno.Recibo);
       MemoDados.Lines.Add('Protocolo: '+ CTE.WebServices.Retorno.Protocolo);



         sSMTPHost:=dm1.CadFilSMTPHOST.AsString;
         sSMTPUser:=DM1.CadFilSMTPUSER.AsString;
         sSMTPPass:=DM1.CadFilSMTPPASS.AsString;
         sSMTPPort:=DM1.CadFilSMTPPORT.AsString;
         CC:=TstringList.Create;
  //     cc.Add('[email protected]');
         Mensagem:=TstringList.Create;
         Mensagem.Add('Email enviado automaticamente  ');
         Mensagem.Clear;
         Mensagem.Add('Comunicamos por este e-mail que o Conhecimento Eletrônico (Chave='+
             Copy(CTe.Conhecimentos.Items[0].CTe.inFCTe.ID,4,44)+
             ') obteve autorização de uso sob o protocolo: '+CTe.Conhecimentos.Items[0].CTe.procCTe.nProt);
         Mensagem.Add(' ');
         Mensagem.Add('Enviamos em anexo o arquivo XML e o DACTE do respectivo CT-e.');
         Mensagem.Add(' ');
         Mensagem.Add('Atenciosamente,');
         Mensagem.Add(' ');
         Mensagem.Add(dm1.CadFilNOME2.AsString);
         Mensagem.Add(' ');
         Mensagem.Add(' ');
         Mensagem.Add(' ');
         Mensagem.Add('                                      >>> Desenvolvido por Infotrans  <<<');






         if (dm1.CadFilSSL.AsString='S') then
           bSSL := true
         else
           bSSL := false;


         CTE.Conhecimentos.Items[0].EnviarEmail(sSMTPHost
                                                ,sSMTPPort
                                                ,sSMTPUser
                                                ,sSMTPPass
                                                ,sSMTPUser
                                                , Para
                                                , sTituloMensagem
                                                , mensagem
                                                , bSSL   // conexao segura False
                                                , True // enviar pdf
                                                , nil  // lista de emails
                                                , nil
                                                , False );
      end;

    finally
//   CC.Free;
     sCONHEC:=dm1.NotaCONHEC.AsString;

     sERRO_VALIDACAO:=CTE.WebServices.Retorno.Msg;
     sERRO:=COPY(sERRO_VALIDACAO,0,10);
     if (sERRO='Conhecimen') then
     begin

        // consulta o SEFAZ e busca o recibo
          nPosicaoChaveOriginal:=Pos('chCTe:', sERRO_VALIDACAO)+7;
          sChaveOriginal:=copy(sERRO_VALIDACAO,nPosicaoChaveOriginal,44);

          CTe.WebServices.Consulta.CTeChave := sChaveOriginal;
          CTe.WebServices.Consulta.Executar;

          MemoResp.Lines.Text :=  UTF8Encode(CTe.WebServices.Consulta.RetWS);
          memoRespWS.Lines.Text :=  UTF8Encode(CTe.WebServices.Consulta.RetornoWS);
          LoadXML(MemoResp, WBResposta);


          iProtINI:=Pos('<nProt>', MemoResp.Lines.Text)+7;
          iProtFim:=Pos('</nProt>', MemoResp.Lines.Text);
          iProtSIZE:=iProtFIM-iProtINI;
          sProtocolo:=Copy(MemoResp.Lines.Text,iProtINI,iProtSIZE);

          sNumeroCTE:=Copy(sChaveOriginal,28,07);

          dm1.Nota.Edit;
          dm1.NotaTXTERRO.AsString:=sERRO_VALIDACAO;
          dm1.NotaERROCTE.AsString:='S';
          dm1.NotaPROTOC.AsString:=sProtocolo;
          dm1.NotaCHAVECTE.AsString:=sChaveOriginal;
          dm1.Nota.Post;

     end
     else
     begin
      CTE.Conhecimentos.Items[0].SaveToFile;  // se nao deu erro salva arquivo assinado
      {
      sArquivoOrigem:=trim(dm1.NotaARQUIVO.AsString);
      sCaminhoDestino:='E:\PEDIDOPELACONECTA   ';
      sArquivoDestino:=trim(sCaminhoDestino)+'\'+sChaveCTE+'-cte.XML';
       try
//         CopyFile(PChar(), PChar(NovaPasta), true);
         CopyFile(PChar(sArquivoOrigem), PChar(sArquivoDestino), true);
       except
         ShowMessage('Ocorreu um erro durante a cópia. Por favor, verifique o caminho');
       end}
     end;

     if DM1.Nota.Eof then
     begin
        Acabou_CTRC:=false;
     end;

    end;
 

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...