public static DataRowView BTN_BUSCA(string vnm_colunas, EditDefault[] EditResult, CamadaDados.TDataQuery vclasse, string vParamFixo) { return(BTN_BUSCA(vnm_colunas, EditResult, vclasse, vParamFixo, string.Empty)); }
private static string modo = "N"; //NORMAL OU LISTA public static void BTN_BUSCALISTA(string vnm_colunas, EditDefault edit, CamadaDados.TDataQuery vclasse, string vParamFixo) { modo = "L"; BTN_BUSCA(vnm_colunas, new EditDefault[] { edit }, vclasse, vParamFixo); modo = "N"; }
public static DataRow EDIT_LeaveCliforC(string vCond, EditDefault[] EditResult, CamadaDados.TDataQuery vClasse) { return(EDIT_LEAVE(vCond, EditResult, vClasse)); }
public static DataRow EDIT_LeaveClifor(string vCond, EditDefault[] EditResult, CamadaDados.TDataQuery vClasse) { if (!string.IsNullOrEmpty(vCond)) { vCond += ";isnull(a.st_registro, 'A')|<>|'C'"; } return(EDIT_LEAVE(vCond, EditResult, vClasse)); }
public static DataRow EDIT_LEAVEProduto(string vCond, EditDefault[] EditResult, CamadaDados.TDataQuery vClasse) { vCond += ";isnull(a.st_registro, 'A')|<>|'C'"; return(EDIT_LEAVE(vCond, EditResult, vClasse)); }
public static DataRow EDIT_LEAVE(string vnm_colunas , EditDefault[] EditResult , CamadaDados.TDataQuery vclasse) { if (EditResult != null && (EditResult.Length > 0)) { if (EditResult[0].Text.Trim() != "") { string[] vCampos = vnm_colunas.Split(new Char[] { ';' }); TpBusca[] vBusca = new TpBusca[vCampos.Length]; for (int i = 0; i < vCampos.Length; i++) { string[] vPropriedades = vCampos[i].Split(new Char[] { '|' }); vBusca[i].vNM_Campo = vPropriedades[0]; vBusca[i].vVL_Busca = vPropriedades[2]; vBusca[i].vOperador = vPropriedades[1]; } DataTable tabela = vclasse.Buscar(vBusca, 1); if (tabela != null) { if (tabela.Rows.Count > 0) { if (EditResult != null) { for (int i = 0; i < EditResult.Length; i++) { EditResult[i].Text = tabela.Rows[0][EditResult[i].NM_CampoBusca].ToString().Trim(); } } return(tabela.Rows[0]); } else { if (EditResult != null) { for (int i = 0; i < EditResult.Length; i++) { if (EditResult[i].Text.Trim() != "0") { EditResult[i].Text = string.Empty; } } } return(null); } } else { return(null); } } else { return(null); } } else { return(null); } }
public static DataRowView BTN_BUSCA(string vnm_colunas, EditDefault[] EditResult, CamadaDados.TDataQuery vclasse, string vParamFixo, string vParametroBusca) { TFBusca FBusca = new TFBusca(); try { DataSet ds_config = new DataSet(); try { string vPath = Parametros.pubPathConfig; if (!System.IO.Directory.Exists(vPath)) { vPath = Parametros.pubPathAliance.Trim() + System.IO.Path.DirectorySeparatorChar; } if (vPath.Trim().Substring(vPath.Trim().Length - 1, 1) != System.IO.Path.DirectorySeparatorChar.ToString()) { vPath += System.IO.Path.DirectorySeparatorChar.ToString(); } if (System.IO.File.Exists(vPath + "configBusca.xml")) { ds_config.ReadXml(vPath + "configBusca.xml", XmlReadMode.ReadSchema); if (EditResult != null) { object[] chave = new object[] { Parametros.pubLogin, EditResult[0].NM_CampoBusca }; DataRow linha = ds_config.Tables[0].Rows.Find(chave); if (linha != null) { FBusca.Location = new System.Drawing.Point(Convert.ToInt32(linha["localx"].ToString().Trim()), Convert.ToInt32(linha["localy"].ToString().Trim())); FBusca.Size = new System.Drawing.Size(Convert.ToInt32(linha["sizex"].ToString().Trim()), Convert.ToInt32(linha["sizey"].ToString().Trim())); FBusca.campoBusca = linha["buscarpor"].ToString().Trim(); FBusca.nLinhas.Value = Convert.ToDecimal(linha["nlinhas"].ToString().Trim()); } FBusca.login = Parametros.pubLogin; FBusca.campoChave = EditResult[0].NM_CampoBusca; FBusca.tb_configGrid = ds_config.Tables[1]; } } } catch { } string[] vCampos = vnm_colunas.Split(new Char[] { ';' }); FBusca.confBusca = new TpBusca[vCampos.Length]; for (int i = 0; i < vCampos.Length; i++) { string[] vPropriedades = vCampos[i].Split(new Char[] { '|' }); FBusca.confBusca[i].vNM_Campo = vPropriedades[0]; FBusca.confBusca[i].vNM_Caption = vPropriedades[1]; FBusca.confBusca[i].vWidth = Convert.ToInt16(vPropriedades[2]); FBusca.confBusca[i].vOperador = "like"; } if (!(vParamFixo == null)) { if (vParamFixo.Length > 0) { vCampos = vParamFixo.Split(new char[] { ';' }); FBusca.aParamBusca = new TpBusca[vCampos.Length]; for (int i = 0; i < vCampos.Length; i++) { string[] vParam = vCampos[i].Split(new char[] { '|' }); FBusca.aParamBusca[i].vNM_Campo = vParam[0]; FBusca.aParamBusca[i].vVL_Busca = vParam[2]; FBusca.aParamBusca[i].vOperador = vParam[1]; } } } FBusca.NM_DatClass = vclasse; FBusca.pParametroBusca = vParametroBusca; if (FBusca.ShowDialog() == DialogResult.OK) { if (modo == "N") { if (FBusca.gBusca.CurrentRow != null) { if (FBusca.gBusca.CurrentRow.Index > -1) { if (EditResult != null) { for (int i = 0; i < EditResult.Length; i++) { EditResult[i].Text = FBusca.gBusca["f" + EditResult[i].NM_CampoBusca, FBusca.gBusca.CurrentRow.Index].Value.ToString().Trim(); } } return(FBusca.bSource.Current as DataRowView); } else { return(null); } } else { return(null); } } else if (EditResult != null) { string t = string.Empty; string v = string.Empty; foreach (DataGridViewRow row in FBusca.gBusca.SelectedRows) { t += v + "'" + row.DataGridView["f" + EditResult[0].NM_CampoBusca, row.Index].Value.ToString().Trim() + "'"; v = ", "; } EditResult[0].Text = "(" + t + ")"; return(null); } else { return(null); } } else { return(null); } } finally { try { DataSet ds = new DataSet(); string vPath = Parametros.pubPathConfig; if (!System.IO.Directory.Exists(vPath)) { vPath = Parametros.pubPathAliance.Trim() + System.IO.Path.DirectorySeparatorChar; } if (vPath.Trim().Substring(vPath.Trim().Length - 1, 1) != System.IO.Path.DirectorySeparatorChar.ToString()) { vPath += System.IO.Path.DirectorySeparatorChar.ToString(); } if (System.IO.File.Exists(vPath + "configBusca.xml")) { ds.ReadXml(vPath + "configBusca.xml"); } else { DataTable dt_config = new DataTable("tb_config"); DataTable dt_configGrid = new DataTable("tb_configGrid"); ds.Tables.Add(dt_config); ds.Tables.Add(dt_configGrid); DataColumn vlogin = new DataColumn("login", Type.GetType("System.String")); DataColumn codigo = new DataColumn("codigo", Type.GetType("System.String")); DataColumn[] pk = new DataColumn[] { vlogin, codigo }; dt_config.Columns.Add(vlogin); dt_config.Columns.Add(codigo); dt_config.Columns.Add("localx", Type.GetType("System.Int32")); dt_config.Columns.Add("localy", Type.GetType("System.Int32")); dt_config.Columns.Add("sizex", Type.GetType("System.Int32")); dt_config.Columns.Add("sizey", Type.GetType("System.Int32")); dt_config.Columns.Add("buscarpor", Type.GetType("System.String")); dt_config.Columns.Add("nlinhas", Type.GetType("System.Decimal")); dt_config.PrimaryKey = pk; DataColumn nLogin = new DataColumn("login", Type.GetType("System.String")); DataColumn nCodigo = new DataColumn("codigo", Type.GetType("System.String")); DataColumn nm_coluna = new DataColumn("nm_coluna", Type.GetType("System.String")); DataColumn[] npk = new DataColumn[] { nLogin, nCodigo, nm_coluna }; dt_configGrid.Columns.Add(nLogin); dt_configGrid.Columns.Add(nCodigo); dt_configGrid.Columns.Add(nm_coluna); dt_configGrid.PrimaryKey = npk; dt_configGrid.Columns.Add("index", Type.GetType("System.Int32")); dt_configGrid.Columns.Add("tamanho", Type.GetType("System.Int32")); } DataRow linha = linha = ds.Tables[0].NewRow(); linha["login"] = Parametros.pubLogin; linha["codigo"] = EditResult != null ? EditResult[0].NM_CampoBusca : string.Empty; linha["localx"] = FBusca.Location.X; linha["localy"] = FBusca.Location.Y; linha["sizex"] = FBusca.Size.Width; linha["sizey"] = FBusca.Size.Height; linha["buscarpor"] = FBusca.cbCampos.Text; linha["nlinhas"] = FBusca.nLinhas.Value; object[] chave = new object[] { Parametros.pubLogin, (EditResult != null ? EditResult[0].NM_CampoBusca : string.Empty) }; if (ds.Tables[0].Rows.Contains(chave)) { ds.Tables[0].Rows.Remove(ds.Tables[0].Rows.Find(chave)); } ds.Tables[0].Rows.Add(linha); int cont = FBusca.gBusca.Columns.Count; for (int i = 0; i < cont; i++) { linha = ds.Tables[1].NewRow(); linha["login"] = Parametros.pubLogin; linha["codigo"] = EditResult != null ? EditResult[0].NM_CampoBusca.Trim() : string.Empty; linha["nm_coluna"] = FBusca.gBusca.Columns[i].Name.Trim(); linha["index"] = FBusca.gBusca.Columns[i].DisplayIndex; linha["tamanho"] = FBusca.gBusca.Columns[i].Width; object[] nChave = new object[] { Parametros.pubLogin, (EditResult != null ? EditResult[0].NM_CampoBusca.Trim() : string.Empty), FBusca.gBusca.Columns[i].Name.Trim() }; if (ds.Tables[1].Rows.Contains(nChave)) { ds.Tables[1].Rows.Remove(ds.Tables[1].Rows.Find(nChave)); } ds.Tables[1].Rows.Add(linha); } ds.WriteXml(vPath + "configBusca.xml", XmlWriteMode.WriteSchema); } catch { } FBusca.Dispose(); } }
public static bool GerarXMLLMC(TRegistro_LMC val, TRegistro_CfgNfe rCfgNfe, ref string Msg) { bool ret = false; val.Chaveacesso = CamadaNegocio.PostoCombustivel.TCN_LMC.GerarChaveLMC(val); //Validar certificado srvNFE.ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(rCfgNfe); StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?> "); #region autorizacao xml.Append("<autorizacao xmlns=\"http://www.fazenda.pr.gov.br/sefaws\">"); #region LivroCombustivel xml.Append("<livroCombustivel xmlns=\"http://www.fazenda.pr.gov.br/sefaws\">"); #region infLivroCombustivel xml.Append("<infLivroCombustivel versao=\"" + rCfgNfe.Cd_versaoLMC.Trim() + "\" Id=\"LMC" + val.Chaveacesso.Trim() + "\">"); #region Ambiente xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente_lmc); xml.Append("</tpAmb>"); #endregion #region Codigo LMC xml.Append("<cNumerico>"); xml.Append(val.Id_lmcstr.FormatStringEsquerda(5, '0')); xml.Append("</cNumerico>"); #endregion #region Codigo Digito Verificador Chave Acesso xml.Append("<cDV>"); xml.Append(val.Chaveacesso.Substring(val.Chaveacesso.Length - 1, 1)); xml.Append("</cDV>"); #endregion #region Emitente LMC xml.Append("<emit>"); #region Insc. Estadual xml.Append("<IE>"); xml.Append(val.IE_empresa.SoNumero()); xml.Append("</IE>"); #endregion #region CNPJ xml.Append("<CNPJ>"); xml.Append(val.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>"); #endregion #region Nome Emitente xml.Append("<xNome>"); xml.Append(val.Nm_empresa.Trim().SubstCaracteresEsp()); xml.Append("</xNome>"); #endregion xml.Append("</emit>"); #endregion #region Movimento xml.Append("<movimento dEmissao=\"" + val.Dt_emissao.Value.ToString("yyyy-MM-dd") + "\">"); #region infMovimento CamadaNegocio.PostoCombustivel.TCN_MovLMC.Buscar(val.Cd_empresa, val.Id_lmcstr, string.Empty, null).ForEach(p => { xml.Append("<infMovimento nrProduto=\"" + p.Tp_combustivel + "\">"); //Volume Abertura xml.Append("<volEstoqueAbertura>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", p.Volumeabertura)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volEstoqueAbertura>"); #region volumeRecebido p.lRec = CamadaNegocio.PostoCombustivel.TCN_MovRec.Buscar(p.Cd_empresa, p.Id_lmcstr, p.Id_movtostr, null); if (p.lRec.Count > 0) { p.lRec.ForEach(v => { xml.Append("<volumeRecebido>"); //CNPJ xml.Append("<CNPJ>"); xml.Append(v.Cnpj_fornecedor.SoNumero()); xml.Append("</CNPJ>"); //Nota Fiscal xml.Append("<nNF>"); xml.Append(v.Nr_notafiscalstr); xml.Append("</nNF>"); //Data Nota xml.Append("<dNF>"); xml.Append(v.Dt_saient.Value.ToString("yyyy-MM-dd")); xml.Append("</dNF>"); //Volume Recebido xml.Append("<volVolume>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.VolumeRecebido)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volVolume>"); //Tanque xml.Append("<xTanque>"); xml.Append(v.Id_tanquestr); xml.Append("</xTanque>"); xml.Append("</volumeRecebido>"); }); } #endregion #region volumeVendido p.lVend = CamadaNegocio.PostoCombustivel.TCN_MovVend.Buscar(p.Cd_empresa, p.Id_lmcstr, p.Id_movtostr, null); if (p.lVend.Count > 0) { p.lVend.ForEach(v => { xml.Append("<volumeVendido>"); //Tanque xml.Append("<xTanque>"); xml.Append(v.Id_tanquestr); xml.Append("</xTanque>"); //Bico xml.Append("<nrBico>"); xml.Append(v.Ds_labelbico); xml.Append("</nrBico>"); //Fechamento xml.Append("<volFechamento>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.Volfechamento)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volFechamento>"); //Abertura xml.Append("<volAbertura>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.Volabertura)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volAbertura>"); //Afericoes xml.Append("<volAfericoes>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.Volafericao)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volAfericoes>"); xml.Append("</volumeVendido>"); }); } #endregion //Estoque Fechamento xml.Append("<volEstoqueFechamento>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", p.Volumefechamento)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volEstoqueFechamento>"); //Valor Vendas Dia xml.Append("<valVendasDiaBomba>"); xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.Vl_vendasdia)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</valVendasDiaBomba>"); //Vendas Acumuladas Mes xml.Append("<valAcumuladoMes>"); xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.Vl_vendasdia)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</valAcumuladoMes>"); //Observacoes xml.Append("<observacoes>"); xml.Append(p.Obs.Trim().SubstCaracteresEsp()); xml.Append("</observacoes>"); xml.Append("</infMovimento>"); }); #endregion xml.Append("</movimento>"); #endregion xml.Append("</infLivroCombustivel>"); #endregion xml.Append("</livroCombustivel>"); #endregion xml.Append("</autorizacao>"); #endregion //Assinar documento XML string xmlassinado = new Utils.Assinatura.TAssinatura2(rCfgNfe.Nr_certificado_nfe, Utils.Assinatura.TAssinatura2.TTpArq.tpLMCe, xml.ToString()).Assinar(); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado, rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "autorizacao_v" + rCfgNfe.Cd_versaoLMC.Trim() + ".xsd", "LMC"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar arquivo para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlassinado); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); if (retorno != null) { if (retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText.Trim().Equals("100") || retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText.Trim().Equals("101") || retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText.Trim().Equals("1001")) { try { CamadaDados.TDataQuery query = new CamadaDados.TDataQuery(); System.Collections.Hashtable hs = new System.Collections.Hashtable(); hs.Add("@P_CHAVE", val.Chaveacesso); hs.Add("@P_RECEBIMENTO", DateTime.Parse(retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["dhRecbto"].InnerText)); hs.Add("@P_STATUS", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText); hs.Add("@P_XMOTIVO", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText); hs.Add("@P_NPROT", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["nProt"].InnerText); hs.Add("@P_DIGVAL", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["digVal"].InnerText); hs.Add("@P_XML", xmlassinado); hs.Add("@P_EMPRESA", val.Cd_empresa); hs.Add("@P_LMC", val.Id_lmc); query.executarSql("update tb_pdc_lmc set " + "chaveacesso = @P_CHAVE, " + "dt_recebimento = @P_RECEBIMENTO, " + "status = @P_STATUS, " + "xMotivo = @P_XMOTIVO, " + "nProt = @P_NPROT, " + "digVal = @P_DIGVAL, " + "xml_lmc = @P_XML, " + "dt_alt = getdate() " + "where cd_empresa = @P_EMPRESA and id_lmc = @P_LMC", hs); ret = true; Msg = retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText; } catch (Exception ex) { throw new Exception("Erro gravar chave acesso LMC-e: " + ex.Message.Trim()); } } else { try { CamadaDados.TDataQuery query = new CamadaDados.TDataQuery(); System.Collections.Hashtable hs = new System.Collections.Hashtable(); hs.Add("@P_STATUS", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText); hs.Add("@P_XMOTIVO", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText); hs.Add("@P_EMPRESA", val.Cd_empresa); hs.Add("@P_LMC", val.Id_lmc); query.executarSql("update tb_pdc_lmc set " + "status = @P_STATUS, " + "xMotivo = @P_XMOTIVO, " + "dt_alt = getdate() " + "where cd_empresa = @P_EMPRESA and id_lmc = @P_LMC", hs); } catch (Exception ex) { throw new Exception("Erro gravar chave acesso LMC-e: " + ex.Message.Trim()); } Msg = retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText; } } return(ret); }
public static bool EnviarLote(decimal?Id_lote, List <CamadaDados.Faturamento.PDV.TRegistro_NFCe> lNFCe) { bool ret = false; if (lNFCe.Count > 0) { //Validar Certificado srvNFE.ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(lNFCe[0].rCfgNFCe); //Verificar status do servico junto a receita if (ConsultaStatusServico.TConsultaStatusServico.StatusServico(lNFCe[0].rCfgNFCe).Trim() != "107") { throw new Exception("Serviço indisponivel no momento.\r\nAguarde alguns minutos e tente novamente."); } GerarXML.TGerarXML.GerarXML(lNFCe); StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); #region enviNFe xml.Append("<enviNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + lNFCe[0].rCfgNFCe.Cd_versaonfce.Trim() + "\">\n"); if (!Id_lote.HasValue) { Id_lote = GerarIdLote(null, null, null, decimal.Zero, "A", null, string.Empty, lNFCe[0].rCfgNFCe); } if (!Id_lote.HasValue) { throw new Exception("Erro gerar Id. do lote"); } #region "idLote" xml.Append("<idLote>"); xml.Append(Id_lote.ToString().PadLeft(15, '0')); xml.Append("</idLote>\n"); #endregion #region indSinc xml.Append("<indSinc>"); xml.Append(lNFCe.Count > 1 ? "0" : "1"); xml.Append("</indSinc>"); #endregion lNFCe.ForEach(p => { XmlDocument documento = new XmlDocument(); documento.LoadXml(p.XmlNFCe); //Gravar lote x nota fiscal GravarLoteXNFCe(Id_lote.Value, p, null, decimal.Zero, string.Empty, decimal.Zero, string.Empty, string.Empty); xml.Append(p.XmlNFCe + "\n"); }); xml.Append("</enviNFe>\n"); #endregion //Validar Arquivo Lote Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), lNFCe[0].rCfgNFCe.Path_nfe_schemas.SeparadorDiretorio() + "enviNFe_v" + lNFCe[0].rCfgNFCe.Cd_versaonfce.Trim() + ".xsd", "NFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } try { //Enviar Lote para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); XmlNode retorno = ConectarWebService(doc.DocumentElement, lNFCe[0].rCfgNFCe); //Tratar retorno if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("103") || retorno["cStat"].InnerText.Trim().Equals("104")) { //Lote recebido com sucesso //Gravar dados do lote no banco de dados decimal? nRec = null; DateTime?dhRecbto = null; decimal? tMed = null; try { dhRecbto = Convert.ToDateTime(retorno["dhRecbto"].InnerText); } catch { } if (retorno.InnerXml.Contains("infRec")) { nRec = Convert.ToDecimal(retorno["infRec"]["nRec"].InnerText); tMed = Convert.ToDecimal(retorno["infRec"]["tMed"].InnerText); } else if (retorno.InnerXml.Contains("protNFe")) { DateTime?dt_rec = null; try { dt_rec = Convert.ToDateTime(retorno["protNFe"]["infProt"]["dhRecbto"].InnerText); lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)).Dt_processamento = dt_rec; } catch { } decimal nprot = decimal.Zero; try { nprot = Convert.ToDecimal(retorno["protNFe"]["infProt"]["nProt"].InnerText); lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)).Nr_protocolo = nprot; } catch { } decimal status = decimal.Zero; try { status = Convert.ToDecimal(retorno["protNFe"]["infProt"]["cStat"].InnerText); if (status.Equals(100)) { lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)).Digval = retorno["protNFe"]["infProt"]["digVal"].InnerText; } } catch { } GravarLoteXNFCe(Id_lote.Value, lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)), dt_rec, nprot, (status.Equals(100) ? retorno["protNFe"]["infProt"]["digVal"].InnerText : string.Empty), status, retorno["protNFe"]["infProt"]["xMotivo"].InnerText, retorno["protNFe"]["infProt"]["verAplic"].InnerText); if (lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)).Id_contingencia.HasValue&& lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)).St_registro.Trim().ToUpper().Equals("C")) { try { //Buscar evento de cancelamento CamadaDados.Faturamento.PDV.TList_EventoNFCe lEvento = CamadaNegocio.Faturamento.PDV.TCN_EventoNFCe.Buscar(lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)).Cd_empresa, lNFCe.Find(p => p.Chave_acesso.Trim().Equals(retorno["protNFe"]["infProt"]["chNFe"].InnerText)).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; NFCe.EventoNFCe.TEventoNFCe.EnviarEvento(lEvento[0], lNFCe[0].rCfgNFCe); } } } catch { } } ret = true; } GerarIdLote(Id_lote, nRec, dhRecbto, tMed, ret ? "P" : "E", Convert.ToDecimal(retorno["cStat"].InnerText), retorno["xMotivo"].InnerText, lNFCe[0].rCfgNFCe); //Gravar xml e chave acesso no banco lNFCe.ForEach(p => { CamadaDados.TDataQuery query = new CamadaDados.TDataQuery(); System.Collections.Hashtable hs = new System.Collections.Hashtable(3); hs.Add("@CHAVE", p.Chave_acesso); hs.Add("@CD_EMPRESA", p.Cd_empresa); hs.Add("@ID_NFCE", p.Id_nfce); query.executarSql("update tb_pdv_nfce set chave_acesso = @CHAVE, dt_alt = getdate() " + "where cd_empresa = @CD_EMPRESA and id_nfce = @ID_NFCE", hs); new CamadaDados.Faturamento.PDV.TCD_XML_NFCe() .Gravar(new CamadaDados.Faturamento.PDV.TRegistro_XML_NFCe { Cd_empresa = p.Cd_empresa, Id_nfce = p.Id_nfce, Xml_nfce = p.XmlNFCe }); }); } else { //Erro no envio do lote //Gravar mensagem de erro de envio do lote GerarIdLote(Id_lote, null, null, null, "A", Convert.ToDecimal(retorno["cStat"].InnerText), retorno["xMotivo"].InnerText, lNFCe[0].rCfgNFCe); } } else { throw new Exception("Serviço Enviar NFC-e indisponivel no momento."); } } catch (Exception ex) { DeletarNFCeLotesProblemas(lNFCe[0].rCfgNFCe); DeletarLotesProblemas(lNFCe[0].rCfgNFCe); throw new Exception(ex.Message.Trim()); } } return(ret); }