示例#1
0
 public static void DeletarLotesProblemas(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
 {
     new CamadaDados.Faturamento.NFCe.TCD_LoteNFCe().Select(
         new TpBusca[]
     {
         new TpBusca()
         {
             vNM_Campo = "isnull(a.st_registro, 'A')",
             vOperador = "=",
             vVL_Busca = "'A'"
         },
         new TpBusca()
         {
             vNM_Campo = "a.status",
             vOperador = "is",
             vVL_Busca = "null"
         },
         new TpBusca()
         {
             vNM_Campo = "a.tp_ambiente",
             vOperador = "<>",
             vVL_Busca = "'3'"
         }
     }, 0, string.Empty).ForEach(p => CamadaNegocio.Faturamento.NFCe.TCN_LoteNFCe.Excluir(p, null));
 }
示例#2
0
        private static string ConectarWebServico(string mensagem,
                                                 CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfes)
        {
            switch (rCfgNfes.Cd_municipio_empresa.Trim())
            {
            case ("4127700"):                                               //Toledo-PR
            {
                if (rCfgNfes.Tp_ambiente_nfes.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.com.esnfs.TOONfes.Enfs nfes = new NFES.br.com.esnfs.TOONfes.Enfs();
                    nfes.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfes.Nr_certificado_nfe));
                    return(nfes.esConsultarSituacaoLoteRps(TGerarRPS.CriarArquivoCabecalho(), mensagem));
                }
                else        //Homologacao
                {
                    br.com.esnfs.HTOONfes.Enfs nfes = new NFES.br.com.esnfs.HTOONfes.Enfs();
                    nfes.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfes.Nr_certificado_nfe));
                    return(nfes.esConsultarSituacaoLoteRps(TGerarRPS.CriarArquivoCabecalho(), mensagem));
                }
            }

            default:
                return(string.Empty);
            }
        }
示例#3
0
 private static CamadaDados.Faturamento.NFE.TList_LanLoteNFE BuscarLotes(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
 {
     return(new CamadaDados.Faturamento.NFE.TCD_LanLoteNFE().Select(
                new TpBusca[]
     {
         new TpBusca()
         {
             vNM_Campo = "a.st_registro",
             vOperador = "=",
             vVL_Busca = "'E'"
         },
         new TpBusca()
         {
             vNM_Campo = "a.status",
             vOperador = "<>",
             vVL_Busca = "'215'"
         },
         new TpBusca()
         {
             vNM_Campo = string.Empty,
             vOperador = "exists",
             vVL_Busca = "(select 1 from tb_fat_lotenfe_x_notafiscal x " +
                         "where x.id_lote = a.id_lote " +
                         "and x.cd_empresa = '" + rCfgNfe.Cd_empresa.Trim() + "')"
         }
     }, 0, string.Empty));
 }
示例#4
0
        private void bb_empresa_Click(object sender, EventArgs e)
        {
            string vParam = "|exists|(select 1 from tb_pdc_cfgposto x " +
                            "           where x.cd_empresa = a.cd_empresa)";

            FormBusca.UtilPesquisa.BTN_BuscaEmpresa(new Componentes.EditDefault[] { cd_empresa }, vParam);
            if (!string.IsNullOrEmpty(cd_empresa.Text))
            {
                CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfg =
                    CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(cd_empresa.Text,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          null);
                if (lCfg.Count > 0)
                {
                    rCfg             = lCfg[0];
                    lblAmbiente.Text = rCfg.Tipo_ambiente_lmc.Trim().ToUpper();
                }
                else
                {
                    rCfg             = null;
                    lblAmbiente.Text = "SEM CONFIGURAÇÃO";
                }
            }
            else
            {
                rCfg             = null;
                lblAmbiente.Text = "SEM CONFIGURAÇÃO";
            }
        }
示例#5
0
        public static string ConsultaChave(string Chave_acesso, string Tp_ambiente, CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            StringBuilder xml = new StringBuilder();

            xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            xml.Append("<consSitNFe versao=\"" + rCfgNfe.Cd_versaonfce.Trim() + "\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">");
            xml.Append("<tpAmb>");
            xml.Append(Tp_ambiente.Trim());
            xml.Append("</tpAmb>");
            xml.Append("<xServ>");
            xml.Append("CONSULTAR");
            xml.Append("</xServ>");
            xml.Append("<chNFe>");
            xml.Append(Chave_acesso.Trim());
            xml.Append("</chNFe>");
            xml.Append("</consSitNFe>");
            try
            {
                //Validar schema xml
                Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                        rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "consSitNFe_v" + rCfgNfe.Cd_versaonfce.Trim() + ".xsd",
                                                        "NFE");
                if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
                {
                    return(Utils.ValidaSchema.ValidaXML2.Retorno);
                }

                //Conectar Web Service
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml.ToString());
                //rCfgNfe.St_nfecontingencia = St_contingencia;
                XmlNode retorno = ConectarWebService(doc.DocumentElement, Tp_ambiente, rCfgNfe);
                //Tratar retorno
                if (retorno != null)
                {
                    if (retorno["cStat"].InnerText.Trim().Equals("100") ||
                        retorno["cStat"].InnerText.Trim().Equals("110") ||
                        retorno["cStat"].InnerText.Trim().Equals("150"))
                    {
                        return(retorno["protNFe"]["infProt"]["cStat"].InnerText + "|" +
                               retorno["protNFe"]["infProt"]["xMotivo"].InnerText + "|" +
                               retorno["protNFe"]["infProt"]["dhRecbto"].InnerText + "|" +
                               retorno["protNFe"]["infProt"]["nProt"].InnerText + "|" +
                               retorno["protNFe"]["infProt"]["digVal"].InnerText + "|" +
                               retorno["protNFe"]["infProt"]["verAplic"].InnerText);
                    }
                    else
                    {
                        return(string.Empty);
                    }
                }
                else
                {
                    return(string.Empty);
                }
            }
            catch (Exception ex)
            { return(ex.Message.Trim()); }
        }
示例#6
0
        public static string ConsultarLoteRPS(string Nr_loteRPS, CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfes)
        {
            StringBuilder xml = new StringBuilder();

            xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            #region es:esConsultarSituacaoLoteRpsEnvio
            xml.Append("<es:esConsultarLoteRpsEnvio xmlns:es=\"http://www.equiplano.com.br/esnfs\" ");
            xml.Append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ");
            xml.Append("xsi:schemaLocation=\"http://www.equiplano.com.br/enfs esConsultarLoteRpsEnvio_v01.xsd\">");

            #region prestador
            xml.Append("<prestador>");
            #region nrInscricaoMunicipal
            xml.Append("<nrInscricaoMunicipal>");
            xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Insc_municipal_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
            xml.Append("</nrInscricaoMunicipal>");
            #endregion

            #region nrCnpj
            xml.Append("<cnpj>");
            xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Cnpj_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
            xml.Append("</cnpj>");
            #endregion

            #region idEntidade
            xml.Append("<idEntidade>");
            xml.Append(rCfgNfes.Id_entidadenfes);
            xml.Append("</idEntidade>");
            #endregion
            xml.Append("</prestador>");
            #endregion

            #region nrLoteRps
            xml.Append("<nrLoteRps>");
            xml.Append(Nr_loteRPS);
            xml.Append("</nrLoteRps>");
            #endregion

            xml.Append("</es:esConsultarLoteRpsEnvio>");
            #endregion

            //Assinar documento XML
            string xmlassinado =
                new Utils.Assinatura.TAssinatura2(rCfgNfes.Nr_certificado_nfe,
                                                  xml.ToString()).AssinarNFSe();

            //Validar Schema XML
            Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado,
                                                    rCfgNfes.Path_nfe_schemas.SeparadorDiretorio() + "esConsultarLoteRpsEnvio_v01.xsd",
                                                    "NFES");
            if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
            {
                throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim());
            }

            //Conectar Web Service
            return(ConectarWebServico(xmlassinado, rCfgNfes));
        }
示例#7
0
        private static XmlNode ConectarWebService(XmlNode nfceDadosMsg,
                                                  CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            switch (rCfgNfe.Cd_uf_empresa.Trim())
            {
            case "41":
            {
                if (rCfgNfe.Tp_ambiente_nfce.Trim().Equals("1"))        //Producao
                {
                    if (rCfgNfe.Cd_versaonfce.Trim().Equals("3.10"))
                    {
                        srvNFE.br.gov.pr.fazenda.nfe.PRStatusServico3.NfeStatusServico3 nfce = new srvNFE.br.gov.pr.fazenda.nfe.PRStatusServico3.NfeStatusServico3();
                        nfce.Url = "https://nfce.fazenda.pr.gov.br/nfce/NFeStatusServico3";
                        nfce.nfeCabecMsgValue = new srvNFE.br.gov.pr.fazenda.nfe.PRStatusServico3.nfeCabecMsg()
                        {
                            cUF         = rCfgNfe.Cd_uf_empresa,
                            versaoDados = rCfgNfe.Cd_versaonfce
                        };
                        nfce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfce.nfeStatusServicoNF(nfceDadosMsg));
                    }
                    else        //4.00
                    {
                        br.gov.pr.sefa.nfce.StatusServico4.NFeStatusServico4 nfce = new br.gov.pr.sefa.nfce.StatusServico4.NFeStatusServico4();
                        nfce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfce.nfeStatusServicoNF(nfceDadosMsg));
                    }
                }
                else        //Homologacao
                {
                    if (rCfgNfe.Cd_versaonfce.Trim().Equals("3.10"))
                    {
                        srvNFE.br.gov.pr.fazenda.nfe.homologacao.PRStatusServico3.NfeStatusServico3 nfe = new srvNFE.br.gov.pr.fazenda.nfe.homologacao.PRStatusServico3.NfeStatusServico3();
                        nfe.Url = "https://homologacao.nfce.fazenda.pr.gov.br/nfce/NFeStatusServico3";
                        nfe.nfeCabecMsgValue = new srvNFE.br.gov.pr.fazenda.nfe.homologacao.PRStatusServico3.nfeCabecMsg()
                        {
                            cUF         = rCfgNfe.Cd_uf_empresa,
                            versaoDados = rCfgNfe.Cd_versaonfce
                        };
                        nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfe.nfeStatusServicoNF(nfceDadosMsg));
                    }
                    else        //4.00
                    {
                        br.gov.pr.sefa.nfce.homologacao.StatusServico4.NFeStatusServico4 nfce = new br.gov.pr.sefa.nfce.homologacao.StatusServico4.NFeStatusServico4();
                        nfce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfce.nfeStatusServicoNF(nfceDadosMsg));
                    }
                }
            }

            default: return(null);
            }
        }
示例#8
0
        public static string ConsultaNFe(string Chave_acesso,
                                         CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            XmlDocument documento = new XmlDocument();

            documento.AppendChild(documento.CreateXmlDeclaration("1.0", "UTF-8", null));

            XmlNode      root = documento.CreateElement("conSitNFe");
            XmlAttribute atr  = documento.CreateAttribute("xmlns");

            atr.Value = "http://www.portalfiscal.inf.br/nfe";
            root.Attributes.Append(atr);
            atr       = documento.CreateAttribute("versao");
            atr.Value = rCfgNfe.Cd_versao;
            root.Attributes.Append(atr);

            XmlNode filho = documento.CreateElement("tpAmb");

            filho.InnerText = rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2";
            root.AppendChild(filho);

            filho           = documento.CreateElement("xServ");
            filho.InnerText = "CONSULTAR";
            root.AppendChild(filho);

            filho           = documento.CreateElement("chNFe");
            filho.InnerText = Chave_acesso.Trim().FormatSringEsquerda(44, '0');
            root.AppendChild(filho);

            documento.AppendChild(root);

            //Validar schema xml
            Utils.ValidaSchema.ValidaXML2.validaXML(documento.InnerXml,
                                                    rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "consSitNFe_v2.00.xsd",
                                                    false);
            if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
            {
                return(Utils.ValidaSchema.ValidaXML2.Retorno);
            }

            //Conectar Web Service
            XmlNode retorno = ConectarWebService2(root, rCfgNfe);

            //Tratar Retorno
            if (retorno != null)
            {
                return(retorno["cStat"].InnerText.Trim() + " - " +
                       retorno["xMotivo"].InnerText.Trim());
            }
            else
            {
                throw new Exception("Erro acessar Serviços da Receita Estadual do " + rCfgNfe.Cd_uf_empresa.Trim());
            }
        }
