Exemple #1
0
        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;
        }
Exemple #2
0
        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;
        }