Exemple #1
0
        public OrderViewModel poGetOrderbyId(int Id)
        {
            tOrder         item  = dbContext.tOrders.FirstOrDefault(p => p.OrderId == Id);
            OrderViewModel Order = new OrderViewModel();

            Order.oAddress   = item.oAddress;
            Order.oCheck     = item.oCheck;
            Order.oCheckDate = item.oCheckDate;

            Order.oDate          = item.oDate.Date;
            Order.oDeliverDate   = item.oDeliverDate;
            Order.oEmployeeId    = item.oEmployeeId;
            Order.OrderId        = item.OrderId;
            Order.sWarehouseName = item.tWarehouseName.WarehouseName;
            Order.seName         = item.tEmployee.eName;
            Order.scName         = item.tCustomer.cName;
            int receivedM(int PayId)
            {
                var cashList = from tp in dbContext.tOrderPays
                               where tp.oPayType == PayId && tp.oOrderId == Id
                               select tp.oPayment;
                int cashTotal = 0;

                foreach (var cashItem in cashList)
                {
                    cashTotal = (int)cashItem + cashTotal;
                }
                return(cashTotal);
            }

            Order.cash    = receivedM(1);
            Order.card    = receivedM(2);
            Order.voucher = receivedM(3);
            int receivedTotal = 0;

            for (int i = 1; i < 4; i++)
            {
                receivedTotal += receivedM(i);
            }
            Order.received = receivedTotal;

            var receivableMoney = from tp in dbContext.tOrderDetails
                                  where tp.oOrderId == item.OrderId
                                  select tp.oProductQty * tp.tProduct.pPrice;
            int receivableTotal = 0;

            foreach (var receivableM in receivableMoney)
            {
                receivableTotal += (int)receivableM;
            }
            Order.originalPrice = receivableTotal;
            if (item.oPromotionId != null)
            {
                Order.receivable    = receivableTotal - Convert.ToInt32(item.tPromotion.pDiscount);
                Order.PromotionName = item.tPromotion.PromotionName;
                Order.pDiscount     = Convert.ToInt32(item.tPromotion.pDiscount);
            }
            else
            {
                Order.receivable    = receivableTotal;
                Order.PromotionName = "無參與折扣活動";
                Order.pDiscount     = 0;
            }
            List <AccountOrderDetailViewModel> orderDetails = new List <AccountOrderDetailViewModel>();
            List <tOrderDetail> orderDetailList             = dbContext.tOrderDetails.Where(od => od.oOrderId == Id).ToList();

            foreach (var detail in orderDetailList)
            {
                AccountOrderDetailViewModel accountOrderdetail = new AccountOrderDetailViewModel();
                tProduct product = dbContext.tProducts.Where(p => p.ProductId == detail.oProductId).FirstOrDefault();
                accountOrderdetail.ProductNum   = product.pNumber;
                accountOrderdetail.ProductName  = product.pName;
                accountOrderdetail.ProductPrice = product.pPrice;
                accountOrderdetail.oProductQty  = detail.oProductQty;
                accountOrderdetail.oNote        = detail.oNote;
                orderDetails.Add(accountOrderdetail);
            }
            Order.orderDetailViews = orderDetails;
            return(Order);
        }
Exemple #2
0
        public List <OrderViewModel> GetOrderAllByEmp(int EmployeeId)
        {
            List <tOrder>         order     = dbContext.tOrders.OrderByDescending(o => o.oDate).Where(o => o.oEmployeeId == EmployeeId).ToList();
            List <OrderViewModel> orderlist = new List <OrderViewModel>();

            foreach (tOrder item in order)
            {
                OrderViewModel Order = new OrderViewModel();
                Order.oAddress = item.oAddress;
                Order.oCheck   = item.oCheck;
                if (item.oCheckDate != null)
                {
                    Order.oCheckDate = item.oCheckDate.Value.Date;
                }


                Order.oDate = item.oDate.Date;
                //if(item.oDeliverDate)
                //Order.oDeliverDate = item.oDeliverDate.Value.Date;
                Order.OrderId = item.OrderId;

                Order.sWarehouseName = item.tWarehouseName.WarehouseName;
                Order.seName         = item.tEmployee.eName;
                Order.scName         = item.tCustomer.cName;
                var note = item.cNote;
                if (note != null)
                {
                    if (note.Length > 10)
                    {
                        Order.cNote = note.Substring(0, 10) + "...";
                    }
                    else
                    {
                        Order.cNote = note;
                    }
                }
                //變數 - 觀察付了多少錢
                var receivedMoney = from tP in dbContext.tOrderPays
                                    where tP.oOrderId == item.OrderId
                                    select tP.oPayment;
                //已收到
                int receivedTotal = 0;
                foreach (var receivedM in receivedMoney)
                {
                    receivedTotal = (int)receivedM + receivedTotal;
                }

                Order.received = receivedTotal;
                //應收款
                var receivableMoney = from tp in dbContext.tOrderDetails
                                      where tp.oOrderId == item.OrderId
                                      select tp.oProductQty * tp.tProduct.pPrice;
                //全額
                int receivableTotal = 0;

                foreach (var receivableM in receivableMoney)
                {
                    receivableTotal += (int)receivableM;
                }
                //折扣
                if (item.oPromotionId != null)
                {
                    tPromotion promotion = dbContext.tPromotions.Where(p => p.PromotionId == item.oPromotionId).FirstOrDefault();

                    if (promotion.PromotionName.Length > 7)
                    {
                        Order.PromotionName = promotion.PromotionName.Substring(0, 6) + ".";
                    }
                    else
                    {
                        Order.PromotionName = promotion.PromotionName;
                    }

                    //Order.PromotionName = promotion.PromotionName;
                    Order.pDiscount  = Convert.ToInt32(item.tPromotion.pDiscount);
                    receivableTotal -= Convert.ToInt32(item.tPromotion.pDiscount);
                }

                Order.receivable = receivableTotal;
                //應付款額-收款
                var surplus = receivableTotal - receivedTotal;
                Order.surplus = surplus;
                if (item.oCheck != null)
                {
                    Order.htmlName = "tr_hidden1";
                }
                else if (surplus <= 0)
                {
                    Order.htmlName = "tr_hidden2";
                }
                else
                {
                    Order.htmlName = "tr_hidden3";
                }
                List <AccountOrderDetailViewModel> detailViewModels = new List <AccountOrderDetailViewModel>();
                List <tOrderDetail> detailLists = dbContext.tOrderDetails.Where(od => od.oOrderId == item.OrderId).ToList();
                foreach (tOrderDetail itemdetail in detailLists)
                {
                    AccountOrderDetailViewModel detail = new AccountOrderDetailViewModel();
                    tProduct product = dbContext.tProducts.Where(p => p.ProductId == itemdetail.oProductId).FirstOrDefault();
                    detail.ProductNum   = product.pNumber;
                    detail.ProductName  = product.pName;
                    detail.ProductPrice = product.pPrice;
                    detail.oProductQty  = itemdetail.oProductQty;
                    detail.oNote        = itemdetail.oNote;
                    detailViewModels.Add(detail);
                }
                Order.orderDetailViews = detailViewModels;
                orderlist.Add(Order);
            }
            return(orderlist);
        }