示例#9
0
 private void cbEmpresa_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (cbEmpresa.SelectedValue != null && rCfgNfe == null)
     {
         CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfg =
             CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(cbEmpresa.SelectedValue.ToString(),
                                                                   string.Empty,
                                                                   string.Empty,
                                                                   null);
         if (lCfg.Count > 0)
         {
             rCfgNfe = lCfg[0];
         }
     }
 }
示例#10
0
        private void bbValidar_Click(object sender, EventArgs e)
        {
            lblChave.Text = string.Empty;
            if (lbChave.Items.Count.Equals(0))
            {
                MessageBox.Show("Obrigatório gerar chaves para validar.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            //Buscar CfgNfe
            CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe =
                CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(cbEmpresa.SelectedValue.ToString(),
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      null)[0];
            int total_validar = int.Parse(nr_cupomfin.Text) - int.Parse(nr_cupomini.Text) + 1;
            int validos       = 0;

            for (int i = 0; i < lbChave.Items.Count; i++)
            {
                string ret = NFCe.ConsultaChave.TConsultaChave.ConsultaChave(lbChave.Items[i].ToString(),
                                                                             "1",
                                                                             rCfgNfe);
                if (!string.IsNullOrEmpty(ret))
                {
                    using (StreamWriter sw = File.AppendText("c:\\work\\chaves.txt"))
                    {
                        sw.WriteLine(lbChave.Items[i].ToString());
                        validos++;
                    }
                    lblChave.Text += "\r\n" + lbChave.Items[i].ToString();
                }
                if (validos >= total_validar)
                {
                    break;
                }
            }
            if (string.IsNullOrEmpty(lblChave.Text))
            {
                lblChave.Text = "Não existe chave valida.";
            }
        }
示例#11
0
        public static string StatusServico(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            StringBuilder xml = new StringBuilder();

            xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            xml.Append("<consStatServ versao=\"" + rCfgNfe.Cd_versaonfce.Trim() + "\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">");
            xml.Append("<tpAmb>");
            xml.Append(rCfgNfe.Tp_ambiente_nfce.Trim());
            xml.Append("</tpAmb>");
            xml.Append("<cUF>");
            xml.Append(rCfgNfe.Cd_uf_empresa);
            xml.Append("</cUF>");
            xml.Append("<xServ>");
            xml.Append("STATUS");
            xml.Append("</xServ>");
            xml.Append("</consStatServ>");
            try
            {
                //Validar schema xml
                Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                        rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "consStatServ_v" + rCfgNfe.Cd_versaonfce.Trim() + ".xsd",
                                                        "NFE");
                if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
                {
                    return(Utils.ValidaSchema.ValidaXML2.Retorno);
                }

                //Conectar Web Service
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml.ToString());
                //rCfgNfe.St_nfecontingencia = St_contingencia;
                XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe);
                //Tratar retorno
                return(retorno["cStat"].InnerText);
            }
            catch (Exception ex)
            { return(ex.Message.Trim()); }
        }
示例#12
0
 public static decimal?GerarIdLote(decimal?Id_lote,
                                   decimal?Nr_protocololote,
                                   DateTime?dt_recebimento,
                                   decimal?tempomedio,
                                   string st_registro,
                                   decimal?status,
                                   string ds_mensagem,
                                   CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNFCe)
 {
     return(decimal.Parse(CamadaNegocio.Faturamento.NFCe.TCN_LoteNFCe.Gravar(
                              new CamadaDados.Faturamento.NFCe.TRegistro_LoteNFCe()
     {
         Id_lote = Id_lote,
         Cd_empresa = rCfgNFCe.Cd_empresa,
         Nr_protocololote = Nr_protocololote,
         Dt_recebimento = dt_recebimento,
         Tempomedio = tempomedio.HasValue ? tempomedio.Value : decimal.Zero,
         St_registro = st_registro,
         Status = status.HasValue ? status.Value : decimal.Zero,
         Ds_mensagem = ds_mensagem,
         Tp_ambiente = rCfgNFCe.Tp_ambiente_nfce
     }, null)));
 }
示例#13
0
 public static void DeletarNFCeLotesProblemas(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
 {
     new CamadaDados.Faturamento.NFCe.TCD_Lote_X_NFCe().Select(
         new TpBusca[]
     {
         new TpBusca()
         {
             vNM_Campo = "a.cd_empresa",
             vOperador = "=",
             vVL_Busca = "'" + rCfgNfe.Cd_empresa.Trim() + "'"
         },
         new TpBusca()
         {
             vNM_Campo = string.Empty,
             vOperador = "exists",
             vVL_Busca = "(select 1 from tb_fat_lotenfce x " +
                         "where x.id_lote = a.id_lote " +
                         "and isnull(x.st_registro, 'A') = 'A' " +
                         "and x.status is null " +
                         "and x.tp_ambiente <> '3')"
         }
     }, 0, string.Empty).ForEach(p => CamadaNegocio.Faturamento.NFCe.TCN_Lote_X_NFCe.Excluir(p, null));
 }
示例#14
0
        private static XmlNode ConectarWebService2(XmlNode nfeDadosMsg,
                                                   string cd_ufConsulta,
                                                   CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            switch (cd_ufConsulta.Trim())
            {
            case ("23"):    //Ceara
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.ce.sefaz.nfe.CEConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.ce.sefaz.nfe.CEConsultaCad2.CadConsultaCadastro2();
                    consulta.nfeCabecMsgValue = new br.gov.ce.sefaz.nfe.CEConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.ce.sefaz.nfe.CEConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.ce.sefaz.nfe.CEConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro(nfeDadosMsg));
                }
            }

            case ("26"):    //Pernambuco
            {
                br.gov.pe.sefaz.nfe.PEConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.pe.sefaz.nfe.PEConsultaCad2.CadConsultaCadastro2();
                consulta.nfeCabecMsgValue = new br.gov.pe.sefaz.nfe.PEConsultaCad2.nfeCabecMsg()
                {
                    cUF         = cd_ufConsulta,
                    versaoDados = "2.00"
                };
                consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                return(consulta.consultaCadastro2(nfeDadosMsg));
            }

            case ("29"):    //Bahia
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.ba.sefaz.nfe.BAConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.ba.sefaz.nfe.BAConsultaCad2.CadConsultaCadastro2();
                    consulta.nfeCabecMsgValue = new br.gov.ba.sefaz.nfe.BAConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.ba.sefaz.nfe.BAConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.ba.sefaz.nfe.BAConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro(nfeDadosMsg));
                }
            }

            case ("35"):    //Sao Paulo
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.sp.fazenda.nfe.SPConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.sp.fazenda.nfe.SPConsultaCad2.CadConsultaCadastro2();
                    consulta.nfeCabecMsgValue = new br.gov.sp.fazenda.nfe.SPConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.sp.fazenda.nfe.SPConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.sp.fazenda.nfe.SPConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro(nfeDadosMsg));
                }
            }

            case ("41"):    //Parana
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.rs.sefaz.sef.RSConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.rs.sefaz.sef.RSConsultaCad2.CadConsultaCadastro2();
                    consulta.Url = "https://nfe.fazenda.pr.gov.br/nfe/CadConsultaCadastro2";
                    consulta.nfeCabecMsgValue = new br.gov.rs.sefaz.sef.RSConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.pr.sefa.nfe.PRConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.pr.sefa.nfe.PRConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro(nfeDadosMsg));
                }
            }

            case ("42"):    //Santa Catarina
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.rs.sefaz.sef.RSConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.rs.sefaz.sef.RSConsultaCad2.CadConsultaCadastro2();
                    consulta.Url = "https://cad.svrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro2.asmx";
                    consulta.nfeCabecMsgValue = new br.gov.rs.sefaz.sef.RSConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.rs.svrs.cad.SVRSConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.rs.svrs.cad.SVRSConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro(nfeDadosMsg));
                }
            }

            case ("43"):    //Rio Grande do Sul
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.rs.sefaz.sef.RSConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.rs.sefaz.sef.RSConsultaCad2.CadConsultaCadastro2();
                    consulta.nfeCabecMsgValue = new br.gov.rs.sefaz.sef.RSConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.rs.sefazrs.cad.RSConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.rs.sefazrs.cad.RSConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro(nfeDadosMsg));
                }
            }

            case ("50"):    //Mato Grosso do Sul
            {
                br.gov.ms.sefaz.nfe.MSConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.ms.sefaz.nfe.MSConsultaCad4.CadConsultaCadastro4();
                consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                return(consulta.consultaCadastro(nfeDadosMsg));
            }

            case ("51"):    //Mato Grosso
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.mt.sefaz.nfe.MTConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.mt.sefaz.nfe.MTConsultaCad2.CadConsultaCadastro2();
                    consulta.nfeCabecMsgValue = new br.gov.mt.sefaz.nfe.MTConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.mt.sefaz.nfe.MTConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.mt.sefaz.nfe.MTConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    var ret = consulta.consultaCadastro(nfeDadosMsg);
                    return(ret);
                }
            }

            case ("52"):    //Goias
            {
                if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                {
                    br.gov.go.sefaz.nfe.GOConsultaCad2.CadConsultaCadastro2 consulta = new br.gov.go.sefaz.nfe.GOConsultaCad2.CadConsultaCadastro2();
                    consulta.nfeCabecMsgValue = new br.gov.go.sefaz.nfe.GOConsultaCad2.nfeCabecMsg()
                    {
                        cUF         = cd_ufConsulta,
                        versaoDados = "2.00"
                    };
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.cadConsultaCadastro2(nfeDadosMsg));
                }
                else        //4.00
                {
                    br.gov.go.sefaz.nfe.GOConsultaCad4.CadConsultaCadastro4 consulta = new br.gov.go.sefaz.nfe.GOConsultaCad4.CadConsultaCadastro4();
                    consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(consulta.consultaCadastro(nfeDadosMsg));
                }
            }

            default:
            {
                return(null);
            }
            }
        }
