private string ObtenerRecursos(string sIdAccion, string sNodo) { StringBuilder sb = new StringBuilder(); int i = 0; string sDes; 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 = ACCIONRECURSOS_T.SelectByt601_idaccion(tr, int.Parse(sIdAccion)); 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><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["t605_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, sCad, 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 -> enviar alerta (S/N) // 12 -> Id responsable del asunto // 13 -> num Tarea 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_T.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_T.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; switch (sAccionBD) { case "I": ACCIONRECURSOS_T.Insert(tr, int.Parse(sIdRecurso), iCodAccion, bNotificable); break; case "D": ACCIONRECURSOS_T.Delete(tr, iCodAccion, int.Parse(sIdRecurso)); break; case "U": ACCIONRECURSOS_T.Update(tr, int.Parse(sIdRecurso), iCodAccion, bNotificable); break; } } }//for } #endregion #region Enviar correos if (bEnviarAlerta) { oRec = iCodAccion.ToString() + "##"; oRec += Utilidades.unescape(aDatosTarea[2]) + "##";//descripcion corta 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[13] + "##" ;//cod Tarea if (bAlta) sCad = "I"; else sCad = "U"; sIdResponsable = aDatosTarea[12]; 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; }