Example #1
0
        private void LlenarGraficaSemanas(int?iVendedorID)
        {
            this.chrSemana.Series["Actual"].Points.Clear();
            this.chrSemana.Series["Anterior"].Points.Clear();
            if (iVendedorID <= 0)
            {
                return;
            }

            var oParams = this.ObtenerParametros();
            var oDatos  = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);

            // Se llena la gráfica
            IEnumerable <pauCuadroDeControlGeneralNuevo_Result> oFiltro = oDatos;

            if (iVendedorID.HasValue)
            {
                oFiltro = oDatos.Where(c => c.VendedorID == iVendedorID);
            }
            //
            var oConsulta = oFiltro.GroupBy(g => new { Semana = UtilTheos.SemanaSabAVie(g.Fecha) }).Select(
                c => new { c.Key.Semana, Actual = c.Sum(s => s.Actual), Anterior = c.Sum(s => s.Anterior) }).OrderBy(c => c.Semana);

            foreach (var oReg in oConsulta)
            {
                this.chrSemana.Series["Actual"].Points.AddXY(oReg.Semana, oReg.Actual);
                this.chrSemana.Series["Anterior"].Points.AddXY(oReg.Semana, oReg.Anterior);
            }
        }
Example #2
0
        protected void LlenarSemanasCompras(int iId)
        {
            this.dgvSemanas.Rows.Clear();
            this.chrSemanas.Series["Actual"].Points.Clear();
            this.chrSemanas.Series["Pasado"].Points.Clear();
            if (iId <= 0)
            {
                return;
            }

            var oParams = this.ObtenerParametrosCompras();
            var oDatos  = Datos.ExecuteProcedure <pauCuadroDeControlCompras_Result>("pauCuadroDeControlCompras", oParams);

            // Se llena el grid y la gráfica de Semanas
            var oConsulta = oDatos.Where(c => c.ProveedorID == iId).GroupBy(g => UtilTheos.SemanaSabAVie(g.Fecha.Valor())).Select(
                c => new { Semana = c.Key, Actual = c.Sum(s => s.Actual), Anterior = c.Sum(s => s.Anterior) }).OrderBy(c => c.Semana);
            decimal mTotal = (oConsulta.Count() > 0 ? oConsulta.Sum(c => c.Actual).Valor() : 0);

            foreach (var oReg in oConsulta)
            {
                this.dgvSemanas.Rows.Add(oReg.Semana, oReg.Semana, oReg.Actual, oReg.Anterior
                                         , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotal) * 100));
                // Para la gráfica
                this.chrSemanas.Series["Actual"].Points.AddXY(oReg.Semana, oReg.Actual);
                this.chrSemanas.Series["Pasado"].Points.AddXY(oReg.Semana, oReg.Anterior);
            }
        }
Example #3
0
        private void LlenarVendedores(int iSemana)
        {
            this.dgvVendedor.Rows.Clear();
            if (iSemana <= 0)
            {
                return;
            }

            var oParams = this.ObtenerParametros();
            var oDatos  = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);

            // Se llena el grid de Vendedor
            var oConsulta = oDatos.Where(c => UtilTheos.SemanaSabAVie(c.Fecha) == iSemana).GroupBy(g => new { g.VendedorID, g.Vendedor }).Select(
                c => new { c.Key.VendedorID, c.Key.Vendedor, Actual = c.Sum(s => s.Actual), Anterior = c.Sum(s => s.Anterior) }).OrderByDescending(c => c.Actual);
            decimal mTotal = (oConsulta.Count() > 0 ? oConsulta.Sum(c => c.Actual).Valor() : 0);

            foreach (var oReg in oConsulta)
            {
                this.dgvVendedor.Rows.Add(oReg.VendedorID, oReg.Vendedor, oReg.Actual, oReg.Anterior
                                          , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotal) * 100));
            }

            // Se llenan los totales
            decimal mTotalAnt = (oConsulta.Count() > 0 ? oConsulta.Sum(c => c.Anterior).Valor() : 0);

            this.dgvVendedorT["VendedorT_Actual", 0].Value    = mTotal;
            this.dgvVendedorT["VendedorT_Anterior", 0].Value  = mTotalAnt;
            this.dgvVendedorT["VendedorT_Resultado", 0].Value = Util.DividirONull(mTotal, mTotalAnt);
        }
