示例#1
0
        public async Task <ActionResult <Cotacao> > PostCotacao(Cotacao cotacao)
        {
            if (!String.IsNullOrEmpty(cotacao.CEP))
            {
                DadosRetorno dadosRetorno = Utils.GetViaCEP(cotacao.CEP);

                if (dadosRetorno != null)
                {
                    if (String.IsNullOrEmpty(cotacao.Logradouro))
                    {
                        cotacao.Logradouro = dadosRetorno.logradouro;
                    }
                    if (String.IsNullOrEmpty(cotacao.UF))
                    {
                        cotacao.UF = dadosRetorno.uf;
                    }
                    if (String.IsNullOrEmpty(cotacao.Bairro))
                    {
                        cotacao.Bairro = dadosRetorno.bairro;
                    }
                }
            }
            _context.Cotacao.Add(cotacao);

            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCotacao", new { id = cotacao.CotacaoId }, cotacao));
        }
示例#2
0
        public IHttpActionResult Get()
        {
            var resultList = new  DadosRetorno <List <EntidadeRetornaPessoa> >();

            string mensagem = string.Empty;

            resultList.mensagem = "OK";
            resultList.conteudo = ws.RetornaPessoa();
            resultList.sucesso  = true;



            return(Ok(resultList));
        }
示例#3
0
        private DadosRetorno CarregaDadosRetorno(retConsSitNFe objConsulta)
        {
            DadosRetorno objRetorno = new DadosRetorno();

            objRetorno.cStat   = objConsulta.cStat;
            objRetorno.xMotivo = objConsulta.xMotivo;
            if (objConsulta.protNFe != null)
            {
                objRetorno.dhRecbto = objConsulta.protNFe.infProt.dhRecbto.ToString("dd/MM/yyyy HH:mm");
                objRetorno.digVal   = objConsulta.protNFe.infProt.digVal;
            }
            objRetorno.chNFe = objConsulta.chNFe;

            if ((objRetorno.cStat == "100") || (objRetorno.cStat == "101") || (objRetorno.cStat == "110"))
            {
                objRetorno.nProt = "";
                if (objConsulta.procEventoNFe.Count() > 0)
                {
                    foreach (retConsSitNFeProcEventoNFe evento in objConsulta.procEventoNFe)
                    {
                        if (evento.retEvento.infEvento.tpEvento == "110111")
                        {
                            objRetorno.nProt   = evento.retEvento.infEvento.nProt;
                            objRetorno.xMotivo = objConsulta.xMotivo;
                            //Altera Nota para cancelada
                            dao.NFe.daoCancelamento objdaoCanc = new dao.NFe.daoCancelamento();
                            objdaoCanc.AlteraNotaParaCancelada(objRetorno.nProt, objPesquisa.sCD_NFSEQ);
                            belCancelamento.MoveArquivoParaPastaCancelada(objPesquisa);
                        }
                    }
                }
                if (objRetorno.nProt == "")
                {
                    objRetorno.nProt = objConsulta.protNFe.infProt.nProt;
                }
            }
            else
            {
                objRetorno.dhRecbto = "s/data";
                objRetorno.nProt    = "inexistente";
                objRetorno.digVal   = "inexistente";
            }
            objRetorno.nNota   = objPesquisa.sCD_NOTAFIS;
            objRetorno.seqNota = objPesquisa.sCD_NFSEQ;
            return(objRetorno);
        }
        public static DadosRetorno RealizaConsultaStatusServico()
        {
            DadosRetorno dRetorno = new DadosRetorno();
            if (Acesso.TP_EMIS == 1 || Acesso.TP_EMIS == 2)
            {
                switch (Acesso.xUFtoWS)
                {
                    case "SP":
                        {
                            dRetorno = ConsultaServico_SP();
                        }
                        break;
                    case "RS":
                        {
                            dRetorno = ConsultaServico_RS();
                        }
                        break;
                    case "MS":
                        {
                            dRetorno = ConsultaServico_MS();
                        }
                        break;
                    case "SVRS":
                        {
                            dRetorno = ConsultaServico_SVRS();
                        }
                        break;
                    case "MG":
                        {
                            dRetorno = ConsultaServico_MG();
                        }
                        break;
                }
            }
            else if (Acesso.TP_EMIS == 3)
            {
                dRetorno = ConsultaServico_SCAN();
            }
            else if (Acesso.TP_EMIS == 6)
            {
                dRetorno = ConsultaServico_SVAN();
            }

            return dRetorno;
        }
示例#5
0
        private DadosRetorno CarregaDadosRetorno(belRetEventoCancelamento objret)
        {
            DadosRetorno objRetorno = new DadosRetorno();

            objRetorno.cstat   = objret.retEvento.infEvento.cStat.ToString();
            objRetorno.xMotivo = objret.retEvento.infEvento.xMotivo;
            objRetorno.chnfe   = objret.retEvento.infEvento.chNFe;
            objRetorno.nNF     = objPesquisa.sCD_NOTAFIS;
            objRetorno.seqNF   = objPesquisa.sCD_NFSEQ;

            //if (objRetorno.cstat != "101" && objRetorno.cstat != "151" && objRetorno.cstat != "155")
            if (objRetorno.cstat != "135" && objRetorno.cstat != "136")
            {
                objRetorno.nprot = "inexistente";
            }
            else
            {
                string nprot = objret.retEvento.infEvento.nProt.ToString();
                AlteraNotaParaCancelada(nprot, objPesquisa.sCD_NFSEQ);
                MoveArquivoParaPastaCancelada(objPesquisa);
            }
            return(objRetorno);
        }
        private DadosRetorno MontaMsgRetorno(XmlDocument xRetorno)
        {
            DadosRetorno objRet = new DadosRetorno();
            XmlNodeList cStat = xRetorno.GetElementsByTagName("cStat");
            XmlNodeList xMotivo = xRetorno.GetElementsByTagName("xMotivo");
            XmlNodeList dhCons = xRetorno.GetElementsByTagName("dhCons");
            XmlNodeList cSit = xRetorno.GetElementsByTagName("cSit");
            XmlNodeList xNome = xRetorno.GetElementsByTagName("xNome");
            XmlNodeList xRegApur = xRetorno.GetElementsByTagName("xRegApur");
            XmlNodeList CNAE = xRetorno.GetElementsByTagName("CNAE");
            XmlNodeList dIniAtiv = xRetorno.GetElementsByTagName("dIniAtiv");
            XmlNodeList dUltSit = xRetorno.GetElementsByTagName("dUltSit");
            XmlNodeList dBaixa = xRetorno.GetElementsByTagName("dBaixa");

            if (cStat.Count > 0)
            {
                objRet.cStat = cStat[0].InnerText.ToString();
            }

            if (xMotivo.Count > 0)
            {
                objRet.xMotivo = xMotivo[0].InnerText.ToString();
            }
            if (cSit.Count > 0)
            {
                objRet.cSit = (cSit[0].InnerText.ToString() == "0" ? "Não Habilitado" : "Habilitado.");
            }

            if (dhCons.Count > 0)
            {
                objRet.dhCons = Convert.ToDateTime(dhCons[0].InnerText).ToString("dd/MM/yyyy HH:mm:ss");
            }

            if (xNome.Count > 0)
            {
                objRet.xNome = xNome[0].InnerText.ToString();
            }

            if (xRegApur.Count > 0)
            {
                objRet.xRegApur = xRegApur[0].InnerText.ToString();
            }

            if (CNAE.Count > 0)
            {
                objRet.CNAE = CNAE[0].InnerText.ToString();
            }

            if (dIniAtiv.Count > 0)
            {
                objRet.dIniAtiv = Convert.ToDateTime(dIniAtiv[0].InnerText).ToString("dd/MM/yyyy");
            }

            if (dUltSit.Count > 0)
            {
                objRet.dUltSit = Convert.ToDateTime(dUltSit[0].InnerText).ToString("dd/MM/yyyy");
            }

            if (dBaixa.Count > 0)
            {
                objRet.dBaixa = Convert.ToDateTime(dBaixa[0].InnerText).ToString("dd/MM/yyyy");
            }
            return objRet;
        }
