public async Task <IActionResult> Edit(int id, [Bind("PhoneId,OrderId")] PhoneOrder phoneOrder) { if (id != phoneOrder.PhoneId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(phoneOrder); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PhoneOrderExists(phoneOrder.PhoneId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["OrderId"] = new SelectList(_context.Order, "Id", "Id", phoneOrder.OrderId); ViewData["PhoneId"] = new SelectList(_context.Phone, "Id", "Id", phoneOrder.PhoneId); return(View(phoneOrder)); }
public async Task <IActionResult> Create([Bind("PhoneId,OrderId")] PhoneOrder phoneOrder) { if (ModelState.IsValid) { _context.Add(phoneOrder); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["OrderId"] = new SelectList(_context.Order, "Id", "Id", phoneOrder.OrderId); ViewData["PhoneId"] = new SelectList(_context.Phone, "Id", "Id", phoneOrder.PhoneId); return(View(phoneOrder)); }
// GET: Phones public async Task <IActionResult> Index( string name, double?priceFrom, double?priceTo, int?companyId, PhoneOrder PhoneOrder = PhoneOrder.NameAsc) { IQueryable <Phone> phonesSort = _context.Phones.Include(s => s.Company); if (!string.IsNullOrWhiteSpace(name)) { phonesSort = phonesSort.Where(s => s.Name.Contains(name)); } if (priceFrom.HasValue) { phonesSort = phonesSort.Where(s => s.Price >= priceFrom.Value); } if (priceTo.HasValue) { phonesSort = phonesSort.Where(s => s.Price <= priceTo.Value); } if (companyId.HasValue) { phonesSort = phonesSort.Where(s => s.CompanyId == companyId.Value); } ViewBag.NameSort = PhoneOrder == PhoneOrder.NameAsc ? PhoneOrder.NameDesc : PhoneOrder.NameAsc; ViewBag.PriceSort = PhoneOrder == PhoneOrder.PriceAsc ? PhoneOrder.PriceDesc : PhoneOrder.PriceAsc; ViewBag.CompanySort = PhoneOrder == PhoneOrder.CompanyAsc ? PhoneOrder.CompanyDesc : PhoneOrder.CompanyAsc; switch (PhoneOrder) { case PhoneOrder.NameAsc: phonesSort = phonesSort.OrderBy(s => s.Name); break; case PhoneOrder.NameDesc: phonesSort = phonesSort.OrderByDescending(s => s.Name); break; case PhoneOrder.PriceAsc: phonesSort = phonesSort.OrderBy(s => s.Price); break; case PhoneOrder.PriceDesc: phonesSort = phonesSort.OrderByDescending(s => s.Price); break; case PhoneOrder.CompanyAsc: phonesSort = phonesSort.OrderBy(s => s.Company.Name); break; case PhoneOrder.CompanyDesc: phonesSort = phonesSort.OrderByDescending(s => s.Company.Name); break; } PhonesIndexViewModel model = new PhonesIndexViewModel() { Phones = await phonesSort.ToListAsync(), Name = name, CompanyId = companyId, PriceFrom = priceFrom, PriceTo = priceTo, Companies = new SelectList(_context.Companies, "Id", "Name") }; // //CRUD // List<Company> companies = _context.Companies.ToList(); // //companies.Insert(0, new Company { Id = 0, Name = "Все" }); // // var phones = _context.Phones.Include(p => p.Category).Include(p => p.Company).ToList(); // // IndexViewModel ivm = new IndexViewModel(); // // if (companyId.HasValue) // { // phones = phones.Where(p => p.Company.Id == companyId.Value).ToList(); // ivm.Company = companies.FirstOrDefault(c => c.Id == companyId.Value); // } // // if (!string.IsNullOrWhiteSpace(name)) // { // phones = phones.Where(p => p.Name.Contains(name, StringComparison.OrdinalIgnoreCase)).ToList(); // ivm.Name = name; // } // // ivm.Companies = companies; // ivm.Phones = phones; // return View(ivm); return(View(model)); }
public ActionResult SaveOrder(PhoneOrder phoneOrder) { List <string> giftIds = null; List <string> couponIds = null; //不能为null 为null会报错 if (phoneOrder.GiftCardDetailIds.IsNotNullOrEmpty()) { giftIds = phoneOrder.GiftCardDetailIds.Split(',').ToList(); } if (phoneOrder.CouponDetailIds.IsNotNullOrEmpty()) { couponIds = phoneOrder.CouponDetailIds.Split(',').ToList(); } //合并相同产品 phoneOrder.Products = phoneOrder.Products.GroupBy(a => a.ID) .Select(a => new CollectionIDNum { ID = a.Key, Num = a.Sum(b => b.Num), BirthdayCard = a.Max(b => b.BirthdayCard ?? "") }).ToList(); OpResult result = null; Invoice invoice = null; if (phoneOrder.InvoiceType != null) { invoice = new Invoice { InvoiceType = phoneOrder.InvoiceType.ToString(), InvoiceTitle = phoneOrder.InvoiceTitle }; } //地址 Action <Orders> setAddress; if (phoneOrder.AddressType == 0) { setAddress = osv.SetOrderAddress(a => a.Id.Equals(phoneOrder.AddressId, StringComparison.OrdinalIgnoreCase) && a.CustomerId.Equals(phoneOrder.CustomerId, StringComparison.OrdinalIgnoreCase)); } else { setAddress = osv.SetOrderAddress(null, a => a.Id.Equals(phoneOrder.AddressId, StringComparison.OrdinalIgnoreCase), phoneOrder.RevierName, phoneOrder.RevierPhone); } //优惠金额处理 if (phoneOrder.CouponPay > 0 || phoneOrder.GiftCardPay > 0) { var integralDeductionCashRate = CommonRules.IntegralDeductionCashRate; //积分抵扣比例 if (phoneOrder.CouponPay > 0) { //优惠券支付 if (phoneOrder.OrderTotalAmount == phoneOrder.CouponPay) { phoneOrder.IntegralPay = 0;//不需要积分 } else if (phoneOrder.OrderTotalAmount < phoneOrder.CouponPay) { //优惠券总额>订单金额 phoneOrder.CouponPay = phoneOrder.OrderTotalAmount; phoneOrder.IntegralPay = 0; //不需要积分 } else if (phoneOrder.OrderTotalAmount < (phoneOrder.IntegralPay + phoneOrder.CouponPay)) {//积分+优惠券》订单总额 phoneOrder.IntegralPay = phoneOrder.OrderTotalAmount - phoneOrder.CouponPay; } } else { //代金卡支付 if (phoneOrder.OrderTotalAmount < phoneOrder.GiftCardPay) { phoneOrder.IntegralPay = 0;//不需要积分 } else if (phoneOrder.OrderTotalAmount < phoneOrder.GiftCardPay) { //优惠券总额>订单金额 phoneOrder.GiftCardPay = phoneOrder.OrderTotalAmount; phoneOrder.IntegralPay = 0; //不需要积分 } else if (phoneOrder.OrderTotalAmount < (phoneOrder.IntegralPay + phoneOrder.GiftCardPay)) {//积分+优惠券》订单总额 phoneOrder.IntegralPay = (phoneOrder.OrderTotalAmount - phoneOrder.GiftCardPay) * integralDeductionCashRate; } } } //积分》订单总额 if (phoneOrder.IntegralPay > phoneOrder.OrderTotalAmount) { phoneOrder.IntegralPay = phoneOrder.OrderTotalAmount; } //添加订单 #region 添加订单 if (phoneOrder.NO.IsNullOrTrimEmpty()) { //创建订单 result = osv.CreateOrder( //客户信息 a => a.Id.Equals(phoneOrder.CustomerId, StringComparison.OrdinalIgnoreCase), //客户地址信息 setAddress, //取出订单明细 a => { var pids = phoneOrder.Products.Select(b => b.ID); return(a.Where(p => pids.Contains(p.Id)).ToList() .Select(b => new OrderDetails { ProductId = b.ParentId, Size = b.Size, BirthdayCard = phoneOrder.Products.Where(c => c.ID.Equals(b.Id)).Max(c => c.BirthdayCard ?? ""), TotalPrice = (decimal)(b.Price == null ? 0 : b.Price) * phoneOrder.Products.Where(c => c.ID.Equals(b.Id)).Sum(c => c.Num), Price = (decimal)(b.Price == null ? 0 : b.Price), SubProductId = b.Id, Num = phoneOrder.Products.Where(c => c.ID.Equals(b.Id)).Sum(c => c.Num) })); }, //发票 invoice, //订单赋值 a => { a.FeeType = FeeType.Cash; //货到付现金 a.OrderSource = OrderSource.TelOrder; //电话订单 a.Candle = phoneOrder.Candle; //蜡烛 a.DeliverMsg = phoneOrder.DeliverMsg; //备注 a.Remark = phoneOrder.Remark; //订单备注 a.RequiredTime = phoneOrder.ReceiveTime; //接收时间 a.RequiredTimeBucket = phoneOrder.TimeBucket; //收货时间段 a.CouponPay = phoneOrder.CouponPay; //优惠券支付 a.GiftCardPay = phoneOrder.GiftCardPay; //代金卡支付 a.IntegralPay = phoneOrder.IntegralPay; //积分支付 a.UsedIntegralVal = phoneOrder.UsedIntegralVal; //使用积分 }, //当前用户ID Helper.UserCache.CurrentUser.Id, 2, phoneOrder.TimeBucket, couponIds, giftIds, phoneOrder.OrderTotalAmount ); } #endregion //修改订单 #region else { //修改订单 result = osv.EditOrder( //客户地址信息 setAddress, //取出订单明细 a => { var pids = phoneOrder.Products.Select(b => b.ID).ToList(); var ps = a.Where(p => pids.Contains(p.Id)).ToList(); return(ps .Select(b => new OrderDetails { ProductId = b.ParentId, Size = b.Size, BirthdayCard = phoneOrder.Products.Where(c => c.ID.Equals(b.Id)).Max(c => c.BirthdayCard ?? ""), TotalPrice = (decimal)(b.Price == null ? 0 : b.Price) * phoneOrder.Products.Where(c => c.ID.Equals(b.Id)).Sum(c => c.Num), Price = (decimal)(b.Price == null ? 0 : b.Price), SubProductId = b.Id, Num = phoneOrder.Products.Where(c => c.ID.Equals(b.Id)).Sum(c => c.Num) })); }, //发票 invoice, //订单赋值 a => { a.No = phoneOrder.NO; //订单号 a.Candle = phoneOrder.Candle; //蜡烛 a.DeliverMsg = phoneOrder.DeliverMsg; //备注 a.Remark = phoneOrder.Remark; //客服备注 a.RequiredTime = phoneOrder.ReceiveTime; //接收时间 a.RequiredTimeBucket = phoneOrder.TimeBucket; //收货时间段 //a.CouponPay = phoneOrder.CouponPay;//优惠券支付 //a.GiftCardPay = phoneOrder.GiftCardPay;//代金卡支付 //a.IntegralPay = phoneOrder.IntegralPay;//积分支付 a.UsedIntegralVal = phoneOrder.UsedIntegralVal; //使用积分 }, //当前用户ID Helper.UserCache.CurrentUser.Id ); } #endregion return(Json(new { validate = result.Successed, order = result.Data, message = result.Message })); }