private string ObtenerIntegrantes(int nIdPE, string sCodCR) {// Devuelve el código HTML del catalogo de personas que son integrantes del pool de RTPTs StringBuilder sb = new StringBuilder(); string sCod, sDes; try { SqlDataReader dr = POOLRPT.SelectByProyecto(nIdPE); sb.Append("<table id='tblOpciones2' class='texto MM' style='width: 390px;' mantenimiento='1'>"); sb.Append("<colgroup><col style='width:10px;' /><col style='width:20px;' /><col style='width:360px;' /></colgroup>"); sb.Append("<tbody id='tbodyDestino'>"); while (dr.Read()) { sDes = dr["empleado"].ToString(); sCod = dr["t314_idusuario"].ToString(); sb.Append("<tr id='" + sCod + "' bd='' onClick='mm(event)' style='height:20px' onmousedown='DD(event)'"); sb.Append(" sexo='" + dr["t001_sexo"].ToString() + "' "); if (dr["t001_fecbaja"].ToString() == "") { sb.Append("baja='N' "); } else { if (System.Convert.ToDateTime(dr["t001_fecbaja"].ToString()) < System.DateTime.Today) { sb.Append("baja='S' "); } else { sb.Append("baja='N' "); } } sb.Append("tipo='" + dr["tipo"].ToString() + "' "); //if (dr["t303_idnodo"].ToString() == "") sb.Append("tipo='E' "); //else if (dr["t303_idnodo"].ToString() == sCodCR) sb.Append("tipo='P' "); //else sb.Append("tipo='N' "); sb.Append("><td></td><td></td>"); sb.Append("<td><NOBR id='lbl" + sCod + "' class='NBR W350' title='" + sDes + "'>" + sDes + "</NOBR></td></tr>"); } sb.Append("</tbody></table>"); dr.Close(); dr.Dispose(); return(sb.ToString()); } catch (Exception) { //Master.sErrores = Errores.mostrarError("Error al obtener las personas", ex); return("error@#@"); } }
private string Grabar(string sCodPE, string sCadena) {//En el parametro de entrada tenemos una lista de codigos de personas separados por comas //Además de grabar en el pool hay que asignarlos como RTPTs en todos los PT del PE string sCad, sResul = "", sCadPTs, sProf, sOp; //short iCodCR; int iCodPE, iCodPT, idRecurso; SqlConnection oConn = null; SqlTransaction tr = null; try { iCodPE = int.Parse(sCodPE); oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); //Borrar los integrantes existentes //POOLRPT.DeleteByProyecto(tr, iCodPE); if (sCadena != "") {//Con la cadena generamos una lista y la recorremos para grabar cada elemento //Obtengo una cadena con los proyectos técnicos del proyecto económico sCadPTs = PROYECTO.ObtenerPTs(iCodPE); string[] aPTs = Regex.Split(sCadPTs, @"@#@"); //Para cada integrante del pool, lo intentamos insertar en cada proyecto técnico string[] aProf = Regex.Split(sCadena, @"##"); for (int i = 0; i < aProf.Length - 1; i++) { sCad = aProf[i]; if (sCad != "") { string[] aTareas = Regex.Split(sCad, @","); sOp = aTareas[0]; sProf = aTareas[1]; if (sProf != "") { idRecurso = int.Parse(sProf); switch (sOp) { case "I": POOLRPT.Insert(tr, iCodPE, idRecurso); for (int j = 0; j < aPTs.Length - 1; j++) { //Si el recurso no es RTPT lo inserto sCad = aPTs[j]; if (sCad != "") { iCodPT = int.Parse(sCad); if (!RTPT.ExisteRTPT(tr, iCodPT, idRecurso)) { RTPT.Insert(tr, iCodPT, idRecurso); } } } break; case "D": POOLRPT.Delete(tr, iCodPE, idRecurso); break; } } } }//for } Conexion.CommitTransaccion(tr); //sResul = "OK@#@" + strTablaHTMLIntegrantes; sResul = "OK@#@";// +sCad; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar la lista de integrantes", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }