예제 #1
0
        public ActionResult UpdateAbsencePolicyEntitlement(AbsencePolicyViewModel absencePolicyViewModel)
        {
            if (ModelState.IsValid)
            {
                var organisationId = UserOrganisationId;
                HRBusinessService.UpdateAbsencePolicyEntitlement(organisationId, absencePolicyViewModel.AbsencePolicyEntitlement);
                return(this.JsonNet(string.Empty));
            }
            var errors = ModelState.Values.Where(e => e.Errors.Count > 0)
                         .Select(e => e.Errors.Select(d => d.ErrorMessage).FirstOrDefault())
                         .Distinct();

            return(this.JsonNet(errors));
        }
예제 #2
0
        public PartialViewResult AbsencePolicyEntitlement(int absencePolicyId, int absencePolicyEntitlementId)
        {
            var organisationId           = UserOrganisationId;
            var absencePolicyEntitlement =
                HRBusinessService.RetrieveAbsencePolicyEntitlements(organisationId, absencePolicyId)
                .Items.FirstOrDefault(e => e.AbsencePolicyEntitlementId == absencePolicyEntitlementId);

            var model = new AbsencePolicyViewModel()
            {
                Frequencies = new SelectList(EnumHelper.GetSelectList(typeof(Frequency.FrequencyType)), "Value", "Text", Frequency.FrequencyType.Yearly),
                AbsencePolicyEntitlement = absencePolicyEntitlement
            };

            return(PartialView("_AbsencePolicyEntitlement", model));
        }
예제 #3
0
        public ActionResult Edit(int?id, AbsencePolicyViewModel absencePolicyViewModel)
        {
            var organisationId = UserOrganisationId;
            var absencePolicy  =
                HRBusinessService.RetrieveAbsencePolicies(organisationId, null, null)
                .Items.FirstOrDefault(e => e.AbsencePolicyId == id);


            ValidationResult <WorkingPattern> result = null;

            absencePolicyViewModel.AbsencePolicy.OrganisationId = organisationId;
            if (absencePolicy.WorkingPatternId == null)
            {
                result = HRBusinessService.CreateAbsencePolicyWorkingPattern(organisationId, absencePolicyViewModel.AbsencePolicy, absencePolicyViewModel.WorkingPatternDays);
            }
            else
            {
                result = HRBusinessService.UpdateAbsencePolicy(organisationId, absencePolicyViewModel.AbsencePolicy, absencePolicyViewModel.WorkingPatternDays);
            }

            if (result.Succeeded)
            {
                return(RedirectToAction("Index"));
            }

            foreach (var error in result.Errors)
            {
                ModelState.AddModelError("", error);
            }

            var viewModel = new AbsencePolicyViewModel
            {
                Frequencies              = new SelectList(EnumHelper.GetSelectList(typeof(Frequency.FrequencyType)), "Value", "Text", Frequency.FrequencyType.Yearly),
                AbsencePolicy            = absencePolicy,
                WorkingPatternDays       = absencePolicyViewModel.WorkingPatternDays.ToList(),
                AbsenceTypes             = absencePolicyViewModel.AbsenceTypes,
                AbsencePeriods           = absencePolicyViewModel.AbsencePeriods,
                SumOfDuration            = absencePolicyViewModel.SumOfDuration,
                AbsencePolicyEntitlement = new AbsencePolicyEntitlement()
            };

            return(View(viewModel));
        }
예제 #4
0
        public ActionResult Create([Bind(Include = "AbsencePolicyId,Name")] AbsencePolicy absencePolicy)
        {
            if (ModelState.IsValid)
            {
                absencePolicy.OrganisationId = UserOrganisationId;
                var result = HRBusinessService.CreateAbsencePolicy(UserOrganisationId, absencePolicy);
                if (result.Succeeded)
                {
                    return(RedirectToAction("Edit", new { id = result.Entity.AbsencePolicyId }));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error);
                }
            }
            var viewModel = new AbsencePolicyViewModel
            {
                AbsencePolicy = new AbsencePolicy()
            };

            return(View(viewModel));
        }
예제 #5
0
        public ActionResult Edit(int?id)
        {
            var organisationId = UserOrganisationId;
            var absencePolicy  = HRBusinessService.RetrieveAbsencePolicy(organisationId, id.Value);

            var workingPatternDays = absencePolicy.WorkingPatternId == null?HRBusinessService.RetrieveDefaultWorkingPatternDays() :
                                         absencePolicy.WorkingPattern.WorkingPatternDays;

            var absenceTypes  = HRBusinessService.RetrieveAbsenceTypes(organisationId, null, null);
            var absencePeriod = HRBusinessService.RetrieveAbsencePeriods(organisationId, null, null);

            var viewModel = new AbsencePolicyViewModel
            {
                Frequencies              = new SelectList(EnumHelper.GetSelectList(typeof(Frequency.FrequencyType)), "Value", "Text", Frequency.FrequencyType.Yearly),
                AbsencePolicy            = absencePolicy,
                SumOfDuration            = (double)(workingPatternDays != null? workingPatternDays.Sum(s => s.Duration):0),
                WorkingPatternDays       = workingPatternDays.ToList(),
                AbsenceTypes             = absenceTypes.Items.ToList(),
                AbsencePeriods           = absencePeriod.Items.ToList(),
                AbsencePolicyEntitlement = new AbsencePolicyEntitlement()
            };

            return(View(viewModel));
        }