예제 #1
0
        public static void SalvarXmlEmDisco(this retEnviCte retEnviCte, ConfiguracaoServico configuracaoServico = null)
        {
            var instanciaServico = configuracaoServico ?? ConfiguracaoServico.Instancia;

            if (instanciaServico.NaoSalvarXml())
            {
                return;
            }

            var caminhoXml = instanciaServico.DiretorioSalvarXml;

            var arquivoSalvar = Path.Combine(caminhoXml, retEnviCte.infRec.nRec + "-rec.xml");

            FuncoesXml.ClasseParaArquivoXml(retEnviCte, arquivoSalvar);
        }
예제 #2
0
        public static void SalvarXmlEmDisco(this retEnviCte retEnviCte)
        {
            var instanciaServico = ConfiguracaoServico.Instancia;

            if (instanciaServico.NaoSalvarXml())
            {
                return;
            }

            var caminhoXml = instanciaServico.DiretorioSalvarXml;

            var arquivoSalvar = caminhoXml + @"\" + retEnviCte.infRec.nRec + "-rec.xml";

            FuncoesXml.ClasseParaArquivoXml(retEnviCte, arquivoSalvar);
        }
예제 #3
0
        public RetornoEnviarCte Enviar(int lote, Classes.CTe cte, ConfiguracaoServico configuracaoServico = null)
        {
            var configServico = configuracaoServico ?? ConfiguracaoServico.Instancia;

            ServicoCTeRecepcao servicoRecepcao = new ServicoCTeRecepcao();

            retEnviCte retEnviCte = servicoRecepcao.CTeRecepcao(lote, new List <Classes.CTe> {
                cte
            }, configServico);

            if (retEnviCte.cStat != 103)
            {
                return(new RetornoEnviarCte(retEnviCte, null, null));
            }

            ConsultaReciboServico servicoConsultaRecibo = new ConsultaReciboServico(retEnviCte.infRec.nRec);

            retConsReciCTe retConsReciCTe = servicoConsultaRecibo.Consultar(configServico);


            cteProc cteProc = null;

            if (retConsReciCTe.cStat == 104)
            {
                if (retConsReciCTe.protCTe[0].infProt.cStat != 100)
                {
                    return(new RetornoEnviarCte(retEnviCte, retConsReciCTe, null));
                }

                cteProc = new cteProc
                {
                    CTe     = cte,
                    versao  = configServico.VersaoLayout,
                    protCTe = retConsReciCTe.protCTe[0]
                };
            }

            cteProc.SalvarXmlEmDisco(configServico);

            return(new RetornoEnviarCte(retEnviCte, retConsReciCTe, cteProc));
        }
예제 #4
0
        public async Task <RetornoEnviarCte> EnviarAsync(int lote, Classes.CTe cte)
        {
            ServicoCTeRecepcao servicoRecepcao = new ServicoCTeRecepcao();

            retEnviCte retEnviCte = await servicoRecepcao.CTeRecepcaoAsync(lote, new List <Classes.CTe> {
                cte
            });

            if (retEnviCte.cStat != 103)
            {
                return(new RetornoEnviarCte(retEnviCte, null, null));
            }

            ConsultaReciboServico servicoConsultaRecibo = new ConsultaReciboServico(retEnviCte.infRec.nRec);

            retConsReciCTe retConsReciCTe = await servicoConsultaRecibo.ConsultarAsync();


            cteProc cteProc = null;

            if (retConsReciCTe.cStat == 104)
            {
                if (retConsReciCTe.protCTe[0].infProt.cStat != 100)
                {
                    return(new RetornoEnviarCte(retEnviCte, retConsReciCTe, null));
                }

                cteProc = new cteProc
                {
                    CTe     = cte,
                    versao  = ConfiguracaoServico.Instancia.VersaoLayout,
                    protCTe = retConsReciCTe.protCTe[0]
                };
            }

            cteProc.SalvarXmlEmDisco();

            return(new RetornoEnviarCte(retEnviCte, retConsReciCTe, cteProc));
        }
예제 #5
0
 /// <summary>
 ///     Converte o objeto retEnviCte para uma string no formato XML
 /// </summary>
 /// <param name="retEnviCte"></param>
 /// <returns>Retorna uma string no formato XML com os dados do objeto retEnviCte</returns>
 public static string ObterXmlString(this retEnviCte retEnviCte)
 {
     return(FuncoesXml.ClasseParaXmlString(retEnviCte));
 }
예제 #6
0
 /// <summary>
 ///     Coverte uma string XML no formato NFe para um objeto retEnviCte
 /// </summary>
 /// <param name="retEnviCte"></param>
 /// <param name="xmlString"></param>
 /// <returns>Retorna um objeto do tipo retEnviCte</returns>
 public static retEnviCte CarregarDeXmlString(this retEnviCte retEnviCte, string xmlString)
 {
     return(FuncoesXml.XmlStringParaClasse <retEnviCte>(xmlString));
 }
예제 #7
0
 public RetornoEnviarCte(retEnviCte retEnviCte, retConsReciCTe retConsReciCTe, cteProc cteProc)
 {
     RetEnviCte     = retEnviCte;
     RetConsReciCTe = retConsReciCTe;
     CteProc        = cteProc;
 }