public IEnumerable<DetalleMangueraModel> ReporteVenta(string FECHA1, string TURNO) { DateTime FECHA = DateTime.ParseExact(FECHA1, "dd/MM/yyyy", null); var servicio = new PosTurnosServices(); //var servicioUsuario = new UsuariosServices(); var query = servicio.ObtenerPosTurnosPorCriterio(x => x.FECHA == FECHA && x.TURNO == TURNO); var result = query.Select(x => new DetalleMangueraModel { COMBUSTIBLE = x.SG_POS.SG_COMBUSTIBLES.DESCRIPCION, ENT_LITTER = x.ENT_LITTER, SAL_LITTER = x.SAL_LITTER, MANGUERA = x.SG_POS.CODIGO, FECHA = FECHA, TURNO = TURNO, USUARIO = servicioUsuario.ObtenerUsuariosPorCriterio(y=>y.ID_USUARIO == x.ID_USUARIO).FirstOrDefault().NOMBRE, RESPONSABLE = "RESPONSABLE" }); return result; }
public IEnumerable<MovimientoProductoModel> ReporteSustanciasControladas(string ANIO = null, string MES = null, int ID_COMBUSTIBLE = 0) { List<MovimientoProductoModel> result = new List<MovimientoProductoModel>(); string date = string.Format("01/{0}/{1}", MES, ANIO); DateTime dt = Convert.ToDateTime(date); var _serKcm = new KardexCombustibleServices(); var _serPos = new PosTurnosServices(); var _serAju = new AjustePosServices(); _serKcm.SP_ActualizarKardexMN(dt, 0); var kardex = _serKcm.ObtenerKardexMNCombustible(MES, ANIO); var posMes = _serPos.ObtenerPosTurnosPorFecha(ANIO, MES); var ajusteposMes = _serAju.ObtenerAjustePosPorFecha(ANIO, MES); var grupo = kardex.GroupBy(x => x.FECHA); var combustible = kardex.Where(x => x.SG_COMBUSTIBLES.ID_COMBUSTIBLE == ID_COMBUSTIBLE); foreach (var item in grupo) { MovimientoProductoModel venDia = new MovimientoProductoModel { FECHA = item.Key, //SALDO_INICIAL_DIE = diesel.where(y=>y.FECHA == item.Key).fi }; var com = combustible.Where(x => x.FECHA == item.Key).FirstOrDefault(); var pos = posMes.Where(x => x.FECHA == item.Key && x.SG_POS.ID_COMBUSTIBLE == ID_COMBUSTIBLE).OrderBy(y => y.ID_POS); var total = pos.Sum(x => x.TOTAL); var postotales = pos.GroupBy(x => x.ID_POS).Select(y => new {TOTAL = y.Sum(z=>z.TOTAL) , ID_POS = y.Key }); venDia.PRODUCTO = com.SG_COMBUSTIBLES.DESCRIPCION; venDia.MES = ObtenerMesEspanol(com.FECHA.Month); venDia.SALDO_ANTERIOR = com.SALDO_INICIAL; venDia.COMPRA = (decimal)com.COMPRAS; venDia.VENTA = (decimal)com.VENTAS; decimal saldoventa = venDia.VENTA; venDia.SALDO_ACTUAL = (decimal)com.ACUMULADOS; venDia.PROVEEDOR = "YPFB"; venDia.TELEFONO = "4703510"; int cont = 0; foreach (var puntos in postotales) { if (cont == 0) { venDia.MANGUERA1 = puntos.TOTAL == 0 ? 0 :(puntos.TOTAL / total) * venDia.VENTA; venDia.MANGUERA1 = Math.Round(venDia.MANGUERA1, 0); saldoventa = saldoventa - venDia.MANGUERA1; } else if (cont == 1) { venDia.MANGUERA2 = puntos.TOTAL == 0 ? 0 : (puntos.TOTAL / total) * venDia.VENTA; venDia.MANGUERA2 = Math.Round(venDia.MANGUERA2, 0); saldoventa = saldoventa - venDia.MANGUERA2; } else if (cont == 2) { venDia.MANGUERA3 = puntos.TOTAL == 0 ? 0 : (puntos.TOTAL / total) * venDia.VENTA; venDia.MANGUERA3 = Math.Round(venDia.MANGUERA3, 0); saldoventa = saldoventa - venDia.MANGUERA3; } else if (cont == 3) { //venDia.MANGUERA4 = puntos.TOTAL == 0 ? 0 : (puntos.TOTAL / total) * venDia.VENTA; //venDia.MANGUERA4 = Math.Round(venDia.MANGUERA4, 0); venDia.MANGUERA4 = saldoventa; saldoventa = 0; } else { cont++; } cont++; } result.Add(venDia); } result = result.OrderBy(x => x.FECHA).ToList(); 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; }
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; }
public IEnumerable<EstadoResultadoCompletoModel> ReporteEstadoResultadoCompleto(string ANIO = null, string MES = null) { var puntosVentaService = new PosTurnosServices(); List<EstadoResultadoCompletoModel> result = new List<EstadoResultadoCompletoModel>(); var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES); var totales = ventas.GroupBy(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) }); //var cons = consumo.ObtenerConsumosPorCriterio(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) }); decimal? totalventa = 0; decimal? totalcosto = 0; DateTime? fecha = null; foreach (var item in totales) { totalventa = totalventa + item.TOTALVENTA; totalcosto = totalcosto + item.TOTALCOSTO; fecha = item.FECHA; } result.Add(new EstadoResultadoCompletoModel() { MES = ObtenerMesEspanol(Convert.ToInt32(MES)),FECHA = fecha, NRO = 1 ,OPERACION = "INGRESOS", SUBOPERACION = "INGRESOS OPERATIVOS", DETALLE = "VENTAS", IMPORTE = totalventa }); result.Add(new EstadoResultadoCompletoModel() { NRO = 2, OPERACION = "INGRESOS", SUBOPERACION = "INGRESOS OPERATIVOS", DETALLE = "COSTOS DE VENTAS", IMPORTE = -totalcosto }); var serIngreso = new IngresosServices(); var ingresos = serIngreso.ObtenerIngresosPorFecha(ANIO, MES); var totalesIngreso = ingresos.Where(x=>x.ID_AMORTIZACION == null).Sum(x => x.IMPORTE); result.Add(new EstadoResultadoCompletoModel() { NRO = 3,OPERACION = "INGRESOS", SUBOPERACION = "INGRESOS NO OPERATIVOS", DETALLE = "OTROS INGRESOS", IMPORTE = totalesIngreso }); //ajustes var serAjus = new AjustePosServices(); var ajustes = serAjus.ObtenerAjustePorMesAnio(ANIO, MES); var totalesAjustes = ajustes.GroupBy(x => new { x.SG_TANQUES.SG_COMBUSTIBLES.NOMBRE , x.SG_TANQUES.SG_COMBUSTIBLES.PRECIO_VENTA }).Select(y => new { TOTALAJUSTE = y.Sum(x => x.CANTIDAD) * y.Key.PRECIO_VENTA, COMBUSTIBLE = y.Key.NOMBRE }); //consumo var serConsumo = new ClientesConsumoServices(); var consumos = serConsumo.ObtenerConsumoPorMesyAnio(ANIO, MES); var totalesConsumos = consumos.GroupBy(x => new { x.SG_CLIENTES_CONSUMO.NOMBRE, x.SG_COMBUSTIBLES.DESCRIPCION }).Select(y => new { TOTALCONSUMO = y.Sum(x => x.IMPORTE_BS), COMBUSTIBLE = y.Key.DESCRIPCION, CLIENTE = y.Key.NOMBRE }); decimal? calibraciongasolina = 0; decimal? calibracionDiesel = 0; foreach (var itemcalibracion in totalesConsumos) { if (itemcalibracion.CLIENTE == "CALIBRACION IBMETRO") { if (itemcalibracion.COMBUSTIBLE == "GASOLINA ESPECIAL") { calibraciongasolina = itemcalibracion.TOTALCONSUMO; } else { calibracionDiesel = itemcalibracion.TOTALCONSUMO; } } } int cnt = 6; int cnt1 = 4; foreach (var item in totalesAjustes) { EstadoResultadoCompletoModel aju = new EstadoResultadoCompletoModel() { NRO =cnt, OPERACION = "INGRESOS", SUBOPERACION = "EXCEDENTE/PERDIDA", DETALLE = string.Format("EXCEDENTE/PERDIDA - {0}",item.COMBUSTIBLE), IMPORTE = item.COMBUSTIBLE == "GASOLINA" ? item.TOTALAJUSTE - calibraciongasolina : item.TOTALAJUSTE - calibracionDiesel }; cnt++; result.Add(aju); } //result.Add(new EstadoResultadoCompletoModel() { NRO = 4 ,OPERACION = "INGRESOS", SUBOPERACION = "EXCEDENTE/PERDIDA", DETALLE = "EXCEDENTE/PERDIDA - DIESEL", IMPORTE = 755 }); //result.Add(new EstadoResultadoCompletoModel() { NRO = 5 ,OPERACION = "INGRESOS", SUBOPERACION = "EXCEDENTE/PERDIDA", DETALLE = "EXCEDENTE/PERDIDA - GASOLINA", IMPORTE = 523 }); var egresos = serIngreso.ObtenerEgresosPaginado(null, ANIO, MES); foreach (var item in egresos.OrderBy(x => x.FECHA)) { EstadoResultadoCompletoModel egre = new EstadoResultadoCompletoModel() { NRO =cnt, OPERACION = "EGRESOS", SUBOPERACION = "GASTOS", DETALLE = item.CONCEPTO, //MES = item.FECHA.ToString("MMMM").ToUpper(); IMPORTE = -item.IMPORTE, //UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto) }; cnt++; //egre.MES = ObtenerMesEspanol(item.FECHA.Month); //item.FECHA.ToString("MMMM").ToUpper(); result.Add(egre); } //consumos foreach (var itemCons in totalesConsumos) { if (itemCons.CLIENTE == "CALIBRACION IBMETRO") { EstadoResultadoCompletoModel aux = new EstadoResultadoCompletoModel() { NRO = cnt1, OPERACION = "INGRESOS", SUBOPERACION = "INGRESOS OPERATIVOS", DETALLE = string.Format("{0} {1}", itemCons.CLIENTE, itemCons.COMBUSTIBLE), IMPORTE = -itemCons.TOTALCONSUMO //UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto) }; //var ajusteconsumo = result.Where(x => x.SUBOPERACION == "EXCEDENTE/PERDIDA" && x.DETALLE.Contains(itemCons.COMBUSTIBLE)).FirstOrDefault(); //if (ajusteconsumo != null) //{ // ajusteconsumo.IMPORTE = ajusteconsumo.IMPORTE - itemCons.TOTALCONSUMO; //} cnt1++; result.Add(aux); } else { EstadoResultadoCompletoModel cons = new EstadoResultadoCompletoModel() { NRO = cnt, OPERACION = "EGRESOS", SUBOPERACION = "CONSUMO PROPIO", DETALLE = string.Format("{0} {1}", itemCons.CLIENTE, itemCons.COMBUSTIBLE), IMPORTE = -itemCons.TOTALCONSUMO //UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto) }; cnt++; result.Add(cons); } //egre.MES = ObtenerMesEspanol(item.FECHA.Month); //item.FECHA.ToString("MMMM").ToUpper(); } return result; }
public IEnumerable<EstadoResultadoModel> ReporteEstadoResultado(string ANIO = null, string MES = null) { List<EstadoResultadoModel> result = new List<EstadoResultadoModel>(); var servicio = new IngresosServices(); var consumo = new ClientesConsumoServices(); var puntosVentaService = new PosTurnosServices(); var egresos = servicio.ObtenerEgresosPaginado(null, ANIO, MES); var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES); var totales = ventas.GroupBy(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) }); //var cons = consumo.ObtenerConsumosPorCriterio(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) }); decimal? totalventa = 0; decimal? totalcosto = 0; foreach (var item in totales) { totalventa = totalventa + item.TOTALVENTA; totalcosto = totalcosto + item.TOTALCOSTO; } foreach (var item in egresos.OrderBy(x => x.FECHA)) { EstadoResultadoModel egre = new EstadoResultadoModel() { FECHA = item.FECHA, DETALLE = item.CONCEPTO, //MES = item.FECHA.ToString("MMMM").ToUpper(); TOTAL = item.IMPORTE, UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto) }; egre.MES = ObtenerMesEspanol(item.FECHA.Month); //item.FECHA.ToString("MMMM").ToUpper(); result.Add(egre); } return result; }