Exemple #1
0
        public async Task <IActionResult> Edit(long id, [Bind("ID,NumberBill,Date,Subtotal,Iva,Total,SupplierID")] BillPurchase billPurchase)
        {
            if (id != billPurchase.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(billPurchase);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BillPurchaseExists(billPurchase.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            ViewData["SupplierID"] = new SelectList(_context.Supplier, "ID", "ID", billPurchase.SupplierID);
            return(View(billPurchase));
        }
Exemple #2
0
        public async Task <IActionResult> Create([Bind("NumberBill,Date,Subtotal,Iva,Total,SupplierID")] BillPurchase billPurchase)
        {
            if (ModelState.IsValid)
            {
                _context.Add(billPurchase);
                await _context.SaveChangesAsync();

                //Save Detail
                var rows = Request.Form["list_detalle"].ToString().Split(',').ToList();
                foreach (string number in rows)
                {
                    var idProduct = Convert.ToInt64(Request.Form["id" + number].ToString());
                    var product   = _context.Product.Where(p => p.ID == idProduct).SingleOrDefault();
                    product.Stock = product.Stock + Convert.ToInt32(Request.Form["ca" + number].ToString());

                    _context.Product.Update(product);
                    _context.SaveChanges();

                    //Next Feature: Add description
                    //Save DetailMovement Table
                    var objectDetailMovement = new DetailMovement();
                    objectDetailMovement.ProductID = product.ID;
                    objectDetailMovement.Type      = 0; // entry product
                    objectDetailMovement.Amount    = Convert.ToInt32(Request.Form["ca" + number].ToString());
                    objectDetailMovement.UnitPrice = Convert.ToDecimal(Request.Form["pu" + number].ToString().Replace(".", ","));
                    objectDetailMovement.Stock     = product.Stock;

                    _context.DetailMovement.Add(objectDetailMovement);
                    _context.SaveChanges();

                    //Fixme: Update Cost Price
                    if (objectDetailMovement.UnitPrice > product.CostPrice)
                    {
                        product.CostPrice = objectDetailMovement.UnitPrice;
                        _context.Product.Update(product);
                        _context.SaveChanges();
                    }

                    //Save DetailBillPurchase
                    var objectDetailBillPurchase = new DetailBillPurchase();
                    objectDetailBillPurchase.BillPurchaseID   = billPurchase.ID;
                    objectDetailBillPurchase.DetailMovementID = objectDetailMovement.ID;
                    _context.DetailBillPurchase.Add(objectDetailBillPurchase);

                    _context.SaveChanges();
                    System.Diagnostics.Debug.WriteLine("IDDetailMovement: ", objectDetailMovement.ID);


                    //System.Diagnostics.Debug.WriteLine("Nombre: "+Request.Form["no"+number].ToString());
                }
                //System.Diagnostics.Debug.WriteLine("REQUEST: " + rows.Count);

                return(RedirectToAction("Index"));
            }
            ViewData["SupplierID"] = new SelectList(_context.Supplier, "ID", "ID", billPurchase.SupplierID);
            return(View(billPurchase));
        }