示例#15
0
        public static string CriarArquivoRPS(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfes,
                                             List <CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento> lNf)
        {
            if (lNf == null)
            {
                //Buscar Lista de NFSe para enviar a receita
                lNf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca(rCfgNfes.Cd_empresa,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    decimal.Zero,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    true,
                                                                                    string.Empty,
                                                                                    "N",
                                                                                    "N",
                                                                                    string.Empty,
                                                                                    "A",
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    decimal.Zero,
                                                                                    decimal.Zero,
                                                                                    "MASTER",
                                                                                    "'P'",
                                                                                    "'S'",
                                                                                    false,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    0,
                                                                                    string.Empty,
                                                                                    null);
            }
            if (lNf.Count > 0)
            {
                //Criar Lote RPS
                string id_loterps = CamadaNegocio.Faturamento.NFES.TCN_LoteRPS.Gravar(
                    new CamadaDados.Faturamento.NFES.TRegistro_LoteRPS()
                {
                    Cd_empresa  = rCfgNfes.Cd_empresa,
                    Dt_lote     = CamadaDados.UtilData.Data_Servidor(),
                    Tp_ambiente = rCfgNfes.Tp_ambiente_nfes
                }, null);
                try
                {
                    //Montar arquivo xml
                    StringBuilder xml = new StringBuilder();
                    xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                    #region es:enviarLoteRpsEnvio
                    xml.Append("<es:enviarLoteRpsEnvio xmlns:es=\"http://www.equiplano.com.br/esnfs\" ");
                    xml.Append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ");
                    xml.Append("xsi:schemaLocation=\"http://www.equiplano.com.br/enfs esRecepcionarLoteRpsEnvio_v01.xsd\">");

                    #region lote
                    xml.Append("<lote>");
                    #region nrLote
                    xml.Append("<nrLote>");
                    xml.Append(id_loterps);//Numero do Lote RPS
                    xml.Append("</nrLote>");
                    #endregion

                    #region qtRps
                    xml.Append("<qtRps>");
                    xml.Append(lNf.Count);//Quantidade Total de NFS no Lote
                    xml.Append("</qtRps>");
                    #endregion

                    #region nrVersaoXml
                    xml.Append("<nrVersaoXml>");
                    xml.Append(1);//Versao Atual do XML
                    xml.Append("</nrVersaoXml>");
                    #endregion

                    #region prestador
                    xml.Append("<prestador>");
                    #region nrCnpj
                    xml.Append("<nrCnpj>");
                    xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Cnpj_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                    xml.Append("</nrCnpj>");
                    #endregion

                    #region nrInscricaoMunicipal
                    xml.Append("<nrInscricaoMunicipal>");
                    xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Insc_municipal_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                    xml.Append("</nrInscricaoMunicipal>");
                    #endregion

                    #region isOptanteSimplesNacional
                    xml.Append("<isOptanteSimplesNacional>");
                    xml.Append(rCfgNfes.Tp_regimetributario.Trim().Equals("1") ? 1 : 2);//1=SIM, 2=NAO
                    xml.Append("</isOptanteSimplesNacional>");
                    #endregion

                    #region idEntidade
                    xml.Append("<idEntidade>");
                    xml.Append(rCfgNfes.Id_entidadenfes);
                    xml.Append("</idEntidade>");
                    #endregion
                    xml.Append("</prestador>");
                    #endregion

                    #region listaRps
                    xml.Append("<listaRps>");
                    lNf.ForEach(p =>
                    {
                        //Buscar Itens da NFe com os impostos
                        p.ItensNota = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.Busca(p.Cd_empresa, p.Nr_lanctofiscalstr, string.Empty, null);
                        #region rps
                        xml.Append("<rps>");
                        #region nrRps
                        xml.Append("<nrRps>");
                        xml.Append(p.Nr_rps);
                        xml.Append("</nrRps>");
                        #endregion

                        #region nrEmissorRps
                        xml.Append("<nrEmissorRps>");
                        xml.Append(1);//Utilizado para identificar qual terminal emitiu a nfse dentro da empresa
                        xml.Append("</nrEmissorRps>");
                        #endregion

                        #region dtEmissaoRps
                        xml.Append("<dtEmissaoRps>");
                        xml.Append(p.Dt_emissao.Value.ToString("yyyy-MM-dd") + "T" + p.Dt_emissao.Value.ToString("HH:mm:ss"));
                        xml.Append("</dtEmissaoRps>");
                        #endregion

                        #region stRps
                        xml.Append("<stRps>");
                        xml.Append(1);//1=converter, 2=converter e cancelar NFS, 3=cancelar RPS
                        xml.Append("</stRps>");
                        #endregion

                        #region tpTributacao
                        xml.Append("<tpTributacao>");
                        xml.Append(p.ItensNota[0].Tp_naturezaOperacaoISS);
                        xml.Append("</tpTributacao>");
                        #endregion

                        #region isIssRetido
                        xml.Append("<isIssRetido>");
                        xml.Append(p.ItensNota.Exists(v => v.Vl_issretido > decimal.Zero) ? 1 : 2);//ISS retido 1=SIM, 2=NAO
                        xml.Append("</isIssRetido>");
                        #endregion

                        #region tomador
                        xml.Append("<tomador>");
                        #region documento
                        xml.Append("<documento>");
                        #region nrDocumento
                        xml.Append("<nrDocumento>");
                        xml.Append(p.rClifor.Tp_pessoa.Trim().ToUpper().Equals("J") ?
                                   System.Text.RegularExpressions.Regex.Replace(p.rClifor.Nr_cgc.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty) :
                                   System.Text.RegularExpressions.Regex.Replace(p.rClifor.Nr_cpf.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                        xml.Append("</nrDocumento>");
                        #endregion

                        #region tpDocumento
                        xml.Append("<tpDocumento>");
                        xml.Append(p.rClifor.Tp_pessoa.Trim().ToUpper().Equals("J") ? 2 : 1);//1=CPF, 2=CNPJ, 3=ESTRANGEIRO
                        xml.Append("</tpDocumento>");
                        #endregion
                        xml.Append("</documento>");
                        #endregion

                        #region nmTomador
                        xml.Append("<nmTomador>");
                        xml.Append(p.Nm_clifor.Trim().Length > 80 ? p.Nm_clifor.Trim().RemoverCaracteres().SubstCaracteresEsp().Substring(0, 80) : p.Nm_clifor.Trim().RemoverCaracteres().SubstCaracteresEsp().Trim());
                        xml.Append("</nmTomador>");
                        #endregion

                        #region dsEmail
                        if (!string.IsNullOrEmpty(p.rClifor.Email))
                        {
                            xml.Append("<dsEmail>");
                            xml.Append(p.rClifor.Email.Trim().Length > 80 ? p.rClifor.Email.Trim().Substring(0, 80) : p.rClifor.Email.Trim());
                            xml.Append("</dsEmail>");
                        }
                        #endregion

                        #region nrInscricaoEstadual
                        if (!string.IsNullOrEmpty(p.rEndereco.Insc_estadual))
                        {
                            xml.Append("<nrInscricaoEstadual>");
                            xml.Append(System.Text.RegularExpressions.Regex.Replace(p.rEndereco.Insc_estadual.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                            xml.Append("</nrInscricaoEstadual>");
                        }
                        #endregion

                        #region dsEndereco
                        if (!string.IsNullOrEmpty(p.Ds_endereco))
                        {
                            xml.Append("<dsEndereco>");
                            xml.Append(p.rEndereco.Ds_endereco.Trim().Length > 40 ? p.rEndereco.Ds_endereco.RemoverCaracteres().SubstCaracteresEsp().Substring(0, 40) : p.rEndereco.Ds_endereco.RemoverCaracteres().SubstCaracteresEsp().Trim());
                            xml.Append("</dsEndereco>");
                        }
                        #endregion

                        #region nrEndereco
                        if (!string.IsNullOrEmpty(p.rEndereco.Numero))
                        {
                            xml.Append("<nrEndereco>");
                            xml.Append(p.rEndereco.Numero.Trim().Length > 10 ? p.rEndereco.Numero.RemoverCaracteres().SubstCaracteresEsp().Substring(0, 10) : p.rEndereco.Numero.RemoverCaracteres().SubstCaracteresEsp().Trim());
                            xml.Append("</nrEndereco>");
                        }
                        #endregion

                        #region dsComplemento
                        if (!string.IsNullOrEmpty(p.rEndereco.Ds_complemento))
                        {
                            xml.Append("<dsComplemento>");
                            xml.Append(p.rEndereco.Ds_complemento.RemoverCaracteres().SubstCaracteresEsp().Trim());
                            xml.Append("</dsComplemento>");
                        }
                        #endregion

                        #region nmBairro
                        if (!string.IsNullOrEmpty(p.rEndereco.Bairro))
                        {
                            xml.Append("<nmBairro>");
                            xml.Append(p.rEndereco.Bairro.Trim().Length > 25 ? p.rEndereco.Bairro.RemoverCaracteres().SubstCaracteresEsp().Substring(0, 25) : p.rEndereco.Bairro.RemoverCaracteres().SubstCaracteresEsp().Trim());
                            xml.Append("</nmBairro>");
                        }
                        #endregion

                        #region nrCidadeIbge
                        if (!string.IsNullOrEmpty(p.rEndereco.Cd_cidade))
                        {
                            xml.Append("<nrCidadeIbge>");
                            xml.Append(p.rEndereco.Cd_cidade.Trim());
                            xml.Append("</nrCidadeIbge>");
                        }
                        #endregion

                        #region nmUf
                        if (!string.IsNullOrEmpty(p.rEndereco.UF))
                        {
                            xml.Append("<nmUf>");
                            xml.Append(p.rEndereco.UF.Trim());
                            xml.Append("</nmUf>");
                        }
                        #endregion

                        #region nmPais
                        xml.Append("<nmPais>");
                        xml.Append(p.rEndereco.NM_Pais.Trim().Length > 40 ? p.rEndereco.NM_Pais.RemoverCaracteres().SubstCaracteresEsp().Substring(0, 40) : p.rEndereco.NM_Pais.RemoverCaracteres().SubstCaracteresEsp().Trim());
                        xml.Append("</nmPais>");
                        #endregion

                        #region nrCep
                        if (!string.IsNullOrEmpty(System.Text.RegularExpressions.Regex.Replace(p.rEndereco.Cep.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty)))
                        {
                            xml.Append("<nrCep>");
                            xml.Append(System.Text.RegularExpressions.Regex.Replace(p.rEndereco.Cep.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                            xml.Append("</nrCep>");
                        }
                        #endregion

                        #region nrTelefone
                        if (!string.IsNullOrEmpty(System.Text.RegularExpressions.Regex.Replace(p.rEndereco.Fone.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty).Trim()))
                        {
                            xml.Append("<nrTelefone>");
                            xml.Append(System.Text.RegularExpressions.Regex.Replace(p.rEndereco.Fone.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                            xml.Append("</nrTelefone>");
                        }
                        #endregion
                        xml.Append("</tomador>");
                        #endregion

                        #region listaServicos
                        xml.Append("<listaServicos>");
                        p.ItensNota.ForEach(v =>
                        {
                            if (string.IsNullOrEmpty(v.Id_tpservico))
                            {
                                throw new Exception("Obrigatorio informar tipo de serviço no cadastro do serviço para poder emitir NFS-e");
                            }
                            #region servico
                            xml.Append("<servico>");
                            #region nrServicoItem
                            xml.Append("<nrServicoItem>");
                            xml.Append(v.Id_tpservico.Substring(0, v.Id_tpservico.IndexOfAny(new char[] { '.' })));
                            xml.Append("</nrServicoItem>");
                            #endregion

                            #region nrServicoSubItem
                            xml.Append("<nrServicoSubItem>");
                            xml.Append(v.Id_tpservico.Substring(v.Id_tpservico.IndexOfAny(new char[] { '.' }) + 1, v.Id_tpservico.Length - v.Id_tpservico.IndexOfAny(new char[] { '.' }) - 1));
                            xml.Append("</nrServicoSubItem>");
                            #endregion

                            #region vlServico
                            xml.Append("<vlServico>");
                            xml.Append(Convert.ToDecimal(string.Format("{0:N2}", v.Vl_subtotal + v.Vl_outrasdesp + v.Vl_juro_fin - v.Vl_desconto)).ToString(new System.Globalization.CultureInfo("en-US", true)));
                            xml.Append("</vlServico>");
                            #endregion
                            if (v.Pc_aliquotaISS.Equals(decimal.Zero))
                            {
                                throw new Exception("Obrigatorio informar imposto ISSQN para emitir NFS-e.");
                            }
                            #region vlAliquota
                            xml.Append("<vlAliquota>");
                            xml.Append(Convert.ToDecimal(string.Format("{0:N2}", v.Pc_aliquotaISS)).ToString(new System.Globalization.CultureInfo("en-US", true)));
                            xml.Append("</vlAliquota>");
                            #endregion
                            //Dedução
                            if (v.Pc_reducaobasecalcISS > decimal.Zero)
                            {
                                #region deducao
                                xml.Append("<deducao>");
                                #region vlDeducao
                                xml.Append("<vlDeducao>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", Math.Round(decimal.Multiply(v.Vl_basecalcISS, decimal.Divide(v.Pc_reducaobasecalcISS, 100)), 2, MidpointRounding.AwayFromZero))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlDeducao>");
                                #endregion
                                #region dsJustificativaDeducao
                                xml.Append("<dsJustificativaDeducao>");
                                xml.Append(v.Ds_deducao.RemoverCaracteres());
                                xml.Append("</dsJustificativaDeducao>");
                                #endregion
                                xml.Append("</deducao>");
                                #endregion
                                #region vlBaseCalculo
                                xml.Append("<vlBaseCalculo>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", v.Vl_basecalcISS - Math.Round(decimal.Multiply(v.Vl_basecalcISS, decimal.Divide(v.Pc_reducaobasecalcISS, 100)), 2, MidpointRounding.AwayFromZero))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlBaseCalculo>");
                                #endregion
                            }
                            else
                            {
                                #region vlBaseCalculo
                                xml.Append("<vlBaseCalculo>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", v.Vl_basecalcISS)).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlBaseCalculo>");
                                #endregion
                            }

                            #region vlIssServico
                            xml.Append("<vlIssServico>");
                            xml.Append(Convert.ToDecimal(string.Format("{0:N2}", v.Vl_iss + v.Vl_issretido)).ToString(new System.Globalization.CultureInfo("en-US", true)));
                            xml.Append("</vlIssServico>");
                            #endregion

                            #region dsDiscriminacaoServico
                            xml.Append("<dsDiscriminacaoServico>");
                            xml.Append((v.Ds_produto.RemoverCaracteres().SubstCaracteresEsp().Trim() + "\r\n" + p.Obsfiscal.Trim() + " " + p.Dadosadicionais.Trim() + " " + v.Observacao_item.Trim()).Length > 1024 ?
                                       (v.Ds_produto.RemoverCaracteres().SubstCaracteresEsp().Trim() + "\r\n" + p.Obsfiscal.Trim() + " " + p.Dadosadicionais.Trim() + " " + v.Observacao_item.Trim()).Substring(0, 1023) :
                                       (v.Ds_produto.RemoverCaracteres().SubstCaracteresEsp().Trim() + "\r\n" + p.Obsfiscal.Trim() + " " + p.Dadosadicionais.Trim() + " " + v.Observacao_item.Trim()));
                            xml.Append("</dsDiscriminacaoServico>");
                            #endregion
                            xml.Append("</servico>");
                            #endregion
                        });
                        xml.Append("</listaServicos>");
                        #endregion

                        #region vlTotalRps
                        xml.Append("<vlTotalRps>");
                        xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Sum(v => v.Vl_subtotal + v.Vl_outrasdesp + v.Vl_juro_fin - v.Vl_desconto))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                        xml.Append("</vlTotalRps>");
                        #endregion

                        #region vlLiquidoRps
                        xml.Append("<vlLiquidoRps>");
                        xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.Vl_totalnota)).ToString(new System.Globalization.CultureInfo("en-US", true)));
                        xml.Append("</vlLiquidoRps>");
                        #endregion

                        #region retencoes
                        if ((p.ItensNota.Sum(v => v.Vl_retidoCofins) > 0) ||
                            (p.ItensNota.Sum(v => v.Vl_retidoCSLL) > 0) ||
                            (p.ItensNota.Sum(v => v.Vl_retidoINSS) > 0) ||
                            (p.ItensNota.Sum(v => v.Vl_retidoIRRF) > 0) ||
                            (p.ItensNota.Sum(v => v.Vl_retidoPIS) > 0) ||
                            (p.ItensNota.Sum(v => v.Vl_issretido) > 0))
                        {
                            xml.Append("<retencoes>");
                            #region vlCofins
                            if (p.ItensNota.Sum(v => v.Vl_retidoCofins) > 0)
                            {
                                xml.Append("<vlCofins>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Sum(v => v.Vl_retidoCofins))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlCofins>");
                            }
                            #endregion

                            #region vlCsll
                            if (p.ItensNota.Sum(v => v.Vl_retidoCSLL) > 0)
                            {
                                xml.Append("<vlCsll>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Sum(v => v.Vl_retidoCSLL))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlCsll>");
                            }
                            #endregion

                            #region vlInss
                            if (p.ItensNota.Sum(v => v.Vl_retidoINSS) > 0)
                            {
                                xml.Append("<vlInss>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Sum(v => v.Vl_retidoINSS))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlInss>");
                            }
                            #endregion

                            #region vlIrrf
                            if (p.ItensNota.Sum(v => v.Vl_retidoIRRF) > 0)
                            {
                                xml.Append("<vlIrrf>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Sum(v => v.Vl_retidoIRRF))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlIrrf>");
                            }
                            #endregion

                            #region vlPis
                            if (p.ItensNota.Sum(v => v.Vl_retidoPIS) > 0)
                            {
                                xml.Append("<vlPis>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Sum(v => v.Vl_retidoPIS))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlPis>");
                            }
                            #endregion

                            #region vlIss
                            if (p.ItensNota.Sum(v => v.Vl_issretido) > 0)
                            {
                                xml.Append("<vlIss>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Sum(v => v.Vl_issretido))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlIss>");
                            }
                            #endregion

                            #region vlAliquotaCofins
                            if (p.ItensNota.Average(v => v.Pc_retencaoCofins) > 0)
                            {
                                xml.Append("<vlAliquotaCofins>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Average(v => v.Pc_retencaoCofins))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlAliquotaCofins>");
                            }
                            #endregion

                            #region vlAliquotaCsll
                            if (p.ItensNota.Average(v => v.Pc_retencaoCSLL) > 0)
                            {
                                xml.Append("<vlAliquotaCsll>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Average(v => v.Pc_retencaoCSLL))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlAliquotaCsll>");
                            }
                            #endregion

                            #region vlAliquotaInss
                            if (p.ItensNota.Average(v => v.Pc_retencaoINSS) > 0)
                            {
                                xml.Append("<vlAliquotaInss>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Average(v => v.Pc_retencaoINSS))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlAliquotaInss>");
                            }
                            #endregion

                            #region vlAliquotaIrrf
                            if (p.ItensNota.Average(v => v.Pc_retencaoIRRF) > 0)
                            {
                                xml.Append("<vlAliquotaIrrf>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Average(v => v.Pc_retencaoIRRF))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlAliquotaIrrf>");
                            }
                            #endregion

                            #region vlAliquotaPis
                            if (p.ItensNota.Average(v => v.Pc_retencaoPIS) > 0)
                            {
                                xml.Append("<vlAliquotaPis>");
                                xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.ItensNota.Average(v => v.Pc_retencaoPIS))).ToString(new System.Globalization.CultureInfo("en-US", true)));
                                xml.Append("</vlAliquotaPis>");
                            }
                            #endregion
                            xml.Append("</retencoes>");
                        }
                        #endregion

                        if (p.ItensNota.Exists(v => v.Vl_imposto_Aprox > decimal.Zero))
                        {
                            #region dsImpostos
                            xml.Append("<dsImpostos>");
                            xml.Append("VL.Imposto Aprox: " + p.ItensNota.Sum(v => v.Vl_imposto_Aprox).ToString("N2", new System.Globalization.CultureInfo("pt-BR", true)) +
                                       ", PC.Imposto Aprox: " + p.ItensNota.Average(v => v.Pc_imposto_Aprox).ToString("N2", new System.Globalization.CultureInfo("pt-BR", true)));
                            xml.Append("</dsImpostos>");
                            #endregion
                        }
                        xml.Append("</rps>");
                        #endregion
                    });
                    xml.Append("</listaRps>");
                    #endregion
                    xml.Append("</lote>");
                    #endregion
                    xml.Append("</es:enviarLoteRpsEnvio>");
                    #endregion

                    //Assinar documento XML
                    string xmlassinado =
                        new Utils.Assinatura.TAssinatura2(rCfgNfes.Nr_certificado_nfe,
                                                          xml.ToString()).AssinarNFSe();

                    //Validar Schema XML
                    Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado,
                                                            rCfgNfes.Path_nfe_schemas.SeparadorDiretorio() + "esRecepcionarLoteRpsEnvio_v01.xsd",
                                                            "NFES");
                    if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
                    {
                        throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim());
                    }

                    //Conectar Web Service
                    string retorno = ConectarWebServico(xmlassinado, rCfgNfes);
                    if (!string.IsNullOrEmpty(retorno))
                    {
                        XmlDocument documento = new XmlDocument();
                        documento.LoadXml(retorno);
                        //Buscar lote
                        CamadaDados.Faturamento.NFES.TList_LoteRPS lRps =
                            CamadaNegocio.Faturamento.NFES.TCN_LoteRPS.Buscar(id_loterps,
                                                                              rCfgNfes.Cd_empresa,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              null);
                        if (lRps.Count > 0)
                        {
                            if (documento["es:esEnviarLoteRpsResposta"].GetElementsByTagName("protocolo").Count > 0)
                            {
                                lRps[0].Nr_protocolo = documento["es:esEnviarLoteRpsResposta"]["protocolo"]["nrProtocolo"].InnerText.Trim();
                                lRps[0].lNfes        = lNf;
                                //Gravar lote RPS
                                CamadaNegocio.Faturamento.NFES.TCN_LoteRPS.Gravar(lRps[0], null);
                            }
                            if (documento["es:esEnviarLoteRpsResposta"].GetElementsByTagName("mensagemRetorno").Count > 0)
                            {
                                foreach (XmlNode no in documento["es:esEnviarLoteRpsResposta"]["mensagemRetorno"].ChildNodes)
                                {
                                    lRps[0].lMsgRPS.Add(new CamadaDados.Faturamento.NFES.TRegistro_MsgRetornoRPS()
                                    {
                                        Cd_mensagem = no["erro"]["cdMensagem"].InnerText.Trim(),
                                        Ds_mensagem = no["erro"]["dsMensagem"].InnerText.Trim(),
                                        Tp_origem   = "1"
                                    });
                                    CamadaNegocio.Faturamento.NFES.TCN_LoteRPS.Gravar(lRps[0], null);
                                }
                            }
                        }
                    }
                    return(xml.ToString());
                }
                catch (Exception ex)
                {
                    //Excluir Lote Criado
                    CamadaNegocio.Faturamento.NFES.TCN_LoteRPS.Excluir(
                        new CamadaDados.Faturamento.NFES.TRegistro_LoteRPS()
                    {
                        Id_lotestr = id_loterps,
                        Cd_empresa = rCfgNfes.Cd_empresa
                    }, null);
                    throw new Exception(ex.Message.Trim());
                }
            }
            else
            {
                return(string.Empty);
            }
        }
