public async Task <IActionResult> AdicionarArticulo([Bind("compraDetallID ,idArticulo,cantidad,precio,precioTotal,compraID")] CompraDetalle compraDetalle) { if (ModelState.IsValid) { int id = compraDetalle.compraID; int idArticulo = compraDetalle.idArticulo; Models.Entidades.Articulo articulo = _context.Articulo.Find(idArticulo); decimal precio = articulo.Precio; decimal cantidad = compraDetalle.cantidad; compraDetalle.precio = precio; compraDetalle.precioTotal = cantidad * precio; if (compraDetalle.cantidad <= articulo.Cantidad) { articulo.Cantidad -= decimal.ToInt32(cantidad); _context.Update(articulo); if (_context.compraDetalles.Any(o => o.compraDetallID == id)) { Models.Entidades.CompraDetalle ordenDetalleUpdate = _context.compraDetalles.Where(t => t.idArticulo == idArticulo).FirstOrDefault(); Models.Entidades.CompraDetalle ordenDetalleUpdate1 = _context.compraDetalles.Find(id); if (ordenDetalleUpdate == null && ordenDetalleUpdate1.compraID == id) { Models.Entidades.CompraDetalle ordene = _context.compraDetalles .Where(s => s.idArticulo == idArticulo) .FirstOrDefault(); Models.Entidades.CompraDetalle ordene1 = _context.compraDetalles .Where(s => s.compraID == id) .FirstOrDefault(); if (ordene != null && ordene1 != null) { ordene.cantidad += cantidad; _context.Update(ordene); } else { _context.Add(compraDetalle); } } else { if (ordenDetalleUpdate.compraID == id) { ordenDetalleUpdate.cantidad += cantidad; _context.Update(ordenDetalleUpdate); } else { _context.Add(compraDetalle); } } } else { _context.Add(compraDetalle); } await _context.SaveChangesAsync(); Models.Entidades.Compra compra = _context.Compra.Find(id); compra.subtotal += cantidad * precio; compra.total += cantidad * precio; _context.Update(compra); _context.SaveChanges(); } else { TempData["msg"] = "<script>alert('No contamos con esa cantidad');</script>"; return(RedirectToAction("Details", new { id = id })); } return(RedirectToAction("Details", new { id = id })); } return(View(compraDetalle)); }
public async Task <IActionResult> AdicionarArticulo([Bind("ordenDetallID,idArticulo,cantidad,precio,precioTotal,ordenID")] OrdenDetalle ordenDetalle) { if (ModelState.IsValid) { int id = ordenDetalle.ordenID; int idArticulo = ordenDetalle.idArticulo; Models.Entidades.Articulo articulo = _context.Articulo.Find(idArticulo); decimal precio = articulo.Precio; decimal cantidad = ordenDetalle.cantidad; ordenDetalle.precio = precio; ordenDetalle.precioTotal = cantidad * precio; articulo.Cantidad += decimal.ToInt32(cantidad); _context.Update(articulo); if (_context.ordenDetalles.Any(o => o.ordenID == id)) { Models.Entidades.OrdenDetalle ordenDetalleUpdate = _context.ordenDetalles.Where(t => t.idArticulo == idArticulo).FirstOrDefault(); Models.Entidades.OrdenDetalle ordenDetalleUpdate1 = _context.ordenDetalles.Find(id); if (ordenDetalleUpdate == null && ordenDetalleUpdate1.ordenID == id) { Models.Entidades.OrdenDetalle ordene = _context.ordenDetalles .Where(s => s.idArticulo == idArticulo) .FirstOrDefault(); Models.Entidades.OrdenDetalle ordene1 = _context.ordenDetalles .Where(s => s.ordenID == id) .FirstOrDefault(); if (ordene != null && ordene1 != null) { ordene.cantidad += cantidad; _context.Update(ordene); } else { _context.Add(ordenDetalle); } } else { if (ordenDetalleUpdate.ordenID == id) { ordenDetalleUpdate.cantidad += cantidad; _context.Update(ordenDetalleUpdate); } else { _context.Add(ordenDetalle); } } } else { _context.Add(ordenDetalle); } await _context.SaveChangesAsync(); Models.Entidades.Orden Orden = _context.Ordens.Find(id); Orden.subtotal += cantidad * precio; Orden.total += cantidad * precio; _context.Update(Orden); _context.SaveChanges(); return(RedirectToAction("Details", new { id = id })); } ViewData["idArticulo"] = new SelectList(_context.Articulo, "idArticulo", "idArticulo", ordenDetalle.idArticulo); ViewData["ordenID"] = new SelectList(_context.Ordens, "ordenID", "ordenID", ordenDetalle.ordenID); return(View(ordenDetalle)); }