private string ObtenerPT(string sPSN)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            SqlDataReader dr = PLANIFAGENDA.ObtenerTareasAgenda_PT((int)Session["IDFICEPI_IAP"], int.Parse(sPSN));

            while (dr.Read())
            {
                #region Creación tabla HTML
                sb.Append("<tr id='" + dr["t331_idpt"].ToString() + "' ");
                sb.Append("tipo='PT' PSN=" + sPSN + " PT=" + dr["t331_idpt"].ToString() + " F=0 A=0 T=0 ");
                sb.Append("style='height:22px;' bd='' desplegado=0 nivel=" + dr["nivel"].ToString() + " exp=2>");

                sb.Append("<td style='padding-left:3px;'><IMG class=N" + dr["nivel"].ToString() + " onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer;'><IMG class='ICO' src='../../../../images/imgProyTecOff.gif'>");
                sb.Append("<nobr class='NBR W475'>" + dr["t331_despt"].ToString() + "</nobr></td>");

                sb.Append("</tr>" + (char)10);
                #endregion
            }
            dr.Close();
            dr.Dispose();

            sb.Append("</table>");

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los proyectos técnicos.", ex));
        }
    }
    private void ObtenerTotales()
    {
        SqlDataReader dr = PLANIFAGENDA.ObtenerTotalesPlanificacionSemanal(int.Parse(Session["IDFICEPI_IAP"].ToString()), aFechasSemana[0], aFechasSemana[1], aFechasSemana[2], aFechasSemana[3], aFechasSemana[4], aFechasSemana[5], aFechasSemana[6]);

        if (dr.Read())
        {
            cldTotL.InnerText = double.Parse(dr["tot_Lunes"].ToString()).ToString("N");
            cldTotM.InnerText = double.Parse(dr["tot_Martes"].ToString()).ToString("N");
            cldTotX.InnerText = double.Parse(dr["tot_Miercoles"].ToString()).ToString("N");
            cldTotJ.InnerText = double.Parse(dr["tot_Jueves"].ToString()).ToString("N");
            cldTotV.InnerText = double.Parse(dr["tot_Viernes"].ToString()).ToString("N");
            cldTotS.InnerText = double.Parse(dr["tot_Sabado"].ToString()).ToString("N");
            cldTotD.InnerText = double.Parse(dr["tot_Domingo"].ToString()).ToString("N");
        }
        dr.Close();
        dr.Dispose();
    }
 private void BindSchedule(ScheduleCalendar Cale, int idFicepi)
 {
     try
     {
         DataSet ds = PLANIFAGENDA.CatalogoPlanificacion(idFicepi, Cale.StartDate, Cale.StartDate.AddDays(7));
         Cale.DataSource = ds;
         if (ds.Tables[0].Rows.Count == 0)
         {
             DateTime dFecVacia = Fechas.crearDateTime("01/01/2000");
             ds.Tables[0].Rows.Add(new object[4] {
                 -1, "", dFecVacia, dFecVacia
             });
         }
         Cale.DataBind();
         ds.Dispose();
     }
     catch (Exception ex)
     {
         Master.sErrores = Errores.mostrarError("Error al cargar los datos de la agenda:", ex);
     }
 }
    private string ObtenerPSN()
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            sb.Append("<table id='tblDatos' class='texto' style='width:600px; text-align:left;'>");
            sb.Append("<tbody>");
            SqlDataReader dr = PLANIFAGENDA.ObtenerTareasAgenda_PSN((int)Session["IDFICEPI_IAP"]);

            while (dr.Read())
            {
                #region Creación tabla HTML
                sb.Append("<tr id='" + dr["t305_idproyectosubnodo"].ToString() + "' ");
                sb.Append("tipo='PSN' PSN=" + dr["t305_idproyectosubnodo"].ToString() + " ");
                sb.Append("PT=0 F=0 A=0 T=0 style='height:22px;' bd='' desplegado=0 nivel=1 exp=1>");

                sb.Append("<td style='padding-left:3px;'><IMG class=N1 onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer;'><IMG class='ICO' src='../../../../images/imgIconoProyAbierto.gif' title='Proyecto abierto'>");
                sb.Append("<nobr class='NBR W490' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' />  Información] body=[<label style='width:70px'>Proyecto:</label>" + dr["t301_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px'>Responsable:</label>" + dr["responsable"].ToString().Replace((char)34, (char)39) + "<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'>Cliente:</label>" + dr["t302_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t305_seudonimo"].ToString().Replace((char)34, (char)39) + "</nobr></td>");

                sb.Append("</tr>" + (char)10);

                #endregion
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los proyectos.", ex));
        }
    }
    private string ObtenerTareas(string sPSN, string sPT)
    {
        StringBuilder sb       = new StringBuilder();
        string        sDisplay = "";

        try
        {
            SqlDataReader dr = PLANIFAGENDA.ObtenerTareasAgenda_T((int)Session["IDFICEPI_IAP"], int.Parse(sPT));

            while (dr.Read())
            {
                #region Creación tabla HTML
                sb.Append("<tr id='" + dr["t332_idtarea"].ToString() + "' ");
                sb.Append("bd='' tipo=" + dr["tipo"].ToString() + " PSN=" + sPSN + " PT=" + sPT + " F=" + dr["t334_idfase"].ToString() + " ");
                sb.Append("A=" + dr["t335_idactividad"].ToString() + " T=" + dr["t332_idtarea"].ToString() + " ");
                sb.Append("estado=" + dr["estado"].ToString() + " ");

                if ((int)dr["t332_idtarea"] > 0)
                {
                    if ((int)dr["t335_idactividad"] > 0)
                    {
                        sDisplay = "none";
                    }
                    else
                    {
                        sDisplay = "table-row";
                    }

                    sb.Append("style='DISPLAY: " + sDisplay + "; height:22px; cursor:pointer;' ");
                    sb.Append("bd='' desplegado=0 nivel=" + dr["nivel"].ToString() + " >");//exp=4

                    sb.Append("<td class='MA' ondblclick=\"aceptarClick(this)\"><IMG class=N" + dr["nivel"].ToString() + " src='../../../../images/imgSeparador.gif' style='width:9px;cursor:pointer;margin-left:3px;'><IMG class='ICO' src='../../../../images/imgTareaOff.gif'>");

                    switch ((int)dr["nivel"])
                    {
                    case 3: sb.Append("<nobr class='NBR W460 "); break;

                    case 4: sb.Append("<nobr class='NBR W445 "); break;

                    case 5: sb.Append("<nobr class='NBR W430 "); break;
                    }

                    switch ((int)dr["estado"]) //Estado
                    {
                    case 0:                    //Paralizada
                        sb.Append(" paralizada");
                        break;

                    //case 1://Activo
                    //    if ((int)dr["t331_obligaest"] == 1)  //OBLIGAEST
                    //        sb.Append(" tooltip ");
                    //    break;
                    case 2:    //Pendiente
                        sb.Append(" pendiente ");
                        break;

                    case 3:    //Finalizada
                        sb.Append(" finalizada ");
                        break;

                    case 4:    //Cerrada
                        sb.Append(" cerrada ");
                        break;
                    }

                    sb.Append("' onmouseover='TTip(event)'>" + int.Parse(dr["t332_idtarea"].ToString()).ToString("#,###") + " - " + dr["denominacion"].ToString() + "</nobr></td>");
                }
                else if ((int)dr["t335_idactividad"] > 0)
                {
                    if ((int)dr["t334_idfase"] > 0)
                    {
                        sb.Append(" style='DISPLAY: none; height:22px;' bd='' desplegado=1 nivel=" + dr["nivel"].ToString() + " exp=3>");
                    }
                    else
                    {
                        sb.Append(" style='DISPLAY: table-row; height:22px;' bd='' desplegado=1 nivel=" + dr["nivel"].ToString() + " exp=3>");
                    }
                    sb.Append("<td><IMG class=N" + dr["nivel"].ToString() + " onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer; margin-left:3px;'><IMG class='ICO' src='../../../../images/imgActividadOff.gif'>");
                    switch ((int)dr["nivel"])
                    {
                    case 3: sb.Append("<nobr class='NBR W360' onmouseover='TTip(event)'>"); break;

                    case 4: sb.Append("<nobr class='NBR W345' onmouseover='TTip(event)'>"); break;
                    }
                    sb.Append(dr["denominacion"].ToString() + "</nobr></td>");
                }
                else if ((int)dr["t334_idfase"] > 0)
                {
                    sb.Append(" style='DISPLAY: table-row; height:22px;' bd='' desplegado=1 nivel=" + dr["nivel"].ToString() + " exp=3>");
                    sb.Append("<td><IMG class=N" + dr["nivel"].ToString() + " onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer;margin-left:3px;'><IMG class='ICO' src='../../../../images/imgFaseOff.gif'><nobr class='NBR W190' onmouseover='TTip(event)'>" + dr["denominacion"].ToString() + "</nobr></td>");
                }

                sb.Append("</tr>" + (char)10);
                #endregion
            }
            dr.Close();
            dr.Dispose();

            sb.Append("</table>");

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener las tareas.", ex));
        }
    }
    private string obtenerDatosFact(string sDesde, string sHasta)
    {
        StringBuilder sb     = new StringBuilder();
        bool          bError = false;
        string        sResul = "";

        try
        {
            if (!Utilidades.isDate(sDesde))
            {
                sResul = "Error@#@La fecha desde no es correcta";
                bError = true;
            }
            if (!bError && !Utilidades.isDate(sHasta))
            {
                sResul = "Error@#@La fecha hasta no es correcta";
                bError = true;
            }
            if (!bError)
            {
                sb.Append("<table id='tblDatos' style='width: 970px; text-align:right;'>");
                sb.Append("<colgroup>");
                sb.Append("<col style='width:368px;' />");

                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //
                sb.Append("<col style='width:60px;' />"); //

                sb.Append("</colgroup>");
                sb.Append("<tbody>");
                //SqlDataReader dr = Consumo.ObtenerConsumosFacturabilidad((int)Session["IDFICEPI_IAP"], DateTime.Parse(sDesde), DateTime.Parse(sHasta));
                SqlDataReader dr = PLANIFAGENDA.ObtenerFacturabilidadDisponibilidad((int)Session["IDFICEPI_IAP"], DateTime.Parse(sDesde), DateTime.Parse(sHasta));
                #region imputaciones
                string sTooltip = "";
                while (dr.Read())
                {
                    if (dr["t303_idnodo"].ToString() != "")
                    {
                        //sTooltip = Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "<br>Empresa:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + dr["empresa"].ToString().Replace((char)34, (char)39);
                        sTooltip = Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39);
                    }
                    else
                    {
                        sTooltip = "Proveedor:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + dr["empresa"].ToString();
                    }
                    sb.Append("<tr style='height:20px;'>");
                    sb.Append("<td style='text-align:left;'><nobr class='NBR W350' onmouseover='TTip(event)' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' />  Información] body=[" + sTooltip + "] hideselects=[off]\">" + dr["profesional"].ToString().Replace((char)34, (char)39) + "</nobr></td>");

                    sb.Append("<td>");
                    sb.Append(double.Parse(dr["horas_calendario"].ToString()).ToString("N"));
                    sb.Append("</td>");

                    sb.Append("<td>");
                    sb.Append(double.Parse(dr["horas_disponibles"].ToString()).ToString("N"));
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["horas_planificadas_facturables"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["horas_planificadas_facturables"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["horas_planificadas_no_facturables"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["horas_planificadas_no_facturables"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["horas_planificadas_no_tarea"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["horas_planificadas_no_tarea"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["horas_planificadas_totales"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["horas_planificadas_totales"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["horas_reales_facturables"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["horas_reales_facturables"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["horas_reales_no_facturables"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["horas_reales_no_facturables"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["horas_reales_totales"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["horas_reales_totales"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("<td>");
                    if (double.Parse(dr["facturabilidad_teorica"].ToString()) > 0)
                    {
                        sb.Append(double.Parse(dr["facturabilidad_teorica"].ToString()).ToString("N"));
                    }
                    sb.Append("</td>");

                    sb.Append("</tr>");
                }
                dr.Close();
                dr.Dispose();
                #endregion
                sb.Append("</tbody>");
                sb.Append("</table>");

                sResul = "OK@#@" + sb.ToString();
            }
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al obtener los profesionales", ex);
        }
        return(sResul);
    }