private string Grabar(string sMotivo, string sBD, string sAccSuper, string sAccIAP, string sAccPST, string sAccPGE, string sAccADP) { string sResul = ""; SqlConnection oConn = null; SqlTransaction tr; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { Session["OCULTAR_AUDITORIA"] = sBD; ACCESOAPLI.Update(tr, byte.Parse(ConfigurationManager.AppSettings["CODIGO_APLICACION"]), "", (sAccSuper == "1") ? true : false, sMotivo, null, null, (sBD == "1") ? true : false); ACCESOMODULO.Update(tr, "IAP", (sAccIAP == "1") ? true : false); ACCESOMODULO.Update(tr, "PST", (sAccPST == "1") ? true : false); ACCESOMODULO.Update(tr, "PGE", (sAccPGE == "1") ? true : false); ACCESOMODULO.Update(tr, "ADP", (sAccADP == "1") ? true : false); Conexion.CommitTransaccion(tr); HttpContext.Current.Cache.Remove("ModuloAccesible"); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); if (Errores.EsErrorIntegridad(ex)) { sResul = "Error@#@Operación rechazada.\n\n" + Errores.mostrarError("Error al grabar los valores", ex, false); //ex.Message; } else { sResul = "Error@#@" + Errores.mostrarError("Error al grabar los valores", ex, false); } } finally { Conexion.Cerrar(oConn); } return(sResul); }
private void ObtenerDatos() { bool bCorreoActivado = ACCESOAPLI.CorreoActivado(null, 14); if (bCorreoActivado) { this.hdnEstadoCorreo.Value = "A"; } else { this.hdnEstadoCorreo.Value = "D"; } }
protected string Grabar(string sEstado) { string sResul = ""; bool bEstadoCorreo = false; #region conexion try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { if (sEstado == "A") { bEstadoCorreo = true; } ACCESOAPLI.SetEstadoCorreo(tr, 14, bEstadoCorreo); Conexion.CommitTransaccion(tr); sResul = "OK@#@" + sEstado; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar.", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsCallback) { Master.bFuncionesLocales = true; Master.sbotonesOpcionOn = "4"; Master.sbotonesOpcionOff = "4"; Master.TituloPagina = "Mantenimiento de datos del acceso a la Aplicación/Módulos"; try { oACCESOAPLI = ACCESOAPLI.Select(null, byte.Parse(ConfigurationManager.AppSettings["CODIGO_APLICACION"])); if (oACCESOAPLI.T000_ESTADO == false) { this.candSUPER.Src = "../../../Images/icoCerradoG.gif"; } else { this.candSUPER.Src = "../../../Images/icoAbiertoG.gif"; } this.txtMotivo.Text = oACCESOAPLI.T000_MOTIVO; if (oACCESOAPLI.t000_bbdd) { this.chkAudit.Checked = true; } else { this.chkAudit.Checked = false; } //if (SUPER.Capa_Negocio.Utilidades.EsSuperAdminProduccion()) //{ // this.lblAudit.Style. // this.chkAudit.Visible = true; //} //else //{ // this.lblAudit.Visible = false; // this.chkAudit.Visible = false; //} SqlDataReader dr = ACCESOMODULO.Catalogo("", null, 1, 0); while (dr.Read()) { switch (dr["t434_modulo"].ToString()) { case ("IAP"): if ((bool)dr["t434_acceso"]) { this.candIAP.Src = "../../../Images/icoAbiertoG.gif"; } else { this.candIAP.Src = "../../../Images/icoCerradoG.gif"; } break; case ("PST"): if ((bool)dr["t434_acceso"]) { this.candPST.Src = "../../../Images/icoAbiertoG.gif"; } else { this.candPST.Src = "../../../Images/icoCerradoG.gif"; } break; case ("PGE"): if ((bool)dr["t434_acceso"]) { this.candPGE.Src = "../../../Images/icoAbiertoG.gif"; } else { this.candPGE.Src = "../../../Images/icoCerradoG.gif"; } break; case ("ADP"): if ((bool)dr["t434_acceso"]) { this.candADP.Src = "../../../Images/icoAbiertoG.gif"; } else { this.candADP.Src = "../../../Images/icoCerradoG.gif"; } break; } } dr.Close(); dr.Dispose(); } catch (Exception ex) { Master.sErrores = Errores.mostrarError("Error al obtener los datos", ex); } //1º Se indican (por este orden) la función a la que se va a devolver el resultado // y la función que va a acceder al servidor string cbRespuesta = Page.ClientScript.GetCallbackEventReference(this, "arg", "RespuestaCallBack", "context", false); string cbLlamada = "function RealizarCallBack(arg, context)" + "{" + cbRespuesta + ";" + "}"; //2º Se "registra" la función que va a acceder al servidor. Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RealizarCallBack", cbLlamada, true); } }
private string Procesar(string sPorDeadLockTimeout, string strDatos) { string sResul = ""; int nUsuario = 0, nNodoOrigen = 0, nNodoDestino = 0, nAnomesValor = 0; DataSet dsCB211 = null, dsCB212 = null, dsCB213 = null, dsCB223 = null, dsCB232 = null, dsCB24 = null; //dsConsumosBorrados aListCorreo = new ArrayList(); bool bErrorDeadLockTimeout = false; try { string[] aDatos = Regex.Split(strDatos, "///"); bool bEstadoCorreo = ACCESOAPLI.CorreoActivado(null, 14); CAMBIOESTRUCTURAUSUARIO_AUX.DeleteMyAll(null, (int)Session["IDFICEPI_ENTRADA"]); #region Aparca en tabla auxiliar los datos a procesar foreach (string oUsuario in aDatos) { if (oUsuario == "") { continue; } string[] aUsuario = Regex.Split(oUsuario, "##"); ///aUsuario[0] = idUsuario ///aUsuario[1] = idNodo_origen ///aUsuario[2] = idNodo_destino ///aUsuario[3] = Mes valor ///aUsuario[4] = procesado ///aUsuario[5] = codigo_excepcion bool?bProcesado = null; if (aUsuario[4] != "") { bProcesado = (aUsuario[4] == "1") ? true : false; } CAMBIOESTRUCTURAUSUARIO_AUX.Insertar(null, int.Parse(aUsuario[0]), (aUsuario[2] == "")? null: (int?)int.Parse(aUsuario[2]), int.Parse(aUsuario[3]), bProcesado, (int)Session["IDFICEPI_ENTRADA"]); } #endregion #region Procesa los datos foreach (string oUsuario in aDatos) { #region Grabación de cada usuario try { if (oUsuario == "") { continue; } string[] aUsuario = Regex.Split(oUsuario, "##"); ///aUsuario[0] = idUsuario ///aUsuario[1] = idNodo_origen ///aUsuario[2] = idNodo_destino ///aUsuario[3] = Mes valor ///aUsuario[4] = procesado //1->verde, 0->rojo, ""->no procesado anteriormente ///aUsuario[5] = codigo_excepcion nUsuario = int.Parse(aUsuario[0]); nNodoOrigen = int.Parse(aUsuario[1]); nNodoDestino = int.Parse(aUsuario[2]); nAnomesValor = int.Parse(aUsuario[3]); //bProcesado = false; if (aUsuario[4] == "1" || aUsuario[1] == aUsuario[2]) { CAMBIOESTRUCTURAUSUARIO_AUX.Modificar(null, nUsuario, nNodoDestino, nAnomesValor, true, "", (int)Session["IDFICEPI_ENTRADA"], null); continue; } if (sPorDeadLockTimeout == "1" && aUsuario[4] == "0" && aUsuario[5] != "1505" && aUsuario[5] != "-2") { continue; } #region Abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion if (CAMBIOESTRUCTURAUSUARIO.HayConsumosMesesAbiertos(tr, nUsuario, nNodoOrigen, nAnomesValor)) { CAMBIOESTRUCTURAUSUARIO_AUX.Modificar(tr, nUsuario, nNodoDestino, nAnomesValor, false, "Existen consumos en meses abiertos anteriores al mes valor.", (int)Session["IDFICEPI_ENTRADA"], null); Conexion.CommitTransaccion(tr); continue; } USUARIO.UpdateNodo(tr, nUsuario, nNodoDestino, nAnomesValor); dsCB211 = CAMBIOESTRUCTURAUSUARIO.Caso_2_1_1(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); dsCB212 = CAMBIOESTRUCTURAUSUARIO.Caso_2_1_2(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); dsCB213 = CAMBIOESTRUCTURAUSUARIO.Caso_2_1_3(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); CAMBIOESTRUCTURAUSUARIO.Caso_2_2_1(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); CAMBIOESTRUCTURAUSUARIO.Caso_2_2_2(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); dsCB223 = CAMBIOESTRUCTURAUSUARIO.Caso_2_2_3(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); CAMBIOESTRUCTURAUSUARIO.Caso_2_3_1(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); dsCB232 = CAMBIOESTRUCTURAUSUARIO.Caso_2_3_2(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); dsCB24 = CAMBIOESTRUCTURAUSUARIO.Caso_2_4(tr, nUsuario, nNodoOrigen, nNodoDestino, nAnomesValor); CAMBIOESTRUCTURAUSUARIO.Caso_2_5(tr, nUsuario, nNodoOrigen); CAMBIOESTRUCTURAUSUARIO.Caso_2_6(tr, nUsuario, nNodoOrigen); CAMBIOESTRUCTURAUSUARIO.Caso_2_7(tr, nUsuario, nAnomesValor); //update proceso OK CAMBIOESTRUCTURAUSUARIO_AUX.Modificar(tr, nUsuario, nNodoDestino, nAnomesValor, true, "", (int)Session["IDFICEPI_ENTRADA"], null); Conexion.CommitTransaccion(tr); if (bEstadoCorreo) { GenerarCorreoConsumosBorrados(dsCB211); } dsCB211.Dispose(); if (bEstadoCorreo) { GenerarCorreoConsumosBorrados(dsCB212); } dsCB212.Dispose(); if (bEstadoCorreo) { GenerarCorreoConsumosBorrados(dsCB213); } dsCB213.Dispose(); if (bEstadoCorreo) { GenerarCorreoConsumosBorrados(dsCB223); } dsCB223.Dispose(); if (bEstadoCorreo) { GenerarCorreoConsumosBorrados(dsCB232); } if (bEstadoCorreo) { GenerarCorreoProduccionProfesionalBorrada(dsCB232); } dsCB223.Dispose(); if (bEstadoCorreo) { GenerarCorreoConsumosBorrados(dsCB24); } dsCB24.Dispose(); if (aListCorreo.Count > 0) { Correo.EnviarCorreos(aListCorreo); aListCorreo.Clear(); //hay que borrar los elementos enviados, porque la lista se utiliza para el siguiente usuario. } } catch (Exception ex) { Conexion.CerrarTransaccion(tr); dsCB211 = null; dsCB212 = null; dsCB213 = null; dsCB223 = null; dsCB24 = null; //update proceso KO int?nError = null; if (ex.GetType().ToString() == "System.Data.SqlClient.SqlException") { nError = ((System.Data.SqlClient.SqlException)ex).Number; if (nError == 1505 || nError == -2) //DeadLock o Timeout { bErrorDeadLockTimeout = true; } } CAMBIOESTRUCTURAUSUARIO_AUX.Modificar(null, nUsuario, nNodoDestino, nAnomesValor, false, ex.Message, (int)Session["IDFICEPI_ENTRADA"], nError); if (bErrorDeadLockTimeout) { sResul = "OK@#@"; } else { sResul = "Error@#@" + Errores.mostrarError("Error al realizar el cambio de estructura de usuario.", ex); } if (ex.Message.IndexOf("servicio de mensajería") != -1) //Si se ha producido un error a la hora de enviar algún correo de consumos borrados. { aListCorreo.Clear(); //hay que borrar los elementos enviados, porque la lista se utiliza para el siguiente usuario. } } finally { Conexion.Cerrar(oConn); } #endregion } #endregion #region Recupera de la tabla auxiliar los datos procesados StringBuilder sb = new StringBuilder(); SqlDataReader dr = CAMBIOESTRUCTURAUSUARIO_AUX.CatalogoDestino(null, (int)Session["IDFICEPI_ENTRADA"]); sb.Append("<table id='tblDatos2' class='texto MM' style='width: 560px;'>"); sb.Append("<colgroup><col style='width:20px;' /><col style='width:240px;' /><col style='width:180px;' /><col style='width:100px; text-align:center;' /><col style='width:20px;' /></colgroup>"); sb.Append("<tbody>"); while (dr.Read()) { sb.Append("<tr id='" + dr["t314_idusuario"].ToString() + "' "); sb.Append("baja='" + dr["baja"].ToString() + "' "); sb.Append("sexo='" + dr["t001_sexo"].ToString() + "' "); sb.Append("nodo_origen='" + dr["t303_idnodo_origen"].ToString() + "' "); sb.Append("nodo_destino='" + dr["t303_idnodo_destino"].ToString() + "' "); if (dr["t776_procesado"].ToString() == "") { sb.Append("procesado='' "); } else if ((bool)dr["t776_procesado"]) { sb.Append("procesado='1' "); } else { sb.Append("procesado='0' "); } sb.Append("excepcion=\"" + Utilidades.escape(dr["t776_excepcion"].ToString()) + "\" "); sb.Append("codigo_excepcion='" + dr["t776_codigoexcepcion"].ToString() + "' "); sb.Append("onclick='mm(event)' onmousedown='DD(event)' "); sb.Append("style='height:20px' >"); sb.Append("<td></td>"); //sb.Append("<td><nobr class='NBR W220' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:60px;'>Usuario:</label>" + int.Parse(dr["t314_idusuario"].ToString()).ToString("#,###") + " - " + dr["Profesional"].ToString().Replace((char)34, (char)39) + "<br><label style='width:60px;'>Empresa:</label>" + dr["t313_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + dr["Profesional"].ToString() + "</nobr></td>"); sb.Append("<td style='padding-left:3px;'><nobr class='NBR W220' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:60px;'>Usuario:</label>" + int.Parse(dr["t314_idusuario"].ToString()).ToString("#,###") + " - " + dr["Profesional"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + dr["Profesional"].ToString() + "</nobr></td>"); sb.Append("<td><nobr class='NBR W180' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:60px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + dr["t303_denominacion"].ToString() + "</nobr></td>"); sb.Append("<td>" + dr["t776_anomes"].ToString() + "</td>"); sb.Append("<td></td></tr>"); } dr.Close(); dr.Dispose(); sb.Append("</tbody>"); sb.Append("</table>"); #endregion sResul = "OK@#@" + sb.ToString() + "@#@" + ((bErrorDeadLockTimeout)?"1":"0"); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al realizar el cambio de estructura de usuario.", ex); } return(sResul); }