public IEnumerable<CompraDetalle> ReporteCompra(int ID_COMPRA) { var servicio = new ComprasServices(); List<CompraDetalle> result = new List<CompraDetalle>(); NumLetra nl = new NumLetra(); var query = servicio.ObtenerComprasPorCriterio(x => x.ID_COMPRA == ID_COMPRA).FirstOrDefault(); string user = HttpContext.Current.User.Identity.Name.Split('-')[0]; CompraDetalle model = new CompraDetalle() { CAJA = query.ID_CAJA != 1 ? string.Format("{0} - {1} Nro Cuenta : {2} {3}", query.SG_CAJAS.CODIGO, query.SG_CAJAS.NOMBRE, query.SG_CAJAS.NRO_CUENTA, query.SG_CAJAS.DESCRIPCION) : string.Format("{0} - {1} ", query.SG_CAJAS.CODIGO, query.SG_CAJAS.NOMBRE), COMBUSTIBLE = query.SG_COMBUSTIBLES.NOMBRE, DETALLE = string.Format("Compra Combustible {0}", query.SG_COMBUSTIBLES.NOMBRE), CANTIDAD = query.CANTIDAD, PRECIO = query.PRECIO, IMPORTE_DET = query.CANTIDAD * query.PRECIO, NRO_COMP = query.NRO_COMP, NRO_FACTURA = query.NRO_FACTURA, FECHA = query.FECHA, USUARIO = user }; result.Add(model); if (query.SG_DETALLES_COMPRAS.Count() > 0) { foreach (var item in query.SG_DETALLES_COMPRAS) { CompraDetalle rec = new CompraDetalle() { CAJA = query.ID_CAJA != 1 ? string.Format("{0} - {1} Nro Cuenta : {2} {3}", query.SG_CAJAS.CODIGO, query.SG_CAJAS.NOMBRE, query.SG_CAJAS.NRO_CUENTA, query.SG_CAJAS.DESCRIPCION) : string.Format("{0} - {1} ", query.SG_CAJAS.CODIGO, query.SG_CAJAS.NOMBRE), COMBUSTIBLE = query.SG_COMBUSTIBLES.NOMBRE, DETALLE = item.DETALLE, CANTIDAD = 1, PRECIO = item.IMPORTE, IMPORTE_DET = item.IMPORTE, NRO_COMP = query.NRO_COMP, NRO_FACTURA = query.NRO_FACTURA, FECHA = query.FECHA, USUARIO = user }; result.Add(rec); } } foreach (var item in result) { item.TOTAL = result.Sum(y => y.IMPORTE_DET); item.TOTAL_LITERAL = nl.Convertir(item.TOTAL.ToString(), true); } return result; }
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; }