Example #1
0
        public ActionResult CreatePurchaseOrder(string supplier, string choice, string items,
                                                PurchaseOrderFormDTO purOrder)
        {
            List <SupplierDetailsEF> supplierItems = new List <SupplierDetailsEF>();
            List <SupplierEF>        supplierList  = purchaseService.FindAllSuppliers();

            ViewData["supplierList"] = supplierList;

            StaffEF createdBy = staffService.GetStaff();

            if (supplier == null)
            {
                supplierItems = null;
            }
            else
            {
                supplierItems = purchaseService.FindSupplierItems(supplier);
            }
            ViewData["supplier"]      = supplier;
            ViewData["supplierItems"] = supplierItems;


            if (choice == "setSupplier")
            {
                if (supplier == supplierList[0].SupplierCode)
                {
                    //do nothing when supplier is the same
                }
                else
                {
                    //clear form.
                    purOrder = new PurchaseOrderFormDTO();
                }
            }

            if (choice == "Add Item")
            {
                SupplierDetailsEF newSD = null;
                bool isValid            = false;

                foreach (var s in supplierItems)
                {
                    if (items == s.SupplierDetailsId.ToString())
                    {
                        newSD   = s;
                        isValid = true;
                    }
                }
                if (purOrder.SupplierDetailIds.Count() > 0 && isValid == true)
                {
                    foreach (var thing in purOrder.SupplierDetailIds)
                    {
                        if (thing == items)
                        {
                            isValid = false;
                        }
                    }
                }
                if (isValid == true)
                {
                    purOrder.Icodes.Add(newSD.Stock.ItemCode);
                    purOrder.Descs.Add(newSD.Stock.Description);
                    purOrder.Uoms.Add(newSD.Stock.Uom);
                    purOrder.Prices.Add(newSD.UnitPrice);
                    purOrder.SupplierDetailIds.Add(newSD.SupplierDetailsId.ToString());
                    purOrder.Quantities.Add(1);
                    purOrder.Remove.Add(false);
                }
            }

            if (choice == "CreatePO")
            {
                purOrder.SupplierId = supplierItems[0].SupplierCode;
                int newPOId = purchaseService.CreatePO(createdBy, purOrder);

                return(RedirectToAction("ViewPurchaseOrder", "ManagePurchase", new { purchaseOrderId = newPOId.ToString() }));
            }

            if (choice == "Remove")
            {
                for (int i = 0; i < purOrder.Remove.Count; i++)
                {
                    if (purOrder.Remove[i] == true)
                    {
                        purOrder.Icodes.RemoveAt(i);
                        purOrder.Descs.RemoveAt(i);
                        purOrder.Uoms.RemoveAt(i);
                        purOrder.Prices.RemoveAt(i);
                        purOrder.SupplierDetailIds.RemoveAt(i);
                        purOrder.Quantities.RemoveAt(i);
                        purOrder.Remove.RemoveAt(i);
                        i--;
                    }
                }
            }

            return(View(purOrder));
        }