protected void GenerarGrafico(string sDesde, string sHasta)
    {
        // Establezco el tipo de grafico
        Chart1.Series["Default"].ChartType = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), "Doughnut", true);
        // Relleno los datos
        SqlDataReader dr;

        dr = Consumo.ObtenerIndicadoresFacturabilidad((int)Session["IDFICEPI_IAP"], DateTime.Parse(sDesde), DateTime.Parse(sHasta));
        double dHorasFact   = 0;
        double dHorasNoFact = 0;

        while (dr.Read())
        {
            if (double.Parse(dr["horas_facturables"].ToString()) > 0)
            {
                dHorasFact += double.Parse(dr["horas_facturables"].ToString());
            }
            if (double.Parse(dr["horas_no_facturables"].ToString()) > 0)
            {
                dHorasNoFact += double.Parse(dr["horas_no_facturables"].ToString());
            }
        }
        double dPorFact   = (dHorasFact * 100) / (dHorasFact + dHorasNoFact);
        double dPorNoFact = 100 - dPorFact;

        double[] yValues = { dPorFact, dPorNoFact };
        string[] xValues = { dPorFact.ToString("#,###.##") + "%", dPorNoFact.ToString("#,###.##") + "%" };
        Chart1.Series["Default"].Points.DataBindXY(xValues, yValues);

        // Remove supplemental series and chart area if they already exsist
        if (Chart1.Series.Count > 1)
        {
            Chart1.Series.RemoveAt(1);
            Chart1.ChartAreas.RemoveAt(1);
            // Reset automatic position for the default chart area
            Chart1.ChartAreas["ChartArea1"].Position.Auto = true;
        }
        //Chart1.Series[0].Points[Chart1.Series[0].Points.Count - 1].Color = Color.FromArgb(202, 107, 75);
        //Chart1.Series[0].Points[0].Color = System.Drawing.ColorTranslator.FromHtml("f8d14c");
        Chart1.Series[0].Points[0].Color = Color.FromArgb(248, 209, 76);
        Chart1.Series[0].Points[1].Color = Color.FromArgb(213, 213, 213);
    }
