Ejemplo n.º 1
0
        public async Task <List <CategoriaCantProdCateViewModel> > GetCantidadProductoCategoria()
        {
            string?rut = administradorSesion.UsuarioActual()?.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            NpgsqlParameter param1 = new NpgsqlParameter("@p0", rut);

            return(await context.CantProdCateQuery.FromSqlRaw
                       ("SELECT \"Categoria\".\"Nombre\" as \"NombreCategoria\", count(\"Producto\".\"Nombre\") AS \"CantidadVendida\" FROM \"Categoria\" inner JOIN \"Producto\" ON \"Producto\".\"IdCategoria\"=\"Categoria\".\"IdCategoria\" and \"Producto\".\"IdNegocio\"=(select \"IdNegocio\" from \"Trabajador\" where \"Rut\"=@p0) GROUP BY (\"Categoria\".\"IdCategoria\")", param1).ToListAsync());
        }
Ejemplo n.º 2
0
        public async Task <List <Venta> > GetAll()
        {
            string?         rut    = administradorSesion.UsuarioActual()?.FindFirst(ClaimTypes.NameIdentifier)?.Value;
            NpgsqlParameter param1 = new NpgsqlParameter("@p0", rut);

            return(await context.Venta.FromSqlRaw("SELECT \"V\".\"IdVenta\", \"V\".\"IdTrabajador\", \"T\".\"Nombre\" , \"V\".\"PrecioTotal\", \"V\".\"FechaVenta\" FROM \"Venta\" AS \"V\",\"Trabajador\" AS \"T\" WHERE \"V\".\"IdTrabajador\" = \"T\".\"Rut\" AND \"T\".\"IdNegocio\" = (SELECT \"IdNegocio\" FROM \"Trabajador\" WHERE \"Rut\"= @p0)", param1).ToListAsync());
        }
Ejemplo n.º 3
0
        public async Task <int> Employ(Trabajador trabajador)
        {
            string?rut = administradorSesion.UsuarioActual()?.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            NpgsqlParameter param1  = new NpgsqlParameter("@p0", trabajador.Rut.Replace(".", "").Replace("-", "").Trim());
            NpgsqlParameter param2  = new NpgsqlParameter("@p1", trabajador.IdNegocio);
            NpgsqlParameter param3  = new NpgsqlParameter("@p2", trabajador.IdRol);
            NpgsqlParameter param4  = new NpgsqlParameter("@p3", trabajador.Correo);
            NpgsqlParameter param5  = new NpgsqlParameter("@p4", trabajador.Contrasena);
            NpgsqlParameter param6  = new NpgsqlParameter("@p5", trabajador.Nombre);
            NpgsqlParameter param7  = new NpgsqlParameter("@p6", trabajador.Apellido);
            NpgsqlParameter param8  = new NpgsqlParameter("@p7", trabajador.FechaNacimiento);
            NpgsqlParameter param9  = new NpgsqlParameter("@p8", trabajador.Foto);
            NpgsqlParameter param10 = new NpgsqlParameter("@p9", trabajador.Telefono);
            NpgsqlParameter param11 = new NpgsqlParameter("@p10", rut);

            return(await context.Database
                   .ExecuteSqlRawAsync("INSERT INTO \"Trabajador\" (\"Rut\", \"IdNegocio\", \"IdRol\", \"Correo\", \"Contrasena\", \"Nombre\", \"Apellido\", \"FechaNacimiento\", \"Telefono\", \"Foto\", \"SuperRut\") values (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10)", param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Profile(TrabajadorUpdateViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model == null)
            {
                return(LocalRedirect("~/Producto"));
            }

            if (string.IsNullOrWhiteSpace(model.Correo))
            {
                ModelState.AddModelError(nameof(model.Correo), "El correo ingresado es invalido.");
                return(View(model));
            }

            if (string.IsNullOrWhiteSpace(model.Contrasena))
            {
                ModelState.AddModelError(nameof(model.Contrasena), "La contraseña no puede estar vacia.");
                return(View(model));
            }

            var t = await repositorioTrabajadores.GetByEmail(model.Correo);

            var rut = administradorSesion.UsuarioActual()?.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            if (t != null && t.Rut != rut)
            {
                ModelState.AddModelError(nameof(model.Correo), "El correo ingresado ya existe.");
                return(View(model));
            }

            await repositorioTrabajadores.Actualizar(model);

            return(LocalRedirect("~/Producto"));
        }