Example #4
0
        private void CargarPorSemana(List <pauCuadroDeControlCobranza_Result> oDatos)
        {
            var oPorSemana = this.AgruparPorEntero(oDatos.GroupBy(g => UtilTheos.SemanaSabAVie(g.Vencimiento.Valor())));

            this.dgvPorSemana.Rows.Clear();
            this.chrPorSemana.Series["Expectativa"].Points.Clear();
            this.chrPorSemana.Series["Cobrado"].Points.Clear();
            foreach (var oReg in oPorSemana)
            {
                this.dgvPorSemana.Rows.Add(oReg.Llave, oReg.Esperado, oReg.Pagado
                                           , Util.DividirONull(oReg.Pagado, oReg.Esperado), Util.DividirONull(oReg.Pagado, oReg.PagadoAnt));
                this.chrPorSemana.Series["Expectativa"].Points.AddXY(oReg.Llave, oReg.Esperado);
                this.chrPorSemana.Series["Cobrado"].Points.AddXY(oReg.Llave, oReg.Pagado);
            }
            // this.dgvPorSemanaT["SemanaT_Actual", 0].Value = (oPorSemana.Count() > 0 ? oPorSemana.Average(c => c.Actual) : 0);
            // this.dgvPorSemanaT["SemanaT_Anterior", 0].Value = (oPorSemana.Count() > 0 ? oPorSemana.Average(c => c.Anterior) : 0);
        }
Example #5
0
        protected void LlenarGraficaSemanasTodos()
        {
            // Se limpian los puntos de las series
            foreach (Series oSerie in this.chrSemanas.Series)
            {
                oSerie.Points.Clear();
            }

            var oParams = this.ObtenerParametros();
            var oDatos  = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);

            // Se empieza a llenar el gráfico
            var oConsulta = this.AgruparPorEnteroCadenaEntero(oDatos.GroupBy(g => new AgrupadoPorEnteroCadenaEntero()
            {
                Llave = g.VendedorID, Cadena = g.Vendedor, Entero = UtilTheos.SemanaSabAVie(g.Fecha)
            }));

            foreach (var oReg in oConsulta)
            {
                string sSerie = oReg.Llave.ToString();
                // Si la serie no existe, se crea
                if (this.chrSemanas.Series.Any(c => c.Name == sSerie))
                {
                    this.chrSemanas.Series[sSerie].Points.AddXY(oReg.Entero, oReg.Actual);
                }
                else
                {
                    var oSerie = new Series(sSerie)
                    {
                        ChartType        = SeriesChartType.Line,
                        ToolTip          = oReg.Cadena,
                        Label            = "o",
                        LabelForeColor   = Color.Transparent,
                        LabelToolTip     = "Semana: #VALX\nImporte: $#VAL",
                        CustomProperties = "LabelStyle=Center",
                    };
                    oSerie.Points.AddXY(oReg.Entero, oReg.Actual);
                    this.chrSemanas.Series.Add(oSerie);
                }
            }
        }
