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 })); } }
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); }