示例#16
0
        public static string ConsultaNFERecepcao(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            //Validar certificado
            srvNFE.ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(rCfgNfe);
            string msg = string.Empty;

            //Buscar Lotes aguardando processamento
            new CamadaDados.Faturamento.NFCe.TCD_LoteNFCe().Select(
                new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.st_registro",
                    vOperador = "=",
                    vVL_Busca = "'E'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.status",
                    vOperador = "<>",
                    vVL_Busca = "'215'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from TB_FAT_Lote_X_NFCe x " +
                                "where x.id_lote = a.id_lote " +
                                "and x.cd_empresa = '" + rCfgNfe.Cd_empresa.Trim() + "')"
                }
            }, 0, string.Empty).ForEach(p =>
            {
                StringBuilder xml = new StringBuilder();
                xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
                xml.Append("<consReciNFe versao=\"" + rCfgNfe.Cd_versaonfce.Trim() + "\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">\n");
                xml.Append("<tpAmb>");
                xml.Append(p.Tp_ambiente.Trim());
                xml.Append("</tpAmb>\n");
                xml.Append("<nRec>");
                xml.Append(p.Nr_protocololote.ToString().PadLeft(15, '0'));
                xml.Append("</nRec>\n");
                xml.Append("</consReciNFe>\n");

                //Validar schema xml
                Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                        rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "consReciNFe_v" + rCfgNfe.Cd_versaonfce.Trim() + ".xsd",
                                                        "NFE");
                if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
                {
                    throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno);
                }

                //Conectar Web Service
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml.ToString());
                XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe);

                //Tratar retorno
                if (retorno["cStat"].InnerText.Trim().Equals("104"))
                {
                    //Atualizar status do lote
                    NFCe.EnviaArq.TEnviaArq.GerarIdLote(p.Id_lote,
                                                        p.Nr_protocololote,
                                                        p.Dt_recebimento,
                                                        p.Tempomedio,
                                                        "P",
                                                        Convert.ToDecimal(retorno["cStat"].InnerText),
                                                        retorno["xMotivo"].InnerText,
                                                        rCfgNfe);
                    msg += "Lote: " + p.Id_lote.ToString() + "\r\nMensagem: " + retorno["xMotivo"].InnerText.Trim() + "\r\n";
                    //Tratar as Notas do Lote
                    foreach (XmlNode no in retorno.ChildNodes)
                    {
                        if (no.Name.Trim().Equals("protNFe"))
                        {
                            DateTime?dt_rec = null;
                            try
                            {
                                dt_rec = Convert.ToDateTime(no["infProt"]["dhRecbto"].InnerText);
                            }
                            catch { }
                            decimal nprot = decimal.Zero;
                            try
                            {
                                nprot = Convert.ToDecimal(no["infProt"]["nProt"].InnerText);
                            }
                            catch { }
                            decimal status = decimal.Zero;
                            try
                            {
                                status = Convert.ToDecimal(no["infProt"]["cStat"].InnerText);
                            }
                            catch { }
                            //Buscar NFCe
                            CamadaDados.Faturamento.PDV.TList_NFCe lNFCe =
                                new CamadaDados.Faturamento.PDV.TCD_NFCe().Select(
                                    new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_empresa",
                                    vOperador = "=",
                                    vVL_Busca = "'" + rCfgNfe.Cd_empresa.Trim() + "'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.chave_acesso",
                                    vOperador = "=",
                                    vVL_Busca = "'" + no["infProt"]["chNFe"].InnerText + "'"
                                }
                            }, 1, string.Empty, string.Empty);
                            if (lNFCe.Count > 0)
                            {
                                EnviaArq.TEnviaArq.GravarLoteXNFCe(p.Id_lote.Value,
                                                                   lNFCe[0],
                                                                   dt_rec,
                                                                   nprot,
                                                                   (status.Equals(100) ? no["infProt"]["digVal"].InnerText : string.Empty),
                                                                   status,
                                                                   no["infProt"]["xMotivo"].InnerText,
                                                                   no["infProt"]["verAplic"].InnerText);
                                if (lNFCe[0].Id_contingencia.HasValue &&
                                    lNFCe[0].St_registro.Trim().ToUpper().Equals("C"))
                                {
                                    try
                                    {
                                        //Buscar evento de cancelamento
                                        CamadaDados.Faturamento.PDV.TList_EventoNFCe lEvento =
                                            CamadaNegocio.Faturamento.PDV.TCN_EventoNFCe.Buscar(lNFCe[0].Cd_empresa,
                                                                                                lNFCe[0].Id_nfcestr,
                                                                                                string.Empty,
                                                                                                null);
                                        if (lEvento.Count > 0)
                                        {
                                            if (!lEvento[0].St_registro.Trim().ToUpper().Equals("T"))
                                            {
                                                lEvento[0].Chave_acesso_nfce = retorno["protNFe"]["infProt"]["chNFe"].InnerText;
                                                EventoNFCe.TEventoNFCe.EnviarEvento(lEvento[0], rCfgNfe);
                                            }
                                        }
                                    }
                                    catch { }
                                }
                            }
                        }
                    }
                }
                else
                {
                    EnviaArq.TEnviaArq.GerarIdLote(p.Id_lote,
                                                   p.Nr_protocololote,
                                                   p.Dt_recebimento,
                                                   p.Tempomedio,
                                                   p.St_registro,
                                                   Convert.ToDecimal(retorno["cStat"].InnerText),
                                                   retorno["xMotivo"].InnerText,
                                                   rCfgNfe);
                }
            });
            return(msg);
        }
