/// <summary> /// Page with items that need to be created first /// </summary> /// <param name="Id"></param> /// <returns></returns> public async Task <IActionResult> ItemsToBeCreatedInExact(int Id) { // Check if order exists var order = _context.ExactOrders .Include(nameof(ExactOrder.Lines) + "." + nameof(ExactOrderLine.Item)) .Include(nameof(ExactOrder.Supplier)) .FirstOrDefault(x => x.Id == Id); if (order == null || order.Lines == null) { return(RedirectToAction(nameof(Index), new { sm = StateMessage.FailedMissingInfo })); } // Check if user exists var user = _dbHelper.GetUser(_context, User.Identity.Name); if (user == null) { return(RedirectToAction("LogOut", "Account")); } var vm = new ItemsToBeCreatedVM(); ExactOnlineConnect.data.Context = _context; ExactOnlineConnect.data.AccessToken = user.Token; var itemsInExact = await ExactOnlineConnect.data.GetItems(user.DivisionId); vm.SupplierName = order.Supplier.Name; vm.Items = (_exactHelper.GetToBeCreatedItems(itemsInExact, order.Lines.Select(x => x.Item).ToList(), user, null, order.Lines)); var itemgroups = await ExactOnlineConnect.data.GetItemGroups(user.DivisionId); vm.ItemGroups = _exactHelper.ItemGroupsToSelectList(itemgroups).OrderBy(x => x.Value == user.ItemGroupId.ToString()).ToList(); vm.OrderId = order.Id; if (!vm.Items.Any()) { order.ItemsAreInExact = true; await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Order), new { Id = vm.OrderId })); } return(View(vm)); }
/// <summary> /// Configuration page for changing the user's Exact configurations /// </summary> /// <param name="sm">StateMessage</param> /// <returns></returns> public async Task <IActionResult> Index(StateMessage sm = StateMessage.None) { // DB Info var user = _dbHelper.GetUser(_context, User.Identity.Name); var config = _dbHelper.GetExactConfig(_context, user.ConfigID); // Exact data ExactOnlineConnect.data.Context = _context; ExactOnlineConnect.data.AccessToken = user.Token; var suppliers = await ExactOnlineConnect.data.GetSuppliers(user.DivisionId); var divisions = await ExactOnlineConnect.data.GetDivisions(user.DivisionId); var itemgroups = await ExactOnlineConnect.data.GetItemGroups(user.DivisionId); var paymentConditions = await ExactOnlineConnect.data.GetPaymentConditions(user.DivisionId); var vm = new Areas.ExactOnline.Models.Configuration.ConfigVM { ConfigurationId = config.Id, ItemGroupId = config.ItemGroupId.ToString(), ItemGroups = _exactHelper.ItemGroupsToSelectList(itemgroups), PaymentConditionId = config.PaymentConditionId, PaymentConditions = _exactHelper.PaymentConditionsToSelectList(paymentConditions), SupplierId = config.SupplierId.ToString(), Suppliers = _exactHelper.SuppliersToSelectList(suppliers), DivisionId = user.DivisionId.ToString(), Divisions = _exactHelper.DivisionsToSelectList(divisions), UserId = user.Id, StateMessage = sm, ConfigType = config.ConfigType, }; return(View(vm)); }