コード例 #1
0
        public async Task <ActionResult <string> > HandleAction(string orderID, string action)
        {
            string           response         = "default";
            PaymentViewModel paymentViewModel = new PaymentViewModel();

            paymentViewModel.ActiveOrder       = new OrderViewModel();
            paymentViewModel.ActiveOrder.Order = _context.Orders.Where(i => i.ID.ToString() == orderID).First();
            if (action == "Edit")
            {
                response = "Edit";
            }
            else if (action == "Delete")
            {
                paymentViewModel.ActiveOrder.Order.Status = "Cancelled";
                _context.Orders.Update(paymentViewModel.ActiveOrder.Order);
                await _context.SaveChangesAsync();

                response = "Deleted";
            }
            else if (action == "Pay")
            {
                paymentViewModel.ActiveOrder.Order.IsPaid         = true;
                paymentViewModel.ActiveOrder.Order.Status         = "Complete";
                paymentViewModel.ActiveOrder.Order.OrderStartTime = DateTime.UtcNow;

                Payment newPayment = new Payment
                {
                    ID           = Guid.NewGuid(),
                    Name         = paymentViewModel.ActiveOrder.Order.Name,
                    Description  = paymentViewModel.ActiveOrder.Order.Description,
                    DateCreated  = DateTime.UtcNow,
                    Method       = "Card",
                    EmployeeName = paymentViewModel.ActiveOrder.Order.Employee,
                    CustomerName = paymentViewModel.ActiveOrder.Order.CustomerName,
                    Amount       = paymentViewModel.ActiveOrder.Order.AmountDue
                };
                PaymentJOrder paymentOrder = new PaymentJOrder
                {
                    ID        = Guid.NewGuid(),
                    OrderID   = Guid.Parse(orderID),
                    PaymentID = newPayment.ID,
                    Order     = paymentViewModel.ActiveOrder.Order,
                    Payment   = newPayment
                };
                newPayment.PaymentOrder = paymentOrder;
                paymentViewModel.ActiveOrder.Order.PaymentOrder = paymentOrder;
                var newReceipt = new Receipt
                {
                    ID           = Guid.NewGuid(),
                    Name         = "Receipt for " + newPayment.CustomerName,
                    Description  = newPayment.Description,
                    DateCreated  = DateTime.UtcNow,
                    CustomerName = newPayment.CustomerName,
                    EmployeeName = newPayment.EmployeeName,
                    CardNumber   = "4916239779719037",
                    MerchantID   = "654asd-fdacd2-566ddc-5dv2z5",
                    Total        = newPayment.Amount
                };
                var orderItem = _context.OrderItems.Where(i => i.OrderID == paymentViewModel.ActiveOrder.Order.ID);
                var orderMenu = _context.OrderMenus.Where(i => i.OrderID == paymentViewModel.ActiveOrder.Order.ID);
                var items     = await _context.Items.ToListAsync();

                var menus = await _context.Menus.ToListAsync();

                var    itemToAdd   = new List <Item>();
                string orderDetail = "";

                foreach (OrderJItem oj in orderItem)
                {
                    foreach (Item item in items)
                    {
                        if (item.ID == oj.ItemID)
                        {
                            var amountDue = oj.ItemsSold * item.Price;
                            orderDetail = orderDetail + item.Name + ":" + oj.ItemsSold + ":" + amountDue + ",";
                        }
                    }
                }
                foreach (OrderJMenu om in orderMenu)
                {
                    foreach (Menu menu in menus)
                    {
                        if (menu.ID == om.MenuID)
                        {
                            var amountDue = om.MenusSold * menu.Price;
                            orderDetail = orderDetail + menu.Name + ":" + om.MenusSold + ":" + amountDue + ",";
                        }
                    }
                }

                var newPaymentReceipt = new PaymentJReceipt
                {
                    ID        = Guid.NewGuid(),
                    PaymentID = newPayment.ID,
                    ReceiptID = newReceipt.ID,
                    Payment   = newPayment,
                    Receipt   = newReceipt
                };

                newReceipt.OrderDetail    = orderDetail;
                newReceipt.PaymentReceipt = newPaymentReceipt;
                _context.Receipts.Add(newReceipt);
                _context.PaymentReceipt.Add(newPaymentReceipt);
                _context.Payment.Add(newPayment);
                _context.PaymentOrder.Add(paymentOrder);
                _context.Orders.Update(paymentViewModel.ActiveOrder.Order);
                await _context.SaveChangesAsync();

                response = "Paid";
            }
            return(response);
        }
