private string obtenerResponsables() { string sResul = ""; try { System.Text.StringBuilder sb = new System.Text.StringBuilder(); SqlDataReader dr = null; dr = ProyTec.CatalogoResponsables((int)Session["UsuarioActual"]); sb.Append("<table id='tblDatos' class='texto MA' style='width: 350px;'>" + (char)10); sb.Append("<colgroup><col style='width:350px;' /></colgroup>" + (char)10); while (dr.Read()) { //sb.Append("<tr id='" + dr["IDENTIFICADOR"].ToString() + "' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Profesional:</label>" + dr["PROFESIONAL"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Usuario:</label>" + int.Parse(dr["IDENTIFICADOR"].ToString()).ToString("#,###") + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Empresa:</label>" + dr["EMPRESA"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\""); sb.Append("<tr id='" + dr["IDENTIFICADOR"].ToString() + "' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Profesional:</label>" + dr["PROFESIONAL"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Usuario:</label>" + int.Parse(dr["IDENTIFICADOR"].ToString()).ToString("#,###") + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\""); sb.Append(" onclick='mm(event)' ondblclick='insertarItem(this)' onmousedown='DD(event)' "); sb.Append("style='height:16px'>"); sb.Append("<td style='padding-left:5px; cursor:pointer;'>" + dr["PROFESIONAL"].ToString() + "</td>"); sb.Append("</tr>" + (char)10); } dr.Close(); dr.Dispose(); sb.Append("</table>"); sResul = "OK@#@" + sb.ToString(); } catch (System.Exception objError) { sResul = "Error@#@" + Errores.mostrarError("Error al leer obtenerResponsables ", objError); } return(sResul); }
private string ObtenerPTs(string sTipoBusqueda, string strNomPT) { string sResul = "";//sPermiso SqlDataReader dr; try { StringBuilder strBuilder = new StringBuilder(); int iUser = (int)Session["UsuarioActual"]; strBuilder.Append("<table id='tblDatos' class='texto MA' style='width: 780px;'>"); strBuilder.Append("<colgroup><col style='width:390px;'><col style='width:390px;'></colgroup>"); strBuilder.Append("<tbody>"); dr = ProyTec.Catalogo(null, strNomPT, null, iUser, sTipoBusqueda); while (dr.Read()) { nPE = int.Parse(dr["cod_pe"].ToString()); strBuilder.Append("<tr id='" + dr["cod_pt"].ToString() + "' onclick='ms(this)' ondblclick='aceptarClick(this.rowIndex)' "); strBuilder.Append("des='" + dr["nom_pt"].ToString() + "' "); strBuilder.Append("idT305PE='" + dr["t305_idproyectosubnodo"].ToString() + "' "); strBuilder.Append("idPE='" + dr["cod_pe"].ToString() + "' "); strBuilder.Append("desPE='" + dr["nom_pe"].ToString() + "' "); strBuilder.Append("est='" + dr["t301_estado"].ToString() + "' "); strBuilder.Append("une='" + dr["cod_une"].ToString() + "' "); if (dr["t305_admiterecursospst"] != DBNull.Value) { if ((bool)dr["t305_admiterecursospst"]) { strBuilder.Append("bRecPST='S'>"); } else { strBuilder.Append("bRecPST='N'>"); } } else { strBuilder.Append("bRecPST='S'>"); } strBuilder.Append("<td><nobr class='NBR W390'>" + nPE.ToString("#,###") + " " + dr["nom_pe"].ToString() + "</nobr></td>"); strBuilder.Append("<td><nobr class='NBR W390'>" + dr["nom_pt"].ToString() + "</nobr></td></tr>"); } dr.Close(); dr.Dispose(); strBuilder.Append("</tbody>"); strBuilder.Append("</table>"); sResul = "OK@#@" + strBuilder.ToString(); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los proyectos técnicos", ex); } return(sResul); }
protected string Grabar(string strDatosPT) { string sResul = "", sDatosPT; int iCodPT; short iOrden; #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 { string[] aPTs = Regex.Split(strDatosPT, "///"); for (int i = 0; i < aPTs.Length - 1; i++) { sDatosPT = aPTs[i]; string[] aDatosPT = Regex.Split(sDatosPT, "##"); iCodPT = int.Parse(aDatosPT[0]); iOrden = short.Parse(aDatosPT[1]); ProyTec.UpdateOrden(tr, iCodPT, iOrden); } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del proyecto técnico", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private void obtenerListaTareas(string sTipo, int nItem, int nRecurso) { StringBuilder strBuilder = new StringBuilder(); SqlDataReader dr = null; switch (sTipo) { case "P": dr = ProyTec.CatalogoTareasRecurso(nItem, nRecurso); break; case "F": dr = FASEPSP.CatalogoTareasRecurso(nItem, nRecurso); break; case "A": dr = ACTIVIDADPSP.CatalogoTareasRecurso(nItem, nRecurso); break; } strBuilder.Append("<table id='tblDatos' class='texto' style='width: 380px;'>"); strBuilder.Append("<colgroup><col style='width: 50px;' /><col style='width: 330px;' />"); strBuilder.Append("<col /></colgroup>"); strBuilder.Append("<tbody>"); while (dr.Read()) { string sTTip = ""; if (dr["fase"].ToString() != "") { sTTip += "Fase: " + dr["fase"].ToString(); } if (dr["actividad"].ToString() != "") { sTTip += (char)10 + "Actividad: " + dr["actividad"].ToString(); } strBuilder.Append("<tr title='" + sTTip + "' style='height:16px'>"); strBuilder.Append("<td style='text-align:right;'>" + int.Parse(dr["t332_idtarea"].ToString()).ToString("#,###") + "</td>"); strBuilder.Append("<td style='padding-left:10px;'><nobr class='NBR W320'>" + dr["t332_destarea"].ToString() + "</nobr></td>"); strBuilder.Append("</tr>"); } dr.Close(); dr.Dispose(); strBuilder.Append("</tbody>"); strBuilder.Append("</table>"); divC.InnerHtml = strBuilder.ToString(); }
private string ObtenerPTs(string sTipoBusqueda, string sPSN, string strNomPT) { string sResul = "";//sPermiso int? nPSN = null; SqlDataReader dr; try { StringBuilder strBuilder = new StringBuilder(); int iUser = (int)Session["UsuarioActual"]; if (sPSN != "") { nPSN = int.Parse(sPSN); } strBuilder.Append("<div style='background-image:url(../../../../Images/imgFT18.gif); width: 396px;'>"); strBuilder.Append("<table id='tblDatos' class='texto MA' style='width: 396px;'>"); strBuilder.Append("<colgroup><col style='width: 396px;''></colgroup>"); strBuilder.Append("<tbody>"); //dr = ProyTec.CatalogoBitacora(nPSN, iUser, strNomPT, sTipoBusqueda); dr = ProyTec.Catalogo(null, strNomPT, nPSN, iUser, sTipoBusqueda); while (dr.Read()) { strBuilder.Append("<tr id='" + dr["cod_pt"].ToString()); strBuilder.Append("' une='" + dr["cod_une"].ToString()); strBuilder.Append("' nPE='" + dr["cod_pe"].ToString()); strBuilder.Append("' dPE='" + dr["nom_pe"].ToString()); strBuilder.Append("' est='" + dr["t301_estado"].ToString()); strBuilder.Append("' idP='" + dr["t305_idproyectosubnodo"].ToString()); strBuilder.Append("' sAccesoBitacoraPT='" + dr["t305_accesobitacora_pst"].ToString()); strBuilder.Append("' onclick='ms(this)' ondblclick='aceptarClick(this.rowIndex)' onmouseover='TTip(event)'>"); strBuilder.Append("<td><span class='NBR' style='width:380px;'>" + HttpUtility.HtmlEncode(dr["nom_pt"].ToString()) + "</span></td></tr>"); } dr.Close(); dr.Dispose(); strBuilder.Append("</tbody>"); strBuilder.Append("</table></div>"); sResul = "OK@#@" + strBuilder.ToString(); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los proyectos técnicos", ex); } return(sResul); }
private string ObtenerPTs(string sTipoBusqueda, string strNomPT) { string sResul = "";//sPermiso SqlDataReader dr; int nPE; try { StringBuilder strBuilder = new StringBuilder(); int iUser = (int)Session["UsuarioActual"]; strBuilder.Append("<div style='background-image:url(../../../../Images/imgFT16.gif); width:596px;'>"); strBuilder.Append("<table id='tblDatos' class='texto MA' style='width: 596px;'>"); strBuilder.Append("<colgroup><col style='width=296px;'><col style='width=300px;'></colgroup>"); strBuilder.Append("<tbody>"); //dr = ProyTec.CatalogoBitacora(null, iUser, strNomPT, sTipoBusqueda); dr = ProyTec.Catalogo(null, strNomPT, null, iUser, sTipoBusqueda); while (dr.Read()) { nPE = int.Parse(dr["cod_pe"].ToString()); strBuilder.Append("<tr id='" + dr["cod_pt"].ToString() + "' onclick='ms(this)' ondblclick='aceptarClick(this.rowIndex)' style='height:16px;' "); strBuilder.Append("des='" + dr["nom_pt"].ToString() + "' "); strBuilder.Append("idT305PE='" + dr["t305_idproyectosubnodo"].ToString() + "' "); strBuilder.Append("idPE='" + dr["cod_pe"].ToString() + "' "); strBuilder.Append("desPE='" + dr["nom_pe"].ToString() + "' "); strBuilder.Append("est='" + dr["t301_estado"].ToString() + "' "); strBuilder.Append("une='" + dr["cod_une"].ToString() + "' "); //strBuilder.Append("sAccesoBitacoraPT='" + dr["t331_acceso_iap"].ToString() + "' "); strBuilder.Append("sAccesoBitacoraT='E' "); strBuilder.Append("desune='" + dr["t303_denominacion"].ToString() + "'>"); strBuilder.Append("<td style='padding-left:5px;'>" + nPE.ToString("#,###") + " " + dr["nom_pe"].ToString() + "</td>"); strBuilder.Append("<td style='padding-left:5px;'>" + HttpUtility.HtmlEncode(dr["nom_pt"].ToString()) + "</td></tr>"); } dr.Close(); dr.Dispose(); strBuilder.Append("</tbody>"); strBuilder.Append("</table></div>"); sResul = "OK@#@" + strBuilder.ToString(); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los proyectos técnicos", ex); } return(sResul); }
public static void Borrar(SqlTransaction tr, string sTipo, int iCodigo) { switch (sTipo) { case "P": ProyTec.Eliminar(tr, iCodigo); break; case "F": BorrarFase(tr, iCodigo); break; case "A": BorrarActividad(tr, iCodigo); break; case "T": TAREAPSP.Delete(tr, iCodigo); break; case "HT": BorrarHito(tr, iCodigo); break; case "HM": BorrarHito(tr, iCodigo); break; case "HF": BorrarHitoPE(tr, iCodigo); break; } return; }
private string buscarPT(string t331_idpt) { StringBuilder sb = new StringBuilder(); try { ProyTec o = ProyTec.Obtener(int.Parse(t331_idpt)); if (o.t331_idpt.ToString() != "") { sb.Append(o.t305_idproyectosubnodo.ToString() + "@#@"); sb.Append(o.num_proyecto.ToString() + "@#@"); sb.Append(o.nom_proyecto + "@#@"); sb.Append(o.t331_despt); } return("OK@#@" + sb.ToString());; } catch (Exception ex) { return("AVISO@#@El proyecto técnico no existe o no está bajo tu ámbito de visión"); } }
private string ObtenerPTs(string sPSN) { string sResul = "", sDesPT; int nPSN; SqlDataReader dr; try { StringBuilder sb = new StringBuilder(); int iUser = (int)Session["UsuarioActual"]; sb.Append("<table id='tblPTs' class='texto MA' style='width:305px; text-align:left;'>"); sb.Append("<tbody>"); if (sPSN != "") { nPSN = int.Parse(sPSN); dr = ProyTec.CatalogoBitacora(nPSN, iUser, "", "C"); while (dr.Read()) { sDesPT = HttpUtility.HtmlEncode(dr["nom_pt"].ToString()); sb.Append("<tr id='" + dr["cod_pt"].ToString() + "' aIAP='" + dr["t331_acceso_iap"].ToString() + "'"); sb.Append(" style='height:16px;' onclick='ms(this)' ondblclick='bitacoraPT(this.rowIndex)'>"); sb.Append("<td><nobr class='NBR W300' style='padding-left:3px;'>" + HttpUtility.HtmlEncode(dr["nom_pt"].ToString()) + "</nobr>"); sb.Append("</td></tr>"); } dr.Close(); dr.Dispose(); } sb.Append("</tbody>"); sb.Append("</table>"); strTablaHtmlPTs = sb.ToString(); sResul = "@#@" + strTablaHtmlPTs; } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los proyectos técnicos", ex); } return(sResul); }
private string ObtenerPTs(string sTipoBusqueda, string sPSN, string strNomPT) { string sResul = "";//sPermiso int? nPSN = null; SqlDataReader dr; try { StringBuilder strBuilder = new StringBuilder(); int iUser = (int)Session["UsuarioActual"]; if (sPSN != "") { nPSN = int.Parse(sPSN); } strBuilder.Append("<div style='background-image:url(../../../Images/imgFT18.gif);width:396px'>"); strBuilder.Append("<table id='tblDatos' class='texto MA' style='width: 396px;'>"); strBuilder.Append("<colgroup><col style='width:396px;'></colgroup>"); strBuilder.Append("<tbody>"); dr = ProyTec.Catalogo(null, strNomPT, nPSN, iUser, sTipoBusqueda); while (dr.Read()) { strBuilder.Append("<tr id='" + dr["cod_pt"].ToString() + "' onclick=\"ms(this)\" ondblclick=\"aceptarClick(this.rowIndex)\" >"); strBuilder.Append("<td>" + dr["nom_pt"].ToString() + "</td></tr>"); } dr.Close(); dr.Dispose(); strBuilder.Append("</tbody>"); strBuilder.Append("</table></div>"); sResul = "OK@#@" + strBuilder.ToString(); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener los proyectos técnicos", ex); } return(sResul); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsCallback) { if (Session["IDRED"] == null) { try { Response.Redirect("~/SesionCaducadaModal.aspx", true); } catch (System.Threading.ThreadAbortException) { return; } } if (!Page.IsPostBack) { try { LimpiarDatos(); //origen if (Request.QueryString["o"] != null) { sOrigen = Utilidades.decodpar(Request.QueryString["o"].ToString()); } //sAccBitacoraPT if (Request.QueryString["b"] != null) { sAccesoBitacoraPT = Utilidades.decodpar(Request.QueryString["b"].ToString()); } //if (Request.QueryString["sAccBitacora"] != null) // sAccBitacora = Request.QueryString["sAccBitacora"].ToString(); if (Request.QueryString["psn"] != null) { nPSN = int.Parse(Utilidades.decodpar(Request.QueryString["psn"].ToString())); } else { if (Session["ID_PROYECTOSUBNODO"].ToString() != "") { nPSN = int.Parse(Session["ID_PROYECTOSUBNODO"].ToString()); } } //Código de proyecto técnico if (Request.QueryString["pt"] != null) { this.txtIdPT.Text = Utilidades.decodpar(Request.QueryString["pt"].ToString()); this.txtDesPT.Text = Utilidades.decodpar(Request.QueryString["npt"].ToString()); ProyTec oPT = ProyTec.Obtener(int.Parse(this.txtIdPT.Text)); nPSN = oPT.t305_idproyectosubnodo; } if (nPSN > -1) { this.hdnT305IdProy.Value = nPSN.ToString(); string sModoAcceso = PROYECTOSUBNODO.getAcceso(null, nPSN, (int)Session["UsuarioActual"]); SqlDataReader dr = PROYECTO.fgGetDatosProy(nPSN); if (dr.Read()) { //sAccesoBitacoraPT = dr["t305_accesobitacora_pst"].ToString(); if (sAccesoBitacoraPT != "X") { this.txtEstado.Text = dr["t301_estado"].ToString(); this.txtNomProy.Text = dr["t301_denominacion"].ToString(); this.txtCodProy.Text = int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###"); if (sModoAcceso == "R") { sAccesoBitacoraPT = "L"; } else { if (this.txtEstado.Text == "C" || this.txtEstado.Text == "H") { sAccesoBitacoraPT = "L"; } } } } dr.Close(); dr.Dispose(); switch (this.txtEstado.Text) { case "A": imgEstProy.ImageUrl = "~/images/imgIconoProyAbierto.gif"; imgEstProy.Attributes.Add("title", "Proyecto abierto"); break; case "C": imgEstProy.ImageUrl = "~/images/imgIconoProyCerrado.gif"; imgEstProy.Attributes.Add("title", "Proyecto cerrado"); break; case "P": imgEstProy.ImageUrl = "~/images/imgIconoProyPresup.gif"; imgEstProy.Attributes.Add("title", "Proyecto presupuestado"); break; case "H": imgEstProy.ImageUrl = "~/images/imgIconoProyHistorico.gif"; imgEstProy.Attributes.Add("title", "Proyecto histórico"); break; } if (sAccesoBitacoraPT != "X" && this.txtIdPT.Text != "") { //ObtenerDatosAsunto(int.Parse(quitaPuntos(this.txtIdPT.Text))); obtenerAsuntos(quitaPuntos(this.txtIdPT.Text), "8", "0", 0, 0); ObtenerDatosTs(int.Parse(this.txtIdPT.Text)); } } //Relleno el combo de tipo de asunto this.cboTipo.DataValueField = "t384_idtipo"; this.cboTipo.DataTextField = "t384_destipo"; this.cboTipo.DataSource = TIPOASUNTO.Catalogo("", null, null, 3, 0); this.cboTipo.DataBind(); } catch (Exception ex) { 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); } }
public static void Modificar(SqlTransaction tr, int iCodUne, int iNumProy, string sTipo, string sDesc, int iPT, int iFase, int iActiv, int iTarea, int iHito, int iMargen, int iOrden, string sFIniPL, string sFfinPl, double fDuracion, string sFIniV, string sFfinV, decimal fPresup, bool bFacturable, string sSituacion, decimal fAvance, Nullable <byte> iAvanceAuto) { //bool bEstadoTarea = false; byte iEstado; sDesc = Utilidades.unescape(sDesc); switch (sTipo) { case "P": if (sSituacion == "") { iEstado = 1; } else { iEstado = byte.Parse(sSituacion); } //por peticion de Victor el control de AE obligatorios solo se realizará en el caso de inserción //Compruebo si el CR tiene atributos estadisticos obligatorios //bEstadoTarea = ProyTec.bFaltanValoresAE(tr, (short)iCodUne, iPT); //if (bEstadoTarea) //{ // iEstado = 2; // ProyTec.Modificar(tr, iPT, sDesc, iOrden,iEstado); //} //else//el estado lo dejo como estuviera ProyTec.Modificar(tr, iPT, sDesc, iOrden, iEstado, fPresup, fAvance, iAvanceAuto); break; case "F": ModificarFase(tr, iFase, sDesc, iOrden, fPresup, fAvance, iAvanceAuto); break; case "A": ModificarActividad(tr, iActiv, iFase, sDesc, iOrden, fPresup, fAvance, iAvanceAuto); break; case "T": int iUsuario = int.Parse(HttpContext.Current.Session["UsuarioActual"].ToString()); if (sSituacion == "") { iEstado = 1; } else { iEstado = byte.Parse(sSituacion); } //por peticion de Victor el control de AE obligatorios solo se realizará en el caso de inserción //Compruebo si el CR tiene atributos estadisticos obligatorios //bEstadoTarea = TAREAPSP.bFaltanValoresAE(tr, (short)iCodUne, iTarea); //if (bEstadoTarea) //{ // iEstado = 2; // TAREAPSP.Modificar(tr, iTarea, sDesc, iPT, iActiv, iOrden, sFIniPL, sFfinPl, fDuracion, sFIniV, sFfinV, // iUsuario, fPresup, iEstado); //} //else//el estado lo dejo como estuviera TAREAPSP.Modificar(tr, iTarea, sDesc, iPT, iActiv, iOrden, sFIniPL, sFfinPl, fDuracion, sFIniV, sFfinV, iUsuario, fPresup, iEstado, bFacturable); break; case "HT": ModificarHito(tr, iHito, sDesc, iOrden, iMargen); break; case "HF": ModificarHitoPE(tr, iHito, sDesc, iOrden, sFIniPL); break; case "HM": ModificarHito(tr, iHito, sDesc, iOrden, iMargen); break; } }
public static string Insertar(SqlTransaction tr, int iCodUne, int iNumProy, int it305_IdProy, string sTipo, string sDesc, int iPT, int iFase, int iActiv, int iMargen, int iOrden, string sFIniPL, string sFfinPl, double fDuracion, string sFIniV, string sFfinV, decimal fPresup, bool bFacturable, bool bObligaEst, bool bAvanceAutomatico, string sSituacion, string sObs, decimal fAvance) { int nResul = 0; byte iEstado; //bool bEstadoTarea = false; string sAviso = ""; sDesc = Utilidades.unescape(sDesc); sObs = Utilidades.unescape(sObs); switch (sTipo) { case "P": //Compruebo si el CR tiene atributos estadisticos obligatorios if (sSituacion == "") { iEstado = 1; } else { iEstado = byte.Parse(sSituacion); } //bEstadoTarea = ProyTec.bFaltanValoresAE(tr, (short)iCodUne, null); //if (bEstadoTarea) iEstado = 2; //else iEstado = 1; //if (bEstadoTarea) sAviso = "Se han insertado proyectos técnicos que quedan en estado Pendiente ya que el C.R. tiene atributos estadísticos\nobligatorios para los que el proyecto técnico no tiene valores asignados"; nResul = ProyTec.Insert(tr, sDesc, it305_IdProy, iEstado, bObligaEst, (short)iOrden, null, sObs, false, false, "X", fPresup, fAvance, bAvanceAutomatico, ""); break; case "F": nResul = InsertarFase(tr, sDesc, iOrden, sObs, fPresup, fAvance, bAvanceAutomatico); break; case "A": nResul = InsertarActividad(tr, iFase, sDesc, iOrden, sObs, fPresup, fAvance, bAvanceAutomatico); break; case "T": //Compruebo si el CR tiene atributos estadisticos obligatorios if (sSituacion == "") { iEstado = 1; } else { iEstado = byte.Parse(sSituacion); } //bEstadoTarea = TAREAPSP.bFaltanValoresAE(tr, (short)iCodUne, null); //if (bEstadoTarea) iEstado = 2; //else iEstado = 1; //if (bEstadoTarea) sAviso = "Se han insertado tareas que quedan en estado Pendiente ya que el C.R. tiene atributos estadísticos\nobligatorios para los que la tarea no tiene valores asignados"; nResul = TAREAPSP.Insertar(tr, sDesc, iPT, iActiv, iOrden, sFIniPL, sFfinPl, fDuracion, sFIniV, sFfinV, fPresup, iEstado, bFacturable, bAvanceAutomatico, sObs); //Asocio los recursos del Proy. Economico a la tarea //el 04/12/2006 comenta Andoni que la herencia se realizará por trigger por lo que quitamos el código //if (nResul > 0) //{ // TAREAPSP.HeredarRecursos(tr, (short)iCodUne, iNumProy, nResul, sFfinPl); //} break; case "HM": case "HT": nResul = InsertarHito(tr, sDesc, iMargen, iOrden, it305_IdProy); break; case "HF": //nResul = InsertarHitoPE(tr, iCodUne, iNumProy, sDesc, sFIniPL, iOrden); nResul = InsertarHitoPE(tr, it305_IdProy, sDesc, sFIniPL, iOrden, sObs); break; } return(nResul.ToString() + "##" + sAviso); }
private string PonerRecurso(bool bSoloAsignadas, bool bSoloActivas, int iRecursoOrigen, string sTipoItem, int IdRecurso, int IdItem, string sHaciaProy, int IdNodo, int iUltCierreEco, int IdPsn, bool bNotifProf) { SqlConnection oConn = null; SqlTransaction tr = null; string sResul = ""; bool bAdmiteRecursoPST, bRecursoAsignado = false; try { if (sHaciaProy == "S") { bAdmiteRecursoPST = true; } else { bAdmiteRecursoPST = false; } //Abro transaccion oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); switch (sTipoItem) { case "E": PROYECTOSUBNODO.AsignarTareasProfesional(tr, bSoloAsignadas, bSoloActivas, iRecursoOrigen, IdItem, IdRecurso, null, null, -1, "", false, bAdmiteRecursoPST, IdNodo, iUltCierreEco); break; case "P": ProyTec.AsignarTareasProfesional(tr, bSoloAsignadas, bSoloActivas, iRecursoOrigen, IdItem, IdRecurso, null, null, -1, "", false, bAdmiteRecursoPST, IdPsn, IdNodo, iUltCierreEco); break; case "F": FASEPSP.AsignarTareasProfesional(tr, bSoloAsignadas, bSoloActivas, iRecursoOrigen, IdItem, IdRecurso, null, null, -1, "", false, bAdmiteRecursoPST, IdPsn, IdNodo, iUltCierreEco); break; case "A": ACTIVIDADPSP.AsignarTareasProfesional(tr, bSoloAsignadas, bSoloActivas, iRecursoOrigen, IdItem, IdRecurso, null, null, -1, "", false, bAdmiteRecursoPST, IdPsn, IdNodo, iUltCierreEco); break; case "T": //iNumAsig = TareaRecurso.InsertarSNE(tr, IdItem, IdRecurso, null, null, null, null, null, null, 1, null, "", false); bRecursoAsignado = TareaRecurso.InsertarTEC(tr, IdItem, IdRecurso, null, null, null, null, null, null, 1, null, "", false, bAdmiteRecursoPST, IdPsn, IdNodo, iUltCierreEco); if (bNotifProf && bRecursoAsignado) //se notifica a profesionales y no estaba ya asignado a la tarea { TAREAPSP oTar = TAREAPSP.Obtener(null, IdItem); TAREAPSP oTar2 = TAREAPSP.ObtenerOTC(null, IdItem); string oRec = "##" + IdItem.ToString() + "##" + IdRecurso.ToString() + "################"; oRec += Utilidades.escape(oTar.t332_destarea) + "##"; oRec += oTar.num_proyecto.ToString() + "##" + Utilidades.escape(oTar.nom_proyecto) + "##"; oRec += Utilidades.escape(oTar.t331_despt) + "##" + Utilidades.escape(oTar.t334_desfase) + "##" + Utilidades.escape(oTar.t335_desactividad) + "##"; oRec += Utilidades.escape(oTar2.t346_codpst) + "##" + Utilidades.escape(oTar2.t346_despst) + "##"; oRec += Utilidades.escape(oTar.t332_otl) + "##" + Utilidades.escape(oTar.t332_incidencia) + "##"; TareaRecurso.EnviarCorreoRecurso(tr, "I", oRec, "", "", "", "", Utilidades.escape(oTar.t332_mensaje)); } break; } //if (sHaciaProy == "S") //{ // if (!TareaRecurso.AsociadoAProyecto(tr, IdPsn, IdRecurso)) // {//lA FECHA DE alta en el proyecto será la siguiente al último mes cerrado del nodo // DateTime dtFechaAlta = Fechas.AnnomesAFecha(Fechas.AddAnnomes(iUltCierreEco, 1)); // TareaRecurso.AsociarAProyecto(tr, IdNodo, IdRecurso, IdPsn, null, dtFechaAlta, null); // } // else // TareaRecurso.ReAsociarAProyecto(tr, IdRecurso, IdPsn); //} Conexion.CommitTransaccion(tr); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = Errores.mostrarError("Error al grabar", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsCallback) { if (Session["IDRED"] == null) { try { Response.Redirect("~/SesionCaducadaModal.aspx", true); } catch (System.Threading.ThreadAbortException) { return; } } //if (!(bool)Session["FORANEOS"]) //{ // this.imgForaneo.Visible = false; // this.lblForaneo.Visible = false; //} sErrores = ""; sLectura = "false"; sNodo = Estructura.getDefCorta(Estructura.sTipoElem.NODO); nIdAccion = int.Parse(Utilidades.decodpar(Request.QueryString["a"].ToString())); //nIdAccion txtIdAsunto.Text = Utilidades.decodpar(Request.QueryString["as"].ToString()); //idAsunto //txtDesAsunto.Text = Utilidades.unescape(Request.QueryString["desAsunto"].ToString()); ASUNTO_PT oAsto = ASUNTO_PT.Select(null, int.Parse(txtIdAsunto.Text)); txtDesAsunto.Text = oAsto.t409_desasunto; this.hdnAcceso.Text = Utilidades.decodpar(Request.QueryString["p"].ToString());//Permiso nIdPE = int.Parse(quitaPuntos(Request.QueryString["nPE"].ToString())); this.hdnDesPE.Text = Request.QueryString["desPE"].ToString(); nIdPT = int.Parse(quitaPuntos(Utilidades.decodpar(Request.QueryString["nPT"].ToString()))); this.hdnDesPT.Text = Request.QueryString["desPT"].ToString(); this.txtIdResponsable.Text = oAsto.t409_responsable.ToString(); if (Request.QueryString["sIdResp"] != null && Request.QueryString["sIdResp"] != "undefined") { if (Request.QueryString["sIdResp"] != "") { this.txtIdResponsable.Text = Utilidades.decodpar(Request.QueryString["r"].ToString());//sIdResp } } this.hdnNodo.Value = ProyTec.GetNodo(tr, nIdPT).ToString(); try { Utilidades.SetEventosFecha(this.txtValLim); Utilidades.SetEventosFecha(this.txtValFin); ObtenerDatosAccion(); } catch (Exception ex) { sErrores += Errores.mostrarError("Error al obtener los datos de la acción", ex); } try { //Datos de las personas asignadas a la acción string strTabla = ObtenerRecursos(nIdAccion.ToString(), this.hdnNodo.Value); string[] aRecursos = Regex.Split(strTabla, "@#@"); if (aRecursos[0] == "OK") { divR.InnerHtml = aRecursos[1]; } //Datos de las tareas asignadas a la acción strTabla = ObtenerTareas(nIdAccion.ToString()); string[] aTareas = Regex.Split(strTabla, "@#@"); if (aTareas[0] == "OK") { divH.InnerHtml = aTareas[1]; } //Datos de los documentos asociados a la acción //strTabla = ObtenerDocumentos(nIdAccion.ToString()); //string[] aTabla = Regex.Split(strTabla, "@#@"); //if (aTabla[0] == "OK") divDoc.InnerHtml = aTabla[1]; string sEstado = PROYECTO.getEstado(null, nIdPE); divDoc.InnerHtml = Utilidades.ObtenerDocumentos("AC_PT", nIdAccion, this.hdnAcceso.Text, sEstado); } catch (Exception ex) { sErrores += Errores.mostrarError("Error al obtener datos complementarios", ex); } this.hdnAcceso.Text = Request.QueryString["p"].ToString();//Permiso if (this.hdnAcceso.Text == "R") { ModoLectura.Poner(this.Controls); sLectura = "true"; } //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); } }
/// <summary> /// Genera la estructura técnica de un proyecto en SUPER, sobre un proyecto ya existente /// Se borran los item que están en SUPER y no están en OpenProj (salvo que tengan consumos) /// Si el ítem es nuevo en OpenProj - > se inserta en SUPER /// Si el ítem tiene codigo (<Numero1></Numero1>) se updatea en SUPER /// </summary> private string Importar(bool bBorrarEstructura) { StringBuilder sb = new StringBuilder(); int idPSN = -1, iMargen = 0, iCodUne = -1, iNumProy = -1, iPos, iAux; int iPT = -1, iFase = -1, iActiv = -1, iTarea = -1, iHito = -1, iOrden = 1; string sSituacion = "1", sAux, sTipo, sCodSuperItem = "", sNota = "", sAccion = "", sTaskUID = "", sCodTarea = "";//sMargen = "0", string sFIPL = "", sFFPL = "", sFFPR = "", sWorkTarea = "", sListaTareas = "", sListaRecursos = "", sDenTarea = "", sCodUser = ""; string sMensError = ""; bool bFacturable, bHayQueUpdatear = false;//, bEsHito = false decimal dETPL = 0, dETPR = 0; DateTime? dtFIPL = null; DateTime? dtFFPL = null; SqlConnection oConn = null; SqlTransaction tr = null; sListaTareas = this.hdnTareas.Value; sListaRecursos = this.hdnRecursos.Value; htTareas = new Hashtable(); #region Abro transaccion try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { return("Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex)); } #endregion idPSN = int.Parse(this.hdnPSN.Value); try { iCodUne = PROYECTOSUBNODO.GetNodo(tr, idPSN); if (bBorrarEstructura) { if (PROYECTOSUBNODO.TieneConsumos(tr, idPSN)) { Conexion.CerrarTransaccion(tr); return("Error@#@El proyecto tiene consumos. No se puede eliminar la estructura actual."); } else { EstrProy.BorrarEstructura(tr, idPSN); } } else { //Vamos a meter lo que importamos debajo de lo que ya existe. Para ello obtenemos el mayor orden de los PT existentes iOrden = ProyTec.GetMaxOrden(tr, idPSN) + 1; } bFacturable = PROYECTOSUBNODO.GetFacturable(tr, idPSN); #region Inserto y/o updateo los items del proyecto string[] aTareas = Regex.Split(sListaTareas, @"/#/"); for (int i = 0; i < aTareas.Length - 1; i++) { string[] aElem = Regex.Split(aTareas[i], @"#@#"); #region recojo datos del XML /* * aElem[0]: sTipo + "##"; * aElem[1]: UID + "##"; * aElem[2]: sMargen + "##"; * aElem[3]: DENOMINACION + "##"; * aElem[4]: ETPL + "##"; * aElem[5]: FIPL + "##"; * aElem[6]: FFPL + "##"; * aElem[7]: ETPR + "##"; * aElem[8]: FFPR + "##"; * aElem[9]: NOTAS + "##"; */ sTipo = aElem[0]; sTaskUID = aElem[1]; iMargen = int.Parse(aElem[2]); sDenTarea = aElem[3]; dETPL = decimal.Parse(aElem[4]); dETPR = decimal.Parse(aElem[7]); sFIPL = aElem[5]; sFFPL = aElem[6]; sFFPR = aElem[8]; sNota = aElem[9]; #endregion #region Cálculo de códigos padre switch (sTipo) { case "P": iFase = -1; iActiv = -1; break; case "F": iActiv = -1; break; case "A": if (iMargen != 40) { iFase = -1; } break; case "T": if (iMargen == 40) { iFase = -1; } else if (iMargen != 60) { iFase = -1; iActiv = -1; } break; //case "HT": //case "HF": //case "HM": // iHito = int.Parse(aElem[7]); // if (sEstado == "D") sCadenaBorrado += sTipo + "@#@" + iHito.ToString() + @"##";//hito // break; } #endregion #region Inserto o updateo el item de la estructura en BBDD if (sCodSuperItem == "" || bBorrarEstructura) { sAccion = "I"; } else { if (sCodSuperItem == "0.0" || sCodSuperItem == "0,0") { sAccion = "I"; } else { sAccion = "U"; //El item esta en OpenProj -> marco en la hashtable para que no lo borre #region obtención del código del elemento updateado sAux = sCodSuperItem.Replace(",", "."); iAux = int.Parse(sAux); ItemsProyecto oItemAux = new ItemsProyecto(); switch (sTipo) { case "P": iPT = iAux; oItemAux = (ItemsProyecto)htPTs[iPT]; oItemAux.borrar = false; htPTs[iPT] = oItemAux; break; case "F": iFase = iAux; oItemAux = (ItemsProyecto)htFs[iFase]; oItemAux.borrar = false; htFs[iFase] = oItemAux; break; case "A": iActiv = iAux; oItemAux = (ItemsProyecto)htAs[iActiv]; oItemAux.borrar = false; htAs[iActiv] = oItemAux; break; case "T": iTarea = iAux; oItemAux = (ItemsProyecto)htItems[iTarea]; oItemAux.borrar = false; htItems[iTarea] = oItemAux; break; case "HF": iHito = iAux; oItemAux = (ItemsProyecto)htHFs[iHito]; oItemAux.borrar = false; htHFs[iHito] = oItemAux; break; } //if (sTipo.Substring(0, 1) == "H") //{ // AsociarTareasHitos(tr, iT305IdProy, iPT, iFase, iActiv, iTarea, iHito, iMargen); //} #endregion } } if (sAccion == "I") { sAux = OpenProj.Insertar(tr, iCodUne, iNumProy, idPSN, sTipo, sDenTarea, iPT, iFase, iActiv, iMargen, iOrden, sFIPL, sFFPL, dETPL, sFFPR, dETPR, Fechas.primerDiaMes(DateTime.Now).ToShortDateString(), "", 0, bFacturable, false, true, sSituacion, sNota, 0 ); #region obtención del código del elemento grabado iPos = sAux.IndexOf("##"); iAux = int.Parse(sAux.Substring(0, iPos)); switch (sTipo) { case "P": iPT = iAux; break; case "F": iFase = iAux; break; case "A": iActiv = iAux; break; case "T": iTarea = iAux; htTareas.Add(sTaskUID, iTarea.ToString()); break; //case "HT": // iHito = iAux; // break; } //if (sTipo.Substring(0, 1) == "H") //{ // AsociarTareasHitos(tr, iT305IdProy, iPT, iFase, iActiv, iTarea, iHito, iMargen); //} #endregion } else {//Hay que updatear el item (si hay algún cambio) bHayQueUpdatear = false; #region Mira si hay algún datos distinto para ver si hay que updatear el registro en la BBDD ItemsProyecto oItem = new ItemsProyecto(); switch (sTipo) { case "T": oItem = (ItemsProyecto)htItems[iTarea]; break; case "P": oItem = (ItemsProyecto)htPTs[iPT]; break; case "F": oItem = (ItemsProyecto)htFs[iFase]; break; case "A": oItem = (ItemsProyecto)htAs[iActiv]; break; case "HF": oItem = (ItemsProyecto)htHFs[iHito]; break; } if (oItem.nombre != sDenTarea) { bHayQueUpdatear = true; } else { if (oItem.descripcion != sNota) { bHayQueUpdatear = true; } else { if (sTipo == "T") { if (oItem.PRIMER_CONSUMO.Substring(0, 10) != sFIPL) { bHayQueUpdatear = true; } else { if (oItem.FFPR.Substring(0, 10) != sFFPR) { bHayQueUpdatear = true; } else { if (oItem.ETPR != dETPR) { bHayQueUpdatear = true; } } } } } } #endregion if (bHayQueUpdatear) { OpenProj.Modificar(tr, iCodUne, idPSN, sTipo, sDenTarea, iPT, iFase, iActiv, iTarea, iHito, iMargen, iOrden, sFIPL, sFFPL, dETPL, sNota); } } iOrden++; #endregion } #endregion #region Si hay recursos con nº empleado SUPER y con asignación a tarea, los meto bool bAux = false; string[] aRecursos = Regex.Split(sListaRecursos, @"/#/"); for (int i = 0; i < aRecursos.Length - 1; i++) { string[] aElem = Regex.Split(aRecursos[i], @"#@#"); //Recojo el código SUPER del recurso en la tarea sTaskUID = aElem[0]; sCodUser = aElem[1]; sWorkTarea = aElem[2]; sFIPL = aElem[3]; sFFPL = aElem[4]; if (sFIPL != "") { dtFIPL = DateTime.Parse(sFIPL); } if (sFFPL != "") { dtFFPL = DateTime.Parse(sFFPL); } if (sCodUser != "") { sCodTarea = htTareas[sTaskUID].ToString(); if (sCodTarea != "" && sWorkTarea != "") { bAux = TareaRecurso.InsertarTEC(tr, int.Parse(sCodTarea), int.Parse(sCodUser), null, null, double.Parse(sWorkTarea), dtFIPL, dtFFPL, null, 1, "", "", true, true, idPSN, -1, -1); if (!bAux) { sMensError += "Por restricciones del proyecto no es posible asignar el empleado " + sCodUser + " a la tarea " + sCodTarea + "\n"; } TareaRecurso.UpdateEsfuerzo(tr, int.Parse(sCodTarea), int.Parse(sCodUser), null, double.Parse(sWorkTarea), dtFIPL, dtFFPL, null, 1); } } } #endregion #region borro los items que estando en SUPER no están en OpenProj (si es tarea que no tenga consumo) //if (!bBorrarEstructura) //{ // ItemsProyecto oItemD = new ItemsProyecto(); // //Borrado de Proyectos Técnicos // foreach (DictionaryEntry item in htPTs) // { // oItemD = (ItemsProyecto)item.Value; // if (oItemD.borrar) // ProyTec.Eliminar(tr, oItemD.codPT); // } // //Borrado de Fases // foreach (DictionaryEntry item in htFs) // { // oItemD = (ItemsProyecto)item.Value; // if (oItemD.borrar) // FASEPSP.Delete(tr, oItemD.codFase); // } // //Borrado de Actividades // foreach (DictionaryEntry item in htAs) // { // oItemD = (ItemsProyecto)item.Value; // if (oItemD.borrar) // ACTIVIDADPSP.Delete(tr, oItemD.codActiv); // } // //Borrado de Hitos de fecha // foreach (DictionaryEntry item in htHFs) // { // oItemD = (ItemsProyecto)item.Value; // if (oItemD.borrar) // HITOPSP.Delete(tr, "HF", oItemD.codTarea); // } // //Borrado de Tareas que no tengan consumos // foreach (DictionaryEntry item in htItems) // { // oItemD = (ItemsProyecto)item.Value; // if (oItemD.borrar) // { // if (oItemD.Consumido == 0) // TAREAPSP.Delete(tr, oItemD.codTarea); // } // } //} #endregion //Cierro transaccion Conexion.CommitTransaccion(tr); if (sMensError == "") { sMensError = "OK"; } else { sMensError = "OKMSG@#@" + sMensError; } return(sMensError); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); return(Errores.mostrarError("Error al cargar la estructura a partir del fichero XML", ex)); } finally { Conexion.Cerrar(oConn); } }
private void ObtenerDatosAsunto() { //Relleno el combo de tipo de asunto this.cboTipo.DataValueField = "t384_idtipo"; this.cboTipo.DataTextField = "t384_destipo"; this.cboTipo.DataSource = TIPOASUNTO.Catalogo("", null, null, 3, 0); this.cboTipo.DataBind(); if (nIdAsunto == -1) { txtValCre.Text = DateTime.Now.ToShortDateString(); txtValNotif.Text = DateTime.Now.ToShortDateString(); this.txtIdResponsable.Text = Session["NUM_EMPLEADO_ENTRADA"].ToString(); this.txtResponsable.Text = Session["APELLIDO1"].ToString() + " " + Session["APELLIDO2"].ToString() + ", " + Session["NOMBRE"].ToString(); this.txtRegistrador.Text = Session["APELLIDO1"].ToString() + " " + Session["APELLIDO2"].ToString() + ", " + Session["NOMBRE"].ToString(); } else { ASUNTO_PT o = ASUNTO_PT.Select(tr, nIdAsunto); txtIdAsunto.Text = o.t409_idasunto.ToString(); txtDesAsunto.Text = o.t409_desasunto; txtDescripcion.Text = o.t409_desasuntolong; this.txtEtp.Text = o.t409_etp.ToString("N"); this.txtEtr.Text = o.t409_etr.ToString("N"); if (o.t409_fcreacion.Year > 1900) { txtValCre.Text = o.t409_fcreacion.ToShortDateString(); } if (o.t409_fnotificacion.Year > 1900) { txtValNotif.Text = o.t409_fnotificacion.ToShortDateString(); } if (o.t409_flimite.Year > 1900) { txtValLim.Text = o.t409_flimite.ToShortDateString(); } if (o.t409_ffin.Year > 1900) { txtValFin.Text = o.t409_ffin.ToShortDateString(); } this.txtDpto.Text = o.t409_dpto; this.txtAlerta.Text = o.t409_alerta; this.txtObs.Text = o.t409_obs; this.txtRefExt.Text = o.t409_refexterna; this.txtSistema.Text = o.t409_sistema; this.cboEstado.SelectedValue = o.t409_estado.ToString(); this.cboEstado.Text = o.Estado; this.txtEstadoAnt.Text = o.t409_estado.ToString(); this.cboPrioridad.SelectedValue = o.t409_prioridad.ToString(); this.cboPrioridad.Text = o.Prioridad; this.cboSeveridad.SelectedValue = o.t409_severidad.ToString(); this.cboSeveridad.Text = o.Severidad; this.cboTipo.SelectedValue = o.t384_idtipo.ToString(); this.cboTipo.Text = o.Tipo; this.txtNotificador.Text = o.t409_notificador; this.txtIdResponsable.Text = o.t409_responsable.ToString(); this.txtResponsable.Text = o.Responsable; this.txtRegistrador.Text = o.Registrador; } ProyTec oPT = ProyTec.Obtener(nIdPT); PROYECTOSUBNODO oPSN = PROYECTOSUBNODO.Obtener(null, oPT.t305_idproyectosubnodo); if (oPSN.t305_opd) { lblNumero.Style.Add("display", "none"); txtIdAsunto.Style.Add("display", "none"); lblCreacion.Style.Add("visibility", "hidden"); txtValCre.Style.Add("visibility", "hidden"); tsPestanas.Items[1].Disabled = true; } }
protected string Grabar(string strDatosTarea, string slTareas) { string sIdTarea, sEstado, sResul = ""; int nIdTarea, nIdPT, iUsuario; bool bFaltanValoresAE = false, bPrimeraTarea = true; short nOrden = 0, iCodUne; #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 { string[] aDatosTarea = Regex.Split(strDatosTarea, "##"); ///aDatosTarea[0] = IDPT ///aDatosTarea[1] = ID Actividad ///aDatosTarea[2] = NodoActivo int?nAct = null; if ((aDatosTarea[1] != "") && (aDatosTarea[1] != "0")) { nAct = int.Parse(aDatosTarea[1]); } nIdPT = int.Parse(aDatosTarea[0]); iUsuario = int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()); iCodUne = short.Parse(aDatosTarea[2]); string[] aTarea = Regex.Split(slTareas, "##"); for (int i = 0; i < aTarea.Length; i++) { if (aTarea[i] != "") { string[] aTar = Regex.Split(aTarea[i], ";"); sIdTarea = aTar[0]; sEstado = aTar[1]; if ((sIdTarea != "") && (sIdTarea != "0")) { nIdTarea = int.Parse(sIdTarea); if (bPrimeraTarea) { nOrden = TAREAPSP.flCalcularOrden2(null, nIdPT); bPrimeraTarea = false; } else { nOrden++; } TAREAPSP.ModificarPadre(tr, nIdTarea, nIdPT, nAct, nOrden, iUsuario); //Como he podido cambiar de PT hay que ver si tiene los AE del nuevo PT para calcular su estado //Siempre que la tarea no esté FINALIZADA, CERRADA o ANULADA (Victor 14/02/2012) if (sEstado != "3" && sEstado != "4" && sEstado != "5") { bFaltanValoresAE = ProyTec.bFaltanValoresAE(tr, iCodUne, nIdPT); if (bFaltanValoresAE) { TAREAPSP.ModificarEstado(tr, nIdTarea, 2, iUsuario);//Paso a estado PENDIENTE } } } } } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de la tarea", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }