private string ObtenerRecursos(string sIdAsunto, string sNodo) { StringBuilder sb = new StringBuilder(); string sDes; int i = 0; try { sb.Append("<table id='tblOpciones2' class='texto MM' style='width: 435px; mantenimiento='1'>"); sb.Append("<colgroup><col style='width:10px;' /><col style='width:20px;' /><col style='width:365px;' /><col style='width:40px;' /></colgroup>"); sb.Append("<tbody id='tbodyDestino'>"); SqlDataReader dr = ASUNTORECURSOS.SelectByt382_idasunto(tr, int.Parse(sIdAsunto)); while (dr.Read()) { sb.Append("<tr id='"); sb.Append(dr["t314_idusuario"].ToString()); sb.Append("' mail='" + dr["mail"].ToString()); sb.Append("' bd='' onclick='mm(event)' onmousedown='DD(event)' style='height:20px' "); sb.Append("sexo='" + dr["t001_sexo"].ToString() + "' "); sb.Append("baja='" + dr["baja"].ToString() + "' "); sb.Append("tipo='" + dr["tipo"].ToString() + "' "); //if (dr["t303_idnodo"].ToString() == "") sb.Append("tipo='E' "); //else if (dr["t303_idnodo"].ToString() == sNodo) sb.Append("tipo='P' "); //else sb.Append("tipo='N' "); sb.Append("><td></td><td></td>"); sDes = dr["nomRecurso"].ToString(); if (sDes.Length > 80) { sb.Append("<td title='" + sDes + "'>"); } else { sb.Append("<td>"); } sb.Append("<nobr class='NBR W360'>" + sDes + "</NOBR></label></td>"); //sb.Append("<td style='text-align:left;'><input type='checkbox' style='width:15;' id='chkNot"); sb.Append("<td><input type='checkbox' style='width:20px; margin-left:3px;' id='chkNot"); sb.Append(i.ToString()); sb.Append("' class='checkTabla' onclick='actualizarDatos(this);' "); if ((bool)dr["t388_notificar"]) { sb.Append("checked=true"); } sb.Append("></td></tr>"); i++; } dr.Close(); dr.Dispose(); sb.Append("</tbody></table>"); this.strTablaHTMLIntegrantes = sb.ToString(); return("OK@#@" + sb.ToString()); } catch (Exception ex) { return("Error@#@" + Errores.mostrarError("Error al obtener las personas", ex)); } }
protected string Grabar(string strDatosTarea, string slIntegrantes) { string sResul = "", sAccionBD, sIdRecurso; int iCodAsunto; byte iEstadoAnt, iEstadoAct; double dEtp, dEtr; bool bNotificable = false, bEnviarAlerta = true, 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 asunto string[] aDatosTarea = Regex.Split(strDatosTarea, "##"); // 0 -> id asunto (si -1 es un alta) // 1 -> descripcion corta // 2 -> descripcion larga // 3 -> referencia externa // 4 -> f/notificación // 5 -> f/fin // 6 -> f/limite // 7 -> alerta // 8 -> departamento // 9 -> tipo // 10-> estado // 11-> severidad // 12-> prioridad // 13-> sistema // 14-> esfuerzo planificado // 15-> esfuerzo real // 16 -> observaciones // 17 -> cod une (vacío) // 18 -> nº proyecto // 19 -> notificador // 20 -> responsable // 21 -> estado anterior // 22 -> desc Responsable // 23 -> desc Tipo // 24 -> desc Estado // 25 -> desc Severidad // 26 -> desc Prioridad // 27 -> Des PE // 28 -> t305_idproyectosubnodo if (aDatosTarea[0] == "") { iCodAsunto = -1; } else { iCodAsunto = int.Parse(aDatosTarea[0]); } //if (aDatosTarea[4] != "") dFno = DateTime.Parse(aDatosTarea[4]); //if (aDatosTarea[5] != "") dFfp = DateTime.Parse(aDatosTarea[5]); //if (aDatosTarea[6] != "") dFLi = DateTime.Parse(aDatosTarea[6]); DateTime dFno = DateTime.Parse(aDatosTarea[4]); DateTime dFfp = DateTime.Parse((aDatosTarea[5] == "") ? "01/01/1900" : aDatosTarea[5]); DateTime dFLi = DateTime.Parse((aDatosTarea[6] == "") ? "01/01/1900" : aDatosTarea[6]); if (aDatosTarea[21] == "") { iEstadoAnt = byte.Parse(aDatosTarea[10]); } else { iEstadoAnt = byte.Parse(aDatosTarea[21]); } iEstadoAct = byte.Parse(aDatosTarea[10]); if (aDatosTarea[14] != "") { dEtp = double.Parse(aDatosTarea[14]); } else { dEtp = 0; } if (aDatosTarea[15] != "") { dEtr = double.Parse(aDatosTarea[15]); } else { dEtr = 0; } if (iCodAsunto == -1) { bAlta = true; iCodAsunto = ASUNTO.Insert(tr, int.Parse(aDatosTarea[28]), Utilidades.unescape(aDatosTarea[7]), Utilidades.unescape(aDatosTarea[1]), Utilidades.unescape(aDatosTarea[2]), Utilidades.unescape(aDatosTarea[8]), iEstadoAct, dEtp, dEtr, dFfp, dFLi, dFno, Utilidades.unescape(aDatosTarea[19]), Utilidades.unescape(aDatosTarea[16]), byte.Parse(aDatosTarea[12]), Utilidades.unescape(aDatosTarea[3]), int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()), int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()), byte.Parse(aDatosTarea[11]), Utilidades.unescape(aDatosTarea[13]), int.Parse(aDatosTarea[9])); ASUNTOESTADO.Insert(tr, iCodAsunto, iEstadoAct, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString())); } else { bAlta = false; ASUNTO.Update(tr, Utilidades.unescape(aDatosTarea[7]), Utilidades.unescape(aDatosTarea[1]), Utilidades.unescape(aDatosTarea[2]), Utilidades.unescape(aDatosTarea[8]), iEstadoAct, dEtp, dEtr, dFfp, dFLi, dFno, iCodAsunto, Utilidades.unescape(aDatosTarea[19]), Utilidades.unescape(aDatosTarea[16]), byte.Parse(aDatosTarea[12]), Utilidades.unescape(aDatosTarea[3]), int.Parse(aDatosTarea[20]), byte.Parse(aDatosTarea[11]), Utilidades.unescape(aDatosTarea[13]), int.Parse(aDatosTarea[9])); if (iEstadoAnt != iEstadoAct) { ASUNTOESTADO.Insert(tr, iCodAsunto, iEstadoAct, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString())); } } #endregion #region Datos integrantes 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; } switch (sAccionBD) { case "I": ASUNTORECURSOS.Insert(tr, int.Parse(sIdRecurso), iCodAsunto, bNotificable); break; case "D": //delete ASUNTORECURSOS.Delete(tr, iCodAsunto, int.Parse(sIdRecurso)); break; case "U": //update ASUNTORECURSOS.Update(tr, int.Parse(sIdRecurso), iCodAsunto, bNotificable); break; } } }//for } #endregion #region Enviar correos if (bEnviarAlerta) { //if (bAlta) sCad = "I"; //else sCad = "U"; EnviarCorreoAlerta(iCodAsunto.ToString(), strDatosTarea, slIntegrantes, bAlta); } #endregion Conexion.CommitTransaccion(tr); sResul = "OK@#@" + iCodAsunto.ToString(); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del asunto", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }