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()); }
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); }
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)); }
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()); }
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()); }
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); } }