Exemple #1
0
        public async Task <List <Categoria> > GetAll()
        {
            Trabajador?t = await tRepository.GetCurrentTrabajador();

            Negocio?n = await negocioRepository.GetById(t !.IdNegocio);

            NpgsqlParameter TipoNegocio = new NpgsqlParameter("@p0", n !.TipoNegocio);

            return(await context.Categoria.FromSqlRaw("SELECT \"Categoria\".\"IdCategoria\",\"Categoria\".\"Nombre\" FROM \"Categoria\" where \"Categoria\".\"TipoNegocio\" = @p0", TipoNegocio).ToListAsync());
        }
Exemple #2
0
        public async Task <Venta?> Add(int importeTotal)
        {
            var trabajador = await repTrabajador.GetCurrentTrabajador();

            Venta venta = new Venta
            {
                IdVenta      = Guid.NewGuid().ToString(),
                IdTrabajador = trabajador !.Rut,
                FechaVenta   = DateTime.Now,
                PrecioTotal  = Convert.ToInt32(importeTotal)
            };

            NpgsqlParameter param1 = new("@p0", venta.IdVenta);
            NpgsqlParameter param2 = new("@p1", venta.IdTrabajador);
            NpgsqlParameter param3 = new("@p2", venta.PrecioTotal);
            NpgsqlParameter param4 = new("@p3", venta.FechaVenta.ToString("ddMMyyyy"));

            /*
             * CREATE OR REPLACE PROCEDURE public.agregaventa(
             *      _idventa character varying,
             *      _idtrabajador character varying,
             *      _preciototal integer,
             *      _fechaventa character varying)
             * LANGUAGE 'sql'
             * AS $BODY$
             * INSERT INTO "Venta" (
             *              "IdVenta",
             *              "IdTrabajador" ,
             *              "PrecioTotal",
             *              "FechaVenta"
             *              )
             *  VALUES (
             *                      _idventa,
             *                      _idtrabajador,
             *                      _preciototal,
             *                      to_date(_fechaventa,'DDMMYY')
             *                      );
             * $BODY$;
             */

            var resultado = await context.Database.ExecuteSqlRawAsync("CALL AgregaVenta(@p0,@p1,@p2,@p3)", param1, param2, param3, param4);

            if (resultado == 0)
            {
                return(null);
            }

            return(venta);
        }
Exemple #3
0
        public async Task <IActionResult> Create([Bind("IdProducto,CantidadVendida,PrecioVenta,Importe")] List <DetalleViewModel> detalle)
        {
            if (detalle == null)
            {
                detalle = new List <DetalleViewModel>();
                return(View(detalle));
            }

            if (ModelState.IsValid && detalle.Count >= 1)
            {
                var trabajador = await repositorioTrabajadores.GetCurrentTrabajador();

                var venta = await ventaRepository.Add(detalle.Sum(item => item.Importe));

                var productos = await productoRepository.GetAll();

                if (venta == null || trabajador == null)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new { message = "ha ocurrido un error, intente crear la boleta nuevamente." }));
                }

                Debug.WriteLine(detalle.Sum(item => item.Importe));
                foreach (DetalleViewModel d in detalle)
                {
                    await repositorioDetalle.Add(d, venta, trabajador, productos);
                }
                return(RedirectToAction(nameof(Index)));
            }

            ViewData["IdProducto"] = new SelectList(await productoRepository.GetAll(), "IdProducto", "Nombre");

            return(View(detalle));
        }
Exemple #4
0
        public async Task <List <Historial> > GetAll()
        {
            Trabajador?negocio = await administradorSesion.GetCurrentTrabajador();

            NpgsqlParameter param1 = new NpgsqlParameter("@p0", negocio !.IdNegocio);

            // return await context.Historials.FromSqlRaw("SELECT * FROM \"Historial\" WHERE \"IdTrabajador\" = @p0", param1).ToListAsync();
            return(await context.Historials.FromSqlRaw("SELECT \"h\".\"IdTrabajador\",\"h\".\"IdProducto\",\"h\".\"IdAccion\",\"h\".\"FechaModificacion\" FROM \"Historial\" \"h\", \"Trabajador\" \"t\" where \"h\".\"IdTrabajador\" = \"t\".\"Rut\" and \"t\".\"IdNegocio\" = @p0", param1).ToListAsync());
        }
Exemple #5
0
        public async Task <List <ProductoGen> > GetVentasEntreFechas(DateTime date1, DateTime date2)
        {
            var trabajador = await tRepository.GetCurrentTrabajador();

            if (trabajador == null)
            {
                return(new List <ProductoGen>());
            }

            NpgsqlParameter idNegocio = new NpgsqlParameter("@p0", trabajador.IdNegocio);
            NpgsqlParameter fecha1    = new NpgsqlParameter("@p1", date1.ToShortDateString().Replace("-", ""));
            NpgsqlParameter fecha2    = new NpgsqlParameter("@p2", date2.ToShortDateString().Replace("-", ""));

            return(await context.ProductoGens.FromSqlRaw("select \"p\".\"IdProducto\" as \"IdProducto\",\"p\".\"Nombre\" as \"Nombre\" , \"p\".\"Stock\" as \"Stock\", \"p\".\"PrecioVenta\" as \"PrecioVenta\", \"p\".\"PrecioCosto\",sum(\"d\".\"CantidadVendida\") as \"CantidadVendida\" from \"Venta\" as \"v\" inner join \"Detalle\" as \"d\" on \"v\".\"IdVenta\" = \"d\".\"IdVenta\" inner join \"Producto\" as \"p\" on \"d\".\"IdProducto\" = \"p\".\"IdProducto\" and \"p\".\"IdNegocio\" = @p0 and \"v\".\"FechaVenta\" between to_date(@p1,'DDMMYY') and to_date(@p2,'DDMMYY') group by (\"p\".\"IdProducto\",\"p\".\"Nombre\", \"p\".\"Stock\", \"p\".\"PrecioVenta\", \"p\".\"PrecioCosto\");", idNegocio, fecha1, fecha2).ToListAsync());
        }
Exemple #6
0
        public async Task <IActionResult> Profile()
        {
            try
            {
                ViewBag.CantidadAlarmas = (await productoRepository.GetCantidadAlarmas()).Cantidad;
                var trabajador = await repositorioTrabajadores.GetCurrentTrabajador();

                if (trabajador == null)
                {
                    await LogoutAsync();
                }

                var negocio = await repNegocio.GetById(trabajador !.IdNegocio);

                if (trabajador.Foto != null)
                {
                    ViewData["img"] = string.Format(config["AWSS3:UrlUser"], trabajador.IdNegocio, trabajador.Rut);
                }

                return(View(new TrabajadorUpdateViewModel
                {
                    Correo = trabajador.Correo,
                    Rut = trabajador.Rut,
                    Nombre = trabajador.Nombre,
                    Apellido = trabajador.Apellido,
                    FechaNacimiento = trabajador.FechaNacimiento,
                    Telefono = trabajador.Telefono,
                    FotoUrl = trabajador.Foto,
                    NombreNegocio = negocio.Nombre
                }));
            }
            catch (Exception e)
            {
                return(StatusCode((int)System.Net.HttpStatusCode.Unauthorized, e.Message));
                //return Unauthorized(e.Message);
            }
        }