public ActionResult Create()
        {
            var model = new TaxRateEditViewModel();
            foreach (var taxClass in taxClassService.FindAll().ToList())
            {
                model.ClassRates.Add(new TaxClassRateEditViewModel { TaxClassId = taxClass.Id, TaxClassName = taxClass.Name });
            }

            ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name");
            return View(model);
        }
Beispiel #2
0
        public TaxRate AddOrUpdate(TaxRateEditViewModel model)
        {
            TaxRate taxRate;

            if (model.Id == 0)
            {
                taxRate = Mapper.Map <TaxRate>(model);
                db.TaxRates.Add(taxRate);
            }
            else
            {
                taxRate = Find(model.Id);
                taxRate = Mapper.Map(model, taxRate);

                var classRatesToDelete = taxRate.ClassRates.ToList().Where(r => !model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId) ||
                                                                           model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId && cr.Amount == null));
                foreach (var taxClassRate in classRatesToDelete)
                {
                    db.TaxClassRates.Remove(taxClassRate);
                }
            }

            foreach (var classRateView in model.ClassRates)
            {
                if (classRateView.Amount == null)
                {
                    continue;
                }
                TaxClassRate classRate = null;
                if (model.Id != 0)
                {
                    classRate = taxRate.ClassRates.FirstOrDefault(r => r.TaxClassId == classRateView.TaxClassId);

                    // If rate exists in db and is changed in view
                    if (classRate != null)
                    {
                        classRate.Amount = classRateView.Amount.Value;
                    }
                }
                if (classRate == null)
                {
                    classRate = new TaxClassRate
                    {
                        TaxRateId  = taxRate.Id,
                        TaxClassId = classRateView.TaxClassId,
                        Amount     = classRateView.Amount.Value
                    };
                    db.TaxClassRates.Add(classRate);
                }
            }

            db.SaveChanges();
            return(taxRate);
        }
        public ActionResult Create(TaxRateEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var taxRate = taxRateService.AddOrUpdate(model);

                return RedirectToAction("Index")
                    .WithSuccess(string.Format("The tax rate \"{0}\" has been added".TA(), taxRate.Name));
            }

            ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name");
            return View(model);
        }
Beispiel #4
0
        public ActionResult Create(TaxRateEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var taxRate = taxRateService.AddOrUpdate(model);

                return(RedirectToAction("Index")
                       .WithSuccess(string.Format("The tax rate \"{0}\" has been added".TA(), taxRate.Name)));
            }

            ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name");
            return(View(model));
        }
Beispiel #5
0
        public TaxRate AddOrUpdate(TaxRateEditViewModel model)
        {
            TaxRate taxRate;

            if (model.Id == 0)
            {
                taxRate = Mapper.Map<TaxRate>(model);
                db.TaxRates.Add(taxRate);
            }
            else
            {
                taxRate = Find(model.Id);
                taxRate = Mapper.Map(model, taxRate);

                var classRatesToDelete = taxRate.ClassRates.ToList().Where(r => !model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId)
                    || model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId && cr.Amount == null));
                foreach (var taxClassRate in classRatesToDelete)
                {
                    db.TaxClassRates.Remove(taxClassRate);
                }
            }

            foreach (var classRateView in model.ClassRates)
            {
                if (classRateView.Amount == null) continue;
                TaxClassRate classRate = null;
                if (model.Id != 0)
                {
                    classRate = taxRate.ClassRates.FirstOrDefault(r => r.TaxClassId == classRateView.TaxClassId);

                    // If rate exists in db and is changed in view
                    if (classRate != null)
                    {
                        classRate.Amount = classRateView.Amount.Value;
                    }
                }
                if (classRate == null)
                {
                    classRate = new TaxClassRate
                    {
                        TaxRateId = taxRate.Id,
                        TaxClassId = classRateView.TaxClassId,
                        Amount = classRateView.Amount.Value
                    };
                    db.TaxClassRates.Add(classRate);
                }
            }

            db.SaveChanges();
            return taxRate;
        }
Beispiel #6
0
        public ActionResult Create()
        {
            var model = new TaxRateEditViewModel();

            foreach (var taxClass in taxClassService.FindAll().ToList())
            {
                model.ClassRates.Add(new TaxClassRateEditViewModel {
                    TaxClassId = taxClass.Id, TaxClassName = taxClass.Name
                });
            }

            ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name");
            return(View(model));
        }