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