示例#17
0
        private void GerarArquivos()
        {
            if (cbEmpresa.SelectedValue == null)
            {
                MessageBox.Show("Obrigatório selecinar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cbEmpresa.Focus();
                return;
            }
            if (!cbNFe.Checked &&
                !cbNFCe.Checked &&
                !cbRelNFCe.Checked &&
                !cbRelNFe.Checked)
            {
                MessageBox.Show("Obrigatório selecionar pelo menos uma opção para gerar informações.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (string.IsNullOrEmpty(path.Text))
            {
                MessageBox.Show("Obrigatório informar path salvar arquivos.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                path.Focus();
                return;
            }
            List <string> anexos = new List <string>();

            CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe = null;
            if (cbNFe.Checked)
            {
                if (rCfgNfe == null)
                {
                    rCfgNfe = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(cbEmpresa.SelectedValue.ToString(),
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    null)[0];
                }
                //Gerar XML NFe
                //Limpar diretorio path arquivo
                if (System.IO.Directory.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy")))
                {
                    try
                    {
                        System.IO.Directory.Delete(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"), true);
                    }
                    catch
                    {
                        MessageBox.Show("Diretório esta sendo utilizado por outro programa <" + path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ">");
                        return;
                    }
                }
                System.IO.Directory.CreateDirectory(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"));
                try
                {
                    string msg = srvNFE.GerarArq.TGerarArq2.GerarArqXmlPeriodo(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"),
                                                                               string.Empty,
                                                                               new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("dd/MM/yyyy"),
                                                                               new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString())), 23, 59, 59).ToString("dd/MM/yyyy"),
                                                                               cbEmpresa.SelectedValue.ToString(),
                                                                               string.Empty,
                                                                               rCfgNfe);
                    //Compactar Arquivos
                    ZipFile zip = new ZipFile(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ".zip");
                    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"));
                    foreach (System.IO.FileInfo file in dir.GetFiles())
                    {
                        if (file.Name.Substring(file.Name.LastIndexOf('.') + 1, 3).Trim().Equals("xml"))
                        {
                            zip.AddFile(file.DirectoryName + "\\" + file.Name, string.Empty);
                        }
                    }
                    zip.Save();
                    if (System.IO.File.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ".zip"))
                    {
                        anexos.Add(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ".zip");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro: " + ex.Message);
                }
            }
            if (cbRelNFe.Checked)
            {
                //Gerar Rel Vendas NFe
                //Limpar diretorio path arquivo
                if (System.IO.Directory.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy")))
                {
                    try
                    {
                        System.IO.Directory.Delete(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"), true);
                    }
                    catch
                    {
                        MessageBox.Show("Diretório esta sendo utilizado por outro programa <" + path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ">");
                        return;
                    }
                }
                System.IO.Directory.CreateDirectory(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"));
                FormRelPadrao.Relatorio Relatorio = new FormRelPadrao.Relatorio();
                Relatorio.Nome_Relatorio = "TFLanFaturamento";
                Relatorio.NM_Classe      = "TFLanFaturamento";
                Relatorio.Ident          = "TFLanFaturamento_Visualizar_NotasFiscais";
                BindingSource bsNota = new BindingSource();
                bsNota.DataSource = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca(cbEmpresa.SelectedValue.ToString(),
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  0,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  true,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  "S",
                                                                                                  "N",
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("dd/MM/yyyy"),
                                                                                                  new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString())), 23, 59, 59).ToString("dd/MM/yyyy HH:mm:ss"),
                                                                                                  decimal.Zero,
                                                                                                  decimal.Zero,
                                                                                                  string.Empty,
                                                                                                  "'P'",
                                                                                                  string.Empty,
                                                                                                  false,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  string.Empty,
                                                                                                  0,
                                                                                                  string.Empty, null);
                BindingSource bsInut = new BindingSource();
                bsInut.DataSource =
                    new CamadaDados.Faturamento.Cadastros.TCD_SeqInutNFe().Select(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_modelo",
                        vOperador = "=",
                        vVL_Busca = "'55'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.NR_Protocolo",
                        vOperador = "is not",
                        vVL_Busca = "null"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.dh_processamento",
                        vOperador = "between",
                        vVL_Busca = "'" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("yyyyMMdd") + "' and " +
                                    "'" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString())), 23, 59, 59).ToString("yyyyMMdd HH:mm:ss") + "'"
                    }
                }, 0, string.Empty);

                Relatorio.DTS_Relatorio = bsNota;
                Relatorio.Adiciona_DataSource("INUTILIZADOS", bsInut);
                Relatorio.Gera_Relatorio(string.Empty,
                                         false,
                                         false,
                                         false,
                                         true,
                                         path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + DateTime.Now.ToString("ddMMyyyy") + ".pdf",
                                         null,
                                         null,
                                         "RELATÓRIO DE NFe",
                                         string.Empty);
                if (System.IO.File.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + DateTime.Now.ToString("ddMMyyyy") + ".pdf"))
                {
                    anexos.Add(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFe" + DateTime.Now.ToString("ddMMyyyy") + ".pdf");
                }
            }

            if (cbNFCe.Checked)
            {
                if (rCfgNfe == null)
                {
                    rCfgNfe = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(cbEmpresa.SelectedValue.ToString(),
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    null)[0];
                }
                //Gerar XML NFCe
                //Limpar diretorio path arquivo
                if (System.IO.Directory.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy")))
                {
                    try
                    {
                        System.IO.Directory.Delete(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"), true);
                    }
                    catch
                    {
                        MessageBox.Show("Diretório esta sendo utilizado por outro programa <" + path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ">");
                        return;
                    }
                }
                System.IO.Directory.CreateDirectory(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"));
                try
                {
                    string msg = NFCe.GerarXML.TGerarXML.GerarXMLPeriodo(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"),
                                                                         string.Empty,
                                                                         new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("dd/MM/yyyy"),
                                                                         new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString())), 23, 59, 59).ToString("dd/MM/yyyy HH:mm:ss"),
                                                                         cbEmpresa.SelectedValue.ToString(),
                                                                         string.Empty);
                    //Compactar Arquivos
                    ZipFile zip = new ZipFile(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ".zip");
                    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"));
                    foreach (System.IO.FileInfo file in dir.GetFiles())
                    {
                        if (file.Name.Substring(file.Name.LastIndexOf('.') + 1, 3).Trim().Equals("xml"))
                        {
                            zip.AddFile(file.DirectoryName + "\\" + file.Name, string.Empty);
                        }
                    }
                    zip.Save();
                    if (System.IO.File.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ".zip"))
                    {
                        anexos.Add(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "NFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ".zip");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro: " + ex.Message);
                }
            }
            if (cbRelNFCe.Checked)
            {
                //Gerar Rel Vendas NFCe
                //Limpar diretorio path arquivo
                if (System.IO.Directory.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy")))
                {
                    try
                    {
                        System.IO.Directory.Delete(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"), true);
                    }
                    catch
                    {
                        MessageBox.Show("Diretório esta sendo utilizado por outro programa <" + path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + ">");
                        return;
                    }
                }
                System.IO.Directory.CreateDirectory(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy"));
                FormRelPadrao.Relatorio Relatorio = new FormRelPadrao.Relatorio();
                Relatorio.Nome_Relatorio = "TFConsultaNFCe";
                Relatorio.NM_Classe      = "TFConsultaNFCe";
                Relatorio.Ident          = "TFConsultaNFCe";
                BindingSource bsVenda = new BindingSource();
                bsVenda.DataSource = CamadaNegocio.Faturamento.PDV.TCN_NFCe.Buscar(string.Empty,
                                                                                   string.Empty,
                                                                                   cbEmpresa.SelectedValue.ToString(),
                                                                                   string.Empty,
                                                                                   string.Empty,
                                                                                   new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("yyyyMMdd"),
                                                                                   new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString())), 23, 59, 59).ToString("yyyyMMdd HH:mm:ss"),
                                                                                   decimal.Zero,
                                                                                   decimal.Zero,
                                                                                   string.Empty,
                                                                                   string.Empty,
                                                                                   string.Empty,
                                                                                   string.Empty,
                                                                                   true,
                                                                                   string.Empty,
                                                                                   "'A'",
                                                                                   0,
                                                                                   null);
                BindingSource bsInutilizadas = new BindingSource();
                bsInutilizadas.DataSource =
                    new CamadaDados.Faturamento.Cadastros.TCD_SeqInutNFe().Select(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_modelo",
                        vOperador = "=",
                        vVL_Busca = "'65'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.NR_Protocolo",
                        vOperador = "is not",
                        vVL_Busca = "null"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.dh_processamento",
                        vOperador = "between",
                        vVL_Busca = "'" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("yyyyMMdd") + "' and " +
                                    "'" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString())), 23, 59, 59).ToString("yyyyMMdd HH:mm:ss") + "'"
                    }
                }, 0, string.Empty);
                Relatorio.DTS_Relatorio = bsVenda;
                Relatorio.Adiciona_DataSource("INUTILIZADOS", bsInutilizadas);
                Relatorio.Gera_Relatorio(string.Empty,
                                         false,
                                         false,
                                         false,
                                         true,
                                         path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + DateTime.Now.ToString("ddMMyyyy") + ".pdf",
                                         null,
                                         null,
                                         "RELATÓRIO DE VENDAS NFCe",
                                         string.Empty);
                if (System.IO.File.Exists(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + DateTime.Now.ToString("ddMMyyyy") + ".pdf"))
                {
                    anexos.Add(path.Text + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + System.IO.Path.DirectorySeparatorChar.ToString() + DateTime.Now.ToString("ddMMyyyy") + System.IO.Path.DirectorySeparatorChar.ToString() + "RELNFCe" + DateTime.Now.ToString("ddMMyyyy") + ".pdf");
                }
            }
            if (string.IsNullOrEmpty(email.Text))
            {
                MessageBox.Show("Arquivos gerados com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                try
                {
                    new FormRelPadrao.Email(email.Text.Split(new char[] { ';' }).ToList(),
                                            "Faturamento " + cbEmpresa.Text,
                                            "Segue anexo movimento fiscal do periodo <b>" + cbMes.Text.Trim() + " de " + cbAno.Text + "</b>\r\n" +
                                            "Empresa <b>" + (cbEmpresa.SelectedItem as CamadaDados.Diversos.TRegistro_CadEmpresa).Nm_empresa.Trim() + "</b>",
                                            anexos,
                                            true).EnviarEmail();
                    MessageBox.Show("Email enviado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            }
        }
示例#18
0
        private static XmlNode ConectarWebService(XmlNode nfceDadosMsg,
                                                  string Tp_ambiente,
                                                  CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            switch (rCfgNfe.Cd_uf_empresa.Trim())
            {
            case "31":                              //Minas Gerais
            {
                if (Tp_ambiente.Trim().Equals("1")) //Producao
                {
                    br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4 nfe = new br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4();
                    nfe.Url         = "https://nfe.fazenda.mg.gov.br/nfe2/services/NFeConsultaProtocolo4";
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF(
                               new br.gov.ms.sefaz.nfe.ConsultaProt4.nfeResultMsg
                        {
                            Any = new XmlNode[] { nfceDadosMsg }
                        }).Any[0]);
                }
                else
                {
                    br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4 nfe = new br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4();
                    nfe.Url         = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NFeConsultaProtocolo4";
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF(
                               new br.gov.ms.sefaz.nfe.ConsultaProt4.nfeResultMsg
                        {
                            Any = new XmlNode[] { nfceDadosMsg }
                        }).Any[0]);
                }
            }

            case "41":
            {
                if (Tp_ambiente.Trim().Equals("1"))        //Producao
                {
                    br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4 nfe = new br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4();
                    nfe.Url         = "https://nfe.sefa.pr.gov.br/nfe/NFeConsultaProtocolo4";
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF(
                               new br.gov.ms.sefaz.nfe.ConsultaProt4.nfeResultMsg
                        {
                            Any = new XmlNode[] { nfceDadosMsg }
                        }).Any[0]);
                }
                else        //Homologacao
                {
                    br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4 nfe = new br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4();
                    nfe.Url         = "https://homologacao.nfe.sefa.pr.gov.br/nfe/NFeConsultaProtocolo4";
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF(
                               new br.gov.ms.sefaz.nfe.ConsultaProt4.nfeResultMsg
                        {
                            Any = new XmlNode[] { nfceDadosMsg }
                        }).Any[0]);
                }
            }

            case "50":
            {
                if (Tp_ambiente.Trim().Equals("1"))        //Producao
                {
                    br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4 nfe = new br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4();
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF(
                               new br.gov.ms.sefaz.nfe.ConsultaProt4.nfeResultMsg
                        {
                            Any = new XmlNode[] { nfceDadosMsg }
                        }).Any[0]);
                }
                else
                {
                    br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4 nfe = new br.gov.ms.sefaz.nfe.ConsultaProt4.NFeConsultaProtocolo4();
                    nfe.Url         = "https://hom.nfe.sefaz.ms.gov.br/ws/NFeConsultaProtocolo4";
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF(
                               new br.gov.ms.sefaz.nfe.ConsultaProt4.nfeResultMsg
                        {
                            Any = new XmlNode[] { nfceDadosMsg }
                        }).Any[0]);
                }
            }

            default: return(null);
            }
        }
