public async Task <ActionResult> Edit(int?id, bool?modal)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PurchaseOrder purchaseOrder = await FindAsyncPurchaseOrder(id.Value);

            if (purchaseOrder == null)
            {
                return(HttpNotFound());
            }

            await SetSupplierSelectList(purchaseOrder);

            var vm = new PurchaseOrderEditVM(purchaseOrder);

            await SetSectListAsync(vm);

            if (modal ?? false)
            {
                ViewBag.Modal = true;
                return(PartialView("_Edit", vm));
            }
            return(View(vm));
        }
        public async Task <ActionResult> Approve(int?id)  //GET: /PurchaseOrders/Approve/5
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var purchaseOrder = await FindAsyncPurchaseOrder(id.Value);

            if (purchaseOrder == null)
            {
                return(HttpNotFound());
            }

            if (purchaseOrder.IsApproved)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (purchaseOrder.DueDate == null)
            {
                //TODO: Get 42 days from an AppSetting
                purchaseOrder.DueDate         = DateTime.Today.AddDays(42);
                purchaseOrder.SupplierDueDate = purchaseOrder.DueDate.Value.AddDays(-3);
            }
            var poVM = new PurchaseOrderEditVM(purchaseOrder);

            await SetSupplierSelectList(purchaseOrder);
            await SetSectListAsync(poVM);

            return(View(poVM));
        }
        public async Task <ActionResult> Edit(PurchaseOrderEditVM vm, bool?modal)
        {
            PurchaseOrder purchaseOrder = await FindAsyncPurchaseOrder(vm.Id);

            await PutVmToPO(vm, purchaseOrder, false);

            await DataContext.SaveChangesAsync(this);

            if (modal ?? false)
            {
                return(Json(new { saved = true }));
            }
            return(RedirectToAction("Details", new { id = vm.Id }));
        }
        public async Task <ActionResult> Approve(PurchaseOrderEditVM vm)
        {
            var purchaseOrder = await FindAsyncPurchaseOrder(vm.Id);

            if (purchaseOrder == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            await PutVmToPO(vm, purchaseOrder, true);

            if (vm.IsApproved)
            {
                await ApproveSaveAsync(purchaseOrder);

                return(RedirectToAction("Create", "Processes", new { purchaseOrderId = purchaseOrder.Id }));
            }
            var poVM = new PurchaseOrderEditVM(purchaseOrder);

            await SetSupplierSelectList(purchaseOrder);
            await SetSectListAsync(poVM);

            return(View(poVM));
        }