Exemple #1
0
        public virtual ActionResult Index()
        {
            var setting = _settings.Get(SettingType.Bill);

            var billSettings = _serializer.Deserialize <BillSettings>(setting.Data);

            var model = new BillSettingsModel
            {
                BankDetails = new BankDetails
                {
                    Bank = billSettings.Bank,
                    BIC  = billSettings.BIC,
                    CorrespondentAccount = billSettings.CorrespondentAccount,
                    CurrentAccount       = billSettings.CurrentAccount,
                    Payee = billSettings.Payee,
                    TaxRegistrationReasonCode = billSettings.TaxRegistrationReasonCode,
                    TIN = billSettings.TIN
                },
                Version               = setting.RowVersion,
                Accountant            = billSettings.Accountant,
                Head                  = billSettings.Head,
                HeaderText            = billSettings.HeaderText,
                Shipper               = billSettings.Shipper,
                VAT                   = (byte)(billSettings.VAT * 100),
                EuroToRuble           = billSettings.EuroToRuble,
                SourceUrl             = billSettings.SourceUrl,
                AutoUpdatePeriodHours =
                    billSettings.AutoUpdatePeriod.HasValue ? billSettings.AutoUpdatePeriod.Value.Hours : (int?)null
            };

            return(View(model));
        }
Exemple #2
0
        public virtual ActionResult Index(BillSettingsModel model)
        {
            if (model.EuroToRuble <= 0)
            {
                ModelState.AddModelError("EuroToRuble", @"EUR/RUB must have positive value");
            }

            if (model.VAT <= 0)
            {
                ModelState.AddModelError("VAT", @"VAT must have positive value");
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var data = _serializer.Serialize(new BillSettings
            {
                Accountant                = model.Accountant,
                Bank                      = model.BankDetails.Bank,
                BIC                       = model.BankDetails.BIC,
                CorrespondentAccount      = model.BankDetails.CorrespondentAccount,
                CurrentAccount            = model.BankDetails.CurrentAccount,
                Head                      = model.Head,
                HeaderText                = model.HeaderText,
                Payee                     = model.BankDetails.Payee,
                Shipper                   = model.Shipper,
                TaxRegistrationReasonCode = model.BankDetails.TaxRegistrationReasonCode,
                TIN                       = model.BankDetails.TIN,
                VAT                       = (decimal)model.VAT / 100,
                EuroToRuble               = model.EuroToRuble,
                SourceUrl                 = model.SourceUrl,
                AutoUpdatePeriod          = model.AutoUpdatePeriodHours.HasValue
                                        ? TimeSpan.FromHours(model.AutoUpdatePeriodHours.Value)
                                        : (TimeSpan?)null
            });

            try
            {
                _settings.AddOrReplace(new Setting
                {
                    Data       = data,
                    RowVersion = model.Version,
                    Type       = SettingType.Bill
                });
            }
            catch (UpdateConflictException)
            {
                ModelState.AddModelError("Version", @"Outdated data, refresh the page and try again");

                return(View(model));
            }

            return(RedirectToAction(MVC.Admin.BillSettings.Index()));
        }