public ActionResult Configure() { var model = new TaxAvalaraModel { AccountId = _avalaraTaxSettings.AccountId, LicenseKey = _avalaraTaxSettings.LicenseKey, CompanyCode = _avalaraTaxSettings.CompanyCode, IsSandboxEnvironment = _avalaraTaxSettings.IsSandboxEnvironment, CommitTransactions = _avalaraTaxSettings.CommitTransactions }; PrepareAddress(model.TestAddress); return(View("~/Plugins/Tax.Avalara/Views/TaxAvalara/Configure.cshtml", model)); }
public ActionResult Configure(TaxAvalaraModel model) { if (!ModelState.IsValid) { return(Configure()); } _avalaraTaxSettings.AccountId = model.AccountId; _avalaraTaxSettings.LicenseKey = model.LicenseKey; _avalaraTaxSettings.CompanyCode = model.CompanyCode; _avalaraTaxSettings.IsSandboxEnvironment = model.IsSandboxEnvironment; _avalaraTaxSettings.CommitTransactions = model.CommitTransactions; _settingService.SaveSetting(_avalaraTaxSettings); SuccessNotification(_localizationService.GetResource("Admin.Plugins.Saved")); return(Configure()); }
public ActionResult TestRequest(TaxAvalaraModel model) { if (!ModelState.IsValid) { return(Configure()); } var country = _countryService.GetCountryById(model.TestAddress.CountryId); var region = _stateProvinceService.GetStateProvinceById(model.TestAddress.RegionId); var address = new Address { AddressCode = "1", Country = country != null ? country.TwoLetterIsoCode : null, Region = region != null ? region.Abbreviation : null, City = model.TestAddress.City, Line1 = model.TestAddress.Address }; var line = new Line { LineNo = "1", DestinationCode = "1", OriginCode = "1", Qty = 1 }; var taxRequest = new AvalaraTaxRequest { CustomerCode = _workContext.CurrentCustomer.CustomerGuid.ToString(), Addresses = new [] { address }, Lines = new[] { line } }; var resultstring = new StringBuilder(); var taxProvider = (AvalaraTaxProvider)_taxService.LoadTaxProviderBySystemName("Tax.Avalara"); var taxResult = taxProvider.GetTaxResult(taxRequest); if (taxResult.ResultCode == SeverityLevel.Success) { if (taxResult.TaxLines != null && taxResult.TaxLines.Any()) { resultstring.AppendFormat("Total tax rate: {0:0.00}%<br />", taxResult.TaxLines[0].Rate * 100); if (taxResult.TaxLines[0].TaxDetails != null) { foreach (var taxDetail in taxResult.TaxLines[0].TaxDetails) { resultstring.AppendFormat("Jurisdiction: {0}, Tax rate: {1:0.00}%<br />", HttpUtility.UrlEncode(taxDetail.JurisName), taxDetail.Rate * 100); } } } } else { resultstring.Append("<font color=\"red\">"); foreach (var message in taxResult.Messages) { resultstring.AppendFormat("{0}<br />", HttpUtility.HtmlEncode(message.Summary)); } resultstring.Append("</font>"); } model.TestingResult = resultstring.ToString(); PrepareAddress(model.TestAddress); return(View("~/Plugins/Tax.Avalara/Views/TaxAvalara/Configure.cshtml", model)); }