public virtual IActionResult Create(CreateMaterialModel model, bool continueEditing) { if (!_permissionService.Authorize(XrmsPermissionProvider.ManageMaterials)) { return(AccessDeniedView()); } if (ModelState.IsValid) { //a vendor should have access only to his materials /*if (_workContext.CurrentVendor != null) * { * model.VendorId = _workContext.CurrentVendor.Id; * }*/ //material var material = model.ToEntity(); material.CreatedOnUtc = DateTime.UtcNow; material.UpdatedOnUtc = DateTime.UtcNow; _materialService.InsertMaterial(material); // quantity change history _materialService.AddStockQuantityHistoryEntry(material, material.StockQuantity, material.StockQuantity, material.WarehouseId, _localizationService.GetResource("Xrms.Admin.Catalog.Materials.StockQuantityHistory.Messages.Edit")); // activity log _customerActivityService.InsertActivity("AddNewMaterial", _localizationService.GetResource("Xrms.ActivityLog.AddNewMaterial"), material); SuccessNotification(_localizationService.GetResource("Xrms.Admin.Catalog.Materials.Notifications.Added")); if (continueEditing) { //selected tab SaveSelectedTabName(); return(RedirectToAction("Edit", new { id = material.Id })); } return(RedirectToAction("List")); } //If we got this far, something failed, redisplay form var viewModel = new MaterialDetailsPageViewModel(); model.ToDetailsViewModel(viewModel); //viewModel.MaterialGroupInfo = model; // groups PrepareAvailableMaterialGroups(viewModel); // warehouses PrepareAvailableWarehouses(viewModel); return(View("~/Plugins/Xrms/Areas/Admin/Views/Material/Create.cshtml", viewModel)); }
// create material public virtual IActionResult Create() { if (!_permissionService.Authorize(XrmsPermissionProvider.ManageMaterials)) { return(AccessDeniedView()); } var model = new MaterialDetailsPageViewModel(); // groups PrepareAvailableMaterialGroups(model); // warehouses PrepareAvailableWarehouses(model); return(View("~/Plugins/Xrms/Areas/Admin/Views/Material/Create.cshtml", model)); }
protected virtual void PrepareAvailableMaterialGroups(MaterialDetailsPageViewModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var groups = _materialGroupService.GetAllMaterialGroups(showHidden: true); var list = groups.Select(c => new SelectListItem { Text = c.GetFormattedBreadCrumb(_materialGroupService), Value = c.Id.ToString() }); foreach (var item in list) { model.AvailableMaterialGroups.Add(item); } }
protected virtual void PrepareAvailableWarehouses(MaterialDetailsPageViewModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var warehouses = _shippingService.GetAllWarehouses(); model.AvailableWarehouses.Add(new SelectListItem { Text = _localizationService.GetResource("Xrms.Admin.Catalog.Materials.Fields.Warehouse.None"), Value = "0" }); foreach (var warehouse in warehouses) { model.AvailableWarehouses.Add(new SelectListItem { Text = warehouse.Name, Value = warehouse.Id.ToString() }); } }
public virtual IActionResult Edit(int id, UpdateMaterialModel model, bool continueEditing) { if (!_permissionService.Authorize(XrmsPermissionProvider.ManageMaterials)) { return(AccessDeniedView()); } var material = _materialService.GetMaterialById(id); if (material == null || material.Deleted) { //No material found with the specified id return(RedirectToAction("List")); } //check if the material quantity has been changed while we were editing the material //and if it has been changed then we show error notification //and redirect on the editing page without data saving /*if (material.StockQuantity != model.LastStockQuantity) * { * ErrorNotification(_localizationService.GetResource("Admin.Catalog.Materials.Fields.StockQuantity.ChangedWarning")); * return RedirectToAction("Edit", new { id = material.Id }); * }*/ if (ModelState.IsValid) { //some previously used values var previousWarehouseId = material.WarehouseId; var previousStockQuantity = material.StockQuantity; //material material = model.ToEntity(material); material.UpdatedOnUtc = DateTime.UtcNow; _materialService.UpdateMaterial(material); // quantity change history if (previousWarehouseId != material.WarehouseId) { //warehouse is changed //compose a message var oldWarehouseMessage = string.Empty; if (previousWarehouseId > 0) { var oldWarehouse = _shippingService.GetWarehouseById(previousWarehouseId); if (oldWarehouse != null) { oldWarehouseMessage = string.Format(_localizationService.GetResource("Xrms.Admin.Catalog.Materials.StockQuantityHistory.Messages.EditWarehouse.Old"), oldWarehouse.Name); } } var newWarehouseMessage = string.Empty; if (material.WarehouseId > 0) { var newWarehouse = _shippingService.GetWarehouseById(material.WarehouseId); if (newWarehouse != null) { newWarehouseMessage = string.Format(_localizationService.GetResource("Xrms.Admin.Catalog.Materials.StockQuantityHistory.Messages.EditWarehouse.New"), newWarehouse.Name); } } var message = string.Format(_localizationService.GetResource("Xrms.Admin.Catalog.Materials.StockQuantityHistory.Messages.EditWarehouse"), oldWarehouseMessage, newWarehouseMessage); //record history _materialService.AddStockQuantityHistoryEntry(material, -previousStockQuantity, 0, previousWarehouseId, message); _materialService.AddStockQuantityHistoryEntry(material, material.StockQuantity, material.StockQuantity, material.WarehouseId, message); } else { _materialService.AddStockQuantityHistoryEntry(material, material.StockQuantity - previousStockQuantity, material.StockQuantity, material.WarehouseId, _localizationService.GetResource("Xrms.Admin.Catalog.Materials.StockQuantityHistory.Messages.Edit")); } //activity log _customerActivityService.InsertActivity("EditMaterial", _localizationService.GetResource("Xrms.ActivityLog.EditMaterial"), material); SuccessNotification(_localizationService.GetResource("Xrms.Admin.Catalog.Materials.Notifications.Updated")); if (continueEditing) { //selected tab SaveSelectedTabName(); return(RedirectToAction("Edit", new { id = material.Id })); } return(RedirectToAction("List")); } //If we got this far, something failed, redisplay form var viewModel = new MaterialDetailsPageViewModel(); model.ToDetailsViewModel(viewModel); // groups PrepareAvailableMaterialGroups(viewModel); // warehouses PrepareAvailableWarehouses(viewModel); return(View("~/Plugins/Xrms/Areas/Admin/Views/Material/Edit.cshtml", viewModel)); }
public static MaterialDetailsPageViewModel ToDetailsViewModel(this Material entity, MaterialDetailsPageViewModel viewModel) { return(entity.MapTo(viewModel)); }
public static MaterialDetailsPageViewModel ToDetailsViewModel(this MaterialModel model, MaterialDetailsPageViewModel viewModel) { return(model.MapTo(viewModel)); }