private string EliminarProyectos(string slIDProy) { string sResul = "", sEstado, sMens = "", sBorrados = ""; int IdProy, IdPSN; bool bBorrable = true; #region apertura de conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { string[] lstProy = Regex.Split(slIDProy, "##"); for (int i = 0; i < lstProy.Length; i++) { string[] oProy = Regex.Split(lstProy[i].ToString(), ","); if (oProy[0].ToString() != "") { IdPSN = int.Parse(oProy[0].ToString()); IdProy = int.Parse(oProy[1].ToString()); sEstado = oProy[2].ToString(); bBorrable = true; #region Comprobaciones if (sEstado == "A") { //Compruebo que no haya meses cerrados if (SEGMESPROYECTOSUBNODO.HayMesesCerradosPosteriores(tr, IdPSN, 0)) { bBorrable = false; sMens += "El proyecto " + IdProy.ToString("#,###") + " no se puede borrar pues tiene meses cerrados.\n"; } if (bBorrable) { //Compruebo que no tenga réplicas SqlDataReader dr = PROYECTOSUBNODO.ObtenerReplicasDeProyecto(tr, IdPSN); if (dr.Read()) { bBorrable = false; sMens += "El proyecto " + IdProy.ToString("#,###") + " no se puede borrar pues tiene proyectos replicados.\n"; } dr.Close(); dr.Dispose(); } if (bBorrable) { //Compruebo que no tenga imputaciones if (PROYECTOSUBNODO.TieneConsumos(tr, IdPSN)) { bBorrable = false; sMens += "El proyecto " + IdProy.ToString("#,###") + " no se puede borrar pues tiene imputaciones de IAP.\n"; } } if (bBorrable) { //Compruebo que no tenga ANOTACIONES EN gasvi if (PROYECTOSUBNODO.TieneApuntesGasvi(tr, IdPSN)) { bBorrable = false; sMens += "El proyecto " + IdProy.ToString("#,###") + " no se puede borrar pues tiene anotaciones en GASVI.\n"; } } } #endregion if (bBorrable) { PROYECTO.Delete(tr, IdProy); sBorrados += IdProy.ToString() + "#"; //Si estamos borrando el último proyecto al que hemos accedido lo elimino de las vbles de sesión if (IdPSN.ToString() == Session["ID_PROYECTOSUBNODO"].ToString()) { Session["ID_PROYECTOSUBNODO"] = ""; Session["MODOLECTURA_PROYECTOSUBNODO"] = false; Session["RTPT_PROYECTOSUBNODO"] = false; Session["MONEDA_PROYECTOSUBNODO"] = ""; break; } } } } Conexion.CommitTransaccion(tr); //sResul = "OK@#@" + sBorrados + "@#@" + sMens; sResul = "OK@#@" + sMens; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al borrar los proyectos indicados.", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }