private void ReporteCobranza_Listar(string codAgenda, string codigoVendedor)
        {
            int periodo;
            int year, mes;

            CobranzasWCFClient objCobranzasWCF = new CobranzasWCFClient();
            List <gsReporteCobranzas_Poryectadas_VendedorResult> lst;

            try {
                DateTime firstDayOfMonth = new DateTime(rmyReporte.SelectedDate.Value.Year, rmyReporte.SelectedDate.Value.Month, 1);
                DateTime lastDayOfMonth  = firstDayOfMonth.AddMonths(1).AddDays(-1);

                year    = firstDayOfMonth.Year;
                mes     = firstDayOfMonth.Month;
                periodo = year * 100 + mes;


                lst = objCobranzasWCF.Reporte_CobranzasProyectadasVendedor(((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).idEmpresa,
                                                                           ((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).codigoUsuario,
                                                                           mes, year, periodo, 0, null).ToList();

                lst = lst.OrderByDescending(x => x.AvanceCobrado).ToList().OrderBy(x => x.Sectorista_Nombre).ToList();

                ViewState["cantidad"] = lst.Count;

                grdDocVenta.DataSource = lst;
                grdDocVenta.DataBind();

                lblTitulo.Text = "Reporte de Pronostico de Cobranza  (" + rmyReporte.SelectedDate.Value.Year.ToString() + "-" + rmyReporte.SelectedDate.Value.Month.ToString() + ")";


                ViewState["lstDocVenta"] = JsonHelper.JsonSerializer(lst);

                ViewState["fechaInicio"] = firstDayOfMonth.ToString("dd/MM/yyyy");
                ViewState["fechaFinal"]  = lastDayOfMonth.ToString("dd/MM/yyyy");
                ViewState["lstReporte"]  = JsonHelper.JsonSerializer(lst);

                lblMensaje.Text     = "Se cargo con éxito.";
                lblMensaje.CssClass = "mensajeExito";
            }
            catch (Exception ex) {
                throw ex;
            }
        }
Exemple #2
0
        private void ReporteVenta_Cliente(int periodo, int year, int mes, int id_zona, string id_sectorista)
        {
            int     Periodo;
            int     TotalDias         = 0;
            decimal EsperadoDia       = 0;
            decimal EsperadoAcumulado = 0;


            DateTime fechaInico;
            DateTime fechaFinal;

            fechaInico = Convert.ToDateTime(year + "-" + mes + "-" + "1");
            fechaFinal = fechaInico.AddMonths(1).AddDays(-1);
            TimeSpan ts = fechaFinal - fechaInico;

            TotalDias = ts.Days + 1;

            CobranzasWCFClient objCobranzasWCF = new CobranzasWCFClient();

            //rhcParticipacion.PlotArea.Series[0].Items.Clear();
            try
            {
                #region Venta al 80% y 20%
                List <gsReporteCobranzas_Poryectadas_Vendedor_DetalleResult> lst = objCobranzasWCF.Reporte_CobranzasProyectadasVendedorDetalle(((Usuario_LoginResult)Session["Usuario"]).idEmpresa,
                                                                                                                                               ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, id_sectorista).ToList().OrderByDescending(x => x.ImporteCobrado).ToList();

                decimal sum = (decimal)lst.Sum(i => i.ImporteCobrado);

                decimal acumulado = 0;
                bool    paso80    = false;

                foreach (var cliente in lst)
                {
                    SeriesItem item = new SeriesItem();
                    if (sum > 0)
                    {
                        if (((int)((decimal.Parse(cliente.ImporteCobrado.ToString()) / sum) * 100)) > 0)
                        {
                            item.YValue = ((int)((decimal.Parse(cliente.ImporteCobrado.ToString()) / sum) * 100));
                            item.Name   = string.Format("{0}<br/>Valor Cobrado:${1}K<br/>Proyectado:${2}K<br/>Avance:{3}%<br/>Participación:{4}%",
                                                        cliente.Cliente + " - " + cliente.ImporteCobrado.ToString().Replace("'", string.Empty),
                                                        Math.Round(decimal.Parse(cliente.ImporteCobrado.ToString()) / 1000, 2),
                                                        Math.Round((decimal)cliente.ImporteProyectado / 1000, 2),
                                                        cliente.Avance,
                                                        item.YValue);
                            //rhcParticipacion.PlotArea.Series[0].Items.Add(item);
                        }
                    }

                    if (cliente.ImporteCobrado > 0)
                    {
                        acumulado = acumulado + (decimal)cliente.ImporteCobrado;
                        if (!paso80)
                        {
                            if (cliente.Cliente.Length > 30)
                            {
                                rhcCliente80.PlotArea.XAxis.Items.Add(cliente.Cliente.Substring(0, 30).Replace("'", string.Empty));
                            }
                            else
                            {
                                rhcCliente80.PlotArea.XAxis.Items.Add(cliente.Cliente.Replace("'", string.Empty));
                            }

                            item        = new SeriesItem();
                            item.Name   = cliente.Id_Cliente.Replace("'", string.Empty);
                            item.YValue = Math.Round((decimal)cliente.ImporteCobrado / 1000, 2);
                            this.rhcCliente80.PlotArea.Series[0].Items.Add(item);

                            item        = new SeriesItem();
                            item.Name   = cliente.Cliente.Replace("'", string.Empty);
                            item.YValue = Math.Round((decimal)cliente.ImporteProyectado / 1000, 2);
                            this.rhcCliente80.PlotArea.Series[1].Items.Add(item);
                        }
                        else
                        {
                            if (cliente.Cliente.Length > 30)
                            {
                                rhcCliente20.PlotArea.XAxis.Items.Add(cliente.Cliente.Substring(0, 30).Replace("'", string.Empty));
                            }
                            else
                            {
                                rhcCliente20.PlotArea.XAxis.Items.Add(cliente.Cliente.Replace("'", string.Empty));
                            }

                            item        = new SeriesItem();
                            item.Name   = cliente.Cliente.Replace("'", string.Empty);
                            item.YValue = Math.Round((decimal)(cliente.ImporteCobrado) / 1000, 2);
                            this.rhcCliente20.PlotArea.Series[0].Items.Add(item);

                            item        = new SeriesItem();
                            item.Name   = cliente.Cliente.Replace("'", string.Empty);
                            item.YValue = Math.Round((decimal)cliente.ImporteProyectado / 1000, 2);
                            this.rhcCliente20.PlotArea.Series[1].Items.Add(item);
                        }

                        if (acumulado / sum * 100 >= 80)
                        {
                            paso80 = true;
                        }
                    }
                }
                #endregion

                #region Datos principales
                //Datos principales de la venta
                gsReporteCobranzas_Poryectadas_VendedorResult[] rvP = objCobranzasWCF.Reporte_CobranzasProyectadasVendedor(((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).idEmpresa,
                                                                                                                           ((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, null);
                gsReporteCobranzas_Poryectadas_VendedorResult rv = new gsReporteCobranzas_Poryectadas_VendedorResult();

                if (rvP.Count() > 0)
                {
                    rv = rvP.ToList().Single();

                    rrgAvanceReal.Pointer.Value = decimal.Parse(rv.AvanceCobrado.ToString());
                    lblAvanceReal.Text          = "Avance Real: " + Math.Round((decimal)rv.AvanceCobrado, 0).ToString() + "%";

                    rrgAvanceEsperado.Pointer.Value = decimal.Parse(rv.AvanceEsperado.ToString());
                    lblAvanceEsperado.Text          = "Avance Esperado: " + Math.Round((decimal)rv.AvanceEsperado, 0).ToString() + "%";



                    //- Cuadro de periodos
                    //lblPronostico.Text = string.Format("${0}", Math.Round((decimal)rv.ImporteProyectado, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblValorVenta.Text = string.Format("${0}", Math.Round((decimal)rv.ImporteCobrado, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblDiferencia.Text = string.Format("${0}", Math.Round((decimal)rv.Diferencia, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblCantTotal.Text = lst.Count.ToString();
                    //lblCantVenta.Text = lst.FindAll(x => x.ImporteCobrado > 0).Count.ToString();
                    //lblCantNoVenta.Text = lst.FindAll(x => x.ImporteCobrado <= 0).Count.ToString();
                }



                gsReporteCancelados_ProyectadoResult[] rvCobradoP = objCobranzasWCF.Reporte_CobranzasProyectadas_Sectorista(((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).idEmpresa,
                                                                                                                            ((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, id_sectorista);

                gsReporteCancelados_ProyectadoResult rvCobrado = new gsReporteCancelados_ProyectadoResult();
                if (rvCobradoP.Count() > 0)
                {
                    rvCobrado = rvCobradoP.ToList().Single();

                    //lblVencido01a30.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_01a30, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido31a60.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_31a60, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido61a120.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_61a120, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido121a360.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_121a360, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido361aMas.Text = string.Format("${0}", Math.Round((decimal)(rvCobrado.Importe_361a720 + rvCobrado.Importe_721amas), 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblNoVencido.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_NoVencido, 0).ToString("#,#", CultureInfo.InvariantCulture));
                }
                else
                {
                    //lblVencido01a30.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido31a60.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido61a120.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido121a360.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblVencido361aMas.Text = string.Format("${0}", Math.Round((decimal)(0), 0).ToString("#,#", CultureInfo.InvariantCulture));
                    //lblNoVencido.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture));
                }


                #endregion

                #region Cobro diario
                List <gsReporteCobranzas_Poryectadas_Vendedor_FechaResult> lstFecha = objCobranzasWCF.Reporte_CobranzasProyectadasVendedor_Fecha(((Usuario_LoginResult)Session["Usuario"]).idEmpresa,
                                                                                                                                                 ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, null).ToList();

                acumulado = 0;


                EsperadoDia       = (decimal)rv.ImporteProyectado / TotalDias;
                EsperadoAcumulado = 0;


                for (DateTime day = fechaInico; DateTime.Compare(day, fechaFinal) <= 0; day = day.AddDays(1))
                {
                    AxisItem xitem = new AxisItem();
                    xitem.LabelText = day.ToString("dd/MM/yyyy");
                    rhcDiario.PlotArea.XAxis.Items.Add(xitem);

                    gsReporteCobranzas_Poryectadas_Vendedor_FechaResult objVFecha = lstFecha.Find(x => x.FechaCobranza == day);

                    //Completar linea 1
                    SeriesItem serie1 = new SeriesItem();
                    if (objVFecha != null)
                    {
                        acumulado     = acumulado + (decimal)objVFecha.ImporteCobrado;
                        serie1.YValue = Math.Round((decimal)objVFecha.ImporteCobrado / 1000, 2);
                    }
                    else
                    {
                        serie1.YValue = 0;
                    }
                    rhcDiario.PlotArea.Series[0].Items.Add(serie1);

                    //Completar linea 2
                    SeriesItem serie2 = new SeriesItem();
                    if (rv.ImporteProyectado == 0)
                    {
                        serie2.YValue = Math.Round(acumulado / 100 * 100, 0);
                    }
                    else
                    {
                        serie2.YValue = Math.Round(acumulado / (decimal)rv.ImporteProyectado * 100, 0);
                    }
                    rhcDiario.PlotArea.Series[1].Items.Add(serie2);

                    //Completar linea 3
                    SeriesItem serie3 = new SeriesItem();
                    EsperadoAcumulado = EsperadoAcumulado + EsperadoDia;
                    //serie3.YValue = Math.Round((decimal)EsperadoAcumulado / 1000, 2);

                    if (rv.ImporteProyectado == 0)
                    {
                        serie2.YValue = Math.Round((decimal)EsperadoAcumulado / 100 * 100, 0);
                    }
                    else
                    {
                        serie3.YValue = Math.Round((decimal)EsperadoAcumulado / (decimal)rv.ImporteProyectado * 100, 0);
                    }
                    rhcDiario.PlotArea.Series[2].Items.Add(serie3);
                }

                rhcDiario.PlotArea.Series[1].AxisName = "AdditionalAxis";
                rhcDiario.PlotArea.Series[2].AxisName = "AdditionalAxis";
                #endregion

                lblTitulo.Text = "Reporte " + year.ToString() + "-" + mes.ToString() + " de " + rv.Zona_nombre;
            }
            catch (Exception ex) {
                throw ex;
            }
        }