Example #6
0
        private IEnumerable <TotalesClientesSemanas> ObtenerClientesSemanas(List <pauCuadroDeControlGeneralNuevo_Result> oDatos)
        {
            var oGrupo = oDatos.GroupBy(c => new { c.ClienteID, Semana = UtilTheos.SemanaSabAVie(c.Fecha) });

            string sCalculo = this.cmbCalculo.Text;

            switch (sCalculo)
            {
            case "Utilidad":
                return(oGrupo.Select(c => new TotalesClientesSemanas()
                {
                    ClienteID = c.Key.ClienteID,
                    Semana = c.Key.Semana,
                    Actual = c.Sum(s => s.Actual).Valor()
                }));

            case "Utilidad Desc.":
                return(oGrupo.Select(c => new TotalesClientesSemanas()
                {
                    ClienteID = c.Key.ClienteID,
                    Semana = c.Key.Semana,
                    Actual = c.Sum(s => s.UtilDescActual).Valor()
                }));

            case "Precio":
                return(oGrupo.Select(c => new TotalesClientesSemanas()
                {
                    ClienteID = c.Key.ClienteID,
                    Semana = c.Key.Semana,
                    Actual = c.Sum(s => s.PrecioActual).Valor()
                }));

            case "Costo":
                return(oGrupo.Select(c => new TotalesClientesSemanas()
                {
                    ClienteID = c.Key.ClienteID,
                    Semana = c.Key.Semana,
                    Actual = c.Sum(s => s.CostoActual).Valor()
                }));

            case "Costo Desc.":
                return(oGrupo.Select(c => new TotalesClientesSemanas()
                {
                    ClienteID = c.Key.ClienteID,
                    Semana = c.Key.Semana,
                    Actual = c.Sum(s => s.CostoDescActual).Valor()
                }));

            case "Ventas":
                return(oGrupo.Select(c => new TotalesClientesSemanas()
                {
                    ClienteID = c.Key.ClienteID,
                    Semana = c.Key.Semana,
                    Actual = c.Where(s => s.EsActual == true).Select(s => s.VentaID).Distinct().Count()
                }));

            case "Productos":
                return(oGrupo.Select(c => new TotalesClientesSemanas()
                {
                    ClienteID = c.Key.ClienteID,
                    Semana = c.Key.Semana,
                    Actual = c.Sum(s => s.ProductosActual).Valor()
                }));
            }

            return(null);
        }
Example #7
0
        private void CargarSemanas(int iClienteID)
        {
            if (this.oDatos == null)
            {
                return;
            }

            var     oSemanas  = this.AgruparPorEntero(this.oDatos.Where(c => c.ClienteID == iClienteID).GroupBy(c => UtilTheos.SemanaSabAVie(c.Fecha)));
            decimal mTotal    = (oSemanas.Count() > 0 ? oSemanas.Sum(c => c.Actual) : 0);
            decimal mPromedio = (oSemanas.Count() > 0 ? oSemanas.Average(c => c.Actual) : 0);

            this.dgvSemanas.Rows.Clear();
            this.chrPorSemana.Series["Actual"].Points.Clear();
            this.chrPorSemana.Series["Anterior"].Points.Clear();
            this.chrPorSemana.Series["Promedio"].Points.Clear();
            foreach (var oReg in oSemanas)
            {
                int iFila = this.dgvSemanas.Rows.Add(oReg.Llave, oReg.Llave, oReg.Actual, Util.DividirONull(oReg.Actual, oReg.Anterior)
                                                     , Util.DividirONull(oReg.Actual, mTotal));
                this.chrPorSemana.Series["Actual"].Points.AddXY(oReg.Llave, oReg.Actual);
                this.chrPorSemana.Series["Anterior"].Points.AddXY(oReg.Llave, oReg.Anterior);
                this.chrPorSemana.Series["Promedio"].Points.AddXY(oReg.Llave, mPromedio);
                if (oReg.Actual < mPromedio)
                {
                    this.dgvSemanas.Rows[iFila].DefaultCellStyle.ForeColor = Color.Black;
                }
            }
            this.txtPromedioSemanas.Text = mPromedio.ToString();
        }