示例#19
0
        public static CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor ConsultaCadClifor(string Cnpj,
                                                                                             string Cpf,
                                                                                             string Sigla_uf_consulta,
                                                                                             CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            if (((!string.IsNullOrEmpty(Cnpj)) ||
                 (!string.IsNullOrEmpty(Cpf))) &&
                (!string.IsNullOrEmpty(Sigla_uf_consulta)))
            {
                StringBuilder xml = new StringBuilder();
                xml.Append("<ConsCad xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\">");
                xml.Append("<infCons>");
                xml.Append("<xServ>CONS-CAD</xServ>");
                xml.Append("<UF>");
                xml.Append(Sigla_uf_consulta.Trim());
                xml.Append("</UF>");
                if (!string.IsNullOrEmpty(Cnpj))
                {
                    xml.Append("<CNPJ>");
                    xml.Append(Cnpj.SoNumero());
                    xml.Append("</CNPJ>");
                }
                else if (!string.IsNullOrEmpty(Cpf))
                {
                    xml.Append("<CPF>");
                    xml.Append(Cpf.SoNumero());
                    xml.Append("</CPF>");
                }
                xml.Append("</infCons>");
                xml.Append("</ConsCad>");

                //Validar Schema XML
                Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                        rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "consCad_v2.00.xsd",
                                                        "NFE");
                //Buscar CD.UF
                object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadUf().BuscarEscalar(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.UF",
                        vOperador = "=",
                        vVL_Busca = "'" + Sigla_uf_consulta.Trim() + "'"
                    }
                }, "a.cd_uf");
                if (obj == null)
                {
                    throw new Exception("Estado inexistente!");
                }
                //Enviar consulta para a receita
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml.ToString());
                XmlNode retorno = ConectarWebService2(doc.DocumentElement, obj.ToString().Trim(), rCfgNfe);
                //Tratar retorno
                if (retorno != null)
                {
                    if (retorno["infCons"]["cStat"].InnerText.Trim().Equals("111"))
                    {
                        CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor   rClifor = new CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor();
                        CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEnd    = new CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco();
                        foreach (XmlNode no in retorno["infCons"]["infCad"].ChildNodes)
                        {
                            if (no.Name.Trim().Equals("ender"))
                            {
                                foreach (XmlNode n in no.ChildNodes)
                                {
                                    if (n.Name.Trim().Equals("xLgr"))
                                    {
                                        rEnd.Ds_endereco = n.InnerText;
                                    }
                                    else if (n.Name.Trim().Equals("nro"))
                                    {
                                        rEnd.Numero = n.InnerText;
                                    }
                                    else if (n.Name.Trim().Equals("xCpl"))
                                    {
                                        rEnd.Ds_complemento = n.InnerText;
                                    }
                                    else if (n.Name.Trim().Equals("xBairro"))
                                    {
                                        rEnd.Bairro = n.InnerText;
                                    }
                                    else if (n.Name.Trim().Equals("cMun"))
                                    {
                                        rEnd.Cd_cidade = n.InnerText;
                                    }
                                    else if (n.Name.Trim().Equals("xMun"))
                                    {
                                        rEnd.DS_Cidade = n.InnerText;
                                    }
                                    else if (n.Name.Trim().Equals("CEP"))
                                    {
                                        rEnd.Cep = n.InnerText;
                                    }
                                }
                            }
                            else if (no.Name.Trim().Equals("CNPJ"))
                            {
                                rClifor.Nr_cgc    = no.InnerText.FormatStringEsquerda(14, '0');
                                rClifor.Tp_pessoa = "J";
                            }
                            else if (no.Name.Trim().Equals("CPF"))
                            {
                                rClifor.Nr_cpf    = no.InnerText.FormatStringEsquerda(11, '0');
                                rClifor.Tp_pessoa = "F";
                            }
                            else if (no.Name.Trim().Equals("xNome"))
                            {
                                rClifor.Nm_clifor = no.InnerText;
                            }
                            else if (no.Name.Trim().Equals("xFant"))
                            {
                                rClifor.Nm_fantasia = no.InnerText;
                            }
                            else if (no.Name.Trim().Equals("IE"))
                            {
                                rEnd.Insc_estadual = no.InnerText;
                            }
                        }
                        rClifor.lEndereco.Add(rEnd);
                        rClifor.Tp_pessoa = !string.IsNullOrEmpty(rClifor.Nr_cgc) ? "J" : "F";
                        return(rClifor);
                    }
                    else
                    {
                        throw new Exception("Erro: " + retorno["infCons"]["cStat"].InnerText.Trim() + "-" +
                                            retorno["infCons"]["xMotivo"].InnerText.Trim());
                    }
                }
                else
                {
                    throw new Exception("Erro consultar cadastro cliente.");
                }
            }
            else
            {
                return(null);
            }
        }
示例#20
0
        public static XmlNode ConectarWebService2(XmlNode nfeDadosMsg,
                                                  CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            switch (rCfgNfe.Cd_uf_empresa.Trim())
            {
            case ("31"):                                              //Minas Gerais
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.gov.mg.fazenda.nfe.MGConsultaNF2.NfeConsulta2 nfe = new srvNFE.br.gov.mg.fazenda.nfe.MGConsultaNF2.NfeConsulta2();
                    nfe.nfeCabecMsgValue = new srvNFE.br.gov.mg.fazenda.nfe.MGConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF2(nfeDadosMsg));
                }
                else
                {
                    return(null);
                }
            }

            case ("35"):                                              //Sao Paulo
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.gov.sp.fazenda.nfe.SPConsultaNF2.NfeConsulta2 nfe = new srvNFE.br.gov.sp.fazenda.nfe.SPConsultaNF2.NfeConsulta2();
                    nfe.nfeCabecMsgValue = new srvNFE.br.gov.sp.fazenda.nfe.SPConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF2(nfeDadosMsg));
                }
                else
                {
                    return(null);
                }
            }

            case ("41"):                                              //Parana
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.gov.pr.fazenda.nfe2.PRConsultaNF2.NfeConsulta2 nfe = new srvNFE.br.gov.pr.fazenda.nfe2.PRConsultaNF2.NfeConsulta2();
                    nfe.nfeCabecMsgValue = new srvNFE.br.gov.pr.fazenda.nfe2.PRConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF2(nfeDadosMsg));
                }
                else
                {
                    br.gov.pr.fazenda.nfe2.PRConsultaNF2.NfeConsulta2 nfe = new srvNFE.br.gov.pr.fazenda.nfe2.PRConsultaNF2.NfeConsulta2();
                    nfe.Url = "https://homologacao.nfe2.fazenda.pr.gov.br/nfe/NFeConsulta2";
                    nfe.nfeCabecMsgValue = new srvNFE.br.gov.pr.fazenda.nfe2.PRConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF2(nfeDadosMsg));
                }
            }

            case ("43"):                                              //Rio Grande do Sul
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.gov.rs.sefaz.nfe.RSConsultaNF2.NfeConsulta2 nfe = new srvNFE.br.gov.rs.sefaz.nfe.RSConsultaNF2.NfeConsulta2();
                    nfe.nfeCabecMsgValue = new srvNFE.br.gov.rs.sefaz.nfe.RSConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF2(nfeDadosMsg));
                }
                else
                {
                    return(null);
                }
            }

            case ("50"):                                              //Mato Grosso do Sul
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.gov.ms.fazenda.nfe.MSConsultaNF2.NfeConsulta2 nfe = new srvNFE.br.gov.ms.fazenda.nfe.MSConsultaNF2.NfeConsulta2();
                    nfe.nfeCabecMsgValue = new srvNFE.br.gov.ms.fazenda.nfe.MSConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF2(nfeDadosMsg));
                }
                else
                {
                    return(null);
                }
            }

            case ("51"):                                              //Mato Grosso
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.gov.mt.sefaz.nfe.MTConsultaNF2.NfeConsulta2 nfe = new srvNFE.br.gov.mt.sefaz.nfe.MTConsultaNF2.NfeConsulta2();
                    nfe.nfeCabecMsgValue = new srvNFE.br.gov.mt.sefaz.nfe.MTConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfe.nfeConsultaNF2(nfeDadosMsg));
                }
                else
                {
                    return(null);
                }
            }

            case ("52"):                                              //Goias
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                {
                    br.gov.go.sefaz.nfe.GOConsultaNF2.NfeConsulta2 nfeInutilizar = new srvNFE.br.gov.go.sefaz.nfe.GOConsultaNF2.NfeConsulta2();
                    nfeInutilizar.nfeCabecMsgValue = new srvNFE.br.gov.go.sefaz.nfe.GOConsultaNF2.nfeCabecMsg()
                    {
                        cUF         = rCfgNfe.Cd_uf_empresa,
                        versaoDados = rCfgNfe.Cd_versao
                    };
                    nfeInutilizar.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                    nfeInutilizar.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                    return(nfeInutilizar.nfeConsultaNF2(nfeDadosMsg));
                }
                else
                {
                    return(null);
                }
            }

            default:
            {
                return(null);
            }
            }
        }
