protected virtual void PrepareDiscountModel(DiscountModel model, Discount discount) { if (model == null) throw new ArgumentNullException("model"); model.PrimaryStoreCurrencyCode = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode; model.AvailableDiscountRequirementRules.Add(new SelectListItem() { Text = _localizationService.GetResource("Admin.Promotions.Discounts.Requirements.DiscountRequirementType.Select"), Value = "" }); var discountRules = _discountService.LoadAllDiscountRequirementRules(); foreach (var discountRule in discountRules) model.AvailableDiscountRequirementRules.Add(new SelectListItem() { Text = discountRule.PluginDescriptor.FriendlyName, Value = discountRule.PluginDescriptor.SystemName }); if (discount != null) { //applied to categories foreach (var category in discount.AppliedToCategories) { if (category != null && !category.Deleted) { model.AppliedToCategoryModels.Add(new DiscountModel.AppliedToCategoryModel() { CategoryId = category.Id, Name = category.Name }); } } //applied to product variants foreach (var product in discount.AppliedToProducts) { if (product != null && !product.Deleted) { var appliedToProductModel = new DiscountModel.AppliedToProductModel() { ProductId = product.Id, ProductName = product.Name }; model.AppliedToProductModels.Add(appliedToProductModel); } } //requirements foreach (var dr in discount.DiscountRequirements.OrderBy(dr=>dr.Id)) { var drr = _discountService.LoadDiscountRequirementRuleBySystemName(dr.DiscountRequirementRuleSystemName); if (drr != null) { model.DiscountRequirementMetaInfos.Add(new DiscountModel.DiscountRequirementMetaInfo() { DiscountRequirementId = dr.Id, RuleName = drr.PluginDescriptor.FriendlyName, ConfigurationUrl = GetRequirementUrlInternal(drr, discount, dr.Id) }); } } } }
//create public ActionResult Create() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var model = new DiscountModel(); PrepareDiscountModel(model, null); //default values model.LimitationTimes = 1; return View(model); }
public ActionResult Create(DiscountModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); if (ModelState.IsValid) { var discount = model.ToEntity(); _discountService.InsertDiscount(discount); //activity log _customerActivityService.InsertActivity("AddNewDiscount", _localizationService.GetResource("ActivityLog.AddNewDiscount"), discount.Name); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Discounts.Added")); return continueEditing ? RedirectToAction("Edit", new { id = discount.Id }) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form PrepareDiscountModel(model, null); return View(model); }
public ActionResult ManufacturerAddPopup(string btnId, string formId, DiscountModel.AddManufacturerToDiscountModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var discount = _discountService.GetDiscountById(model.DiscountId); if (discount == null) throw new Exception("No discount found with the specified id"); if (model.SelectedManufacturerIds != null) { foreach (int id in model.SelectedManufacturerIds) { var manufacturer = _manufacturerService.GetManufacturerById(id); if (manufacturer != null) { if (manufacturer.AppliedDiscounts.Count(d => d.Id == discount.Id) == 0) manufacturer.AppliedDiscounts.Add(discount); _manufacturerService.UpdateManufacturer(manufacturer); } } } ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return View(model); }
public ActionResult ManufacturerAddPopupList(DataSourceRequest command, DiscountModel.AddManufacturerToDiscountModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var manufacturers = _manufacturerService.GetAllManufacturers(model.SearchManufacturerName, 0, command.Page - 1, command.PageSize, true); var gridModel = new DataSourceResult { Data = manufacturers.Select(x => x.ToModel()), Total = manufacturers.TotalCount }; return Json(gridModel); }
public ActionResult CategoryAddPopupList(DataSourceRequest command, DiscountModel.AddCategoryToDiscountModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var categories = _categoryService.GetAllCategories(model.SearchCategoryName, 0, command.Page - 1, command.PageSize, true); var gridModel = new DataSourceResult { Data = categories.Select(x => { var categoryModel = x.ToModel(); categoryModel.Breadcrumb = x.GetFormattedBreadCrumb(_categoryService); return categoryModel; }), Total = categories.TotalCount }; return Json(gridModel); }
public ActionResult ProductAddPopupList(DataSourceRequest command, DiscountModel.AddProductToDiscountModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var gridModel = new DataSourceResult(); var products = _productService.SearchProducts( categoryIds: new List<int> { model.SearchCategoryId }, manufacturerId: model.SearchManufacturerId, storeId: model.SearchStoreId, vendorId: model.SearchVendorId, productType: model.SearchProductTypeId > 0 ? (ProductType?)model.SearchProductTypeId : null, keywords: model.SearchProductName, pageIndex: command.Page - 1, pageSize: command.PageSize, showHidden: true ); gridModel.Data = products.Select(x => x.ToModel()); gridModel.Total = products.TotalCount; return Json(gridModel); }
public ActionResult Edit(DiscountModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var discount = _discountService.GetDiscountById(model.Id); if (discount == null) //No discount found with the specified id return RedirectToAction("List"); if (ModelState.IsValid) { var prevDiscountType = discount.DiscountType; discount = model.ToEntity(discount); _discountService.UpdateDiscount(discount); //clean up old references (if changed) and update "HasDiscountsApplied" properties if (prevDiscountType == DiscountType.AssignedToCategories && discount.DiscountType != DiscountType.AssignedToCategories) { //applied to categories discount.AppliedToCategories.Clear(); _discountService.UpdateDiscount(discount); } if (prevDiscountType == DiscountType.AssignedToManufacturers && discount.DiscountType != DiscountType.AssignedToManufacturers) { //applied to manufacturers discount.AppliedToManufacturers.Clear(); _discountService.UpdateDiscount(discount); } if (prevDiscountType == DiscountType.AssignedToSkus && discount.DiscountType != DiscountType.AssignedToSkus) { //applied to products var products = discount.AppliedToProducts.ToList(); discount.AppliedToProducts.Clear(); _discountService.UpdateDiscount(discount); //update "HasDiscountsApplied" property foreach (var p in products) _productService.UpdateHasDiscountsApplied(p); } //activity log _customerActivityService.InsertActivity("EditDiscount", _localizationService.GetResource("ActivityLog.EditDiscount"), discount.Name); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Discounts.Updated")); if (continueEditing) { //selected tab SaveSelectedTabName(); return RedirectToAction("Edit", new {id = discount.Id}); } return RedirectToAction("List"); } //If we got this far, something failed, redisplay form PrepareDiscountModel(model, discount); return View(model); }
protected virtual void PrepareDiscountModel(DiscountModel model, Discount discount) { if (model == null) throw new ArgumentNullException("model"); model.PrimaryStoreCurrencyCode = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode; model.AvailableDiscountRequirementRules.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Promotions.Discounts.Requirements.DiscountRequirementType.Select"), Value = "" }); var discountRules = _discountService.LoadAllDiscountRequirementRules(); foreach (var discountRule in discountRules) model.AvailableDiscountRequirementRules.Add(new SelectListItem { Text = discountRule.PluginDescriptor.FriendlyName, Value = discountRule.PluginDescriptor.SystemName }); if (discount != null) { //requirements foreach (var dr in discount.DiscountRequirements.OrderBy(dr=>dr.Id)) { var drr = _discountService.LoadDiscountRequirementRuleBySystemName(dr.DiscountRequirementRuleSystemName); if (drr != null) { model.DiscountRequirementMetaInfos.Add(new DiscountModel.DiscountRequirementMetaInfo { DiscountRequirementId = dr.Id, RuleName = drr.PluginDescriptor.FriendlyName, ConfigurationUrl = GetRequirementUrlInternal(drr, discount, dr.Id) }); } } } }
public ActionResult Edit(DiscountModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var discount = _discountService.GetDiscountById(model.Id); if (discount == null) //No discount found with the specified id return RedirectToAction("List"); if (ModelState.IsValid) { discount = model.ToEntity(discount); _discountService.UpdateDiscount(discount); //activity log _customerActivityService.InsertActivity("EditDiscount", _localizationService.GetResource("ActivityLog.EditDiscount"), discount.Name); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Discounts.Updated")); return continueEditing ? RedirectToAction("Edit", discount.Id) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form PrepareDiscountModel(model, discount); return View(model); }
public ActionResult CategoryAddPopup(string btnId, string formId, DiscountModel.AddCategoryToDiscountModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var discount = _discountService.GetDiscountById(model.DiscountId); if (discount == null) throw new Exception("No discount found with the specified id"); if (model.SelectedCategoryIds != null) { foreach (int id in model.SelectedCategoryIds) { var category = _categoryService.GetCategoryById(id); if (category != null) { if (category.AppliedDiscounts.Count(d => d.Id == discount.Id) == 0) category.AppliedDiscounts.Add(discount); _categoryService.UpdateCategory(category); _categoryService.UpdateHasDiscountsApplied(category); } } } ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return View(model); }
public ActionResult ProductAddPopup(string btnId, string formId, DiscountModel.AddProductToDiscountModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var discount = _discountService.GetDiscountById(model.DiscountId); if (discount == null) throw new Exception("No discount found with the specified id"); if (model.SelectedProductIds != null) { foreach (int id in model.SelectedProductIds) { var product = _productService.GetProductById(id); if (product != null) { if (product.AppliedDiscounts.Count(d => d.Id == discount.Id) == 0) { product.AppliedDiscounts.Add(discount); _productService.InsertDiscount(discount, product.Id); } //_productService.UpdateProduct(product); _productService.UpdateHasDiscountsApplied(product.Id); } } } ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return View(model); }
public ActionResult Edit(DiscountModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var discount = _discountService.GetDiscountById(model.Id); if (discount == null) //No discount found with the specified id return RedirectToAction("List"); if (ModelState.IsValid) { var prevDiscountType = discount.DiscountType; discount = model.ToEntity(discount); _discountService.UpdateDiscount(discount); //clean up old references (if changed) and update "HasDiscountsApplied" properties if (prevDiscountType == DiscountType.AssignedToCategories && discount.DiscountType != DiscountType.AssignedToCategories) { //applied to categories //_categoryService. var categories = _categoryService.GetAllCategoriesByDiscount(discount.Id); //update "HasDiscountsApplied" property foreach (var category in categories) { var item = category.AppliedDiscounts.Where(x => x.Id == discount.Id).FirstOrDefault(); category.AppliedDiscounts.Remove(item); //_discountService.UpdateDiscount(discount); //_categoryService.Update(category); } } if (prevDiscountType == DiscountType.AssignedToManufacturers && discount.DiscountType != DiscountType.AssignedToManufacturers) { //applied to manufacturers var manufacturers = _manufacturerService.GetAllManufacturersByDiscount(discount.Id); foreach (var manufacturer in manufacturers) { var item = manufacturer.AppliedDiscounts.Where(x => x.Id == discount.Id).FirstOrDefault(); manufacturer.AppliedDiscounts.Remove(item); //_manufacturerService.UpdateHasDiscountsApplied(manufacturer); } } if (prevDiscountType == DiscountType.AssignedToSkus && discount.DiscountType != DiscountType.AssignedToSkus) { //applied to products //var products = discount.AppliedToProducts.ToList(); var products = _productService.GetProductsByDiscount(discount.Id); foreach (var p in products) { var item = p.AppliedDiscounts.Where(x => x.Id == discount.Id).FirstOrDefault(); p.AppliedDiscounts.Remove(item); _productService.DeleteDiscount(item, p.Id); _productService.UpdateHasDiscountsApplied(p.Id); } } //activity log _customerActivityService.InsertActivity("EditDiscount", discount.Id, _localizationService.GetResource("ActivityLog.EditDiscount"), discount.Name); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Discounts.Updated")); if (continueEditing) { //selected tab SaveSelectedTabIndex(); return RedirectToAction("Edit", new {id = discount.Id}); } return RedirectToAction("List"); } //If we got this far, something failed, redisplay form PrepareDiscountModel(model, discount); return View(model); }
public ActionResult Edit(DiscountModel model, bool continueEditing) { throw new NotSupportedException("Edit"); }