Exemplo n.º 1
0
        private void prepWork(Models.WorkViewModel vm, bool clearEdit = false)
        {
            var cycles = GetPayCycles();
            int cycle  = int.Parse(cycles.First().Value);

            vm.WorkTypes = LookupRepo.GetLookups("WorkType", "- Select -").Select(x => new SelectListItem {
                Text = x.Descr, Value = x.Id.ToString()
            });
            vm.PayCycles     = cycles;
            vm.IsCycleOpen   = false;
            vm.CanCloseCycle = true;
            if (vm.SelectedCycle == 0)
            {
                vm.SelectedCycle = cycle;
            }
            if (vm.SelectedCycle == cycle)
            {
                vm.IsCycleOpen   = true;
                vm.CanCloseCycle = false;
            }

            vm.Jobs = _JobRepo.GetJobsForWork(vm.SelectedContractorId, vm.SelectedCycle).Select(x => new SelectListItem {
                Text = x.Descr, Value = x.Id.ToString()
            });

            vm.WorkEntries = _WorkRepo.GetWork(vm.SelectedContractorId, vm.SelectedCycle, true);
            if (vm.SortByJob)
            {
                vm.WorkEntries = vm.WorkEntries.OrderBy(x => x.Job).ThenBy(x => x.WorkDay);
            }
            if (vm.EditWork == null)
            {
                vm.EditWork = new TimeCard.Domain.Work {
                    ContractorId = vm.SelectedContractorId, WorkDay = DateRef.GetWorkDay(DateTime.Today)
                };
            }
            if (clearEdit)
            {
                vm.EditWork = new TimeCard.Domain.Work {
                    ContractorId = vm.SelectedContractorId, WorkDay = vm.EditWork.WorkDay, JobId = vm.EditWork.JobId, WorkType = vm.EditWork.WorkType
                };
            }
            vm.EditDays    = GetEditDays(vm.SelectedCycle);
            vm.DailyTotals = new decimal[2][];
            for (int i = 0; i < 2; i++)
            {
                vm.DailyTotals[i] = new decimal[8];
                for (int j = 0; j < 7; j++)
                {
                    vm.DailyTotals[i][j]  = vm.WorkEntries.Where(x => x.WeekDay == j + i * 7).Sum(x => x.Hours);
                    vm.DailyTotals[i][7] += vm.DailyTotals[i][j];
                }
            }

            if (!vm.IsCycleOpen)
            {
                vm.IsCycleOpen = _WorkRepo.GetWorkOpen(vm.SelectedContractorId).Any(x => x == vm.SelectedCycle);
            }
        }
Exemplo n.º 2
0
        public IActionResult Index()
        {
            var vm = new Models.WorkViewModel {
                SelectedContractorId = ContractorId, SelectedContractorDescr = CurrentUsername
            };

            prepWork(vm);
            return(View(vm));
        }
Exemplo n.º 3
0
        public ActionResult Index(Models.WorkViewModel vm, string buttonValue)
        {
            bool clearEdit = false;

            switch (buttonValue)
            {
            case "OpenClose":
                _WorkRepo.ToggleWorkOpen(vm.SelectedContractorId, vm.SelectedCycle);
                ModelState.Clear();
                break;

            case "Save":
                if (ModelState.IsValid)
                {
                    var work = vm.EditWork;
                    clearEdit = work.WorkId == 0;
                    _WorkRepo.SaveWork(work);
                    if (!clearEdit)
                    {
                        vm.EditWork = null;
                    }
                    ModelState.Clear();
                }
                break;

            case "Delete":
                _WorkRepo.DeleteWork(vm.EditWork.WorkId);
                vm.EditWork = null;
                ModelState.Clear();
                break;

            default:
                vm.EditWork = null;
                ModelState.Clear();
                break;
            }
            prepWork(vm, clearEdit);
            return(View(vm));
        }