示例#21
0
        private static XmlNode ConectarWebService2(XmlNode nfeDadosMsg,
                                                   CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            if (rCfgNfe.St_nfecontingencia)
            {
                if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P"))         //Producao
                {
                    if (rCfgNfe.Tp_ambientecont.Trim().ToUpper().Equals("N")) //Ambiente Nacional
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.fazenda.svc.RetAutorizacao.NfeRetAutorizacao nfe = new br.gov.fazenda.svc.RetAutorizacao.NfeRetAutorizacao();
                            nfe.nfeCabecMsgValue = new br.gov.fazenda.svc.RetAutorizacao.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                        else//4.00
                        {
                            br.gov.fazenda.svc.RetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.fazenda.svc.RetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else//Ambiente Rio Grande Sul
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.rs.sefaz.nfe.RSRetAutoriza.NfeRetAutorizacao nfe = new br.gov.rs.sefaz.nfe.RSRetAutoriza.NfeRetAutorizacao();
                            nfe.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSRetAutoriza.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                        else//4.00
                        {
                            br.gov.rs.svrs.nfe.RetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.rs.svrs.nfe.RetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                }
                else//Homologacao
                {
                    if (rCfgNfe.Tp_ambientecont.Trim().ToUpper().Equals("N"))//Ambiente Nacional
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.fazenda.svc.hom.ANRetAutoriza.NfeRetAutorizacao nfe = new br.gov.fazenda.svc.hom.ANRetAutoriza.NfeRetAutorizacao();
                            nfe.nfeCabecMsgValue = new br.gov.fazenda.svc.hom.ANRetAutoriza.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                        else//4.00
                        {
                            br.gov.fazenda.svc.hom.RetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.fazenda.svc.hom.RetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else//Ambiente Rio Grande do Sul
                    {
                        br.gov.rs.sefazvirtual.nfe.homologacao.RSRetAutoriza.NfeRetAutorizacao nfe = new br.gov.rs.sefazvirtual.nfe.homologacao.RSRetAutoriza.NfeRetAutorizacao();
                        nfe.nfeCabecMsgValue = new br.gov.rs.sefazvirtual.nfe.homologacao.RSRetAutoriza.nfeCabecMsg()
                        {
                            cUF         = rCfgNfe.Cd_uf_empresa,
                            versaoDados = rCfgNfe.Cd_versao
                        };
                        nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                    }
                }
            }
            else
            {
                switch (rCfgNfe.Cd_uf_empresa.Trim())
                {
                case ("31"):                                              //Minas Gerais
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        br.gov.ms.sefaz.nfe.MSRetAutoriza4.NFeRetAutorizacao4 nfe = new br.gov.ms.sefaz.nfe.MSRetAutoriza4.NFeRetAutorizacao4();
                        nfe.Url         = "https://nfe.fazenda.mg.gov.br/nfe2/services/NFeRetAutorizacao4";
                        nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfe.nfeRetAutorizacaoLote(
                                   new br.gov.ms.sefaz.nfe.MSRetAutoriza4.nfeDadosMsg {
                                Any = new XmlNode[] { nfeDadosMsg }
                            }).Any[0]);
                    }
                    else
                    {
                        br.gov.ms.sefaz.nfe.hom.MSRetAutoriza4.NFeRetAutorizacao4 nfe = new br.gov.ms.sefaz.nfe.hom.MSRetAutoriza4.NFeRetAutorizacao4();
                        nfe.Url         = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NFeRetAutorizacao4";
                        nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfe.nfeRetAutorizacaoLote(
                                   new br.gov.ms.sefaz.nfe.hom.MSRetAutoriza4.nfeDadosMsg {
                                Any = new XmlNode[] { nfeDadosMsg }
                            }).Any[0]);
                    }
                }

                case ("35"):                                              //Sao Paulo
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.sp.fazenda.nfe.SPRetAutoriza.NfeRetAutorizacao nfe = new br.gov.sp.fazenda.nfe.SPRetAutoriza.NfeRetAutorizacao();
                            nfe.nfeCabecMsgValue = new br.gov.sp.fazenda.nfe.SPRetAutoriza.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                        else        //4.00
                        {
                            br.gov.sp.fazenda.nfe.SPRetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.sp.fazenda.nfe.SPRetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }

                case ("41"):                                              //Parana
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.pr.fazenda.nfe.PRRetAutoriza3.NfeRetAutorizacao3 nfe = new srvNFE.br.gov.pr.fazenda.nfe.PRRetAutoriza3.NfeRetAutorizacao3();
                            nfe.nfeCabecMsgValue = new srvNFE.br.gov.pr.fazenda.nfe.PRRetAutoriza3.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacao(nfeDadosMsg));
                        }
                        else        //4.00
                        {
                            br.gov.pr.sefa.nfe.PRRetAutoriza4.NFeRetAutorizacao4 nfe = new br.gov.pr.sefa.nfe.PRRetAutoriza4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.pr.fazenda.nfe.homologacao.PRRetAutoriza3.NfeRetAutorizacao3 nfe = new br.gov.pr.fazenda.nfe.homologacao.PRRetAutoriza3.NfeRetAutorizacao3();
                            nfe.nfeCabecMsgValue = new br.gov.pr.fazenda.nfe.homologacao.PRRetAutoriza3.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacao(nfeDadosMsg));
                        }
                        else        //4.00
                        {
                            br.gov.pr.sefa.nfe.homologacao.PRRetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.pr.sefa.nfe.homologacao.PRRetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                }

                case ("42"):                                              //Santa Catarina
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.rs.sefazvirtual.nfe.RSRetAutoriza.NfeRetAutorizacao nfe = new br.gov.rs.sefazvirtual.nfe.RSRetAutoriza.NfeRetAutorizacao();
                            nfe.Url = "https://nfe.svrs.rs.gov.br/ws/NfeRetAutorizacao/NFeRetAutorizacao.asmx";
                            nfe.nfeCabecMsgValue = new br.gov.rs.sefazvirtual.nfe.RSRetAutoriza.nfeCabecMsg
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                        else        //4.00
                        {
                            br.gov.rs.svrs.nfe.RetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.rs.svrs.nfe.RetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else        //Homologacao
                    {
                        br.gov.rs.sefazvirtual.nfe.homologacao.RSRetAutoriza.NfeRetAutorizacao nfe = new br.gov.rs.sefazvirtual.nfe.homologacao.RSRetAutoriza.NfeRetAutorizacao();
                        nfe.Url = "https://nfe-homologacao.svrs.rs.gov.br/ws/NfeRetAutorizacao/NFeRetAutorizacao.asmx";
                        nfe.nfeCabecMsgValue = new br.gov.rs.sefazvirtual.nfe.homologacao.RSRetAutoriza.nfeCabecMsg
                        {
                            cUF         = rCfgNfe.Cd_uf_empresa,
                            versaoDados = rCfgNfe.Cd_versao
                        };
                        nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                    }
                }

                case ("43"):                                              //Rio Grande do Sul
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.rs.sefaz.nfe.RSRetAutoriza.NfeRetAutorizacao nfe = new br.gov.rs.sefaz.nfe.RSRetAutoriza.NfeRetAutorizacao();
                            nfe.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSRetAutoriza.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                        else        //4.00
                        {
                            br.gov.rs.sefazrs.nfe.RSRetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.rs.sefazrs.nfe.RSRetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }

                case ("50"):                                              //Mato Grosso do Sul
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        br.gov.ms.sefaz.nfe.MSRetAutoriza4.NFeRetAutorizacao4 nfe = new br.gov.ms.sefaz.nfe.MSRetAutoriza4.NFeRetAutorizacao4();
                        nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfe.nfeRetAutorizacaoLote(
                                   new br.gov.ms.sefaz.nfe.MSRetAutoriza4.nfeDadosMsg {
                                Any = new XmlNode[] { nfeDadosMsg }
                            }).Any[0]);
                    }
                    else
                    {
                        br.gov.ms.sefaz.nfe.hom.MSRetAutoriza4.NFeRetAutorizacao4 nfe = new br.gov.ms.sefaz.nfe.hom.MSRetAutoriza4.NFeRetAutorizacao4();
                        nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                        nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                        return(nfe.nfeRetAutorizacaoLote(
                                   new br.gov.ms.sefaz.nfe.hom.MSRetAutoriza4.nfeDadosMsg {
                                Any = new XmlNode[] { nfeDadosMsg }
                            }).Any[0]);
                    }
                }

                case ("51"):                                              //Mato Grosso
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.mt.sefaz.nfe.MTRetAutoriza.NfeRetAutorizacao nfe = new srvNFE.br.gov.mt.sefaz.nfe.MTRetAutoriza.NfeRetAutorizacao();
                            nfe.nfeCabecMsgValue = new srvNFE.br.gov.mt.sefaz.nfe.MTRetAutoriza.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                        else        //4.00
                        {
                            br.gov.mt.sefaz.nfe.MTRetAutorizacao4.NfeRetAutorizacao4 nfe = new br.gov.mt.sefaz.nfe.MTRetAutorizacao4.NfeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }

                case ("52"):                                              //Goias
                {
                    if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao
                    {
                        if (rCfgNfe.Cd_versao.Trim().Equals("3.10"))
                        {
                            br.gov.go.sefaz.nfe.GORetRecepcao2.NfeRetRecepcao2 nfe = new br.gov.go.sefaz.nfe.GORetRecepcao2.NfeRetRecepcao2();
                            nfe.nfeCabecMsgValue = new br.gov.go.sefaz.nfe.GORetRecepcao2.nfeCabecMsg()
                            {
                                cUF         = rCfgNfe.Cd_uf_empresa,
                                versaoDados = rCfgNfe.Cd_versao
                            };
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetRecepcao2(nfeDadosMsg));
                        }
                        else        //4.00
                        {
                            br.gov.go.sefaz.nfe.GORetAutorizacao4.NFeRetAutorizacao4 nfe = new br.gov.go.sefaz.nfe.GORetAutorizacao4.NFeRetAutorizacao4();
                            nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                            nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe));
                            return(nfe.nfeRetAutorizacaoLote(nfeDadosMsg));
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }

                default:
                {
                    return(null);
                }
                }
            }
        }
