public async Task <ActionResult> AnularOrdenCompra(DTOOrdenCompra orden) { string _id = null; try { _id = User.Claims.First(x => x.Type == "Idusuario").Value; } catch (Exception) { return(await Task.FromResult(StatusCode(401, "Acceso restringido"))); } var ordenCompra = await _context.OrdenCompra.FirstOrDefaultAsync(x => x.IdordenCompra == orden.IdordenCompra); if (ordenCompra.IdestadoOrdenCompra == (int)EnumCompras.Entrega || ordenCompra.IdestadoOrdenCompra == (int)EnumCompras.Anulada) { return(Ok("Esta orden se encuentra entregada/anulada no es posible anularla")); } ordenCompra.IdestadoOrdenCompra = (int)EnumCompras.Anulada; //foreach (var detalle in orden.DetalleOrdenCompra) //{ // var producto = await _context.Inventario.FirstOrDefaultAsync(x => x.Idproducto == detalle.Idproducto); // producto.Cantidad -= detalle.Cantidad; //} await _context.SaveChangesAsync(); return(Ok("Orden de compra anulada")); }
public async Task <ActionResult> UpdateOrdenCompra(DTOOrdenCompra orden) { string _id = null; try { _id = User.Claims.First(x => x.Type == "Idusuario").Value; } catch (Exception) { return(await Task.FromResult(StatusCode(401, "Acceso restringido"))); } var ordenCompra = await _context.OrdenCompra.FirstOrDefaultAsync(x => x.IdordenCompra == orden.IdordenCompra); var nextEstado = await Estados(ordenCompra.IdordenCompra); ordenCompra.IdestadoOrdenCompra = nextEstado; if (ordenCompra.IdestadoOrdenCompra == (int)EnumCompras.Entrega) { foreach (var detalle in orden.DetalleOrdenCompra) { var producto = await _context.Inventario.FirstOrDefaultAsync(x => x.Idproducto == detalle.Idproducto); producto.Cantidad += detalle.Cantidad; } } await _context.SaveChangesAsync(); return(Ok("Orden de compra actualizada")); }
public async Task <ActionResult> PostOrdenCompra(DTOOrdenCompra orden) { string _id = null; try { _id = User.Claims.First(x => x.Type == "Idusuario").Value; } catch (Exception) { return(await Task.FromResult(StatusCode(401, "Acceso restringido"))); } OrdenCompra item = new OrdenCompra() { FechaCreacion = DateTime.Now, FechaEspectativa = orden.FechaEspectativa, UserCreatedId = Int32.Parse(_id), Idproveedor = orden.Idproveedor, IdestadoOrdenCompra = (int)EnumCompras.Compra, Tipo = orden.Tipo, SubTotal = orden.SubTotal, Impuesto = orden.Impuesto, Total = orden.Total }; _context.OrdenCompra.Add(item); await _context.SaveChangesAsync(); foreach (var detalle in orden.DetalleOrdenCompra) { DetalleOrdenCompra itemDetalle = new DetalleOrdenCompra() { IdordenCompra = item.IdordenCompra, Idproducto = detalle.Idproducto, IdunidadMedida = detalle.IdunidadMedida, Cantidad = detalle.Cantidad, TotalUnidadCompra = detalle.TotalUnidadCompra }; _context.DetalleOrdenCompra.Add(itemDetalle); //var producto = await _context.Inventario.FirstOrDefaultAsync(x => x.Idproducto == detalle.Idproducto); //producto.Cantidad += detalle.Cantidad; await _context.SaveChangesAsync(); } return(Ok("Orden de compra realizada")); }