Exemple #1
0
        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));
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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));
        }