Example #8
0
        protected override void LlenarSemanas(int iId)
        {
            this.dgvSemanas.Rows.Clear();
            this.chrSemanas.Series["Actual"].Points.Clear();
            this.chrSemanas.Series["Pasado"].Points.Clear();
            if (iId <= 0)
            {
                return;
            }

            var oParams = this.ObtenerParametros();
            var oDatos  = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);

            // Se filtran según el combo de marcas
            if (this.ctlMarcas.ValoresSeleccionados.Count > 0)
            {
                oDatos = oDatos.Where(c => this.ctlMarcas.ValoresSeleccionados.Contains(c.MarcaID.Valor())).ToList();
            }

            // Se llena el grid y la gráfica de Semanas
            IEnumerable <TotalesPorEntero> oConsulta;

            if (this.ActiveControl == this.dgvPrincipal)
            {
                oConsulta = this.AgruparPorEntero(oDatos.Where(c => c.LineaID == iId).GroupBy(g => UtilTheos.SemanaSabAVie(g.Fecha)));
            }
            else
            {
                oConsulta = this.AgruparPorEntero(oDatos.Where(c => c.ClienteID == iId).GroupBy(g => UtilTheos.SemanaSabAVie(g.Fecha)));
            }

            decimal mTotal = (oConsulta.Count() > 0 ? oConsulta.Sum(c => c.Actual) : 0);

            foreach (var oReg in oConsulta)
            {
                this.dgvSemanas.Rows.Add(oReg.Llave, oReg.Llave, oReg.Actual, oReg.Anterior
                                         , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotal) * 100));
                // Para la gráfica
                this.chrSemanas.Series["Actual"].Points.AddXY(oReg.Llave, oReg.Actual);
                this.chrSemanas.Series["Pasado"].Points.AddXY(oReg.Llave, oReg.Anterior);
            }
        }
