protected string ObtenerTareas(string sIdAccion) { //Relacion de tareas asignadas a la acción string sResul = "", sCad, sFecha, sCodTarea; double fPrev = 0, fCons = 0, fAvance = 0; bool bAvanceAutomatico; StringBuilder sbuilder = new StringBuilder(); try { sbuilder.Append("<table id='tblTareas' class='texto MANO' style='width: 920px; ' >"); sbuilder.Append("<colgroup><col style='width:50px;' />"); //idTarea sbuilder.Append("<col style='width:370px;' />"); //Desc Tarea sbuilder.Append("<col style='width:75px;'/>"); //ETPL sbuilder.Append("<col style='width:75px;'/>"); //FIPL sbuilder.Append("<col style='width:75px;'/>"); //FFPL sbuilder.Append("<col style='width:75px;'/>"); //ETPR sbuilder.Append("<col style='width:75px;'/>"); //FFPR sbuilder.Append("<col style='width:75px;'/>"); //CONSUMO sbuilder.Append("<col style='width:50px;' /></colgroup>"); //AVANCE sbuilder.Append("<tbody>"); SqlDataReader dr = ACCIONTAREAS_PT.SelectByt410_idaccion(tr, int.Parse(sIdAccion)); while (dr.Read()) { StringBuilder sbTitle = new StringBuilder(); sbTitle.Append("<b>Proy. Eco.</b>: "); sbTitle.Append(dr["nom_proyecto"].ToString().Replace((char)34, (char)39)); sbTitle.Append("<br><b>Proy. Téc.</b>: "); sbTitle.Append(dr["t331_despt"].ToString().Replace((char)34, (char)39)); if (dr["t334_desfase"].ToString() != "") { sbTitle.Append("<br><b>Fase</b>: "); sbTitle.Append(dr["t334_desfase"].ToString().Replace((char)34, (char)39)); } if (dr["t335_desactividad"].ToString() != "") { sbTitle.Append("<br><b>Actividad</b>: "); sbTitle.Append(dr["t335_desactividad"].ToString().Replace((char)34, (char)39)); } sCodTarea = dr["t332_idtarea"].ToString(); sbuilder.Append("<tr bd='N' id='" + sCodTarea); sbuilder.Append("' onclick='mm(event)' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../../images/info.gif' style='vertical-align:middle'> Estructura] body=["); sbuilder.Append(sbTitle + "]\" style='height:16px'>"); sbuilder.Append("<td style='text-align:right;'>" + int.Parse(sCodTarea).ToString("#,###") + "</td>"); sbuilder.Append("<td><nobr class='NBR W370' style='padding-left:5px;'>" + dr["t332_destarea"].ToString() + "</nobr></td>"); if (dr["t332_etpl"] != DBNull.Value) { sbuilder.Append("<td style='text-align:right;'>"); sbuilder.Append(double.Parse(dr["t332_etpl"].ToString()).ToString("N")); sbuilder.Append("</td>"); } else { sbuilder.Append("<td></td>"); } sFecha = dr["t332_fipl"].ToString(); if (sFecha != "") { sFecha = DateTime.Parse(dr["t332_fipl"].ToString()).ToShortDateString(); } sbuilder.Append("<td style='padding-left:5px;'>" + sFecha + "</td>"); sFecha = dr["t332_ffpl"].ToString(); if (sFecha != "") { sFecha = DateTime.Parse(dr["t332_ffpl"].ToString()).ToShortDateString(); } sbuilder.Append("<td>" + sFecha + "</td>"); if (dr["t332_etpr"] != DBNull.Value) { sbuilder.Append("<td style='text-align:right;'>"); sbuilder.Append(double.Parse(dr["t332_etpr"].ToString()).ToString("N")); sbuilder.Append("</td>"); } else { sbuilder.Append("<td></td>"); } sFecha = dr["t332_ffpr"].ToString(); if (sFecha != "") { sFecha = DateTime.Parse(dr["t332_ffpr"].ToString()).ToShortDateString(); } sbuilder.Append("<td style='padding-left:5px;'>" + sFecha + "</td>"); sbuilder.Append("<td style='text-align:right;'>" + double.Parse(dr["consumo"].ToString()).ToString("N") + "</td>"); //%Avance bAvanceAutomatico = (bool)dr["t332_avanceauto"]; if (!bAvanceAutomatico) { fAvance = double.Parse(dr["t332_AVANCE"].ToString()); } else { fPrev = double.Parse(dr["t332_etpr"].ToString()); fCons = double.Parse(dr["Consumo"].ToString()); if (fPrev == 0) { fAvance = 0; } else { fAvance = (fCons * 100) / fPrev; } } sCad = fAvance.ToString("N"); sbuilder.Append("<td style='text-align:right; padding-right:5px;'>" + sCad); sbuilder.Append("</td></tr>"); //i++; } dr.Close(); dr.Dispose(); sbuilder.Append("</tbody>"); sbuilder.Append("</table>"); sResul = "OK@#@" + sbuilder.ToString();; } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al obtener la relación de tareas.", ex); } return(sResul); }
protected string Grabar(string strDatosTarea, string slIntegrantes, string sTareas) { string sResul = "", sAccionBD, sIdRecurso, sCad, sTipoLinea, sCodTarea, oRec, sIdResponsable; int iCodAccion, iCodAsunto; byte iAvance; DateTime?dFfp = null; DateTime?dFLi = null; bool bNotificable = false, bEnviarAlerta = false, bAlta = false; try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } try { #region Datos accion string[] aDatosTarea = Regex.Split(strDatosTarea, "##"); // 0 -> id accion (si -1 es un alta) // 1 -> avance // 2 -> descripcion corta // 3 -> descripcion larga // 4 -> departamento // 5 -> f/fin // 6 -> f/limite // 7 -> alerta // 8 -> observaciones // 9 -> asunto // 10 -> des asunto // 11 -> num PE // 12 -> des PE // 13 -> enviar alerta (S/N) // 14 -> Id responsable del asunto // 15 -> num PT // 16 -> des PT //if (aDatosTarea[13] == "S") bEnviarAlerta = true; bEnviarAlerta = true; if (aDatosTarea[0] == "") { iCodAccion = -1; } else { iCodAccion = int.Parse(aDatosTarea[0]); } iCodAsunto = int.Parse(aDatosTarea[9]); if (aDatosTarea[1] == "") { iAvance = 0; } else { iAvance = byte.Parse(aDatosTarea[1]); } if (aDatosTarea[5] != "") { dFfp = DateTime.Parse(aDatosTarea[5]); } if (aDatosTarea[6] != "") { dFLi = DateTime.Parse(aDatosTarea[6]); } if (iCodAccion == -1) { bAlta = true; } if (bAlta) { DateTime dtNow = System.DateTime.Now; iCodAccion = ACCION_PT.Insert(tr, dtNow, iCodAsunto, Utilidades.unescape(aDatosTarea[7]), iAvance, Utilidades.unescape(aDatosTarea[2]), Utilidades.unescape(aDatosTarea[3]), Utilidades.unescape(aDatosTarea[4]), dFfp, dFLi, Utilidades.unescape(aDatosTarea[8])); } else { ACCION_PT.Update(tr, Utilidades.unescape(aDatosTarea[7]), iAvance, Utilidades.unescape(aDatosTarea[2]), Utilidades.unescape(aDatosTarea[3]), Utilidades.unescape(aDatosTarea[4]), dFfp, dFLi, iCodAccion, Utilidades.unescape(aDatosTarea[8])); } #endregion #region Datos integrantes //OfiTec.BorrarIntegrantes(iCodCR); if (slIntegrantes == "") {//Tenemos lista vacía. No hacemos nada } else {//Con la cadena generamos una lista y la recorremos para grabar cada elemento string[] aPersonas = Regex.Split(slIntegrantes, @"///"); for (int i = 0; i < aPersonas.Length - 1; i++) { if (aPersonas[i] != "") { string[] aIntegrante = Regex.Split(aPersonas[i], @"##"); sAccionBD = aIntegrante[0]; sIdRecurso = aIntegrante[1]; if (aIntegrante[2] == "1") { bNotificable = true; } else { bNotificable = false; } oRec = iCodAccion.ToString() + "##" + sIdRecurso + "##"; oRec += Utilidades.unescape(aDatosTarea[2]) + "##"; //descripcion corta oRec += aDatosTarea[11] + "##" + Utilidades.unescape(aDatosTarea[12]) + "##"; //cod y des PE oRec += aDatosTarea[9] + "##" + Utilidades.unescape(aDatosTarea[10]) + "##"; //cod y des Asunto oRec += dFLi.ToString() + "##" + dFfp.ToString() + "##"; switch (sAccionBD) { case "I": ACCIONRECURSOS_PT.Insert(tr, int.Parse(sIdRecurso), iCodAccion, bNotificable); //if (bNotificable) EnviarCorreoRecurso("I", oRec); break; case "D": //delete ACCIONRECURSOS_PT.Delete(tr, iCodAccion, int.Parse(sIdRecurso)); //if (bNotificable) EnviarCorreoRecurso("D", oRec); break; case "U": //update ACCIONRECURSOS_PT.Update(tr, int.Parse(sIdRecurso), iCodAccion, bNotificable); //if (bNotificable) EnviarCorreoRecurso("U", oRec); break; } } }//for } #endregion #region tareas //Grabamos las tareas asociadas a la acción if (sTareas != "") { string[] aTareas = Regex.Split(sTareas, @"##"); for (int i = 0; i < aTareas.Length - 1; i++) { sCad = aTareas[i]; sTipoLinea = sCad.Substring(0, 1); sCodTarea = quitaPuntos(sCad.Substring(1)); if (sTipoLinea == "D") {//Borrar accion-tarea ACCIONTAREAS_PT.Delete(tr, iCodAccion, int.Parse(sCodTarea)); } else { if (sTipoLinea == "I") {//Insertar accion-tarea ACCIONTAREAS_PT.Insert(tr, int.Parse(sCodTarea), iCodAccion); } } } } #endregion #region Enviar correos if (bEnviarAlerta) { oRec = iCodAccion.ToString() + "##"; oRec += Utilidades.unescape(aDatosTarea[2]) + "##"; //descripcion corta oRec += aDatosTarea[11] + "##" + Utilidades.unescape(aDatosTarea[12]) + "##"; //cod y des PE oRec += aDatosTarea[9] + "##" + Utilidades.unescape(aDatosTarea[10]) + "##"; //cod y des Asunto oRec += dFLi.ToString() + "##" + dFfp.ToString() + "##"; oRec += aDatosTarea[1] + "##"; //avance oRec += Utilidades.unescape(aDatosTarea[3]) + "##"; //descripcion larga accion oRec += Utilidades.unescape(aDatosTarea[8]) + "##"; //observaciones oRec += Utilidades.unescape(aDatosTarea[4]) + "##"; //Dpto oRec += aDatosTarea[15] + "##" + Utilidades.unescape(aDatosTarea[16]) + "##"; //cod y des PT if (bAlta) { sCad = "I"; } else { sCad = "U"; } sIdResponsable = aDatosTarea[14]; EnviarCorreoAlerta(sCad, oRec, Utilidades.unescape(aDatosTarea[7]), slIntegrantes, sIdResponsable, bAlta); } #endregion Conexion.CommitTransaccion(tr); sResul = "OK@#@" + iCodAccion.ToString(); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de la acción", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }