// Gets all transactions
        public ActionResult Transactions()
        {
            // Null handling
            if (Session["loggedInState"] == null)
            {
                return Redirect("/403.html");
            }

            bool state = (bool)Session["loggedInState"];
            if (state == true)
            {
                // Creates the models
                var transModel = new TransactionModel();
                var orderModel = new OrderModel();
                var custModel = new CustomerModel();
                var bankModel = new BankingModel();

                // Gets the complete list
                var tl = transModel.ListTransactions();

                if (tl.Count != 0)
                {
                    // Attaches associated order / customer / bank to transaction
                    foreach (var trans in tl)
                    {
                        // Acquires, and adds the order to transaction
                        Order order = null;
                        if (trans.OrderID != 0)
                        {
                            order = orderModel.SearchOrder(trans.OrderID);
                        }

                        // Acquires, and adds the customer to transaction
                        Customer cust = null;
                        if (trans.CustomerID != 0)
                        {
                            cust = custModel.SearchCustomers(trans.CustomerID);
                        }

                        // Acquires, and adds the bank to transaction
                        Bank bank = null;
                        if (trans.BankID != 0)
                        {
                            bank = bankModel.SearchBank(trans.BankID);
                        }
                    }
                }

                // Returns the list
                return View(tl);
            }
            else
            {
                // If not logged in
                return Redirect("/login.html");
            }
        }
Beispiel #2
0
        // GET: Order
        public ActionResult createOrder()
        {
            // Null handling
            if (Session["loggedInState"] == null)
            {
                return Redirect("/403.html");
            }

            // Checks if logged in
            bool state = (bool)Session["loggedInState"];
            if (state == true)
            {
                // Creates handlers for order creating
                GoodsHandler goodsHand = new GoodsHandler();
                SpecificationHandler specHand = new SpecificationHandler();
                PackageHandler packHand = new PackageHandler();
                TransactionHandler tranHandler = new TransactionHandler();

                // Necessary models
                ClientUserModel cuModel = new ClientUserModel();
                OrderModel orderModel = new OrderModel();

                // Stored details for package specification
                int weight = int.Parse(Request.Form["weight"]);
                int height = int.Parse(Request.Form["height"]);
                int length = int.Parse(Request.Form["length"]);
                int width = int.Parse(Request.Form["width"]);

                // Stored details for package
                String name = Request.Form["goodsDescriptor"];
                String handling = Request.Form["options"];

                String deliveryType = Request.Form["deliveryBands"];

                // Stored details for order
                int deliveryBand = 0;

                switch (deliveryType)
                {
                    case "Next Day Delivery":
                        deliveryBand = 1;
                        break;
                    case "Express 1-2 Days":
                        deliveryBand = 2;
                        break;
                    case "Standard 3-5 Days":
                        deliveryBand = 3;
                        break;
                    case "Basic 5-10 Days":
                        deliveryBand = 4;
                        break;
                }

                // Holds the order objects
                Order newOrder = new Order();

                // Creates the foreign objects, and gets the IDs
                int goodsID = goodsHand.create(name, handling);
                int specID = specHand.create(weight, height, length, width);
                int packID = packHand.create(goodsID, specID);

                // Acquires client data
                ClientUser thisUser = cuModel.SearchClientUser(int.Parse(Session["userID"].ToString()));

                // Acquires account type (Standard | Premium)
                AccountModel accModel = new AccountModel();
                Account thisAccount = accModel.SearchAccount(thisUser.AccountID);
                int accountType = thisAccount.AccountTypeID;

                // Sets up the order
                newOrder.AccountID = thisUser.AccountID;
                newOrder.DestinationAddressID = int.Parse(Request.Form["address1"]);
                newOrder.SourceAddressID = int.Parse(Request.Form["address2"]);
                newOrder.Placed = DateTime.Now;
                newOrder.OrderStatus = "Placed";
                newOrder.GoodsID = goodsID;

                // Calculate desired delivery date
                newOrder.DesiredDeliveryDate = calcDesiredDeliveryDate(deliveryBand, newOrder.Placed);

                // Price of order
                PackageModel packageModel = new PackageModel();
                Package thisPackage = packageModel.SearchPackage(packID);
                int totalPrice = calcPrice(accountType, deliveryBand, thisPackage);

                // Creates the order
                int orderID = orderModel.CreateOrder(newOrder);

                // Sets up a transaction
                tranHandler.create(orderID, thisAccount.CustomerID, thisAccount.BankID);

                // Passes back to the view
                return Redirect("/Transaction/transactions");
            }
            else
            {
                // If not logged in
                return Redirect("/login.html");
            }
        }