Esempio n. 1
0
        public virtual JsonResult CreateHoursPerCompany(CreateHoursPerCompanyViewModel viewModel)
        {
            try
            {
                var toDeleteIds = new List <int>();
                if (viewModel.RegularHoursPerCompany != null)
                {
                    toDeleteIds.AddRange(viewModel.RegularHoursPerCompany.Where(x => x.TotalEmployeeHoursPerCompanyId > 0).Select(x => x.TotalEmployeeHoursPerCompanyId));
                }
                if (viewModel.OvertimePerCompany != null)
                {
                    toDeleteIds.AddRange(viewModel.OvertimePerCompany.Where(x => x.TotalEmployeeHoursPerCompanyId > 0).Select(x => x.TotalEmployeeHoursPerCompanyId));
                }
                if (viewModel.NightDifferentialPerCompany != null)
                {
                    toDeleteIds.AddRange(viewModel.NightDifferentialPerCompany.Where(x => x.TotalEmployeeHoursPerCompanyId > 0).Select(x => x.TotalEmployeeHoursPerCompanyId));
                }

                //delete first all the existing records
                _totalEmployeeHoursPerCompanyRepository.DeleteByTotalEmployeeHoursPerCompanyIds(toDeleteIds);

                //add them again
                if (viewModel.RegularHoursPerCompany != null)
                {
                    foreach (var item in viewModel.RegularHoursPerCompany)
                    {
                        item.TotalEmployeeHours = null;
                        item.Company            = null;
                        _totalEmployeeHoursPerCompanyRepository.Add(item);
                    }
                }

                if (viewModel.OvertimePerCompany != null)
                {
                    foreach (var item in viewModel.OvertimePerCompany)
                    {
                        item.TotalEmployeeHours = null;
                        item.Company            = null;
                        _totalEmployeeHoursPerCompanyRepository.Add(item);
                    }
                }

                if (viewModel.NightDifferentialPerCompany != null)
                {
                    foreach (var item in viewModel.NightDifferentialPerCompany)
                    {
                        item.TotalEmployeeHours = null;
                        item.Company            = null;
                        _totalEmployeeHoursPerCompanyRepository.Add(item);
                    }
                }

                _unitOfWork.Commit();
                return(Json(new { Success = true }));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, Error = ex.Message }));
            }
        }
Esempio n. 2
0
        public virtual JsonResult ViewHoursPerCompanyModal(int employeeId, string date)
        {
            var deserializedDate   = date.DeserializeDate();
            var employeeTotalHours = GetTotalEmployeeHours(deserializedDate, deserializedDate, employeeId);

            if (employeeTotalHours != null)
            {
                var endDate = deserializedDate.Date.AddDays(1);
                var employeeTotalHoursPerCompany = _totalEmployeeHoursPerCompanyRepository
                                                   .Find(x => x.TotalEmployeeHours.Date >= deserializedDate && x.TotalEmployeeHours.Date < endDate &&
                                                         x.TotalEmployeeHours.EmployeeId == employeeId).ToList();

                var companies = _companyRepository.GetAllActive().ToList();

                var emp = employeeTotalHours.First();

                var viewModel = new CreateHoursPerCompanyViewModel
                {
                    Companies = companies,
                    EmployeeTotalHoursViewModel = emp,
                    RegularHoursPerCompany      = employeeTotalHoursPerCompany.Where(x => x.TotalEmployeeHoursId == emp.TotalRegularHoursId),
                    OvertimePerCompany          = employeeTotalHoursPerCompany.Where(x => x.TotalEmployeeHoursId == emp.TotalOvertimeId),
                    NightDifferentialPerCompany = employeeTotalHoursPerCompany.Where(x => x.TotalEmployeeHoursId == emp.TotalNightDifferentialId).ToList(),
                    ModalTitle = String.Format("{0} {1} {2} - {3}", emp.FirstName, emp.MiddleName, emp.LastName, deserializedDate.ToShortDateString())
                };
                return(Json(viewModel));
            }

            return(null);
        }