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