private string Procesar(string strDatos) { string sResul = ""; int idPSN = 0, responsable_origen = 0, responsable_destino = 0, subnodo_origen = 0, subnodo_destino = 0; try { REASIGNACIONPSN.DeleteAll(null, (int)Session["UsuarioActual"]); string[] aDatos = Regex.Split(strDatos, "///"); foreach (string oProyecto in aDatos) { try { if (oProyecto == "") { continue; } string[] aProyecto = Regex.Split(oProyecto, "##"); ///aProyecto[0] = idPSN ///aProyecto[1] = responsable_origen ///aProyecto[2] = responsable_destino ///aProyecto[3] = subnodo_origen ///aProyecto[4] = subnodo_destino ///aProyecto[5] = procesado idPSN = int.Parse(aProyecto[0]); responsable_origen = int.Parse(aProyecto[1]); responsable_destino = int.Parse(aProyecto[2]); subnodo_origen = int.Parse(aProyecto[3]); subnodo_destino = int.Parse(aProyecto[4]); REASIGNACIONPSN.Insertar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, false, ""); if (aProyecto[5] == "1" || (aProyecto[1] == aProyecto[2] && aProyecto[3] == aProyecto[4])) { REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, true, ""); 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 PROYECTOSUBNODO oPSN = PROYECTOSUBNODO.Obtener(tr, int.Parse(aProyecto[0])); SUBNODO oSubnodo = SUBNODO.Obtener(tr, int.Parse(aProyecto[4])); if (oPSN.t303_idnodo != oSubnodo.t303_idnodo) { throw (new NullReferenceException("El " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " del proyecto y el " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " del " + Estructura.getDefLarga(Estructura.sTipoElem.SUBNODO) + " destino no coinciden, por lo que no se puede realizar la reasignación.")); } PROYECTOSUBNODO.UpdateReasignacion(tr, idPSN, responsable_destino, subnodo_destino); //update proceso OK REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, true, ""); Conexion.CommitTransaccion(tr); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); //update proceso KO REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, false, ex.Message); sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex); } finally { Conexion.Cerrar(oConn); } }// fin foreach sResul = "OK"; } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex); } return(sResul); }
protected string Recuperar() { string sResul = ""; StringBuilder sb = new StringBuilder(); try { SqlDataReader dr = REASIGNACIONPSN.CatalogoDestino(null, (int)Session["UsuarioActual"]); sb.Append("<table id='tblDatos2' class='texto MM' style='WIDTH: 560px;'>"); sb.Append("<colgroup>"); sb.Append(" <col style='width:20px;' />"); sb.Append(" <col style='width:20px;' />"); sb.Append(" <col style='width:20px;' />"); sb.Append(" <col style='width:157px;' />"); sb.Append(" <col style='width:160px;' />"); sb.Append(" <col style='width:160px;' />"); sb.Append(" <col style='width: 20px;' />"); sb.Append("</colgroup>"); sb.Append("<tbody>"); while (dr.Read()) { sb.Append("<tr idPSN='" + dr["t305_idproyectosubnodo"].ToString() + "' "); sb.Append("idProy='" + dr["t301_idproyecto"].ToString() + "' "); sb.Append("categoria='" + dr["t301_categoria"].ToString() + "' "); sb.Append("cualidad='" + dr["t305_cualidad"].ToString() + "' "); sb.Append("estado='" + dr["t301_estado"].ToString() + "' "); sb.Append("responsable_origen='" + dr["t314_idusuario_responsable_origen"].ToString() + "' "); sb.Append("responsable_destino='" + dr["t314_idusuario_responsable_destino"].ToString() + "' "); sb.Append("subnodo_origen='" + dr["t304_idsubnodo_origen"].ToString() + "' "); sb.Append("subnodo_destino='" + dr["t304_idsubnodo_destino"].ToString() + "' "); if (dr["t475_procesado"].ToString() == "") { sb.Append("procesado='' "); } else if ((bool)dr["t475_procesado"]) { sb.Append("procesado='1' "); } else { sb.Append("procesado='0' "); } sb.Append("excepcion='" + Utilidades.escape(dr["t475_excepcion"].ToString()) + "' "); sb.Append("style='height:20px' >"); sb.Append("<td></td>"); sb.Append("<td></td>"); sb.Append("<td></td>"); sb.Append("<td style='padding-left:3px;'><nobr class='NBR W150' ondblclick='insertarProyecto(this.parentNode.parentNode)' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Proyecto:</label>" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t301_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Cliente:</label>" + dr["t302_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t301_denominacion"].ToString().Replace((char)34, (char)39) + "</nobr></td>"); sb.Append("<td><nobr class='NBR W150' ondblclick='insertarProyecto(this.parentNode.parentNode)' 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;'>Responsable:</label>" + dr["responsable"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + dr["responsable"].ToString() + "</nobr></td>"); sb.Append("<td><nobr class='NBR W150' ondblclick='insertarProyecto(this.parentNode.parentNode)' 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.SUBNODO) + ":</label>" + dr["t304_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + dr["t304_denominacion"].ToString() + "</nobr></td>"); sb.Append("<td></td></tr>" + (char)10); } dr.Close(); dr.Dispose(); sb.Append("</tbody>"); sb.Append("</table>"); sResul = "OK@#@" + sb.ToString();; } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener la relación de proyectos aparcados.", ex); } return(sResul); }
private string Procesar(string strDatos) { string sResul = ""; int idPSN = 0, responsable_origen = 0, responsable_destino = 0; try { REASIGNACIONPSN.DeleteReasig(null, (int)Session["UsuarioActual"]); string[] aDatos = Regex.Split(strDatos, "///"); foreach (string oProyecto in aDatos) { try { if (oProyecto == "") { continue; } string[] aProyecto = Regex.Split(oProyecto, "##"); ///aProyecto[0] = idPSN ///aProyecto[1] = responsable_origen ///aProyecto[2] = responsable_destino ///aProyecto[3] = procesado idPSN = int.Parse(aProyecto[0]); responsable_origen = int.Parse(aProyecto[1]); responsable_destino = int.Parse(aProyecto[2]); REASIGNACIONPSN.Insertar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, false, ""); if (aProyecto[3] == "1" || aProyecto[1] == aProyecto[2]) { REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, true, ""); 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 PROYECTOSUBNODO.UpdateReasignacion(tr, idPSN, responsable_destino); //update proceso OK REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, true, ""); Conexion.CommitTransaccion(tr); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); //update proceso KO REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, false, ex.Message); sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex); } finally { Conexion.Cerrar(oConn); } }// fin foreach sResul = "OK"; } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex); } return(sResul); }