public IEnumerable<KardexCombustibleModel> ReporteTanques(string ANIO = null, string MES = null) { List<KardexCombustibleModel> result = new List<KardexCombustibleModel>(); if (ANIO == null && MES == null) { //DateTime fecha = DateTime.Now; MES = DateTime.Now.ToString("MM"); ANIO = DateTime.Now.ToString("yyyy"); } string date = string.Format("01/{0}/{1}", MES, ANIO); //"01/08/2008"; DateTime dt = Convert.ToDateTime(date); var _serKcm = new KardexCombustibleServices(); var kardex = _serKcm.ObtenerKardexCombustible(MES, ANIO); var grupo = kardex.GroupBy(x => x.FECHA); var diesel = kardex.Where(x => x.SG_COMBUSTIBLES.NOMBRE == "DIESEL").OrderBy(x => x.FECHA); //diesel.Where(x=>x.) var gasolina = kardex.Where(x => x.SG_COMBUSTIBLES.NOMBRE == "GASOLINA").OrderBy(x => x.FECHA); foreach (var item in grupo) { KardexCombustibleModel venDia = new KardexCombustibleModel { FECHA = item.Key, //SALDO_INICIAL_DIE = diesel.where(y=>y.FECHA == item.Key).fi }; venDia.MES = ObtenerMesEspanol(item.Key.Month); var die = diesel.Where(x => x.FECHA == item.Key).FirstOrDefault(); var gas = gasolina.Where(x => x.FECHA == item.Key).FirstOrDefault(); venDia.SALDO_INICIAL_DIE = die.SALDO_INICIAL; venDia.COMPRAS_DIE = (decimal)die.COMPRAS; venDia.VENTAS_DIE = (decimal)die.VENTAS; venDia.AJUSTES_DIE = (decimal)die.AJUSTES; venDia.ACUMULADO_DIE = (decimal)die.ACUMULADOS; venDia.VENTAS_GAS = (decimal)gas.VENTAS; venDia.COMPRAS_GAS = (decimal)gas.COMPRAS; venDia.SALDO_INICIAL_GAS = gas.SALDO_INICIAL; venDia.ACUMULADO_GAS = (decimal)gas.ACUMULADOS; venDia.AJUSTES_GAS = (decimal)gas.AJUSTES; result.Add(venDia); } result = result.OrderBy(x => x.FECHA).ToList(); return result; }
public IEnumerable<UtilidadBrutaReal> ReporteUtilidadBrutaReal(string ANIO = null, string MES = null) { //obtener precvios var _serCom = new CombustiblesServices(); var Gas = _serCom.ObtenerCombustible(x => x.ID_COMBUSTIBLE == 1); var Die = _serCom.ObtenerCombustible(x => x.ID_COMBUSTIBLE == 2); //// var _serKcm = new KardexCombustibleServices(); List<UtilidadBrutaReal> result = new List<UtilidadBrutaReal>(); string date = string.Format("01/{0}/{1}", MES, ANIO); DateTime dt = Convert.ToDateTime(date); _serKcm.SP_ActualizarKardexMN(dt, 0); var kardex = _serKcm.ObtenerKardexCombustible(MES, ANIO); var grupo = kardex.GroupBy(x => x.FECHA); var diesel = kardex.Where(x => x.SG_COMBUSTIBLES.NOMBRE == "DIESEL").OrderBy(x => x.FECHA); var gasolina = kardex.Where(x => x.SG_COMBUSTIBLES.NOMBRE == "GASOLINA").OrderBy(x => x.FECHA); UtilidadBrutaReal result1 = new UtilidadBrutaReal(); result1.ING_INV_INI_FIS_DIE = diesel.FirstOrDefault().SALDO_INICIAL; result1.ING_VEN_TOT_FIS_DIE = diesel.GroupBy(x => x.SG_COMBUSTIBLES.ID_COMBUSTIBLE).Select(x => x.Sum(y => y.VENTAS)).FirstOrDefault().Value; result1.ING_VEN_TOT_VAL_DIE = (decimal)(result1.ING_VEN_TOT_FIS_DIE * Die.PRECIO_VENTA); result1.ING_INV_INI_VAL_DIE = (decimal)(result1.ING_INV_INI_FIS_DIE * Die.PRECIO_VENTA); result1.ING_INV_INI_FIS_GAS = gasolina.FirstOrDefault().SALDO_INICIAL; result1.ING_VEN_TOT_FIS_GAS = gasolina.GroupBy(x => x.SG_COMBUSTIBLES.ID_COMBUSTIBLE).Select(x => x.Sum(y => y.VENTAS)).FirstOrDefault().Value; result1.ING_VEN_TOT_VAL_GAS = (decimal)(result1.ING_VEN_TOT_FIS_GAS * Gas.PRECIO_VENTA); result1.ING_INV_INI_VAL_GAS = (decimal)(result1.ING_INV_INI_FIS_GAS * Gas.PRECIO_VENTA); result1.EGR_INV_INI_FIS_DIE = (decimal)diesel.LastOrDefault().ACUMULADOS; result1.EGR_VEN_TOT_FIS_DIE = diesel.GroupBy(x => x.SG_COMBUSTIBLES.ID_COMBUSTIBLE).Select(x => x.Sum(y => y.COMPRAS)).FirstOrDefault().Value; result1.EGR_INV_INI_FIS_GAS = (decimal)gasolina.LastOrDefault().ACUMULADOS; result1.EGR_VEN_TOT_FIS_GAS = gasolina.GroupBy(x => x.SG_COMBUSTIBLES.ID_COMBUSTIBLE).Select(x => x.Sum(y => y.COMPRAS)).FirstOrDefault().Value; result1.EGR_VEN_TOT_VAL_DIE = (decimal)(result1.EGR_VEN_TOT_FIS_DIE * Die.PRECIO_COMPRA); result1.EGR_INV_INI_VAL_DIE = (decimal)(result1.EGR_INV_INI_FIS_DIE * Die.PRECIO_COMPRA); result1.EGR_VEN_TOT_VAL_GAS = (decimal)(result1.EGR_VEN_TOT_FIS_GAS * Gas.PRECIO_COMPRA); result1.EGR_INV_INI_VAL_GAS = (decimal)(result1.EGR_INV_INI_FIS_GAS * Gas.PRECIO_COMPRA); result.Add(result1); return result; }