Example #9
0
        private void CargarDatos()
        {
            Cargando.Mostrar();

            int iSucursalID = Util.Entero(this.cmbSucursal.SelectedValue);
            var oParams     = new Dictionary <string, object>();

            oParams.Add("SucursalID", (iSucursalID == 0 ? null : (int?)iSucursalID));
            oParams.Add("Pagadas", this.chkPagadas.Checked);
            oParams.Add("Cobradas", this.chkCobradas.Checked);
            oParams.Add("Solo9500", this.chk9500.Checked);
            oParams.Add("OmitirDomingo", this.chkOmitirDomingos.Checked);
            // oParams.Add("CostoConDescuento", this.chkCostoConDescuento.Checked);
            oParams.Add("Desde", this.dtpDesde.Value);
            oParams.Add("Hasta", this.dtpHasta.Value);

            var oDatos   = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);
            var oTotales = this.ObtenerTotales(oDatos);

            // Se llena el grid de por día
            var oPorDia = this.AgruparPorDia(oDatos);

            this.dgvPorDia.Rows.Clear();
            foreach (var oReg in oPorDia)
            {
                this.dgvPorDia.Rows.Add(oReg.Llave, oReg.Actual, oReg.Anterior
                                        , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, oTotales.Actual) * 100));
            }
            this.dgvPorDiaT["DiaT_Actual", 0].Value   = (oPorDia.Count() > 0 ? oPorDia.Average(c => c.Actual) : 0);
            this.dgvPorDiaT["DiaT_Anterior", 0].Value = (oPorDia.Count() > 0 ? oPorDia.Average(c => c.Anterior) : 0);

            // Se llena el grid de por semana
            var oPorSemana = this.AgruparPorEntero(oDatos.GroupBy(g => UtilTheos.SemanaSabAVie(g.Fecha)));

            this.dgvPorSemana.Rows.Clear();
            this.chrPorSemana.Series["Actual"].Points.Clear();
            this.chrPorSemana.Series["Pasado"].Points.Clear();
            foreach (var oReg in oPorSemana)
            {
                this.dgvPorSemana.Rows.Add(oReg.Llave, oReg.Actual, oReg.Anterior
                                           , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, oTotales.Actual) * 100));
                this.chrPorSemana.Series["Actual"].Points.AddXY(oReg.Llave, oReg.Actual);
                this.chrPorSemana.Series["Pasado"].Points.AddXY(oReg.Llave, oReg.Anterior);
            }
            this.dgvPorSemanaT["SemanaT_Actual", 0].Value   = (oPorSemana.Count() > 0 ? oPorSemana.Average(c => c.Actual) : 0);
            this.dgvPorSemanaT["SemanaT_Anterior", 0].Value = (oPorSemana.Count() > 0 ? oPorSemana.Average(c => c.Anterior) : 0);

            // Se llena el grid de por mes
            var oPorMes = this.AgruparPorEntero(oDatos.GroupBy(g => g.Fecha.Month));

            this.dgvPorMes.Rows.Clear();
            this.chrPorMes.Series["Actual"].Points.Clear();
            this.chrPorMes.Series["Pasado"].Points.Clear();
            foreach (var oReg in oPorMes)
            {
                this.dgvPorMes.Rows.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(oReg.Llave).ToUpper(), oReg.Actual, oReg.Anterior
                                        , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, oTotales.Actual) * 100));
                this.chrPorMes.Series["Actual"].Points.AddXY(oReg.Llave, oReg.Actual);
                this.chrPorMes.Series["Pasado"].Points.AddXY(oReg.Llave, oReg.Anterior);
            }

            // Se llena el grid de días
            oParams["Desde"] = this.dtpDesde.Value;
            oParams["Hasta"] = this.dtpHasta.Value;
            oDatos           = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);
            var oPorDiaSem = oDatos.GroupBy(g => g.Fecha.DayOfWeek).Select(c => new { Dia = c.Key, Actual = c.Sum(s => s.Actual), Anterior = c.Sum(s => s.Anterior) })
                             .OrderBy(o => (int)o.Dia);
            decimal mTotalDiaSem = (oDatos.Count > 0 ? oDatos.Sum(c => c.Actual).Valor() : 0);

            this.dgvDias.Rows.Clear();
            this.chrPorDiaSem.Series["Actual"].Points.Clear();
            foreach (var oReg in oPorDiaSem)
            {
                this.dgvDias.Rows.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(oReg.Dia).ToUpper(), oReg.Actual, oReg.Anterior
                                      , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotalDiaSem) * 100));
                int iPunto = this.chrPorDiaSem.Series["Actual"].Points.AddXY((int)oReg.Dia, oReg.Actual);
                this.chrPorDiaSem.Series["Actual"].Points[iPunto].AxisLabel = CultureInfo.CurrentCulture.DateTimeFormat.GetShortestDayName(oReg.Dia).ToUpper();
            }

            // Se llena el grid de horas
            var oPorHora = this.AgruparPorEntero(oDatos.GroupBy(g => g.Fecha.Hour));

            this.dgvHoras.Rows.Clear();
            this.chrPorHora.Series.Clear();
            foreach (var oReg in oPorHora)
            {
                this.dgvHoras.Rows.Add(string.Format("{0:00}:00", oReg.Llave), oReg.Actual, oReg.Anterior
                                       , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotalDiaSem) * 100));
                this.AgregarSerieCilindro(this.chrPorHora, oReg.Llave, oReg.Actual);
            }

            // Se llena el grid de sucursales
            var oPorSucursal = this.AgruparPorEntero(oDatos.GroupBy(g => g.SucursalID));
            var oSucursales  = oDatos.Select(c => new { c.SucursalID, c.Sucursal }).Distinct();

            this.dgvSucursales.Rows.Clear();
            foreach (var oReg in oPorSucursal)
            {
                string sSucursal = oSucursales.FirstOrDefault(c => c.SucursalID == oReg.Llave).Sucursal;
                this.dgvSucursales.Rows.Add(sSucursal, oReg.Actual, oReg.Anterior
                                            , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotalDiaSem) * 100));
            }

            // Se llena el grid de por año
            oParams.Remove("Desde");
            oParams.Remove("Hasta");
            var oPorAnio = Datos.ExecuteProcedure <pauCuadroDeControlPorAnio_Result>("pauCuadroDeControlPorAnio", oParams);

            this.dgvPorAnio.Rows.Clear();
            foreach (var oReg in oPorAnio)
            {
                decimal mDato = this.ObtenerDatoAnio(oReg);
                this.dgvPorAnio.Rows.Add(oReg.Anio, mDato);
                this.chrPorAnio.Series["Actual"].Points.AddXY(oReg.Anio, mDato);
            }

            // Se configuran columnas del grid
            this.AplicarFormatoColumnas();

            // Se llenan los totales
            this.txtAnioActual.Text   = oTotales.Actual.ToString(GlobalClass.FormatoMoneda);
            this.txtAnioAnterior.Text = oTotales.Anterior.ToString(GlobalClass.FormatoMoneda);
            this.txtResultado.Text    = Util.DividirONull(oTotales.Actual, oTotales.Anterior).Valor().ToString(GlobalClass.FormatoDecimal);

            Cargando.Cerrar();
        }
