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); } }
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); } }
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); }
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); }
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); } } }
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); }
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(); }
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); } }
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(); }
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(); }
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); } }
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); } } }