Ejemplo n.º 1
0
 public InventoryModel()
 {
     AllItems = GroceryItem.GetAllItemsAsList(ConnString);
     CurrentUser = new User(ConnString);
     NewItem = new GroceryItem(ConnString);
     ItemGrid = new Grid<GroceryItem>(AllItems);
     CurrentOrder = new Order(ConnString);
     OrderGrid = new Grid<IOrderableItem>(CurrentOrder.OrderItems);
     OrderHistoryGrid = new Grid<Order>(Order.GetOrderHistory(ConnString));
 }
Ejemplo n.º 2
0
        public ActionResult Orders(InventoryModel model, string orderAction)
        {
            int uid;
            bool validSession = int.TryParse(Session["UID"].ToString(), out uid);
            if (validSession)
            {
                if (!model.CurrentUser.LoadUserDetails(uid))
                {
                    return RedirectToAction("Index");
                }
            }
            else
            {
                return RedirectToAction("Index");
            }

            if (TempData["InventoryModel"] != null)
            {
                model = TempData["InventoryModel"] as InventoryModel;
            }

            model.OrderHistoryGrid = new Grid<Order>(Order.GetOrderHistory(InventoryModel.ConnString));
            //Handle any user modifications for items in posted page
            if (Request.QueryString["grid-page"] != null || Request.QueryString["grid-column"] != null || !String.IsNullOrEmpty(orderAction))
            {
                model.CurrentOrder.OrderItems = model.CurrentOrder.CalculateOrder();
                model.OrderGrid = new Grid<IOrderableItem>(model.CurrentOrder.OrderItems);
                foreach (IOrderableItem item in model.CurrentOrder.OrderItems)
                {

                    item.IsSelected = !String.IsNullOrEmpty(Request.Form["hdnIsSelected." + item.ItemID]);
                    int qty;
                    if (int.TryParse(Request.Form["hdnOrderQty." + item.ItemID], out qty))
                    {
                        item.OnOrderQty = qty;
                    }

                    if (!String.IsNullOrEmpty(Request.Form["ckbxIsSelected." + item.ItemID]))
                    {
                        item.IsSelected = Request.Form["ckbxIsSelected." + item.ItemID].Contains("true");
                    }
                }

                model.CurrentOrder.OrderNotes = Request.Form["CurrentOrder.OrderNotes"];

                if (!String.IsNullOrEmpty(orderAction))
                {
                    switch (orderAction)
                    {
                        case "GetOrder":
                            model.CurrentOrder.OrderItems = model.CurrentOrder.CalculateOrder();
                            model.OrderGrid = new Grid<IOrderableItem>(model.CurrentOrder.OrderItems);
                            if (model.CurrentOrder.OrderItems.Count == 0)
                            {
                                model.IsError = true;
                                model.Message = "There is nothing to order at this time";
                                model.ShowErrorModal = true;
                            }
                            else
                            {
                                model.ShowErrorModal = false;
                            }
                            return View(model);

                        case "EditOrderItem":
                            try
                            {
                                if (model.CurrentUser.LoadUserDetails((int)Session["UID"]))
                                {
                                    IOrderableItem item = model.CurrentOrder.OrderItems.Find(v => v.ItemID == int.Parse(Request.Form["editItemID"]));
                                    int qty;
                                    if (int.TryParse(Request.Form["editOrderQty"], out qty))
                                    {
                                        item.OnOrderQty = qty;
                                    }
                                }
                                else
                                {
                                    Session["UID"] = null;
                                    UserModel newModel = new UserModel();
                                    newModel.Message = "SESSION HAS EXPIRED.<BR />PLEASE LOG IN AGAIN";
                                    TempData["Model"] = newModel;
                                    return RedirectToAction("Index");
                                }
                            }
                            catch (Exception ex)
                            {
                                model.IsError = true;
                                model.ModalType = "editModal";
                                model.Message = ex.Message;
                                model.ShowErrorModal = false;
                                return View(model);
                            }
                            model.OrderGrid = new Grid<IOrderableItem>(model.CurrentOrder.OrderItems);
                            return View(model);

                        case "SubmitOrder":
                            try
                            {
                                model.CurrentOrder.OrderTotal = model.CurrentOrder.OrderItems.Sum(item => item.OnOrderQty * item.UnitCost);
                                model.CurrentOrder.IsOpen = true;
                                model.PrintFileString = System.Text.Encoding.Default.GetString(model.CurrentOrder.ProcessOrder(out model.Message));
                                model.ShowPrintView = true;
                                return View(model);
                            }
                            catch (Exception ex)
                            {
                                model.IsError = true;
                                model.Message = ex.Message;
                                return View(model);
                            }

                        case "CloseOrder":
                            int orderID = int.Parse(Request.Form["hdnCloseOrderID"]);
                            bool closeOnly = Request.Form["chbxCloseOnly"].Contains("true");
                            Order order = new Order(orderID, InventoryModel.ConnString);

                            if (order.Close(closeOnly, out model.Message))
                            {
                                model.IsSuccess = true;
                                return View(model);
                            }
                            else
                            {
                                model.IsError = true;
                                model.ShowErrorModal = false;
                                model.ModalType = "orderHistoryModal";
                                return View(model);
                            }
                    }
                }
            }

            model.OrderGrid = new Grid<IOrderableItem>(model.CurrentOrder.OrderItems);
            return View(model);
        }