Example #10
0
        private void CargarDatos()
        {
            Cargando.Mostrar();

            var oParams  = this.ObtenerParametros();
            var oDatos   = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);
            var oTotales = this.ObtenerTotales(oDatos);

            // Se llena el grid de por semana
            var oPorSemana = this.AgruparPorEntero(oDatos.GroupBy(g => UtilTheos.SemanaSabAVie(g.Fecha)));

            this.dgvSemana.Rows.Clear();
            // this.chrSemana.Series["Actual"].Points.Clear();
            // this.chrSemana.Series["Pasado"].Points.Clear();
            foreach (var oReg in oPorSemana)
            {
                this.dgvSemana.Rows.Add(oReg.Llave, oReg.Llave, oReg.Actual, oReg.Anterior
                                        , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, oTotales.Actual) * 100));
                // this.chrSemana.Series["Actual"].Points.AddXY(oReg.Semana, oReg.Actual);
                // this.chrSemana.Series["Pasado"].Points.AddXY(oReg.Semana, oReg.Anterior);
            }
            this.dgvSemanaT["SemanaT_Actual", 0].Value    = oTotales.Actual;
            this.dgvSemanaT["SemanaT_Anterior", 0].Value  = oTotales.Anterior;
            this.dgvSemanaT["SemanaT_Resultado", 0].Value = Util.DividirONull(oTotales.Actual, oTotales.Anterior);

            // Se llena el grid de Vendedores con semanas
            int iFila;
            Dictionary <string, decimal> oSemanasT = new Dictionary <string, decimal>();
            var oPorVendedor = this.AgruparPorEnteroCadenaEntero(oDatos.GroupBy(g => new AgrupadoPorEnteroCadenaEntero()
            {
                Llave = g.VendedorID, Cadena = g.Vendedor, Entero = UtilTheos.SemanaSabAVie(g.Fecha)
            })).OrderBy(c => c.Entero);

            this.dgvVendedorSem.Rows.Clear();
            foreach (var oReg in oPorVendedor)
            {
                // Se encuentra la fila del vendedor, o se agrega si no existe
                iFila = this.dgvVendedorSem.EncontrarIndiceDeValor("VendedorSem_Id", oReg.Llave);
                if (iFila < 0)
                {
                    var oVendedor = oPorVendedor.Where(c => c.Llave == oReg.Llave);
                    iFila = this.dgvVendedorSem.Rows.Add(oReg.Llave, oReg.Cadena
                                                         , oVendedor.Average(c => c.Actual), oVendedor.Sum(c => c.Actual));
                }

                // Se verifica si existe la columna de la semana, si no, se agrega
                string sColSem = ("VendedorSem_" + oReg.Entero.ToString());
                if (!this.dgvVendedorSem.Columns.Contains(sColSem))
                {
                    this.dgvVendedorSem.Columns.Add(sColSem, ("Sem " + oReg.Entero.ToString()));
                    this.dgvVendedorSem.Columns[sColSem].FormatoMoneda();
                }
                if (!oSemanasT.ContainsKey(sColSem))
                {
                    oSemanasT.Add(sColSem, 0);
                }

                // Se llenan los datos
                this.dgvVendedorSem[sColSem, iFila].Value = oReg.Actual;
                oSemanasT[sColSem] += oReg.Actual;

                // Para el formato de la columna
                // this.dgvVendedorSem.Columns[sColSem].DefaultCellStyle.Format = (this.cmbCalculo.Text == "Ventas" ? "N0" : "C2");
            }
            // Se agrega la fila de total
            // this.dgvVendedorSem.Rows.Add();
            iFila = this.dgvVendedorSem.Rows.Add(0, "Totales", oPorVendedor.Average(c => c.Actual), oPorVendedor.Sum(c => c.Actual));
            this.dgvVendedorSem.Rows[iFila].DefaultCellStyle.Font = new Font(this.dgvVendedorSem.Font, FontStyle.Bold);
            foreach (DataGridViewColumn oCol in this.dgvVendedorSem.Columns)
            {
                if (oCol.Index < 4)
                {
                    continue;
                }
                if (!oSemanasT.ContainsKey(oCol.Name))
                {
                    continue;
                }
                this.dgvVendedorSem[oCol.Name, iFila].Value = oSemanasT[oCol.Name];
            }

            // Se configuran columnas del grid
            this.AplicarFormatoColumnas();

            Cargando.Cerrar();
        }