Exemple #2
0
    private string obtenerDatosFact(string sDesde, string sHasta, string sPantallaCompleta)
    {
        StringBuilder sb = new StringBuilder();
        string        sResul = "", sToolTip = "";
        SqlDataReader dr;
        bool          bError = false;

        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)
            {
                if (sPantallaCompleta == "T")
                {
                    sb.Append("<table id='tblDatos' style='width:1220px; text-align:right;'>");
                    sb.Append("<colgroup>");
                    sb.Append("<col style='width:295px;' />");
                    sb.Append("<col style='width:300px;' />");

                    sb.Append("<col style='width:25px;' />");
                    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>");
                    dr = Consumo.ObtenerConsumosFacturabilidad((int)Session["IDFICEPI_IAP"], DateTime.Parse(sDesde), DateTime.Parse(sHasta));
                    #region imputaciones
                    while (dr.Read())
                    {
                        sToolTip = "<label style='width:60px'>Proy. Tec.:</label>" + dr["t331_despt"].ToString();
                        if (dr["t334_desfase"].ToString() != "")
                        {
                            sToolTip += "<br><label style='width:60px'>Fase:</label>" + dr["t334_desfase"].ToString();
                        }
                        if (dr["t335_desactividad"].ToString() != "")
                        {
                            sToolTip += "<br><label style='width:60px'>Actividad:</label>" + dr["t335_desactividad"].ToString();
                        }
                        sToolTip += "<br><label style='width:60px'>Tarea:</label>" + dr["t332_destarea"].ToString().Replace((char)34, (char)39);

                        sb.Append("<tr style='height:20px;'>");
                        sb.Append("<td style='text-align:left;'><nobr class='NBR W280' onmouseover='TTip(event)'>" + double.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t305_seudonimo"].ToString() + "</nobr></td>");
                        sb.Append("<td style='border-right:0px;text-align:left'><nobr class='NBR W280 MANO' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../images/info.gif' style='vertical-align:middle' />  Información] body=[" + sToolTip + "] hideselects=[off]\">" + double.Parse(dr["t332_idtarea"].ToString()).ToString("#,###") + " - " + dr["t332_destarea"].ToString().Replace((char)34, (char)39) + "</nobr></td>");

                        sb.Append("<td>");
                        if ((bool)dr["t332_facturable"])
                        {
                            sb.Append("<img src='" + Session["strServer"].ToString() + "images/imgIcoMonedas.gif' width='16' height='16' class='ICO'>");
                        }
                        else
                        {
                            sb.Append("<img src='" + Session["strServer"].ToString() + "images/imgIcoMonedasOff.gif' width='16' height='16' class='ICO'>");
                        }
                        sb.Append("</td>");

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

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

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

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

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

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

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

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

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

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

                        sb.Append("</tr>");
                    }
                    dr.Close();
                    dr.Dispose();
                    #endregion
                    sb.Append("</tbody>");
                    sb.Append("</table>");
                }
                else
                {//Pantalla a 1024
                    sb.Append("<table id='tblDatos' style='width:980px; text-align:right;'>");
                    sb.Append("<colgroup>");
                    sb.Append("<col style='width:175px;' />");
                    sb.Append("<col style='width:185px;' />");

                    sb.Append("<col style='width:20px;' />");
                    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>");
                    dr = Consumo.ObtenerConsumosFacturabilidad((int)Session["IDFICEPI_IAP"], DateTime.Parse(sDesde), DateTime.Parse(sHasta));
                    #region imputaciones
                    while (dr.Read())
                    {
                        sToolTip = "<label style='width:60px'>Proy. Tec.:</label>" + dr["t331_despt"].ToString();
                        if (dr["t334_desfase"].ToString() != "")
                        {
                            sToolTip += "<br><label style='width:60px'>Fase:</label>" + dr["t334_desfase"].ToString();
                        }
                        if (dr["t335_desactividad"].ToString() != "")
                        {
                            sToolTip += "<br><label style='width:60px'>Actividad:</label>" + dr["t335_desactividad"].ToString();
                        }
                        sToolTip += "<br><label style='width:60px'>Tarea:</label>" + dr["t332_destarea"].ToString().Replace((char)34, (char)39);

                        sb.Append("<tr style='height:20px;'>");

                        sb.Append("<td style='text-align:left;'><nobr class='NBR W170' onmouseover='TTip(event)'>" + double.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t305_seudonimo"].ToString() + "</nobr></td>");
                        sb.Append("<td style='border-right:0px;text-align:left'><nobr class='NBR W170 MANO' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../images/info.gif' style='vertical-align:middle' />  Información] body=[" + sToolTip + "] hideselects=[off]\">" + double.Parse(dr["t332_idtarea"].ToString()).ToString("#,###") + " - " + dr["t332_destarea"].ToString().Replace((char)34, (char)39) + "</nobr></td>");

                        sb.Append("<td>");
                        if ((bool)dr["t332_facturable"])
                        {
                            sb.Append("<img src='" + Session["strServer"].ToString() + "images/imgIcoMonedas.gif' width='16' height='16' class='ICO'>");
                        }
                        else
                        {
                            sb.Append("<img src='" + Session["strServer"].ToString() + "images/imgIcoMonedasOff.gif' width='16' height='16' class='ICO'>");
                        }
                        sb.Append("</td>");

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

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

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

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

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

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

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

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

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

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

                        sb.Append("</tr>");
                    }
                    dr.Close();
                    dr.Dispose();
                    #endregion
                    sb.Append("</tbody>");
                    sb.Append("</table>");
                }
                dr = Consumo.ObtenerIndicadoresFacturabilidad((int)Session["IDFICEPI_IAP"], DateTime.Parse(sDesde), DateTime.Parse(sHasta));
                #region indicadores
                double dFact = 0, dNoFact = 0;
                sb.Append("@#@<table id='tblDatos2' class='texto' style='width:700px;text-align:right;' cellpadding='0' cellspacing='0'>");
                sb.Append("<colgroup>");
                sb.Append("<col style='width:195px;' />");
                sb.Append("<col style='width:300px;' />");

                sb.Append("<col style='width:100px;' />"); //
                sb.Append("<col style='width:100px;' />"); //
                sb.Append("</colgroup>");
                sb.Append("<tbody>");
                while (dr.Read())
                {
                    sb.Append("<tr style='height:20px;'>");
                    sb.Append("<td style='text-align:left;padding-left:2px;'><nobr class='NBR W190' onmouseover='TTip(event)'>" + dr["t320_denominacion"].ToString() + "</nobr></td>");
                    sb.Append("<td style='text-align:left;padding-left:2px;'><nobr class='NBR W280' onmouseover='TTip(event)'>" + dr["t323_denominacion"].ToString() + "</nobr></td>");

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

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

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

                GenerarGrafico(dFact, dNoFact);
                #endregion
                sResul = "OK@#@" + sb.ToString();
            }
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al obtener los datos de facturabililidad", ex);
        }
        return(sResul);
    }