public static string Gravar(TRegistro_ConsultaDest val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ConsultaDest qtb_con = new TCD_ConsultaDest(); try { if (banco == null) { st_transacao = qtb_con.CriarBanco_Dados(true); } else { qtb_con.Banco_Dados = banco; } val.Id_consultastr = CamadaDados.TDataQuery.getPubVariavel(qtb_con.Gravar(val), "@P_ID_CONSULTA"); if (st_transacao) { qtb_con.Banco_Dados.Commit_Tran(); } return(val.Id_consultastr); } catch (Exception ex) { if (st_transacao) { qtb_con.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar consulta: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_con.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_ConsultaDest val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ConsultaDest qtb_con = new TCD_ConsultaDest(); try { if (banco == null) { st_transacao = qtb_con.CriarBanco_Dados(true); } else { qtb_con.Banco_Dados = banco; } qtb_con.Excluir(val); if (st_transacao) { qtb_con.Banco_Dados.Commit_Tran(); } return(val.Id_consultastr); } catch (Exception ex) { if (st_transacao) { qtb_con.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir consulta: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_con.deletarBanco_Dados(); } } }
public static TList_ConsultaDest DistribuicaoDFe(TRegistro_CfgNfe rCfgNfe, TRegistro_CadEmpresa rEmp, string NSU, string UltimoNSU, string ChaveAcesso) { StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<distDFeInt xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.01\">\n"); //Ambiente xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>\n"); //UF Autor xml.Append("<cUFAutor>"); xml.Append(rEmp.rEndereco.Cd_uf); xml.Append("</cUFAutor>\n"); //CNPJ Destinatario xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>\n"); if (!string.IsNullOrEmpty(NSU)) { xml.Append("<consNSU>\n"); xml.Append("<NSU>" + NSU.Trim() + "</NSU>\n"); xml.Append("</consNSU>\n"); } else if (!string.IsNullOrEmpty(ChaveAcesso) && ChaveAcesso.Trim().Length.Equals(44)) { xml.Append("<consChNFe>\n"); xml.Append("<chNFe>" + ChaveAcesso.Trim() + "</chNFe>\n"); xml.Append("</consChNFe>\n"); } else { xml.Append("<distNSU>\n"); xml.Append("<ultNSU>" + (string.IsNullOrEmpty(UltimoNSU) ? "000000000000000": UltimoNSU.FormatStringEsquerda(15, '0')) + "</ultNSU>\n"); xml.Append("</distNSU>\n"); } xml.Append("</distDFeInt>\n"); //Validar schema xml Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "distDFeInt_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd", "MDFE"); 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 != null) { //para abrir o arquivo para o usuario if (retorno["cStat"].InnerText.Trim().Equals("138")) { TList_ConsultaDest lRet = new TList_ConsultaDest(); foreach (XmlNode n in retorno["loteDistDFeInt"].ChildNodes) { TRegistro_ConsultaDest registro = new TRegistro_ConsultaDest(); registro.Cd_empresa = rEmp.Cd_empresa; registro.Loginconsulta = Parametros.pubLogin; registro.Dt_consulta = DateTime.Now; registro.Nsu = decimal.Parse(n.Attributes.GetNamedItem("NSU").InnerText); if (!string.IsNullOrWhiteSpace(ChaveAcesso)) { registro.St_nfe = "1"; } XmlDocument d = new XmlDocument(); d.LoadXml(Compact_Data.Descompactar(Convert.FromBase64String(n.InnerText))); if (d.GetElementsByTagName("chNFe").Count > 0) { registro.chave_acesso = d.GetElementsByTagName("chNFe")[0].InnerText; } if (d.GetElementsByTagName("CNPJ").Count > 0) { registro.Cnpj_emitente = d.GetElementsByTagName("CNPJ")[0].InnerText; } if (d.GetElementsByTagName("xNome").Count > 0) { registro.Nm_emitente = d.GetElementsByTagName("xNome")[0].InnerText; } if (d.GetElementsByTagName("IE").Count > 0) { registro.Insc_Emitente = d.GetElementsByTagName("IE")[0].InnerText; } if (d.GetElementsByTagName("dhEmi").Count > 0) { registro.Dt_eminfe = DateTime.Parse(d.GetElementsByTagName("dhEmi")[0].InnerText); } if (d.GetElementsByTagName("tpNF").Count > 0) { registro.Tp_movimento = d.GetElementsByTagName("tpNF")[0].InnerText; } if (d.GetElementsByTagName("vNF").Count > 0) { registro.Vl_nfe = decimal.Parse(d.GetElementsByTagName("vNF")[0].InnerText, new System.Globalization.CultureInfo("en-US")); } if (d.GetElementsByTagName("digVal").Count > 0) { registro.digVal = d.GetElementsByTagName("digVal")[0].InnerText; } if (d.GetElementsByTagName("dhRecbto").Count > 0) { registro.Dh_recbto = DateTime.Parse(d.GetElementsByTagName("dhRecbto")[0].InnerText); } if (d.GetElementsByTagName("nProt").Count > 0) { registro.nProt = decimal.Parse(d.GetElementsByTagName("nProt")[0].InnerText); } if (d.GetElementsByTagName("cSitNFe").Count > 0) { registro.St_nfe = d.GetElementsByTagName("cSitNFe")[0].InnerText; } lRet.Add(registro); } return(lRet); } else { throw new Exception(retorno["xMotivo"].InnerText); } } else { throw new Exception("Erro executar WebService."); } }