Example #11
0
        protected override void LlenarSemanas(int iClienteID)
        {
            this.dgvSemanas.Rows.Clear();
            this.chrSemanas.Series["Actual"].Points.Clear();
            this.chrSemanas.Series["Pasado"].Points.Clear();
            if (iClienteID <= 0)
            {
                return;
            }

            var oParams = this.ObtenerParametros();
            var oDatos  = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);

            if (oDatos == null)
            {
                return;
            }

            // Se llena el grid y la gráfica de Semanas
            var     oConsulta = this.AgruparPorEntero(oDatos.Where(c => c.ClienteID == iClienteID).GroupBy(g => UtilTheos.SemanaSabAVie(g.Fecha)));
            decimal mTotal    = (oConsulta.Count() > 0 ? oConsulta.Sum(c => c.Actual) : 0);

            foreach (var oReg in oConsulta)
            {
                this.dgvSemanas.Rows.Add(oReg.Llave, oReg.Llave, oReg.Actual, oReg.Anterior
                                         , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotal) * 100));
                // Para la gráfica
                this.chrSemanas.Series["Actual"].Points.AddXY(oReg.Llave, oReg.Actual);
                this.chrSemanas.Series["Pasado"].Points.AddXY(oReg.Llave, oReg.Anterior);
            }
        }
Example #12
0
        protected override void LlenarSemanas(int iId)
        {
            this.dgvSemanas.Rows.Clear();

            // Se limpian los puntos de las series
            bool bGraficar = !this.chkGrafSemanas.Checked;

            if (bGraficar)
            {
                foreach (Series oSerie in this.chrSemanas.Series)
                {
                    oSerie.Points.Clear();
                }
            }

            if (iId <= 0)
            {
                return;
            }

            var oParams = this.ObtenerParametros();
            var oDatos  = Datos.ExecuteProcedure <pauCuadroDeControlGeneralNuevo_Result>("pauCuadroDeControlGeneral", oParams);

            // Se llena el grid y la gráfica de Semanas
            var     oConsulta = this.AgruparPorEntero(oDatos.Where(c => c.VendedorID == iId).GroupBy(g => UtilTheos.SemanaSabAVie(g.Fecha)));
            decimal mTotal    = (oConsulta.Count() > 0 ? oConsulta.Sum(c => c.Actual) : 0);

            foreach (var oReg in oConsulta)
            {
                this.dgvSemanas.Rows.Add(oReg.Llave, oReg.Llave, oReg.Actual, oReg.Anterior
                                         , Util.DividirONull(oReg.Actual, oReg.Anterior), (Util.DividirONull(oReg.Actual, mTotal) * 100));
                // Para la gráfica
                if (bGraficar)
                {
                    this.chrSemanas.Series["Actual"].Points.AddXY(oReg.Llave, oReg.Actual);
                    this.chrSemanas.Series["Pasado"].Points.AddXY(oReg.Llave, oReg.Anterior);
                }
            }
        }