public async Task <IActionResult> CancelConfirmed(int?id) { if (id != null) { WriteOfOrder wo = await _db.WriteOfOrder.FirstOrDefaultAsync(p => p.Id_record == id); if (wo != null) { return(View(wo)); } } return(NotFound()); }
public async Task <IActionResult> CancelOrder(int?id) { if (id != null) { WriteOfOrder wo = await _db.WriteOfOrder.Include(o => o.Orders).ThenInclude(p => p.Product).FirstOrDefaultAsync(o => o.Id_record == id); wo.StateOrder = "Отменён"; foreach (Order order in wo.Orders) { Product p = await _db.Product.FirstOrDefaultAsync(pr => pr.Id_Product == order.Id_product); p.Count += order.Count; _db.Product.Update(p); } await _db.SaveChangesAsync(); return(RedirectToAction("CancelConfirmed", new { id = wo.Id_record })); } return(NotFound()); }
public async Task <IActionResult> GetOrder(OrderViewModel o) { Random r = new Random(); var baskets = _db.Basket.Include(ba => ba.Product).Where(ba => ba.Customer.Login == User.Identity.Name).AsNoTracking(); WriteOfOrder order = await _db.WriteOfOrder.LastOrDefaultAsync(); Basket basket = await baskets.FirstOrDefaultAsync(); int number_symbol = r.Next(65, 90); char symbol = (char)number_symbol; string number = r.Next(1, 999999).ToString(); string n = ""; for (int i = 0; i < 6 - number.Length; i++) { n += "0"; } string Identity = symbol + "-" + n + number; int AddPay; if (o.TypeOfDelivery == "Самовывоз") { AddPay = 0; } else { AddPay = 200; } WriteOfOrder new_write = new WriteOfOrder() { Id_customer = basket.Id_customer, IdentityNumber = Identity, DateOfOrder = DateTime.Now, Address = o.Address, StateOrder = "В пути", TypeOfPay = o.TypeOfPay, TypeOfDelivery = o.TypeOfDelivery, AdditionalCharges = AddPay }; _db.WriteOfOrder.Add(new_write); foreach (var item in baskets) { _db.Order.Add(new Order() { Id_Record = new_write.Id_record, Id_product = item.Id_product, Count = item.Count, SummOrder = item.SummOrder }); Product p = await _db.Product.FirstOrDefaultAsync(pr => pr.Id_Product == item.Id_product); p.Count -= item.Count; _db.Product.Update(p); _db.Basket.Remove(item); } await _db.SaveChangesAsync(); return(RedirectToAction("OrderSuccessed")); }
public async Task <IActionResult> OrderSuccessed() { WriteOfOrder wo = await _db.WriteOfOrder.LastOrDefaultAsync(c => c.Customer.Login == User.Identity.Name); return(View(wo)); }