public IActionResult EditOrder(int id, bool again = false) { //ovdje ide neki VM var order = _database.order.Include(i => i.OrderStatus).FirstOrDefault(s => s.OrderID == id); var User = _database.user.Find(order.UserID); var model = new EditOrderVM { OrderID = id, UserId = order.UserID, OrderStatus = _database.orderstatus.Find(order.OrderStatusID).Status, OrderDate = order.OrderDate.ToString(), UserInfo = User.Name + " " + User.Surname + ", " + User.Adress + "| " + User.PhoneNumber, items = _database.orderdetails.Include(i => i.Product).Where(w => w.OrderID == id).Select(o => new EditOrderVM.Products { ProductID = o.ProductID, ProductName = o.Product.ProductName, RequiredQuantity = o.Quantity }).ToList(), }; foreach (var x in model.items) { x.branches = _database.branchproduct.Include(b => b.Branch).Where(a => a.ProductID == x.ProductID && a.UnitsInBranch > 0).Select(s => new EditOrderVM.Products.Branches { BranchID = s.BranchID, BranchName = s.Branch.BranchName, AvailableQuantity = s.UnitsInBranch ?? 0, Input = 0 }).ToList(); } if (again == true) { TempData["msg"] = "Raspodjela nije ispravna.Pokušajte ponovo !"; } return(PartialView(model)); }
public IActionResult EditOrderFinal(EditOrderVM order) { List <Order> orders = db.Orders.ToList(); Order newOrder = new Order() { OrderId = order.OrderId, CarName = order.CarName, ClientName = order.ClientName, Telephone = order.Telephone }; foreach (Order o in orders) { if (o.OrderId == order.OrderId) { db.Entry(o).CurrentValues.SetValues(newOrder); } } db.SaveChanges(); List <Order> orders2 = db.Orders.ToList(); OrderListVM model = new OrderListVM() { Orders = orders2 }; return(View("Index", model)); }
public ActionResult EditSetTaskAndDriverStopNumbers(int[] taskIDs, int?[] driverStopIDs) { EditOrderVM model = new EditOrderVM(); model.TaskAndDriverStopNumbers = new List <AssignTaskAndDriverStopNumbersInOrderVM>(); using (TruckTransportDbContext _db = new TruckTransportDbContext()) { foreach (var taskID in taskIDs) { AssignTaskAndDriverStopNumbersInOrderVM taskAndDriverStopNumberModel = new AssignTaskAndDriverStopNumbersInOrderVM(); var task = _db.zadaci.Where(x => x.zadatak_id == taskID).AsNoTracking().FirstOrDefault(); if (task != null) { taskAndDriverStopNumberModel.ID = task.zadatak_id; taskAndDriverStopNumberModel.Name = task.naziv; taskAndDriverStopNumberModel.IsTask = true; taskAndDriverStopNumberModel.Number = task.broj_zadatka; model.TaskAndDriverStopNumbers.Add(taskAndDriverStopNumberModel); } } if (driverStopIDs != null) { foreach (var driverStopID in driverStopIDs) { if (driverStopID != null) { AssignTaskAndDriverStopNumbersInOrderVM taskAndDriverStopNumberModel = new AssignTaskAndDriverStopNumbersInOrderVM(); var driverStopOrder = _db.stajalista_nalozi.Include(x => x.stajalista).Where(x => x.stajaliste_id == driverStopID).AsNoTracking().FirstOrDefault(); if (driverStopOrder != null) { taskAndDriverStopNumberModel.ID = driverStopOrder.stajaliste_id; taskAndDriverStopNumberModel.Name = driverStopOrder.stajalista.naziv; taskAndDriverStopNumberModel.IsTask = false; taskAndDriverStopNumberModel.Number = driverStopOrder.broj_stajalista; model.TaskAndDriverStopNumbers.Add(taskAndDriverStopNumberModel); } else { var driverStop = _db.stajalista.Where(x => x.stajaliste_id == driverStopID).AsNoTracking().FirstOrDefault(); taskAndDriverStopNumberModel.ID = driverStop.stajaliste_id; taskAndDriverStopNumberModel.Name = driverStop.naziv; taskAndDriverStopNumberModel.IsTask = false; taskAndDriverStopNumberModel.Number = 1; model.TaskAndDriverStopNumbers.Add(taskAndDriverStopNumberModel); } } } } } return(PartialView(viewName: "_EditAssignTaskAndDriverStopNumbers", model: model)); }
public ActionResult Edit(EditOrderVM model) { var order = _orderService.GetOrder(model.Id); if (!ModelState.IsValid) { return(BuildModel(order, model)); } _orderService.UpdateOrderStatus(order, model.Status); _notifier.Add(NotifyType.Information, T("The order has been saved")); return(RedirectToAction("ListOrders", "CustomerAdmin", new { id = order.CustomerId })); }
public ActionResult Edit(EditOrderVM EOVM) { if (ModelState.IsValid) { Order existingorder = dbcontext.Orders.Find(EOVM.OrderId); existingorder.Quantity = EOVM.Quantity; existingorder.OrderAmount = EOVM.Quantity * existingorder.ProductPrice; dbcontext.SaveChanges(); return(RedirectToAction("Index")); } return(View(EOVM)); }
private dynamic BuildModel(OrderRecord order, EditOrderVM editModel) { return(Shape.Order( Order: order, Details: order.Details.Join(_bookRepository.Table, x => x.BookId, x => x.Id, (record, bookRecord) => Shape.Detail ( Sku: bookRecord.Sku, Price: bookRecord.UnitPrice, Quantity: record.Quantity, Total: record.Total() )).ToArray(), EditModel: editModel )); }
private dynamic BuildModel(OrderRecord order, EditOrderVM editModel) { return(Shape.Order( Order: order, Details: order.Details.Join(_productRepository.Table, x => x.ProductId, x => x.Id, (record, productRecord) => Shape.Detail ( Sku: productRecord.Sku, Price: productRecord.Price, Quantity: record.Quantity, Total: record.Total, Size: record.Size )).ToArray(), EditModel: editModel )); }
public IActionResult SaveOrderChanges(EditOrderVM model) { var order = _database.order.Find(model.OrderID); foreach (var x in model.items) { var a = 0; foreach (var y in x.branches) { a += y.Input; _database.branchproduct.FirstOrDefault(a => a.BranchID == y.BranchID && x.ProductID == a.ProductID).UnitsInBranch -= y.Input; } if (a != x.RequiredQuantity) { return(Redirect("/Administration/EditOrder?id=" + model.OrderID + "&again=" + true)); } } order.OrderStatusID = 2; order.OrderStatus = _database.orderstatus.Find(2); order.ShipDate = DateTime.Now; Notification nova = new Notification { UserID = order.UserID, Text = "Vaša narudžba (" + model.OrderID + ") je isporučena." }; Parallel.Invoke(() => Sms("Narudzba <" + model.OrderID + "> je isporucena.")); _database.Add(nova); _database.Add(new AdminActivity { ActivityID = 10, AdminID = Int32.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier)), DateOfActivity = DateTime.Now }); _database.SaveChanges(); foreach (var x in model.items) { if (_database.product.Find(x.ProductID).UnitsInStock == 0) { Sms("Proizvod " + _database.product.Find(x.ProductID).ProductName + " (" + x.ProductID + ") vise nije dostupan."); } } return(PartialView("SuccessMessage")); }
private dynamic BuildModel(OrderPart order, EditOrderVM editModel) { CustomerPart customer = _customerService.GetCustomer(order.CustomerId); AddressPart shipAddressPart = _customerService.GetShippingAddress(customer.Id, order.Id); AddressPart custAddressPart = _customerService.GetInvoiceAddress(customer.Id); string shipName = string.Empty; if (shipAddressPart != null && !string.IsNullOrWhiteSpace(shipAddressPart.Name)) { shipName = shipAddressPart.Name; } string shipAddress = shipAddressPart == null ? "(same as Invoice Address)" : shipAddressPart.Address; string shipAddress2 = shipAddressPart == null ? string.Empty : shipAddressPart.City + " " + shipAddressPart.State + " " + shipAddressPart.Postcode; string shipCountry = shipAddressPart == null ? string.Empty : shipAddressPart.Country; string custAddress = custAddressPart.Address; string custAddress2 = custAddressPart.City + " " + custAddressPart.State + " " + custAddressPart.Postcode; string custCountry = custAddressPart.Country; return(Shape.Order( Order: order, CustomerName: customer.FullName, CustomerAddress1: custAddress, CustomerAddress2: custAddress2, CustomerCountry: custCountry, ShippingName: shipName, ShippingAddress1: shipAddress, ShippingAddress2: shipAddress2, ShippingCountry: shipCountry, Details: null, // Convert the whole thing to use Part instead of Record //Details: order.Details.Select( detail => // Shape.Detail // ( // Sku: detail.Sku, // Price: detail.UnitPrice, // Quantity: detail.Quantity, // Total: detail.Total, // Description: detail.Description // )).ToArray(), EditModel: editModel )); }
public IActionResult EditOrder(int id) { List <Order> orders = db.Orders.ToList(); EditOrderVM model = new EditOrderVM(); foreach (Order o in orders) { if (o.OrderId == id) { model = new EditOrderVM() { CarName = o.CarName, ClientName = o.ClientName, Telephone = o.Telephone, OrderId = id }; } } return(View("Edit", model)); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Order order = dbcontext.Orders.Find(id); if (order == null || order.OrderStatus.ToLower() == "canceled") { return(HttpNotFound()); } EditOrderVM EOVM = new EditOrderVM(); EOVM.CustomerEmail = order.Customer.Email; EOVM.OrderId = order.OrderId; EOVM.Quantity = order.Quantity; return(View(EOVM)); }
public ActionResult Edit(EditOrderVM model) { if (model.TaskIDs != null && model.DriverStopIDs != null) { if (model.TaskIDs.Length > 10 || model.DriverStopIDs.Length > 10) { ModelState.AddModelError("", "Broj zadataka i broj stajališta ne može biti veći od 10!"); } else if (model.TaskAndDriverStopNumbers == null) { ModelState.AddModelError("", "Redni brojevi za sve odabrane zadatke i stajališta nisu dodijeljeni!"); } else if (model.TaskAndDriverStopNumbers != null && model.TaskIDs.Length + model.DriverStopIDs.Length > model.TaskAndDriverStopNumbers.Count) { ModelState.AddModelError("", "Redni brojevi za sve odabrane zadatke i stajališta nisu dodijeljeni!"); } } if (model.TaskIDs != null && model.DriverStopIDs == null) { if (model.TaskIDs.Length > 2) { ModelState.AddModelError("", "Stajalište je obavezno ako je broj zadataka veći od 2!"); } if (model.TaskAndDriverStopNumbers == null) { ModelState.AddModelError("", "Redni brojevi za sve odabrane zadatke nisu dodijeljeni!"); } else if (model.TaskIDs.Length > model.TaskAndDriverStopNumbers.Count) { ModelState.AddModelError("", "Redni brojevi za sve odabrane zadatke nisu dodijeljeni!"); } } //check difference between numbers in list if (model.TaskAndDriverStopNumbers != null) { if (model.TaskAndDriverStopNumbers.Count != 0) { var descOrderedNumbers = model.TaskAndDriverStopNumbers.OrderByDescending(x => x.Number); if (descOrderedNumbers.Last().Number != 1) { ModelState.AddModelError("", "Najmanji redni broj mora biti 1!"); } int orderNumberErrorCounter = 0; for (int i = 0; i < descOrderedNumbers.Count(); i++) { if (descOrderedNumbers.Count() > 1 && (i + 1) < descOrderedNumbers.Count()) { int difference = descOrderedNumbers.ElementAt(i).Number - descOrderedNumbers.ElementAt(i + 1).Number; if (difference != 1 && orderNumberErrorCounter == 0) { orderNumberErrorCounter = 1; ModelState.AddModelError("", "Redni brojevi nisu ispravno raspoređeni. Razlika između dva broja mora biti 1!"); } } } } } if (ModelState.IsValid) { try { using (TruckTransportDbContext _db = new TruckTransportDbContext()) { nalozi nalogDB = _db.nalozi.Where(x => x.nalog_id == model.OrderID).FirstOrDefault(); nalogDB.vrijeme_kreiranja = UnixTime.GetUnixTimeNow(); nalogDB.vozilo_id = model.VehicleID; nalogDB.vozac_id = model.DriverID; _db.Entry(nalogDB).State = EntityState.Modified; var previousTaskList = _db.zadaci.Where(x => x.nalog_id == model.OrderID).ToList(); if (previousTaskList != null) { foreach (var previousTask in previousTaskList) { previousTask.nalog_id = null; _db.Entry(previousTask).State = EntityState.Modified; } } foreach (var taskID in model.TaskIDs) { zadaci taskDB = _db.zadaci.Where(x => x.zadatak_id == taskID).FirstOrDefault(); if (taskDB != null) { taskDB.nalog_id = nalogDB.nalog_id; taskDB.broj_zadatka = model.TaskAndDriverStopNumbers.Where(x => x.ID == taskDB.zadatak_id && x.IsTask).FirstOrDefault().Number; _db.Entry(taskDB).State = EntityState.Modified; } } var previousDriverStops = _db.stajalista_nalozi.Where(x => x.nalog_id == model.OrderID).ToList(); if (previousDriverStops != null) { _db.stajalista_nalozi.RemoveRange(previousDriverStops); } if (model.DriverStopIDs != null) { List <stajalista_nalozi> driverStopsOrders = new List <stajalista_nalozi>(); foreach (var driverStopID in model.DriverStopIDs) { stajalista_nalozi driverStopOrderDB = new stajalista_nalozi(); driverStopOrderDB.stajaliste_id = (int)driverStopID; driverStopOrderDB.nalog_id = nalogDB.nalog_id; driverStopOrderDB.broj_stajalista = model.TaskAndDriverStopNumbers.Where(x => x.ID == driverStopOrderDB.stajaliste_id && !x.IsTask).FirstOrDefault().Number; driverStopsOrders.Add(driverStopOrderDB); } _db.stajalista_nalozi.AddRange(driverStopsOrders); } _db.SaveChanges(); return(RedirectToAction(actionName: "Index")); } } catch (Exception) { } } model.Drivers = _dropdownMaker.GetDrivers(); model.Vehicles = _dropdownMaker.GetVehicles(); model.Tasks = _dropdownMaker.GetUnattachedAndSpecificOrderAttachedTasks(model.OrderID); model.DriverStops = _dropdownMaker.GetDriverStops(); return(View(viewName: "Edit", model: model)); }
public ActionResult Edit(int orderID) { EditOrderVM model = new EditOrderVM(); using (TruckTransportDbContext _db = new TruckTransportDbContext()) { var order = _db.nalozi.Where(x => x.nalog_id == orderID).AsNoTracking().FirstOrDefault(); if (order != null) { var taskList = _db.zadaci.Where(x => x.nalog_id == order.nalog_id).AsNoTracking().ToList(); var orderStopsList = _db.stajalista_nalozi.Where(x => x.nalog_id == order.nalog_id).ToList(); model.OrderID = order.nalog_id; model.DriverID = order.vozac_id; model.VehicleID = order.vozilo_id; if (taskList != null) { model.TaskIDs = new int[taskList.Count]; for (int i = 0; i < taskList.Count; i++) { model.TaskIDs.SetValue(taskList[i].zadatak_id, i); } } if (orderStopsList != null) { model.DriverStopIDs = new int?[orderStopsList.Count]; for (int i = 0; i < orderStopsList.Count; i++) { model.DriverStopIDs.SetValue(orderStopsList[i].stajaliste_id, i); } } } model.Drivers = _dropdownMaker.GetDrivers(); model.Vehicles = _dropdownMaker.GetVehicles(); model.Tasks = _dropdownMaker.GetUnattachedAndSpecificOrderAttachedTasks(orderID); model.DriverStops = _dropdownMaker.GetDriverStops(); model.TaskAndDriverStopNumbers = new List <AssignTaskAndDriverStopNumbersInOrderVM>(); foreach (var taskID in model.TaskIDs) { AssignTaskAndDriverStopNumbersInOrderVM taskAndDriverStopNumberModel = new AssignTaskAndDriverStopNumbersInOrderVM(); var task = _db.zadaci.Where(x => x.zadatak_id == taskID).AsNoTracking().FirstOrDefault(); taskAndDriverStopNumberModel.ID = task.zadatak_id; taskAndDriverStopNumberModel.Name = task.naziv; taskAndDriverStopNumberModel.IsTask = true; taskAndDriverStopNumberModel.Number = task.broj_zadatka; model.TaskAndDriverStopNumbers.Add(taskAndDriverStopNumberModel); } if (model.DriverStopIDs != null) { foreach (var driverStopID in model.DriverStopIDs) { if (driverStopID != null) { AssignTaskAndDriverStopNumbersInOrderVM taskAndDriverStopNumberModel = new AssignTaskAndDriverStopNumbersInOrderVM(); var driverStop = _db.stajalista_nalozi.Include(x => x.stajalista).Where(x => x.stajaliste_id == driverStopID).AsNoTracking().FirstOrDefault(); taskAndDriverStopNumberModel.ID = driverStop.stajaliste_id; taskAndDriverStopNumberModel.Name = driverStop.stajalista.naziv; taskAndDriverStopNumberModel.IsTask = false; taskAndDriverStopNumberModel.Number = driverStop?.broj_stajalista ?? 0; model.TaskAndDriverStopNumbers.Add(taskAndDriverStopNumberModel); } } } } return(View(viewName: "Edit", model: model)); }
public async Task <IActionResult> Edit(EditOrderVM orderVM) { //If / ModelState.IsValid dose not work try { var order = _context.Order .Include(o => o.Items) .SingleOrDefault(o => o.Id == orderVM.Id); order.Names = orderVM.Names; order.Email = orderVM.Email; order.PhoneNumber = orderVM.PhoneNumber; order.Address = orderVM.Address; order.City = orderVM.City; order.CompanyName = orderVM.CompanyName; order.CompanyEIK = orderVM.CompanyEIK; order.Updated = DateTime.Now; order.Status = orderVM.Status; var removedOrderItems = order.Items .Where(x => !orderVM.OrderItems.Any(y => y.Id == x.Id)) .ToList(); foreach (var orderItem in removedOrderItems) { order.Items.Remove(orderItem); } foreach (var orderItemVM in orderVM.OrderItems) { var orderItem = order.Items.SingleOrDefault(or => or.Id == orderItemVM.Id); if (orderItem == null) { var product = _context.Product.SingleOrDefault(p => p.Id == orderItemVM.ProductId); if (product == null) { product = new Product() { Name = orderItemVM.Name, CompatibilitySettings = new List <CompatibilitySetting>() }; _context.Add(product); //throw error //_context.SaveChanges(); } else { orderItem = new OrderItem() { ProductId = product.Id, Name = product.Name, Description = product.Description, Price = product.Price, Quantity = orderItemVM.Quantity }; order.Items.Add(orderItem); } } else { orderItem.Quantity = orderItemVM.Quantity; } } _context.Update(order); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(orderVM.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); }