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); }
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); }