/// <summary>
        /// Save tax origin address type
        /// </summary>
        /// <param name="model">Tax settings model</param>
        private void SaveTaxOriginAddressType(TaxSettingsModel model)
        {
            //ensure that received model is TaxSettingsModel
            if (model == null)
            {
                return;
            }

            if (!_permissionService.Authorize(StandardPermissionProvider.ManageTaxSettings))
            {
                return;
            }

            //ensure that Avalara tax provider is active
            if (!(_taxService.LoadActiveTaxProvider(_workContext.CurrentCustomer) is AvalaraTaxProvider))
            {
                return;
            }

            //whether there is a form value for the tax origin address type
            if (_httpContextAccessor.HttpContext.Request.Form.TryGetValue(AvalaraTaxDefaults.TaxOriginField, out StringValues taxOriginValue) &&
                int.TryParse(taxOriginValue, out int taxOriginType))
            {
                //save settings
                _avalaraTaxSettings.TaxOriginAddressType = (TaxOriginAddressType)taxOriginType;
                _settingService.SaveSetting(_avalaraTaxSettings);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Invoke the widget view component
        /// </summary>
        /// <param name="widgetZone">Widget zone</param>
        /// <param name="additionalData">Additional parameters</param>
        /// <returns>View component result</returns>
        public IViewComponentResult Invoke(string widgetZone, object additionalData)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageTaxSettings))
            {
                return(Content(string.Empty));
            }

            //ensure that Avalara tax provider is active
            if (!(_taxService.LoadActiveTaxProvider(_workContext.CurrentCustomer) is AvalaraTaxProvider))
            {
                return(Content(string.Empty));
            }

            //ensure that it's a proper widget zone
            if (!widgetZone.Equals(AdminWidgetZones.TaxSettingsTop))
            {
                return(Content(string.Empty));
            }

            //prepare model
            var model = new TaxOriginAddressTypeModel
            {
                AvalaraTaxOriginAddressType = (int)_avalaraTaxSettings.TaxOriginAddressType,
                TaxOriginAddressTypes       = _avalaraTaxSettings.TaxOriginAddressType.ToSelectList()
            };
            var taxSettingsModel = new TaxSettingsModel();

            model.PrecedingElementId = nameof(taxSettingsModel.TaxBasedOn);

            return(View("~/Plugins/Tax.Avalara/Views/Settings/TaxOriginAddressType.cshtml", model));
        }
Beispiel #3
0
        public async Task <IActionResult> Settings(TaxSettingsModel model,
                                                   [FromServices] ICustomerActivityService customerActivityService)
        {
            //load settings for a chosen store scope
            var storeScope = await GetActiveStore(_storeService, _workContext);

            var taxSettings = _settingService.LoadSetting <TaxSettings>(storeScope);

            taxSettings = model.ToEntity(taxSettings);

            await _settingService.SaveSetting(taxSettings, storeScope);

            //now clear cache
            await ClearCache();

            //activity log
            await customerActivityService.InsertActivity("EditSettings", "", _translationService.GetResource("ActivityLog.EditSettings"));

            Success(_translationService.GetResource("Admin.Configuration.Updated"));
            return(RedirectToAction("Settings"));
        }
Beispiel #4
0
 public IActionResult SaveSettings(TaxSettingsModel taxSettings)
 {
     SaveSetting(taxSettings);
     return(R.Success.Result);
 }
 public static TaxSettings ToEntity(this TaxSettingsModel model, TaxSettings destination)
 {
     return(model.MapTo(destination));
 }
 public static TaxSettings ToEntity(this TaxSettingsModel model, TaxSettings destination)
 {
     return(Mapper.Map(model, destination));
 }
 public static TaxSettings ToEntity(this TaxSettingsModel model)
 {
     return(Mapper.Map <TaxSettingsModel, TaxSettings>(model));
 }
Beispiel #8
0
 public static TaxSettings ToEntity(this TaxSettingsModel model, TaxSettings entity)
 {
     MapperFactory.Map(model, entity);
     return(entity);
 }