コード例 #2
0
        public async Task <IActionResult> Index(string orderID = null)
        {
            ReceiptViewModel receiptViewModel = new ReceiptViewModel();



            if (orderID != null)
            {
                Payment         currentPayment = _context.Payment.Where(i => i.PaymentOrder.OrderID.ToString() == orderID).First();
                PaymentJReceipt paymentReceipt = _context.PaymentReceipt.Where(i => i.PaymentID == currentPayment.ID).FirstOrDefault();

                if (paymentReceipt == null)
                {
                    Order currentOrder = _context.Orders.Where(i => i.ID.ToString() == orderID).First();
                    var   newReceipt   = new Receipt
                    {
                        ID           = Guid.NewGuid(),
                        Name         = "Receipt for " + currentPayment.CustomerName,
                        Description  = currentPayment.Description,
                        DateCreated  = DateTime.UtcNow,
                        CustomerName = currentPayment.CustomerName,
                        EmployeeName = currentPayment.EmployeeName,
                        CardNumber   = "4916239779719037",
                        MerchantID   = "654asd-fdacd2-566ddc-5dv2z5",
                        Total        = currentPayment.Amount
                    };
                    var orderItem = _context.OrderItems.Where(i => i.OrderID == currentOrder.ID);
                    var orderMenu = _context.OrderMenus.Where(i => i.OrderID == currentOrder.ID);
                    var items     = await _context.Items.ToListAsync();

                    var menus = await _context.Menus.ToListAsync();

                    var    itemToAdd   = new List <Item>();
                    string orderDetail = "";

                    foreach (OrderJItem oj in orderItem)
                    {
                        foreach (Item item in items)
                        {
                            if (item.ID == oj.ItemID)
                            {
                                var amountDue = oj.ItemsSold * item.Price;
                                orderDetail = orderDetail + item.Name + ":" + oj.ItemsSold + ":" + amountDue + ",";
                            }
                        }
                    }
                    foreach (OrderJMenu om in orderMenu)
                    {
                        foreach (Menu menu in menus)
                        {
                            if (menu.ID == om.MenuID)
                            {
                                var amountDue = om.MenusSold * menu.Price;
                                orderDetail = orderDetail + menu.Name + ":" + om.MenusSold + ":" + amountDue + ",";
                            }
                        }
                    }
                    var newPaymentReceipt = new PaymentJReceipt
                    {
                        ID        = Guid.NewGuid(),
                        PaymentID = currentPayment.ID,
                        ReceiptID = newReceipt.ID,
                        Payment   = currentPayment,
                        Receipt   = newReceipt
                    };

                    newReceipt.OrderDetail          = orderDetail;
                    newReceipt.PaymentReceipt       = newPaymentReceipt;
                    receiptViewModel.CurrentReceipt = newReceipt;
                    _context.Receipts.Add(newReceipt);
                    _context.PaymentReceipt.Add(newPaymentReceipt);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    Receipt currentReceipt = _context.Receipts.Where(i => i.PaymentReceipt.PaymentID == currentPayment.ID).First();
                    receiptViewModel.CurrentReceipt = currentReceipt;
                }
                receiptViewModel.ActiveOrderID = orderID;
            }
            receiptViewModel.Receipts = await _context.Receipts
                                        .Include(i => i.PaymentReceipt)
                                        .ThenInclude(i => i.Payment)
                                        .ThenInclude(i => i.PaymentOrder)
                                        .ThenInclude(i => i.Order)
                                        .ToListAsync();

            return(View(receiptViewModel));
        }