示例#7
0
        public DadosRetorno InutilizaNumeracao()
        {
            try
            {
                string sRetorno = string.Empty;
                NfeDadosMgs();
                if (Acesso.TP_EMIS == 1)
                {
                    switch (Acesso.xUFtoWS)
                    {
                        case "SP":
                            {
                                if (Acesso.TP_AMB == 1)
                                {
                                    HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                                else
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = "2.00";
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                            }
                            break;
                        case "MS":
                            {
                                if (Acesso.TP_AMB == 1)
                                {
                                    HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                                else
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = "2.00";
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                            }
                            break;
                        case "RS":
                            {
                                if (Acesso.TP_AMB == 1)
                                {
                                    HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                                else
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = "2.00";
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                            }
                            break;
                        case "SVRS":
                            {
                                if (Acesso.TP_AMB == 1)
                                {
                                    HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                                else
                                {
                                    HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = "2.00";
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                            }
                            break;
                        case "MG":
                            {
                                if (Acesso.TP_AMB == 1)
                                {
                                    HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                                else
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.NfeInutilizacao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = "2.00";
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    ws2.nfeCabecMsgValue = cabec;

                                    XmlDocument xmlInut = new XmlDocument();
                                    xmlInut.Load(_sPath);
                                    XmlNode xNodeInut = xmlInut.DocumentElement;
                                    sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                                }
                            }
                            break;
                    }
                }
                else if (Acesso.TP_EMIS == 3)
                {
                    if (Acesso.TP_AMB == 1)
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.NfeInutilizacao2();
                        cabec.cUF = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlInut = new XmlDocument();
                        xmlInut.Load(_sPath);
                        XmlNode xNodeInut = xmlInut.DocumentElement;
                        sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;

                    }
                    else
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.NfeInutilizacao2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.NfeInutilizacao2();
                        cabec.cUF = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlInut = new XmlDocument();
                        xmlInut.Load(_sPath);
                        XmlNode xNodeInut = xmlInut.DocumentElement;
                        sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                    }
                }
                else if (Acesso.TP_EMIS == 6)
                {
                        throw new Exception("Homologação não permitida para o modo SVC-AN");
                }

                DadosRetorno ret = new DadosRetorno();
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.LoadXml(sRetorno);
                ret.tpAmb = (xmldoc.GetElementsByTagName("tpAmb")[0] != null ? xmldoc.GetElementsByTagName("tpAmb")[0].InnerText : "");
                ret.cStat = (xmldoc.GetElementsByTagName("cStat")[0] != null ? xmldoc.GetElementsByTagName("cStat")[0].InnerText : "");
                ret.xMotivo = (xmldoc.GetElementsByTagName("xMotivo")[0] != null ? xmldoc.GetElementsByTagName("xMotivo")[0].InnerText : "");
                ret.ano = (xmldoc.GetElementsByTagName("ano")[0] != null ? xmldoc.GetElementsByTagName("ano")[0].InnerText : "");
                ret.mod = (xmldoc.GetElementsByTagName("mod")[0] != null ? xmldoc.GetElementsByTagName("mod")[0].InnerText : "");
                ret.serie = (xmldoc.GetElementsByTagName("serie")[0] != null ? xmldoc.GetElementsByTagName("serie")[0].InnerText : "");
                ret.nNFIni = (xmldoc.GetElementsByTagName("nNFIni")[0] != null ? xmldoc.GetElementsByTagName("nNFIni")[0].InnerText : "");
                ret.nNFFin = (xmldoc.GetElementsByTagName("nNFFin")[0] != null ? xmldoc.GetElementsByTagName("nNFFin")[0].InnerText : "");
                ret.dhRecbto = (xmldoc.GetElementsByTagName("dhRecbto")[0] != null ? xmldoc.GetElementsByTagName("dhRecbto")[0].InnerText.Replace('T', ' ') : "");
                ret.nProt = (xmldoc.GetElementsByTagName("nProt")[0] != null ? xmldoc.GetElementsByTagName("nProt")[0].InnerText : "");

                if (ret.cStat.Equals("102"))
                {
                    xmldoc.Save(Pastas.PROTOCOLOS + "\\" + ret.nProt + "_inu.xml");
                    InseriRegistroInutilizado(_nnfini, _nnffim, _serie, _sjust);                 
                }

                return ret;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#8
0
        private DadosRetorno MontaMsgRetorno(XmlDocument xRetorno)
        {
            DadosRetorno objRet   = new DadosRetorno();
            XmlNodeList  cStat    = xRetorno.GetElementsByTagName("cStat");
            XmlNodeList  xMotivo  = xRetorno.GetElementsByTagName("xMotivo");
            XmlNodeList  dhCons   = xRetorno.GetElementsByTagName("dhCons");
            XmlNodeList  cSit     = xRetorno.GetElementsByTagName("cSit");
            XmlNodeList  xNome    = xRetorno.GetElementsByTagName("xNome");
            XmlNodeList  xRegApur = xRetorno.GetElementsByTagName("xRegApur");
            XmlNodeList  CNAE     = xRetorno.GetElementsByTagName("CNAE");
            XmlNodeList  dIniAtiv = xRetorno.GetElementsByTagName("dIniAtiv");
            XmlNodeList  dUltSit  = xRetorno.GetElementsByTagName("dUltSit");
            XmlNodeList  dBaixa   = xRetorno.GetElementsByTagName("dBaixa");

            if (cStat.Count > 0)
            {
                objRet.cStat = cStat[0].InnerText.ToString();
            }

            if (xMotivo.Count > 0)
            {
                objRet.xMotivo = xMotivo[0].InnerText.ToString();
            }
            if (cSit.Count > 0)
            {
                objRet.cSit = (cSit[0].InnerText.ToString() == "0" ? "Não Habilitado" : "Habilitado.");
            }

            if (dhCons.Count > 0)
            {
                objRet.dhCons = Convert.ToDateTime(dhCons[0].InnerText).ToString("dd/MM/yyyy HH:mm:ss");
            }

            if (xNome.Count > 0)
            {
                objRet.xNome = xNome[0].InnerText.ToString();
            }

            if (xRegApur.Count > 0)
            {
                objRet.xRegApur = xRegApur[0].InnerText.ToString();
            }

            if (CNAE.Count > 0)
            {
                objRet.CNAE = CNAE[0].InnerText.ToString();
            }

            if (dIniAtiv.Count > 0)
            {
                objRet.dIniAtiv = Convert.ToDateTime(dIniAtiv[0].InnerText).ToString("dd/MM/yyyy");
            }

            if (dUltSit.Count > 0)
            {
                objRet.dUltSit = Convert.ToDateTime(dUltSit[0].InnerText).ToString("dd/MM/yyyy");
            }

            if (dBaixa.Count > 0)
            {
                objRet.dBaixa = Convert.ToDateTime(dBaixa[0].InnerText).ToString("dd/MM/yyyy");
            }
            return(objRet);
        }
示例#9
0
        public void BuscaRetorno()
        {
            try
            {
                XNamespace pf = "http://www.portalfiscal.inf.br/nfe";
                XmlDocument xret = new XmlDocument();
                string sCodRetorno = string.Empty;
                xret = Exec_Cosulta(lnotas.FirstOrDefault().sRECIBO_NF);

                while (!bStopRetorno)
                {
                    sCodRetorno = "";
                    XmlNodeList nodeschNFe = xret.GetElementsByTagName("chNFe");
                    XmlNodeList nodecStat = xret.GetElementsByTagName("cStat");
                    XmlNodeList nodesxMotivo = xret.GetElementsByTagName("xMotivo");
                    DadosRetorno ret = new DadosRetorno();

                    if (nodecStat[0].InnerText == "105") // Em processamento
                    {
                        int iCount = 0;
                        //while (iCount < 2)
                        //{
                        Thread.Sleep(4000);

                        ret = new DadosRetorno();
                        xret = Exec_Cosulta(lnotas.FirstOrDefault().sRECIBO_NF);

                        nodeschNFe = xret.GetElementsByTagName("chNFe");
                        nodecStat = xret.GetElementsByTagName("cStat");
                        nodesxMotivo = xret.GetElementsByTagName("xMotivo");

                        ret.cStat = nodecStat[0].InnerText;
                        ret.xMotivo = nodesxMotivo[0].InnerText;

                        if (nodecStat[0].InnerText != "105")
                        {
                            iCount = 2;
                        }
                        iCount++;
                        //}
                        //lDadosRetorno.Add(ret);
                    }
                    if (nodecStat[0].InnerText != "104" && nodecStat[0].InnerText != "656")
                    {
                        ret.cStat = nodecStat[0].InnerText;
                        ret.xMotivo = nodesxMotivo[0].InnerText;
                        bStopRetorno = true;
                        LimpaCampoRecibo();
                        lDadosRetorno.Add(ret);
                    }
                    else if (nodecStat[0].InnerText == "656")
                    {
                        ret.cStat = nodecStat[0].InnerText;
                        ret.xMotivo = nodesxMotivo[0].InnerText;
                        bStopRetorno = true;
                        lDadosRetorno.Add(ret);
                    }
                    else
                    {
                        int iCountNProt = 0;
                        for (int i = 0; (i < nodeschNFe.Count) && !bStopRetorno; i++)
                        {
                            if (lnotas.Where(c => c.sCHAVENFE == nodeschNFe[i].InnerText).Count() > 0)
                            {
                                belPesquisaNotas nota = lnotas.FirstOrDefault(c => c.sCHAVENFE == nodeschNFe[i].InnerText);
                                ret = new DadosRetorno();
                                ret.cStat = nodecStat[i + 1].InnerText;
                                ret.xMotivo = nodesxMotivo[i + 1].InnerText;
                                ret.seqNota = nota.sCD_NFSEQ;
                                ret.nNota = nota.sCD_NOTAFIS;

                                if (nodecStat[i + 1].InnerText == "100") // 100 - Enviada com sucesso
                                {
                                    SalvaProtocoloNFe(nota.sCD_NFSEQ, nota.sCHAVENFE, xret.GetElementsByTagName("nProt")[iCountNProt].InnerText);
                                    IncluiTagInfProc(nota, xret.GetElementsByTagName("protNFe")[iCountNProt], pf);
                                    xret.Save(Pastas.PROTOCOLOS + "\\" + nota.sRECIBO_NF + "-pro-rec.xml");
                                    iCountNProt++;
                                }
                                else if (nodecStat[i + 1].InnerText == "101") // 101 - Nota Cancelada.
                                {
                                    SalvaProtocoloNFe(nota.sCD_NFSEQ, nota.sCHAVENFE, xret.GetElementsByTagName("nProt")[i].InnerText);
                                    IncluiTagInfProc(nota, xret.GetElementsByTagName("protNFe")[i], pf);
                                    DirectoryInfo dinfo = Util.BuscaDiretorioArquivoXml(nota.sCHAVENFE, 2);
                                    File.Move(Util.BuscaCaminhoArquivoXml(nota.sCHAVENFE, 2), Pastas.CANCELADOS + "\\" + nota.sCHAVENFE + "can.xml");
                                }
                                else if (nodecStat[i + 1].InnerText == "204") // Rejeição: Duplicidade de NF-e
                                {
                                    int icount = nodesxMotivo[i + 1].InnerText.Count() - (nodesxMotivo[i + 1].InnerText.IndexOf("nRec") + 6);
                                    string sRet = nodesxMotivo[i + 1].InnerText.Substring((nodesxMotivo[i + 1].InnerText.IndexOf("nRec") + 5), icount);

                                    if (sRet.Count() != 15)
                                    {
                                        AlteraStatusNotaDuplicada(nota.sCD_NFSEQ);
                                        string sPathEnvio = Util.BuscaCaminhoArquivoXml(nota.sCHAVENFE, 1);
                                        string sPathEnviados = Util.BuscaCaminhoArquivoXml(nota.sCHAVENFE, 2);
                                        if (!File.Exists(sPathEnviados))
                                        {
                                            File.Copy(sPathEnvio, sPathEnviados);
                                        }
                                    }
                                    else
                                    {
                                        SalvaRetornoNotaDuplicada(sRet, nota.sCD_NFSEQ);
                                    }
                                }
                                else if ((nodecStat[i + 1].InnerText == "110") || (nodecStat[i + 1].InnerText == "302") || (nodecStat[i + 1].InnerText == "302"))
                                {
                                    NotaDenegada(nota.sCD_NFSEQ);
                                }
                                else if (nodecStat[i + 1].InnerText != "105") // Lote em processamento
                                {
                                    LimpaCampoRecibo();
                                }
                            }
                            if (ret.cStat != null)
                            {
                                lDadosRetorno.Add(ret);
                            }
                        }
                        bStopRetorno = true;
                        foreach (DadosRetorno nota in lDadosRetorno)
                        {
                            if (nota.cStat.Equals("100"))
                            {
                                AlteraStatusNotaParaEnviada(nota.seqNota);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#10
0
        public DadosRetorno InutilizaNumeracao()
        {
            try
            {
                string sRetorno = string.Empty;
                NfeDadosMgs();
                if (Acesso.TP_EMIS == 1)
                {
                    switch (Acesso.xUFtoWS)
                    {
                    case "SP":
                    {
                        if (Acesso.TP_AMB == 1)
                        {
                            HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_SP.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = Acesso.versaoNFe;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_SP.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = "2.00";
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                    }
                    break;

                    case "MS":
                    {
                        if (Acesso.TP_AMB == 1)
                        {
                            HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_MS.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = Acesso.versaoNFe;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_MS.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = "2.00";
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                    }
                    break;

                    case "RS":
                    {
                        if (Acesso.TP_AMB == 1)
                        {
                            HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeInutilizacao_RS.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = Acesso.versaoNFe;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeInutilizacao_RS.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = "2.00";
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                    }
                    break;

                    case "SVRS":
                    {
                        if (Acesso.TP_AMB == 1)
                        {
                            HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.nfeCabecMsg();
                            HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.V2_Producao_Inutilizacao_SVRS.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = Acesso.versaoNFe;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.nfeCabecMsg();
                            HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.V2_Homologacao_Inutilizacao_SVRS.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = "2.00";
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                    }
                    break;

                    case "MG":
                    {
                        if (Acesso.TP_AMB == 1)
                        {
                            HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NfeInutilizacao_MG.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = Acesso.versaoNFe;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NfeInutilizacao_MG.NfeInutilizacao2();
                            cabec.cUF         = Acesso.cUF.ToString();
                            cabec.versaoDados = "2.00";
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            ws2.nfeCabecMsgValue = cabec;

                            XmlDocument xmlInut = new XmlDocument();
                            xmlInut.Load(_sPath);
                            XmlNode xNodeInut = xmlInut.DocumentElement;
                            sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                        }
                    }
                    break;
                    }
                }
                else if (Acesso.TP_EMIS == 3)
                {
                    if (Acesso.TP_AMB == 1)
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeInutilizacao.NfeInutilizacao2();
                        cabec.cUF         = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlInut = new XmlDocument();
                        xmlInut.Load(_sPath);
                        XmlNode xNodeInut = xmlInut.DocumentElement;
                        sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                    }
                    else
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.NfeInutilizacao2 ws2   = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeInutilizacao.NfeInutilizacao2();
                        cabec.cUF         = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlInut = new XmlDocument();
                        xmlInut.Load(_sPath);
                        XmlNode xNodeInut = xmlInut.DocumentElement;
                        sRetorno = ws2.nfeInutilizacaoNF2(xNodeInut).OuterXml;
                    }
                }
                else if (Acesso.TP_EMIS == 6)
                {
                    throw new Exception("Homologação não permitida para o modo SVC-AN");
                }

                DadosRetorno ret    = new DadosRetorno();
                XmlDocument  xmldoc = new XmlDocument();
                xmldoc.LoadXml(sRetorno);
                ret.tpAmb    = (xmldoc.GetElementsByTagName("tpAmb")[0] != null ? xmldoc.GetElementsByTagName("tpAmb")[0].InnerText : "");
                ret.cStat    = (xmldoc.GetElementsByTagName("cStat")[0] != null ? xmldoc.GetElementsByTagName("cStat")[0].InnerText : "");
                ret.xMotivo  = (xmldoc.GetElementsByTagName("xMotivo")[0] != null ? xmldoc.GetElementsByTagName("xMotivo")[0].InnerText : "");
                ret.ano      = (xmldoc.GetElementsByTagName("ano")[0] != null ? xmldoc.GetElementsByTagName("ano")[0].InnerText : "");
                ret.mod      = (xmldoc.GetElementsByTagName("mod")[0] != null ? xmldoc.GetElementsByTagName("mod")[0].InnerText : "");
                ret.serie    = (xmldoc.GetElementsByTagName("serie")[0] != null ? xmldoc.GetElementsByTagName("serie")[0].InnerText : "");
                ret.nNFIni   = (xmldoc.GetElementsByTagName("nNFIni")[0] != null ? xmldoc.GetElementsByTagName("nNFIni")[0].InnerText : "");
                ret.nNFFin   = (xmldoc.GetElementsByTagName("nNFFin")[0] != null ? xmldoc.GetElementsByTagName("nNFFin")[0].InnerText : "");
                ret.dhRecbto = (xmldoc.GetElementsByTagName("dhRecbto")[0] != null ? xmldoc.GetElementsByTagName("dhRecbto")[0].InnerText.Replace('T', ' ') : "");
                ret.nProt    = (xmldoc.GetElementsByTagName("nProt")[0] != null ? xmldoc.GetElementsByTagName("nProt")[0].InnerText : "");

                if (ret.cStat.Equals("102"))
                {
                    xmldoc.Save(Pastas.PROTOCOLOS + "\\" + ret.nProt + "_inu.xml");
                    InseriRegistroInutilizado(_nnfini, _nnffim, _serie, _sjust);
                }

                return(ret);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#11
0
        public void EfetuaCancelamento(belPesquisaNotas _objPesquisa, string sJust, int iNumEvento)
        {
            this.objPesquisa = _objPesquisa;
            string      sDados = NFeDadosMsg2(_objPesquisa, sJust, iNumEvento);
            XmlDocument xRet   = new XmlDocument();

            if (Acesso.TP_EMIS == 1)
            {
                switch (Acesso.xUFtoWS)
                {
                case "SP":
                {
                    #region Regiao_SP
                    if (Acesso.TP_AMB == 1)
                    {
                        HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_SP.RecepcaoEvento ws2   = new WebService.v2_Producao_NFeRecepcaoEvento_SP.RecepcaoEvento();
                        HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_SP.nfeCabecMsg    cabec = new WebService.v2_Producao_NFeRecepcaoEvento_SP.nfeCabecMsg();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    if (Acesso.TP_AMB == 2)
                    {
                        HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.nfeCabecMsg    cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.RecepcaoEvento ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.RecepcaoEvento();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    #endregion
                }
                break;

                case "RS":
                {
                    #region Regiao_RS
                    if (Acesso.TP_AMB == 1)
                    {
                        HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_RS.RecepcaoEvento ws2   = new WebService.v2_Producao_NFeRecepcaoEvento_RS.RecepcaoEvento();
                        HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_RS.nfeCabecMsg    cabec = new WebService.v2_Producao_NFeRecepcaoEvento_RS.nfeCabecMsg();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    if (Acesso.TP_AMB == 2)
                    {
                        HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.nfeCabecMsg    cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.RecepcaoEvento ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.RecepcaoEvento();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    #endregion
                }
                break;

                case "MS":
                {
                    #region Regiao_SP
                    if (Acesso.TP_AMB == 1)
                    {
                        HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.nfeCabecMsg    cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.RecepcaoEvento ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.RecepcaoEvento();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    if (Acesso.TP_AMB == 2)
                    {
                        throw new Exception("Não implementado");
                    }
                    #endregion
                }
                break;

                case "SVRS":
                {
                    #region Regiao_SP
                    if (Acesso.TP_AMB == 1)
                    {
                        HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.nfeCabecMsg    cabec = new HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.nfeCabecMsg();
                        HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.RecepcaoEvento ws2   = new HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.RecepcaoEvento();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    if (Acesso.TP_AMB == 2)
                    {
                        throw new Exception("Não implementado para o RJ em modo de homologação.");
                    }
                    #endregion
                }
                break;

                case "MG":
                {
                    #region Regiao_MG
                    if (Acesso.TP_AMB == 1)
                    {
                        HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.nfeCabecMsg    cabec = new HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.RecepcaoEvento ws2   = new HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.RecepcaoEvento();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    if (Acesso.TP_AMB == 2)
                    {
                        HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.nfeCabecMsg    cabec = new HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.RecepcaoEvento ws2   = new HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.RecepcaoEvento();

                        cabec.versaoDados = "1.00";
                        cabec.cUF         = Acesso.cUF.ToString();
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        ws2.nfeCabecMsgValue = cabec;
                        XmlDocument xmlCanc = new XmlDocument();
                        xmlCanc.LoadXml(sDados);
                        XmlNode xNodeCanc = xmlCanc.DocumentElement;
                        string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                        xRet.LoadXml(sRet);
                    }
                    #endregion
                }
                break;
                }
            }
            else if (Acesso.TP_EMIS == 3)
            {
                #region SCAN
                if (Acesso.TP_AMB == 1)
                {
                    HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.NfeCancelamento2 ws2   = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.NfeCancelamento2();
                    HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.nfeCabecMsg();
                    cabec.versaoDados = Acesso.versaoNFe;
                    cabec.cUF         = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    xRet.LoadXml(ws2.nfeCancelamentoNF2(xNodeCanc).OuterXml);
                }
                if (Acesso.TP_AMB == 2)
                {
                    HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.NfeCancelamento2 ws2   = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.NfeCancelamento2();
                    HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.nfeCabecMsg      cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.nfeCabecMsg();

                    cabec.versaoDados = Acesso.versaoNFe;
                    cabec.cUF         = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    xRet.LoadXml(ws2.nfeCancelamentoNF2(xNodeCanc).OuterXml);
                }
                #endregion
            }
            else if (Acesso.TP_EMIS == 6)
            {
                #region SCAN
                if (Acesso.TP_AMB == 1)
                {
                    HLP.GeraXml.WebService.v2_SVC_Producao_RecepcaoEvento.RecepcaoEvento ws2   = new WebService.v2_SVC_Producao_RecepcaoEvento.RecepcaoEvento();
                    HLP.GeraXml.WebService.v2_SVC_Producao_RecepcaoEvento.nfeCabecMsg    cabec = new WebService.v2_SVC_Producao_RecepcaoEvento.nfeCabecMsg();

                    cabec.versaoDados = "1.00";
                    cabec.cUF         = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                    xRet.LoadXml(sRet);
                }
                if (Acesso.TP_AMB == 2)
                {
                    HLP.GeraXml.WebService.v2_SVC_Homologacao_RecepcaoEvento.RecepcaoEvento ws2   = new WebService.v2_SVC_Homologacao_RecepcaoEvento.RecepcaoEvento();
                    HLP.GeraXml.WebService.v2_SVC_Homologacao_RecepcaoEvento.nfeCabecMsg    cabec = new WebService.v2_SVC_Homologacao_RecepcaoEvento.nfeCabecMsg();

                    cabec.versaoDados = "1.00";
                    cabec.cUF         = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    string  sRet      = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                    xRet.LoadXml(sRet);
                }
                #endregion
            }


            string sPath = Pastas.PROTOCOLOS + "\\" + objPesquisa.sCD_NFSEQ + "_Ret_Pedcan" + DateTime.Now.ToString("ddMMyyHHmmss") + ".xml";
            xRet.Save(sPath);

            belRetEventoCancelamento objRet = SerializeClassToXml.DeserializeClasse <belRetEventoCancelamento>(sPath);

            if (objRet.retEvento.infEvento.cStat == "573")
            {
                objRetorno = new DadosRetorno();
                iNumEvento = iNumEvento + 1;
                EfetuaCancelamento(_objPesquisa, sJust, iNumEvento);
            }
            else
            {
                objRetorno = CarregaDadosRetorno(objRet);
            }
        }
示例#12
0
        public void BuscaRetorno()
        {
            try
            {
                XNamespace  pf          = "http://www.portalfiscal.inf.br/nfe";
                XmlDocument xret        = new XmlDocument();
                string      sCodRetorno = string.Empty;
                xret = Exec_Cosulta(lnotas.FirstOrDefault().sRECIBO_NF);

                while (!bStopRetorno)
                {
                    sCodRetorno = "";
                    XmlNodeList  nodeschNFe   = xret.GetElementsByTagName("chNFe");
                    XmlNodeList  nodecStat    = xret.GetElementsByTagName("cStat");
                    XmlNodeList  nodesxMotivo = xret.GetElementsByTagName("xMotivo");
                    DadosRetorno ret          = new DadosRetorno();

                    if (nodecStat[0].InnerText == "105") // Em processamento
                    {
                        int iCount = 0;
                        //while (iCount < 2)
                        //{
                        Thread.Sleep(4000);

                        ret  = new DadosRetorno();
                        xret = Exec_Cosulta(lnotas.FirstOrDefault().sRECIBO_NF);

                        nodeschNFe   = xret.GetElementsByTagName("chNFe");
                        nodecStat    = xret.GetElementsByTagName("cStat");
                        nodesxMotivo = xret.GetElementsByTagName("xMotivo");

                        ret.cStat   = nodecStat[0].InnerText;
                        ret.xMotivo = nodesxMotivo[0].InnerText;

                        if (nodecStat[0].InnerText != "105")
                        {
                            iCount = 2;
                        }
                        iCount++;
                        //}
                        //lDadosRetorno.Add(ret);
                    }
                    if (nodecStat[0].InnerText != "104" && nodecStat[0].InnerText != "656")
                    {
                        ret.cStat    = nodecStat[0].InnerText;
                        ret.xMotivo  = nodesxMotivo[0].InnerText;
                        bStopRetorno = true;
                        LimpaCampoRecibo();
                        lDadosRetorno.Add(ret);
                    }
                    else if (nodecStat[0].InnerText == "656")
                    {
                        ret.cStat    = nodecStat[0].InnerText;
                        ret.xMotivo  = nodesxMotivo[0].InnerText;
                        bStopRetorno = true;
                        lDadosRetorno.Add(ret);
                    }
                    else
                    {
                        int iCountNProt = 0;
                        for (int i = 0; (i < nodeschNFe.Count) && !bStopRetorno; i++)
                        {
                            if (lnotas.Where(c => c.sCHAVENFE == nodeschNFe[i].InnerText).Count() > 0)
                            {
                                belPesquisaNotas nota = lnotas.FirstOrDefault(c => c.sCHAVENFE == nodeschNFe[i].InnerText);
                                ret         = new DadosRetorno();
                                ret.cStat   = nodecStat[i + 1].InnerText;
                                ret.xMotivo = nodesxMotivo[i + 1].InnerText;
                                ret.seqNota = nota.sCD_NFSEQ;
                                ret.nNota   = nota.sCD_NOTAFIS;

                                if (nodecStat[i + 1].InnerText == "100") // 100 - Enviada com sucesso
                                {
                                    SalvaProtocoloNFe(nota.sCD_NFSEQ, nota.sCHAVENFE, xret.GetElementsByTagName("nProt")[iCountNProt].InnerText);
                                    IncluiTagInfProc(nota, xret.GetElementsByTagName("protNFe")[iCountNProt], pf);
                                    xret.Save(Pastas.PROTOCOLOS + "\\" + nota.sRECIBO_NF + "-pro-rec.xml");
                                    iCountNProt++;
                                }
                                else if (nodecStat[i + 1].InnerText == "101") // 101 - Nota Cancelada.
                                {
                                    SalvaProtocoloNFe(nota.sCD_NFSEQ, nota.sCHAVENFE, xret.GetElementsByTagName("nProt")[i].InnerText);
                                    IncluiTagInfProc(nota, xret.GetElementsByTagName("protNFe")[i], pf);
                                    DirectoryInfo dinfo = Util.BuscaDiretorioArquivoXml(nota.sCHAVENFE, 2);
                                    File.Move(Util.BuscaCaminhoArquivoXml(nota.sCHAVENFE, 2), Pastas.CANCELADOS + "\\" + nota.sCHAVENFE + "can.xml");
                                }
                                else if (nodecStat[i + 1].InnerText == "204") // Rejeição: Duplicidade de NF-e
                                {
                                    int    icount = nodesxMotivo[i + 1].InnerText.Count() - (nodesxMotivo[i + 1].InnerText.IndexOf("nRec") + 6);
                                    string sRet   = nodesxMotivo[i + 1].InnerText.Substring((nodesxMotivo[i + 1].InnerText.IndexOf("nRec") + 5), icount);

                                    if (sRet.Count() != 15)
                                    {
                                        AlteraStatusNotaDuplicada(nota.sCD_NFSEQ);
                                        string sPathEnvio    = Util.BuscaCaminhoArquivoXml(nota.sCHAVENFE, 1);
                                        string sPathEnviados = Util.BuscaCaminhoArquivoXml(nota.sCHAVENFE, 2);
                                        if (!File.Exists(sPathEnviados))
                                        {
                                            File.Copy(sPathEnvio, sPathEnviados);
                                        }
                                    }
                                    else
                                    {
                                        SalvaRetornoNotaDuplicada(sRet, nota.sCD_NFSEQ);
                                    }
                                }
                                else if ((nodecStat[i + 1].InnerText == "110") || (nodecStat[i + 1].InnerText == "302") || (nodecStat[i + 1].InnerText == "302"))
                                {
                                    NotaDenegada(nota.sCD_NFSEQ);
                                }
                                else if (nodecStat[i + 1].InnerText != "105") // Lote em processamento
                                {
                                    LimpaCampoRecibo();
                                }
                            }
                            if (ret.cStat != null)
                            {
                                lDadosRetorno.Add(ret);
                            }
                        }
                        bStopRetorno = true;
                        foreach (DadosRetorno nota in lDadosRetorno)
                        {
                            if (nota.cStat.Equals("100"))
                            {
                                AlteraStatusNotaParaEnviada(nota.seqNota);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#13
0
        private static DadosRetorno ConsultaServico_SCAN()
        {
            DadosRetorno dRetorno = new DadosRetorno();
            string snfeCabecMsg = NfeCabecMsg();
            XmlDocument xdDadosMsg = NfeDadosMsg();
            try
            {
                if (Acesso.TP_AMB == 1)
                {
                    #region Produção
                    HLP.GeraXml.WebService.v2_SCAN_Producao_NFeStatusServico.NfeStatusServico2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeStatusServico.NfeStatusServico2();
                    HLP.GeraXml.WebService.v2_SCAN_Producao_NFeStatusServico.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeStatusServico.nfeCabecMsg();
                    cabec.cUF = Acesso.cUF.ToString();
                    cabec.versaoDados = Acesso.versaoNFe.ToString();
                    ws2.nfeCabecMsgValue = cabec;
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);

                    XmlNode xmlDados = null;
                    xmlDados = xdDadosMsg.DocumentElement;

                    string resp = ws2.nfeStatusServicoNF2(xmlDados).OuterXml;

                    XElement Elemento = XElement.Parse(resp);

                    XNamespace xname = "http://www.portalfiscal.inf.br/nfe";

                    // Busca do status da conexao
                    var Status =
                        from b in Elemento.Elements(xname + "cStat")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Status = (string)b.Value
                        };
                    foreach (var Stat in Status)
                    {
                        dRetorno.cStat = Stat.Status;
                    }
                    //

                    // Busca do Descricao do Motivo do status                
                    var Motivo =
                        from b in Elemento.Elements(xname + "xMotivo")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Motivo = (string)b.Value
                        };
                    foreach (var xMotivo in Motivo)
                    {
                        dRetorno.xMotivo = xMotivo.Motivo;
                    }
                    //

                    //Mostra o tempo medio de resposta do site.                
                    var tMed =
                        from b in Elemento.Elements(xname + "tMed")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            TempoMedio = (string)b.Value
                        };
                    foreach (var TempoMedio in tMed)
                    {
                        dRetorno.Tmed = Convert.ToInt32(TempoMedio.TempoMedio);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRecibo =
                        from b in Elemento.Elements(xname + "dhRecbto")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRecibo = (string)b.Value
                        };
                    foreach (var dhrec in dhRecibo)
                    {
                        dRetorno.Dhrecibo = Convert.ToDateTime(dhrec.datahoraRecibo);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRetorno =
                        from b in Elemento.Elements(xname + "dhRetorno")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRetorno = (string)b.Value
                        };
                    foreach (var dhret in dhRetorno)
                    {
                        dRetorno.Dhretorno = Convert.ToDateTime(dhret.datahoraRetorno);
                    }
                    #endregion

                }
                else
                {
                    #region Homologação
                    HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeStatusServico.NfeStatusServico2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeStatusServico.NfeStatusServico2();
                    HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeStatusServico.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeStatusServico.nfeCabecMsg();
                    cabec.cUF = Acesso.cUF.ToString();
                    cabec.versaoDados = Acesso.versaoNFe.ToString();
                    ws2.nfeCabecMsgValue = cabec;
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);

                    XmlNode xmlDados = null;
                    xmlDados = xdDadosMsg.DocumentElement;

                    string resp = ws2.nfeStatusServicoNF2(xmlDados).OuterXml;

                    XElement Elemento = XElement.Parse(resp);

                    XNamespace xname = "http://www.portalfiscal.inf.br/nfe";

                    // Busca do status da conexao
                    var Status =
                        from b in Elemento.Elements(xname + "cStat")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Status = (string)b.Value
                        };
                    foreach (var Stat in Status)
                    {
                        dRetorno.cStat = Stat.Status;
                    }
                    //

                    // Busca do Descricao do Motivo do status                
                    var Motivo =
                        from b in Elemento.Elements(xname + "xMotivo")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Motivo = (string)b.Value
                        };
                    foreach (var xMotivo in Motivo)
                    {
                        dRetorno.xMotivo = xMotivo.Motivo;
                    }
                    //

                    //Mostra o tempo medio de resposta do site.                
                    var tMed =
                        from b in Elemento.Elements(xname + "tMed")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            TempoMedio = (string)b.Value
                        };
                    foreach (var TempoMedio in tMed)
                    {
                        dRetorno.Tmed = Convert.ToInt32(TempoMedio.TempoMedio);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRecibo =
                        from b in Elemento.Elements(xname + "dhRecbto")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRecibo = (string)b.Value
                        };
                    foreach (var dhrec in dhRecibo)
                    {
                        dRetorno.Dhrecibo = Convert.ToDateTime(dhrec.datahoraRecibo);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRetorno =
                        from b in Elemento.Elements(xname + "dhRetorno")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRetorno = (string)b.Value
                        };
                    foreach (var dhret in dhRetorno)
                    {
                        dRetorno.Dhretorno = Convert.ToDateTime(dhret.datahoraRetorno);
                    }
                    #endregion
                }

                return dRetorno;
            }
            catch (Exception x)
            {
                throw new Exception("Problema com os WebServices - " + x.Message);
            }
        }
        private DadosRetorno CarregaDadosRetorno(retConsSitNFe objConsulta)
        {
            DadosRetorno objRetorno = new DadosRetorno();
            objRetorno.cStat = objConsulta.cStat;
            objRetorno.xMotivo = objConsulta.xMotivo;
            if (objConsulta.protNFe != null)
            {
                objRetorno.dhRecbto = objConsulta.protNFe.infProt.dhRecbto.ToString("dd/MM/yyyy HH:mm");
                objRetorno.digVal = objConsulta.protNFe.infProt.digVal;
            }
            objRetorno.chNFe = objConsulta.chNFe;

            if ((objRetorno.cStat == "100") || (objRetorno.cStat == "101") || (objRetorno.cStat == "110"))
            {
                objRetorno.nProt = "";
                if (objConsulta.procEventoNFe.Count() > 0)
                {
                    foreach (retConsSitNFeProcEventoNFe evento in objConsulta.procEventoNFe)
                    {
                        if (evento.retEvento.infEvento.tpEvento == "110111")
                        {
                            objRetorno.nProt = evento.retEvento.infEvento.nProt;
                            objRetorno.xMotivo = objConsulta.xMotivo;
                            //Altera Nota para cancelada
                            dao.NFe.daoCancelamento objdaoCanc = new dao.NFe.daoCancelamento();
                            objdaoCanc.AlteraNotaParaCancelada(objRetorno.nProt, objPesquisa.sCD_NFSEQ);
                            belCancelamento.MoveArquivoParaPastaCancelada(objPesquisa);
                        }
                    }
                }
                if (objRetorno.nProt == "")
                {
                    objRetorno.nProt = objConsulta.protNFe.infProt.nProt;
                }
            }
            else
            {
                objRetorno.dhRecbto = "s/data";
                objRetorno.nProt = "inexistente";
                objRetorno.digVal = "inexistente";
            }
            objRetorno.nNota = objPesquisa.sCD_NOTAFIS;
            objRetorno.seqNota = objPesquisa.sCD_NFSEQ;
            return objRetorno;
        }
示例#15
0
        public void EfetuaCancelamento(belPesquisaNotas _objPesquisa, string sJust, int iNumEvento)
        {
            this.objPesquisa = _objPesquisa;
            string sDados = NFeDadosMsg2(_objPesquisa, sJust, iNumEvento);
            XmlDocument xRet = new XmlDocument();

            if (Acesso.TP_EMIS == 1)
            {
                switch (Acesso.xUFtoWS)
                {
                    case "SP":
                        {
                            #region Regiao_SP
                            if (Acesso.TP_AMB == 1)
                            {
                                HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_SP.RecepcaoEvento ws2 = new WebService.v2_Producao_NFeRecepcaoEvento_SP.RecepcaoEvento();
                                HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_SP.nfeCabecMsg cabec = new WebService.v2_Producao_NFeRecepcaoEvento_SP.nfeCabecMsg();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);

                            }
                            if (Acesso.TP_AMB == 2)
                            {
                                HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.nfeCabecMsg();
                                HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.RecepcaoEvento ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_SP.RecepcaoEvento();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);

                            }
                            #endregion
                        }
                        break;
                    case "RS":
                        {
                            #region Regiao_RS
                            if (Acesso.TP_AMB == 1)
                            {
                                HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_RS.RecepcaoEvento ws2 = new WebService.v2_Producao_NFeRecepcaoEvento_RS.RecepcaoEvento();
                                HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_RS.nfeCabecMsg cabec = new WebService.v2_Producao_NFeRecepcaoEvento_RS.nfeCabecMsg();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);

                            }
                            if (Acesso.TP_AMB == 2)
                            {
                                HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.nfeCabecMsg();
                                HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.RecepcaoEvento ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcaoEvento_RS.RecepcaoEvento();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);

                            }
                            #endregion
                        }
                        break;
                    case "MS":
                        {
                            #region Regiao_SP
                            if (Acesso.TP_AMB == 1)
                            {
                                HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.nfeCabecMsg();
                                HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.RecepcaoEvento ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcaoEvento_MS.RecepcaoEvento();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);

                            }
                            if (Acesso.TP_AMB == 2)
                            {
                                throw new Exception("Não implementado");

                            }
                            #endregion
                        }
                        break;
                    case "SVRS":
                        {
                            #region Regiao_SP
                            if (Acesso.TP_AMB == 1)
                            {
                                HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.nfeCabecMsg();
                                HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.RecepcaoEvento ws2 = new HLP.GeraXml.WebService.V2_Producao_RecepcaoEvento_SVRS.RecepcaoEvento();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);
                            }
                            if (Acesso.TP_AMB == 2)
                            {                                
                                throw new Exception("Não implementado para o RJ em modo de homologação.");
                            }
                            #endregion
                        }
                        break;
                    case "MG":
                        {
                            #region Regiao_MG
                            if (Acesso.TP_AMB == 1)
                            {
                                HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.nfeCabecMsg();
                                HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.RecepcaoEvento ws2 = new HLP.GeraXml.WebService.v2_Producao_RecepcaoEvento_MG.RecepcaoEvento();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);

                            }
                            if (Acesso.TP_AMB == 2)
                            {
                                HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.nfeCabecMsg();
                                HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.RecepcaoEvento ws2 = new HLP.GeraXml.WebService.v2_Homologacao_RecepcaoEvento_MG.RecepcaoEvento();

                                cabec.versaoDados = "1.00";
                                cabec.cUF = Acesso.cUF.ToString();
                                ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                ws2.nfeCabecMsgValue = cabec;
                                XmlDocument xmlCanc = new XmlDocument();
                                xmlCanc.LoadXml(sDados);
                                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                                string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                                xRet.LoadXml(sRet);

                            }
                            #endregion
                        }
                        break;
                }
            }
            else if (Acesso.TP_EMIS == 3)
            {
                #region SCAN
                if (Acesso.TP_AMB == 1)
                {
                    HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.NfeCancelamento2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.NfeCancelamento2();
                    HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeCancelamento.nfeCabecMsg();
                    cabec.versaoDados = Acesso.versaoNFe;
                    cabec.cUF = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    xRet.LoadXml(ws2.nfeCancelamentoNF2(xNodeCanc).OuterXml);

                }
                if (Acesso.TP_AMB == 2)
                {

                    HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.NfeCancelamento2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.NfeCancelamento2();
                    HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeCancelamento.nfeCabecMsg();

                    cabec.versaoDados = Acesso.versaoNFe;
                    cabec.cUF = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    xRet.LoadXml(ws2.nfeCancelamentoNF2(xNodeCanc).OuterXml);

                }
                #endregion
            }
            else if (Acesso.TP_EMIS == 6)
            {
                #region SCAN
                if (Acesso.TP_AMB == 1)
                {
                    HLP.GeraXml.WebService.v2_SVC_Producao_RecepcaoEvento.RecepcaoEvento ws2 = new WebService.v2_SVC_Producao_RecepcaoEvento.RecepcaoEvento();
                    HLP.GeraXml.WebService.v2_SVC_Producao_RecepcaoEvento.nfeCabecMsg cabec = new WebService.v2_SVC_Producao_RecepcaoEvento.nfeCabecMsg();

                    cabec.versaoDados = "1.00";
                    cabec.cUF = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                    xRet.LoadXml(sRet);

                }
                if (Acesso.TP_AMB == 2)
                {
                    HLP.GeraXml.WebService.v2_SVC_Homologacao_RecepcaoEvento.RecepcaoEvento ws2 = new WebService.v2_SVC_Homologacao_RecepcaoEvento.RecepcaoEvento();
                    HLP.GeraXml.WebService.v2_SVC_Homologacao_RecepcaoEvento.nfeCabecMsg cabec = new WebService.v2_SVC_Homologacao_RecepcaoEvento.nfeCabecMsg();

                    cabec.versaoDados = "1.00";
                    cabec.cUF = Acesso.cUF.ToString();
                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                    ws2.nfeCabecMsgValue = cabec;
                    XmlDocument xmlCanc = new XmlDocument();
                    xmlCanc.LoadXml(sDados);
                    XmlNode xNodeCanc = xmlCanc.DocumentElement;
                    string sRet = ws2.nfeRecepcaoEvento(xNodeCanc).OuterXml;
                    xRet.LoadXml(sRet);
                }
                #endregion
            }


            string sPath = Pastas.PROTOCOLOS + "\\" + objPesquisa.sCD_NFSEQ + "_Ret_Pedcan" + DateTime.Now.ToString("ddMMyyHHmmss") + ".xml";
            xRet.Save(sPath);

            belRetEventoCancelamento objRet = SerializeClassToXml.DeserializeClasse<belRetEventoCancelamento>(sPath);

            if (objRet.retEvento.infEvento.cStat == "573")
            {
                objRetorno = new DadosRetorno();
                iNumEvento = iNumEvento + 1;
                EfetuaCancelamento(_objPesquisa, sJust, iNumEvento);
            }
            else
            {
              objRetorno =  CarregaDadosRetorno(objRet);
            }            
        }
示例#16
0
        private DadosRetorno CarregaDadosRetorno(belRetEventoCancelamento objret)
        {
            DadosRetorno objRetorno = new DadosRetorno();

            objRetorno.cstat = objret.retEvento.infEvento.cStat.ToString();
            objRetorno.xMotivo = objret.retEvento.infEvento.xMotivo;
            objRetorno.chnfe = objret.retEvento.infEvento.chNFe;
            objRetorno.nNF = objPesquisa.sCD_NOTAFIS;
            objRetorno.seqNF = objPesquisa.sCD_NFSEQ;

            //if (objRetorno.cstat != "101" && objRetorno.cstat != "151" && objRetorno.cstat != "155")
            if (objRetorno.cstat != "135" && objRetorno.cstat != "136")
            {
                objRetorno.nprot = "inexistente";
            }
            else
            {
                string nprot = objret.retEvento.infEvento.nProt.ToString();
                AlteraNotaParaCancelada(nprot, objPesquisa.sCD_NFSEQ);
                MoveArquivoParaPastaCancelada(objPesquisa);
            }
            return objRetorno;
        }