示例#22
0
        public static string ConsultaNFERecepcao2(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe)
        {
            //Validar certificado
            ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(rCfgNfe);
            string msg = string.Empty;

            //Buscar Lotes aguardando processamento
            BuscarLotes(rCfgNfe).ForEach(p =>
            {
                StringBuilder xml = new StringBuilder();
                xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
                xml.Append("<consReciNFe versao=\"" + rCfgNfe.Cd_versao.Trim() + "\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">\n");
                xml.Append("<tpAmb>");
                xml.Append(p.Tp_ambiente.Trim());
                xml.Append("</tpAmb>\n");
                xml.Append("<nRec>");
                xml.Append(p.Loteretorno.ToString().PadLeft(15, '0'));
                xml.Append("</nRec>\n");
                xml.Append("</consReciNFe>\n");

                //Validar schema xml
                Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                        rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "consReciNFe_v" + rCfgNfe.Cd_versao.Trim() + ".xsd",
                                                        "NFE");
                if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
                {
                    throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno);
                }

                //Conectar Web Service
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml.ToString());
                //Verificar se o lote foi gerado no ambiente SCAN
                rCfgNfe.St_nfecontingencia = p.Tp_emissaonfe.Trim().Equals("6") || p.Tp_emissaonfe.Trim().Equals("7");
                XmlNode retorno            = ConectarWebService2(doc.DocumentElement, rCfgNfe);

                //Tratar retorno
                if (retorno["cStat"].InnerText.Trim().Equals("104"))
                {
                    //Atualizar status do lote
                    srvNFE.EnviaArq.TEnviarArq2.GerarIdLote(p.Id_lote,
                                                            p.Loteretorno,
                                                            p.Dt_recebimento,
                                                            p.Tempomedio,
                                                            "P",
                                                            Convert.ToDecimal(retorno["cStat"].InnerText),
                                                            retorno["xMotivo"].InnerText,
                                                            p.Tp_emissaonfe,
                                                            rCfgNfe);
                    msg += "Lote: " + p.Id_lote.ToString() + "\r\nMensagem: " + retorno["xMotivo"].InnerText.Trim() + "\r\n";
                    //Tratar as Notas do Lote
                    foreach (XmlNode no in retorno.ChildNodes)
                    {
                        if (no.Name.Trim().Equals("protNFe"))
                        {
                            DateTime?dt_rec = null;
                            try
                            {
                                dt_rec = Convert.ToDateTime(no["infProt"]["dhRecbto"].InnerText);
                            }
                            catch { }
                            decimal nprot = decimal.Zero;
                            try
                            {
                                nprot = Convert.ToDecimal(no["infProt"]["nProt"].InnerText);
                            }
                            catch { }
                            decimal status = decimal.Zero;
                            try
                            {
                                status = Convert.ToDecimal(no["infProt"]["cStat"].InnerText);
                            }
                            catch { }
                            srvNFE.EnviaArq.TEnviarArq2.GravarLoteXNf(p.Id_lote,
                                                                      no["infProt"]["chNFe"].InnerText,
                                                                      dt_rec,
                                                                      nprot,
                                                                      (status.Equals(100) ? no["infProt"]["digVal"].InnerText : string.Empty),
                                                                      status,
                                                                      no["infProt"]["xMotivo"].InnerText,
                                                                      no["infProt"]["verAplic"].InnerText);
                        }
                    }
                }
                else
                {
                    srvNFE.EnviaArq.TEnviarArq2.GerarIdLote(p.Id_lote,
                                                            p.Loteretorno,
                                                            p.Dt_recebimento,
                                                            p.Tempomedio,
                                                            p.St_registro,
                                                            Convert.ToDecimal(retorno["cStat"].InnerText),
                                                            retorno["xMotivo"].InnerText,
                                                            p.Tp_emissaonfe,
                                                            rCfgNfe);
                }
            });
            return(msg);
        }
示例#23
0
        public static void ConsultarSitLoteRPS(CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfes)
        {
            //Buscar Lotes a Serem Consultados
            new CamadaDados.Faturamento.NFES.TCD_LoteRPS().Select(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + rCfgNfes.Cd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.tp_ambiente",
                    vOperador = "=",
                    vVL_Busca = "'" + rCfgNfes.Tp_ambiente_nfes.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.st_lote",
                    vOperador = "in",
                    vVL_Busca = "('1', '2')"
                },
                new TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from tb_fat_loterps_x_nfes x " +
                                "where x.cd_empresa = a.cd_empresa " +
                                "and x.id_lote = a.id_lote)"
                }
            }, 0, string.Empty).ForEach(p =>
            {
                StringBuilder xml = new StringBuilder();
                xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                #region es:esConsultarSituacaoLoteRpsEnvio
                xml.Append("<es:esConsultarSituacaoLoteRpsEnvio xmlns:es=\"http://www.equiplano.com.br/esnfs\" ");
                xml.Append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ");
                xml.Append("xsi:schemaLocation=\"http://www.equiplano.com.br/enfs esConsultarSituacaoLoteRpsEnvio_v01.xsd\">");

                #region prestador
                xml.Append("<prestador>");
                #region nrInscricaoMunicipal
                xml.Append("<nrInscricaoMunicipal>");
                xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Insc_municipal_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                xml.Append("</nrInscricaoMunicipal>");
                #endregion

                #region nrCnpj
                xml.Append("<cnpj>");
                xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Cnpj_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                xml.Append("</cnpj>");
                #endregion

                #region idEntidade
                xml.Append("<idEntidade>");
                xml.Append(rCfgNfes.Id_entidadenfes);
                xml.Append("</idEntidade>");
                #endregion
                xml.Append("</prestador>");
                #endregion

                #region nrLoteRps
                xml.Append("<nrLoteRps>");
                xml.Append(p.Id_lotestr);
                xml.Append("</nrLoteRps>");
                #endregion

                xml.Append("</es:esConsultarSituacaoLoteRpsEnvio>");
                #endregion

                //Assinar documento XML
                string xmlassinado =
                    new Utils.Assinatura.TAssinatura2(rCfgNfes.Nr_certificado_nfe,
                                                      xml.ToString()).AssinarNFSe();

                //Validar Schema XML
                Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado,
                                                        rCfgNfes.Path_nfe_schemas.SeparadorDiretorio() + "esConsultarSituacaoLoteRpsEnvio_v01.xsd",
                                                        "NFES");
                if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
                {
                    throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim());
                }

                //Conectar Web Service
                string retorno = ConectarWebServico(xmlassinado, rCfgNfes);
                if (!string.IsNullOrEmpty(retorno))
                {
                    XmlDocument documento = new XmlDocument();
                    documento.LoadXml(retorno);
                    p.St_lote = documento["es:esConsultarSituacaoLoteRpsResposta"]["stLote"].InnerText.Trim();
                    CamadaNegocio.Faturamento.NFES.TCN_LoteRPS.Gravar(p, null);
                    if (documento["es:esConsultarSituacaoLoteRpsResposta"].GetElementsByTagName("mensagemRetorno").Count > 0)
                    {
                        foreach (XmlNode no in documento["es:esConsultarSituacaoLoteRpsResposta"]["mensagemRetorno"].ChildNodes)
                        {
                            p.lMsgRPS.Add(new CamadaDados.Faturamento.NFES.TRegistro_MsgRetornoRPS()
                            {
                                Cd_mensagem = no["erro"]["cdMensagem"].InnerText.Trim(),
                                Ds_mensagem = no["erro"]["dsMensagem"].InnerText.Trim(),
                                Tp_origem   = "2"
                            });
                            CamadaNegocio.Faturamento.NFES.TCN_LoteRPS.Gravar(p, null);
                        }
                    }
                    if (p.St_lote.Trim().Equals("3"))
                    {
                        CamadaNegocio.Faturamento.NFES.TCN_LoteRPS_X_NFES.Buscar(p.Id_lotestr,
                                                                                 p.Cd_empresa,
                                                                                 string.Empty,
                                                                                 null).ForEach(v =>
                        {
                            string ret = TConsultarNfes.ConsultarNFSePorRPS(v.Nr_rps.Value, rCfgNfes);
                            if (!string.IsNullOrEmpty(ret))
                            {
                                XmlDocument doc = new XmlDocument();
                                doc.LoadXml(ret);
                                if (doc["es:esConsultarNfsePorRpsResposta"].ChildNodes.Count > 0)
                                {
                                    v.Cd_autenticacao = doc["es:esConsultarNfsePorRpsResposta"]["nfse"]["cdAutenticacao"].InnerText;
                                    try
                                    {
                                        v.Dt_autorizacao = DateTime.Parse(doc["es:esConsultarNfsePorRpsResposta"]["nfse"]["dtEmissaoNfs"].InnerText);
                                    }
                                    catch { }
                                    try
                                    {
                                        v.Nr_nfse = decimal.Parse(doc["es:esConsultarNfsePorRpsResposta"]["nfse"]["nrNfse"].InnerText);
                                    }
                                    catch { }
                                    CamadaNegocio.Faturamento.NFES.TCN_LoteRPS_X_NFES.Gravar(v, null);
                                    CamadaNegocio.Faturamento.NFES.TCN_LoteRPS_X_NFES.CorrigirNumeroNFSe(v, null);
                                }
                            }
                        });
                    }
                }
            });
        }
示例#24
0
        public static void CancelarNFSe(List <CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento> lNf,
                                        string MotivoCanc,
                                        CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfes)
        {
            lNf.ForEach(p =>
            {
                StringBuilder xml = new StringBuilder();
                xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                #region esCancelarNfseEnvio
                xml.Append("<es:esCancelarNfseEnvio xmlns:es=\"http://www.equiplano.com.br/esnfs\" ");
                xml.Append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ");
                xml.Append("xsi:schemaLocation=\"http://www.equiplano.com.br/enfs esCancelarNfseEnvio_v01.xsd\">");

                #region prestador
                xml.Append("<prestador>");
                #region nrInscricaoMunicipal
                xml.Append("<nrInscricaoMunicipal>");
                xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Insc_municipal_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                xml.Append("</nrInscricaoMunicipal>");
                #endregion

                #region nrCnpj
                xml.Append("<cnpj>");
                xml.Append(System.Text.RegularExpressions.Regex.Replace(rCfgNfes.Cnpj_empresa.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty));
                xml.Append("</cnpj>");
                #endregion

                #region idEntidade
                xml.Append("<idEntidade>");
                xml.Append(rCfgNfes.Id_entidadenfes);
                xml.Append("</idEntidade>");
                #endregion
                xml.Append("</prestador>");
                #endregion

                #region nrNfse
                xml.Append("<nrNfse>");
                xml.Append(p.Nr_notafiscal);
                xml.Append("</nrNfse>");
                #endregion

                #region dsMotivoCancelamento
                xml.Append("<dsMotivoCancelamento>");
                xml.Append(MotivoCanc.Trim());
                xml.Append("</dsMotivoCancelamento>");
                #endregion
                xml.Append("</es:esCancelarNfseEnvio>");
                #endregion

                //Assinar documento XML
                string xmlassinado =
                    new Utils.Assinatura.TAssinatura2(rCfgNfes.Nr_certificado_nfe,
                                                      xml.ToString()).AssinarNFSe();

                //Validar Schema XML
                Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado,
                                                        rCfgNfes.Path_nfe_schemas.SeparadorDiretorio() + "esCancelarNfseEnvio_v01.xsd",
                                                        "NFES");

                //Conectar Web Service
                string retorno = ConectarWebServico(xmlassinado, rCfgNfes);

                //Tratar retorno
                if (!string.IsNullOrEmpty(retorno))
                {
                    XmlDocument documento = new XmlDocument();
                    documento.LoadXml(retorno);
                    try
                    {
                        if (documento["es:esCancelarNfseResposta"]["sucesso"].InnerText.Trim().ToUpper().Equals("TRUE"))
                        {
                            //Gravar Data Cancelamento
                            System.Collections.Hashtable hs = new System.Collections.Hashtable();
                            hs.Add("@P_EMPRESA", p.Cd_empresa);
                            hs.Add("@P_LANCTO", p.Nr_lanctofiscal);
                            hs.Add("@DT_CANC", Convert.ToDateTime(documento["es:esCancelarNfseResposta"]["dtCancelamento"].InnerText));
                            new CamadaDados.TDataQuery().executarSql("update tb_fat_loterps_x_nfes " +
                                                                     "set dt_cancelamento = @DT_CANC, " +
                                                                     "dt_alt = getdate() " +
                                                                     "where cd_empresa = @P_EMPRESA " +
                                                                     "and nr_lanctofiscal = @P_LANCTO", hs);
                        }
                    }
                    catch
                    {
                        string msg         = string.Empty;
                        string rtCancelado = string.Empty;
                        foreach (XmlNode no in documento["es:esCancelarNfseResposta"]["mensagemRetorno"]["listaErros"].ChildNodes)
                        {
                            msg        += no["cdMensagem"].InnerText + "-" + no["dsMensagem"].InnerText;
                            rtCancelado = no["cdMensagem"].InnerText;
                        }
                        // se retorno = 8009  ou seja cancelado na receita
                        try
                        {
                            if (rtCancelado.Equals("8009"))
                            {
                                CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.CancelarFaturamento(p, null);
                                throw new Exception("NFS-e já está cancelada na prefeitura!\r\n" +
                                                    "NFS-e cancelada no sistema Aliance.Net com sucesso!");
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception("erro ao cancelar a nfs-e" + ex);
                        }
                        throw new Exception(msg);
                    }
                }
            });
        }