public IEnumerable<UtilidadVentaBruta> ReporteUtilidadVentaEstimada(string ANIO = null, string MES = null) { List<UtilidadVentaBruta> result = new List<UtilidadVentaBruta>(); UtilidadVentaBruta result1 = new UtilidadVentaBruta() { EXC_DIESEL_VALORADO = 0, EXC_GASOLINA_VALORADO = 0, PER_DIESEL_VALORADO = 0, PER_GASOLINA_VALORADO = 0, EXC_DIESEL_FISICO = 0, EXC_GASOLINA_FISICO = 0, PER_DIESEL_FISICO = 0, PER_GASOLINA_FISICO = 0 }; var puntosVentaService = new PosTurnosServices(); var comprasService = new ComprasServices(); var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES); var compras = comprasService.ObtenerComprasPaginado(null, ANIO, MES); decimal? totalegresoGas = 0; decimal? totalcostoegresoGas = 0; decimal? totalegresoDie = 0; decimal? totalcostoegresoDie = 0; foreach (var item in compras) { if (item.ID_COMBUSTIBLE == 1) { totalegresoGas = totalegresoGas + item.CANTIDAD; totalcostoegresoGas = totalcostoegresoGas + (item.CANTIDAD * item.PRECIO); } else { totalegresoDie = totalegresoDie + item.CANTIDAD; totalcostoegresoDie = totalcostoegresoDie + (item.CANTIDAD * item.PRECIO); } } result1.EGR_GASOLINA_FISICO = (decimal)totalegresoGas; result1.EGR_DIESEL_FISICO = (decimal)totalegresoDie; result1.EGR_DIESEL_VALORADO = (decimal)totalcostoegresoDie; result1.EGR_GASOLINA_VALORADO = (decimal)totalcostoegresoGas; var totales = ventas.GroupBy(x => new { x.FECHA, x.SG_POS.ID_COMBUSTIBLE }).Select(y => new { FECHA = y.Key.FECHA, ID_COMBUSTIBLE = y.Key.ID_COMBUSTIBLE, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO), TOTAL_CANTIDAD = y.Sum(x => x.TOTAL) }); decimal? totalventaGas = 0; decimal? totalCantidadGas = 0; decimal? totalventaDie = 0; decimal? totalCantidadDie = 0; foreach (var item in totales) { if (item.ID_COMBUSTIBLE == 1) { totalventaGas = totalventaGas + item.TOTALVENTA; totalCantidadGas = totalCantidadGas + item.TOTAL_CANTIDAD; } else { totalventaDie = totalventaDie + item.TOTALVENTA; totalCantidadDie = totalCantidadDie + item.TOTAL_CANTIDAD; } } result1.ING_DIESEL_FISICO = (decimal)totalCantidadDie; result1.ING_GASOLINA_FISICO = (decimal)totalCantidadGas; result1.ING_DIESEL_VALORADO = (decimal)totalventaDie; result1.ING_GASOLINA_VALORADO = (decimal)totalventaGas; result.Add(result1); return result; }
public IEnumerable<UtilidadVentaBruta> ReporteUtilidadVentaBruta(string ANIO = null, string MES = null) { List<UtilidadVentaBruta> result = new List<UtilidadVentaBruta>(); UtilidadVentaBruta result1 = new UtilidadVentaBruta() { ING_DIESEL_VALORADO = 1284385.28m, ING_GASOLINA_VALORADO = 605709.08m, EGR_DIESEL_VALORADO = 1222237.60m, EGR_GASOLINA_VALORADO = 570079.14m, EXC_DIESEL_VALORADO = 0, EXC_GASOLINA_VALORADO = 0, PER_DIESEL_VALORADO = 0, PER_GASOLINA_VALORADO = 0, ING_DIESEL_FISICO = 345264.86m, ING_GASOLINA_FISICO = 161954.30m, EGR_DIESEL_FISICO = 345264.86m, EGR_GASOLINA_FISICO = 161954.30m, EXC_DIESEL_FISICO = 0, EXC_GASOLINA_FISICO = 0, PER_DIESEL_FISICO = 0, PER_GASOLINA_FISICO = 0 }; var puntosVentaService = new PosTurnosServices(); var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES); var totales = ventas.GroupBy(x => new { x.FECHA, x.SG_POS.ID_COMBUSTIBLE }).Select(y => new { FECHA = y.Key.FECHA, ID_COMBUSTIBLE = y.Key.ID_COMBUSTIBLE, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO), TOTAL_CANTIDAD = y.Sum(x => x.TOTAL) }); decimal? totalventaGas = 0; decimal? totalcostoGas = 0; decimal? totalCantidadGas = 0; decimal? totalventaDie = 0; decimal? totalCantidadDie = 0; decimal? totalcostoDie = 0; foreach (var item in totales) { if (item.ID_COMBUSTIBLE == 1) { totalventaGas = totalventaGas + item.TOTALVENTA; totalCantidadGas = totalCantidadGas + item.TOTAL_CANTIDAD; totalcostoGas = totalcostoGas + item.TOTALCOSTO; } else { totalventaDie = totalventaDie + item.TOTALVENTA; totalCantidadDie = totalCantidadDie + item.TOTAL_CANTIDAD; totalcostoDie = totalcostoDie + item.TOTALCOSTO; } } result1.ING_DIESEL_FISICO = (decimal)totalCantidadDie; result1.ING_GASOLINA_FISICO = (decimal)totalCantidadGas; result1.ING_DIESEL_VALORADO = (decimal)totalventaDie; result1.ING_GASOLINA_VALORADO = (decimal)totalventaGas; result1.EGR_GASOLINA_FISICO = (decimal)totalCantidadGas; result1.EGR_DIESEL_FISICO = (decimal)totalCantidadDie; result1.EGR_DIESEL_VALORADO = (decimal)totalcostoDie; result1.EGR_GASOLINA_VALORADO = (decimal)totalcostoGas; //result1.ING_DIESEL_FISICO result.Add(result1); return result; }