예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Usuario"] == null)
            {
                ScriptManager.RegisterStartupScript(Page, this.GetType(), "mykey", "CancelEdit();", true);
            }

            try
            {
                if (!Page.IsPostBack)
                {
                    LoginWCF.LoginWCFClient objLoginWCF = new LoginWCF.LoginWCFClient();
                    objLoginWCF.AuditoriaMenu_Registrar(System.Web.HttpContext.Current.Request.Url.AbsolutePath, Environment.MachineName,
                                                        ((Usuario_LoginResult)System.Web.HttpContext.Current.Session["Usuario"]).idUsuario);

                    if (!string.IsNullOrEmpty(Request.QueryString["objCliente"]))
                    {
                        List <string> objCliente = JsonHelper.JsonDeserialize <List <string> >(Request.QueryString["objCliente"]);


                        var idEmpresa     = ((Usuario_LoginResult)Session["Usuario"]).idEmpresa;
                        var codigoUsuario = ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario;
                        EstadoCuentaWCFClient objEstadoCuentaWCF = new EstadoCuentaWCFClient();
                        var lstSource = objEstadoCuentaWCF.EstadoCuenta_LetrasVencPorPlazo(idEmpresa, codigoUsuario, objCliente[0]
                                                                                           , objCliente[1], Convert.ToDateTime(objCliente[2]), Convert.ToDateTime(objCliente[3])
                                                                                           , Convert.ToDateTime(objCliente[4]), Convert.ToDateTime(objCliente[5]));

                        var lstPlazos = new List <int>
                        {
                            30,
                            45,
                            60,
                            90,
                            120
                        };

                        List <GS_GetLetrasVencPorPlazoResult> lstFiltrada = lstSource.Where(x => x.DiasMora > 0 && x.DiasMora < x.DiasCredito).ToList();

                        var lstChart = new List <ChartClass>();

                        foreach (var item in lstPlazos)
                        {
                            int sum = 0;
                            switch (item)
                            {
                            case 30:
                                sum = lstFiltrada.Count(x => x.DiasCreditoDoc > 0 && x.DiasCreditoDoc <= item);
                                lstChart.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFiltrada.Count())
                                });
                                break;

                            case 45:
                                sum = lstFiltrada.Count(x => x.DiasCreditoDoc > 30 && x.DiasCreditoDoc <= item);
                                lstChart.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFiltrada.Count())
                                });
                                break;

                            case 60:
                                sum = lstFiltrada.Count(x => x.DiasCreditoDoc > 45 && x.DiasCreditoDoc <= item);
                                lstChart.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFiltrada.Count())
                                });
                                break;

                            case 90:
                                sum = lstFiltrada.Count(x => x.DiasCreditoDoc > 60 && x.DiasCreditoDoc <= item);
                                lstChart.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFiltrada.Count())
                                });
                                break;

                            case 120:
                                sum = lstFiltrada.Count(x => x.DiasCreditoDoc > 90);
                                lstChart.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFiltrada.Count())
                                });
                                break;
                            }
                        }

                        RadHtmlChart1.ChartTitle.Text = "Letras Vencidas hasta " + objCliente[3];

                        RadHtmlChart1.DataSource = lstChart;
                        RadHtmlChart1.DataBind();

                        var lstFacturaSource = objEstadoCuentaWCF.EstadoCuenta_FacturasVencPorPlazo(idEmpresa, codigoUsuario, objCliente[0]
                                                                                                    , objCliente[1], Convert.ToDateTime(objCliente[2]), Convert.ToDateTime(objCliente[3])
                                                                                                    , Convert.ToDateTime(objCliente[4]), Convert.ToDateTime(objCliente[5]));


                        List <GS_GetFacturasVencPorPlazoResult> lstFacturaFiltrada = lstFacturaSource.Where(x => x.DiasMora > 0 && x.DiasMora < x.DiasCredito).ToList();

                        var lstChartFactura = new List <ChartClass>();

                        foreach (var item in lstPlazos)
                        {
                            int sum = 0;
                            switch (item)
                            {
                            case 30:
                                sum = lstFacturaFiltrada.Count(x => x.DiasCreditoDoc > 0 && x.DiasCreditoDoc <= item);
                                lstChartFactura.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFacturaFiltrada.Count())
                                });
                                break;

                            case 45:
                                sum = lstFacturaFiltrada.Count(x => x.DiasCreditoDoc > 30 && x.DiasCreditoDoc <= item);
                                lstChartFactura.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFacturaFiltrada.Count())
                                });
                                break;

                            case 60:
                                sum = lstFacturaFiltrada.Count(x => x.DiasCreditoDoc > 45 && x.DiasCreditoDoc <= item);
                                lstChartFactura.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFacturaFiltrada.Count())
                                });
                                break;

                            case 90:
                                sum = lstFacturaFiltrada.Count(x => x.DiasCreditoDoc > 60 && x.DiasCreditoDoc <= item);
                                lstChartFactura.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFacturaFiltrada.Count())
                                });
                                break;

                            case 120:
                                sum = lstFacturaFiltrada.Count(x => x.DiasCreditoDoc > 90);
                                lstChartFactura.Add(new ChartClass {
                                    AxisX = item.ToString(), SerieDecimal = ((sum * 100) / lstFacturaFiltrada.Count())
                                });
                                break;
                            }
                        }

                        RadHtmlChart2.ChartTitle.Text = "Facturas Vencidas hasta " + objCliente[3];

                        RadHtmlChart2.DataSource = lstChartFactura;
                        RadHtmlChart2.DataBind();
                    }
                }
            }
            catch (Exception ex)
            {
                //lblMensaje.Text = "ERROR: " + ex.Message;
                //lblMensaje.CssClass = "mensajeError";
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Usuario"] == null)
            {
                ScriptManager.RegisterStartupScript(Page, this.GetType(), "mykey", "CancelEdit();", true);
            }

            try
            {
                if (!Page.IsPostBack)
                {
                    LoginWCF.LoginWCFClient objLoginWCF = new LoginWCF.LoginWCFClient();
                    objLoginWCF.AuditoriaMenu_Registrar(System.Web.HttpContext.Current.Request.Url.AbsolutePath, Environment.MachineName,
                                                        ((Usuario_LoginResult)System.Web.HttpContext.Current.Session["Usuario"]).idUsuario);

                    if (!string.IsNullOrEmpty(Request.QueryString["objCliente"]))
                    {
                        List <string> objCliente = JsonHelper.JsonDeserialize <List <string> >(Request.QueryString["objCliente"]);


                        var idEmpresa     = ((Usuario_LoginResult)Session["Usuario"]).idEmpresa;
                        var codigoUsuario = ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario;
                        EstadoCuentaWCFClient objEstadoCuentaWCF = new EstadoCuentaWCFClient();
                        var lstSource = objEstadoCuentaWCF.EstadoCuenta_LetrasVencPorPlazo(idEmpresa, codigoUsuario, objCliente[0]
                                                                                           , objCliente[1], Convert.ToDateTime(objCliente[2]), Convert.ToDateTime(objCliente[3])
                                                                                           , Convert.ToDateTime(objCliente[4]), Convert.ToDateTime(objCliente[5]));


                        var porcentajeVencMayorPlazo = (lstSource.Count(x => x.DiasMora > 0 && x.DiasMora > x.DiasCredito) * 100) / lstSource.Count();

                        var lstChart = new List <ChartClass>();

                        var noVencidos = new ChartClass {
                            AxisX = "Letras Vencidas Menor al Plazo", SerieDecimal = 100 - porcentajeVencMayorPlazo
                        };
                        lstChart.Add(noVencidos);
                        var vencidos = new ChartClass {
                            AxisX = "Letras Vencidas Mayor al plazo", SerieDecimal = porcentajeVencMayorPlazo
                        };
                        lstChart.Add(vencidos);

                        RadHtmlChart1.ChartTitle.Text = "Letras Vencidas hasta " + objCliente[3];

                        RadHtmlChart1.DataSource = lstChart;
                        RadHtmlChart1.DataBind();

                        var lstFacturaSource = objEstadoCuentaWCF.EstadoCuenta_FacturasVencPorPlazo(idEmpresa, codigoUsuario, objCliente[0]
                                                                                                    , objCliente[1], Convert.ToDateTime(objCliente[2]), Convert.ToDateTime(objCliente[3])
                                                                                                    , Convert.ToDateTime(objCliente[4]), Convert.ToDateTime(objCliente[5]));


                        var porcentajeFactVencMayorPlazo = (lstFacturaSource.Count(x => x.DiasMora > 0 && x.DiasMora > x.DiasCredito) * 100) / lstSource.Count();

                        var lstFacturaChart = new List <ChartClass>();

                        var facturasNoVencidas = new ChartClass {
                            AxisX = "Facturas Vencidas Menor al Plazo", SerieDecimal = 100 - porcentajeFactVencMayorPlazo
                        };
                        lstFacturaChart.Add(facturasNoVencidas);
                        var facturasVencidas = new ChartClass {
                            AxisX = "Facturas Vencidas Mayor al plazo", SerieDecimal = porcentajeFactVencMayorPlazo
                        };
                        lstFacturaChart.Add(facturasVencidas);

                        RadHtmlChart2.ChartTitle.Text = "Facturas Vencidas hasta " + objCliente[3];

                        RadHtmlChart2.DataSource = lstFacturaChart;
                        RadHtmlChart2.DataBind();
                    }
                }
            }
            catch (Exception ex)
            {
                //lblMensaje.Text = "ERROR: " + ex.Message;
                //lblMensaje.CssClass = "mensajeError";
            }
        }