public static string StatusServico(TRegistro_CfgFrota rCfgCte, bool St_contingencia) { StringBuilder xml = new StringBuilder(); xml.Append("<consStatServCte versao=\"" + rCfgCte.Cd_versaolayout.Trim() + "\" xmlns=\"http://www.portalfiscal.inf.br/cte\">"); xml.Append("<tpAmb>"); xml.Append(rCfgCte.Tp_ambiente.Trim()); xml.Append("</tpAmb>"); xml.Append("<xServ>"); xml.Append("STATUS"); xml.Append("</xServ>"); xml.Append("</consStatServCte>"); try { //Validar schema xml Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgCte.Path_schemas.Trim().SeparadorDiretorio() + "consStatServCTe_v" + rCfgCte.Cd_versaolayout.Trim() + ".xsd", "CTE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { return(Utils.ValidaSchema.ValidaXML2.Retorno); } //Conectar Web Service XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); rCfgCte.St_ctecontingencia = St_contingencia; XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgCte); //Tratar retorno return(retorno["cStat"].InnerText); } catch (Exception ex) { return(ex.Message.Trim()); } }
public static string ConsultaChave(string Chave_acesso, string Tp_ambiente, TRegistro_CfgFrota rCfgCte) { StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); xml.Append("<consSitCTe versao=\"" + rCfgCte.Cd_versaolayout.Trim() + "\" xmlns=\"http://www.portalfiscal.inf.br/cte\">"); xml.Append("<tpAmb>"); xml.Append(Tp_ambiente.Trim()); xml.Append("</tpAmb>"); xml.Append("<xServ>"); xml.Append("CONSULTAR"); xml.Append("</xServ>"); xml.Append("<chCTe>"); xml.Append(Chave_acesso.Trim()); xml.Append("</chCTe>"); xml.Append("</consSitCTe>"); try { //Validar schema xml Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgCte.Path_schemas.Trim().SeparadorDiretorio() + "consSitCTe_v" + rCfgCte.Cd_versaolayout.Trim() + ".xsd", "CTE"); 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, rCfgCte); //Tratar retorno if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("100") || retorno["cStat"].InnerText.Trim().Equals("110")) { return(retorno["protCTe"]["infProt"]["cStat"].InnerText + "|" + retorno["protCTe"]["infProt"]["xMotivo"].InnerText + "|" + retorno["protCTe"]["infProt"]["dhRecbto"].InnerText + "|" + retorno["protCTe"]["infProt"]["nProt"].InnerText + "|" + retorno["protCTe"]["infProt"]["digVal"].InnerText + "|" + retorno["protCTe"]["infProt"]["verAplic"].InnerText); } else { return(string.Empty); } } else { return(string.Empty); } } catch (Exception ex) { return(ex.Message.Trim()); } }
public static string Excluir(TRegistro_CfgFrota val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CfgFrota qtb_cfg = new TCD_CfgFrota(); try { if (banco == null) { st_transacao = qtb_cfg.CriarBanco_Dados(true); } else { qtb_cfg.Banco_Dados = banco; } qtb_cfg.Excluir(val); if (st_transacao) { qtb_cfg.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_cfg.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir configuração: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_cfg.deletarBanco_Dados(); } } }
private static XmlNode ConectarWebService(XmlNode nfceDadosMsg, string Tp_ambiente, TRegistro_CfgFrota rCfgCte) { switch (rCfgCte.Cd_uf_empresa.Trim()) { case "41": { if (Tp_ambiente.Trim().Equals("1")) //Producao { CTe.br.gov.pr.fazenda.cte.Consulta.CteConsulta cte = new CTe.br.gov.pr.fazenda.cte.Consulta.CteConsulta(); cte.cteCabecMsgValue = new CTe.br.gov.pr.fazenda.cte.Consulta.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteConsultaCT(nfceDadosMsg)); } else //Homologacao { CTe.br.gov.pr.fazenda.cte.homologacao.Consulta.CteConsulta cte = new CTe.br.gov.pr.fazenda.cte.homologacao.Consulta.CteConsulta(); cte.cteCabecMsgValue = new CTe.br.gov.pr.fazenda.cte.homologacao.Consulta.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteConsultaCT(nfceDadosMsg)); } } default: return(null); } }
private static XmlNode ConectarWebService(XmlNode cteDadosMsg, TRegistro_CfgFrota rCfgCte) { if (rCfgCte.St_ctecontingencia) { if (rCfgCte.Tp_ambiente.Trim().ToUpper().Equals("1")) //Producao { if (rCfgCte.Tp_ambientecont.Trim().ToUpper().Equals("SP")) //SVC-Sao Paulo { br.gov.sp.fazenda.nfe.SVCStatusServico.CteStatusServico cte = new CTe.br.gov.sp.fazenda.nfe.SVCStatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.sp.fazenda.nfe.SVCStatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else if (rCfgCte.Tp_ambientecont.Trim().ToUpper().Equals("RS"))//SVC-Rio Grande do Sul { br.gov.rs.sefaz.cte.StatusServico.CteStatusServico cte = new CTe.br.gov.rs.sefaz.cte.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.rs.sefaz.cte.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else { return(null); } } else//Homologacao { if (rCfgCte.Tp_ambientecont.Trim().ToUpper().Equals("SP"))//SVC-Sao Paulo { br.gov.sp.fazenda.nfe.homologacao.StatusServico.CteStatusServico cte = new CTe.br.gov.sp.fazenda.nfe.homologacao.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.sp.fazenda.nfe.homologacao.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else if (rCfgCte.Tp_ambientecont.Trim().ToUpper().Equals("RS"))//SVC-Rio Grande do Sul { br.gov.rs.sefaz.cte.homologacao.StatusServico.CteStatusServico cte = new CTe.br.gov.rs.sefaz.cte.homologacao.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.rs.sefaz.cte.homologacao.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else { return(null); } } } else { switch (rCfgCte.Cd_uf_empresa.Trim()) { case ("31"): //Minas Gerais { if (rCfgCte.Tp_ambiente.Trim().Equals("1")) //Producao { br.gov.mg.fazenda.cte.StatusServico.CteStatusServico cte = new CTe.br.gov.mg.fazenda.cte.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.mg.fazenda.cte.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else { return(null); } } case ("35"): //Sao Paulo { if (rCfgCte.Tp_ambiente.Trim().Equals("1")) //Producao { br.gov.sp.fazenda.nfe.SVCStatusServico.CteStatusServico cte = new CTe.br.gov.sp.fazenda.nfe.SVCStatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.sp.fazenda.nfe.SVCStatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else //Homologacao { br.gov.sp.fazenda.nfe.homologacao.StatusServico.CteStatusServico cte = new CTe.br.gov.sp.fazenda.nfe.homologacao.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.sp.fazenda.nfe.homologacao.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } } case ("41"): //Parana { if (rCfgCte.Tp_ambiente.Trim().Equals("1")) //Producao { br.gov.pr.fazenda.cte.Status.CteStatusServico cte = new CTe.br.gov.pr.fazenda.cte.Status.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.pr.fazenda.cte.Status.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else //Homologacao { br.gov.pr.fazenda.cte.homologacao.Status.CteStatusServico cte = new CTe.br.gov.pr.fazenda.cte.homologacao.Status.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.pr.fazenda.cte.homologacao.Status.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } } case ("43"): //Rio Grande do Sul { if (rCfgCte.Tp_ambiente.Trim().Equals("1")) //Producao { br.gov.rs.sefaz.cte.StatusServico.CteStatusServico cte = new CTe.br.gov.rs.sefaz.cte.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.rs.sefaz.cte.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else //Homologacao { br.gov.rs.sefaz.cte.homologacao.StatusServico.CteStatusServico cte = new CTe.br.gov.rs.sefaz.cte.homologacao.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.rs.sefaz.cte.homologacao.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } } case ("50"): //Mato Grosso do Sul { if (rCfgCte.Tp_ambiente.Trim().Equals("1")) //Producao { br.gov.ms.cte.producao.StatusServico.CteStatusServico cte = new CTe.br.gov.ms.cte.producao.StatusServico.CteStatusServico(); cte.cteCabecMsg = new CTe.br.gov.ms.cte.producao.StatusServico.CTeCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else { return(null); } } case ("51"): //Mato Grosso { if (rCfgCte.Tp_ambiente.Trim().Equals("1")) //Produto { br.gov.mt.sefaz.cte.StatusServico.CteStatusServico cte = new CTe.br.gov.mt.sefaz.cte.StatusServico.CteStatusServico(); cte.cteCabecMsgValue = new CTe.br.gov.mt.sefaz.cte.StatusServico.cteCabecMsg() { cUF = rCfgCte.Cd_uf_empresa, versaoDados = rCfgCte.Cd_versaolayout }; cte.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cte.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgCte.Nr_seriecertificado)); return(cte.cteStatusServicoCT(cteDadosMsg)); } else { return(null); } } default: return(null); } } }
public static void EnviarLoteCte(List <CamadaDados.Faturamento.CTRC.TRegistro_ConhecimentoFrete> lCte, TRegistro_CfgFrota rCfgCte) { if (lCte != null) { //Verificar status do servico junto a receita if (CTe.StatusServico.TStatusServico.StatusServico(rCfgCte, false).Trim() != "107") { if (CTe.StatusServico.TStatusServico.StatusServico(rCfgCte, true).Trim().Equals("107")) { rCfgCte.St_ctecontingencia = true; } else { throw new Exception("Serviço indisponivel no momento.\r\nAguarde alguns minutos e tente novamente."); } } CamadaDados.Faturamento.CTRC.TRegistro_LoteCTe lote = new CamadaDados.Faturamento.CTRC.TRegistro_LoteCTe(); try { lote.Cd_empresa = rCfgCte.Cd_empresa; lote.Tp_ambiente = rCfgCte.Tp_ambiente; lote.Tp_emissaocte = rCfgCte.St_ctecontingencia ? rCfgCte.Tp_ambientecont.Trim().ToUpper().Equals("RS") ? "7" : "8" : "1"; CamadaNegocio.Faturamento.CTRC.TCN_LoteCTe.Gravar(lote, null); CTe.GerarArq.TGerarArq.GerarArquivoXml(lCte, rCfgCte); StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); xml.Append("<enviCTe xmlns=\"http://www.portalfiscal.inf.br/cte\" versao=\"" + rCfgCte.Cd_versaolayout.Trim() + "\">"); xml.Append("<idLote>"); xml.Append(lote.Id_lotestr); xml.Append("</idLote>"); lCte.ForEach(p => { //Gravar lote x cte CamadaNegocio.Faturamento.CTRC.TCN_Lote_X_CTe.Gravar( new CamadaDados.Faturamento.CTRC.TRegistro_Lote_X_CTe() { Cd_empresa = p.Cd_empresa, Nr_lanctoctr = p.Nr_lanctoCTRC, Id_lote = lote.Id_lote }, null); xml.Append(p.Xml_cte); }); xml.Append("</enviCTe>"); //Validar arquivo lote Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgCte.Path_schemas.SeparadorDiretorio() + "enviCte_v" + rCfgCte.Cd_versaolayout.Trim() + ".xsd", "CTE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar Lote para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgCte); //Tratar retorno if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("103")) { //Lote recebido com sucesso //Gravar dados do lote no banco de dados lote.Status = decimal.Parse(retorno["cStat"].InnerText); lote.Ds_mensagem = retorno["xMotivo"].InnerText; if (retorno["infRec"].FirstChild != null) { try { lote.Dt_recebimento = DateTime.Parse(retorno["infRec"]["dhRecbto"].InnerText); } catch { } lote.Nr_recibo = Convert.ToDecimal(retorno["infRec"]["nRec"].InnerText); } CamadaNegocio.Faturamento.CTRC.TCN_LoteCTe.Gravar(lote, null); } else { lote.Status = decimal.Parse(retorno["cStat"].InnerText); lote.Ds_mensagem = retorno["xMotivo"].InnerText; CamadaNegocio.Faturamento.CTRC.TCN_LoteCTe.Gravar(lote, null); } } else { throw new Exception("Serviço Enviar CT-e indisponivel no momento."); } } catch (Exception ex) { CamadaNegocio.Faturamento.CTRC.TCN_Lote_X_CTe.Buscar(lote.Cd_empresa, lote.Id_lotestr, string.Empty, null).ForEach(p => CamadaNegocio.Faturamento.CTRC.TCN_Lote_X_CTe.Excluir(p, null)); CamadaNegocio.Faturamento.CTRC.TCN_LoteCTe.Excluir(lote, null); throw new Exception("Erro ao enviar Lote!" + ex.Message.Trim()); } } }