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)); }
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); } }
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)); }
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"; } }
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()); } }
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)); }
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); } }
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()); } }
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]; } } }
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."; } }
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()); } }
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))); }
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)); }
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); } } }
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); } }
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); }
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); } } }
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); } }
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); } }
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); } } }
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); } } } }
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); }
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); } } }); } } }); }
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); } } }); }