// GET: WOFilter public ActionResult Index(WorkOrderFilterViewModel vm) { if (vm == null) { vm = new WorkOrderFilterViewModel(); } vm.Issuers = DB.Employees.Where(e => (e.JobTitle.Title == JobTitle.Doctor || e.JobTitle.Title == JobTitle.Head)).ToList(); vm.Patients = DB.Patients.ToList(); vm.Nurse = vm.NurseReplacement = DB.Employees.Where(e => e.JobTitle.Title == JobTitle.HealthNurse).ToList(); vm.Services = DB.Services.ToList(); vm.WorkOrders = DB.WorkOrders.ToList(); vm.CanDelete = new List <bool>(); CheckForRole(vm); return(Filter(vm)); }
private void CheckForDelete(WorkOrderFilterViewModel vm) { Employee current = (Session["user"] as Models.User).Employee; // IF doctor or head if (current.JobTitle.Title == JobTitle.Doctor || current.JobTitle.Title == JobTitle.Head) { for (int i = 0; i < vm.WorkOrders.Count; i++) { WorkOrder wo = vm.WorkOrders.ElementAt(i); // If I created this workroder if (wo.Issuer.EmployeeId == current.EmployeeId) { // If WO has any done vists if (wo.Visits.Any(v => v.Done)) { // Can't delete vm.CanDelete.Add(false); } else { // Can delete vm.CanDelete.Add(true); } } else { vm.CanDelete.Add(false); } } } else { for (int i = 0; i < vm.WorkOrders.Count; i++) { vm.CanDelete.Add(false); } } }
public void CheckForRole(WorkOrderFilterViewModel vm) { if (Session["user"] != null) { Models.User sessionUser = Session["user"] as Models.User; if (sessionUser.Employee != null) { if (sessionUser.Employee.JobTitle.Title == JobTitle.HealthNurse) { vm.SelectedNurseId = vm.SelectedNurseReplacementId = sessionUser.Employee.EmployeeId; vm.SelectedNurseReplacementId = vm.SelectedNurseId; vm.Nurse = vm.Nurse.Where(n => n.EmployeeId == vm.SelectedNurseId).ToList(); vm.NurseReplacement = vm.NurseReplacement.Where(n => n.EmployeeId == vm.SelectedNurseReplacementId).ToList(); } else if (sessionUser.Employee.JobTitle.Title == JobTitle.Doctor) { vm.SelectedIssuerId = sessionUser.Employee.EmployeeId; vm.Issuers = vm.Issuers.Where(i => i.EmployeeId == vm.SelectedIssuerId).ToList(); } } } }
public ActionResult Filter(WorkOrderFilterViewModel vm) { if (vm == null) { vm = new WorkOrderFilterViewModel(); } vm.Issuers = DB.Employees.Where(e => (e.JobTitle.Title == JobTitle.Doctor || e.JobTitle.Title == JobTitle.Head)).ToList(); vm.Patients = DB.Patients.ToList(); vm.Nurse = vm.NurseReplacement = DB.Employees.Where(e => e.JobTitle.Title == JobTitle.HealthNurse).ToList(); vm.Services = DB.Services.ToList(); vm.WorkOrders = DB.WorkOrders.ToList(); vm.CanDelete = new List <bool>(); CheckForRole(vm); #region Filters if (vm.DateStart != null) { //vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Visits.Any(v => v.Date > vm.DateStart)).ToList(); vm.WorkOrders = vm.WorkOrders.Where(wo => wo.DateCreated >= vm.DateStart).ToList(); } if (vm.DateEnd != null) { //vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Visits.Any(v => v.Date < vm.DateEnd)).ToList(); vm.WorkOrders = vm.WorkOrders.Where(wo => wo.DateCreated <= vm.DateEnd).ToList(); } /*if (vm.VisitType != 0) * { * if (vm.VisitType == WorkOrderFilterViewModel.VisitTypeEnum.Preventive) * vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Service.PreventiveVisit == true).ToList(); * else * vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Service.PreventiveVisit == false).ToList(); * }*/ if (vm.ServiceId != null && vm.ServiceId > 0) { vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Service.ServiceId == vm.ServiceId).ToList(); } if (vm.SelectedIssuerId > 0) { vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Issuer.EmployeeId == vm.SelectedIssuerId).ToList(); } if (vm.SelectedPatientId > 0) { vm.WorkOrders = vm.WorkOrders.Where(wo => wo.PatientWorkOrders.Any(pwo => pwo.Patient.PatientId == vm.SelectedPatientId) || wo.Patient.PatientId == vm.SelectedPatientId).ToList(); } if (vm.SelectedNurseId > 0 && vm.SelectedNurseReplacementId > 0) { vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Nurse.EmployeeId == vm.SelectedNurseId || wo.Visits.Any(v => v.NurseReplacement != null && v.NurseReplacement.EmployeeId == vm.SelectedNurseReplacementId)).ToList(); } else if (vm.SelectedNurseReplacementId > 0) { vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Visits.Any(v => v.NurseReplacement != null && v.NurseReplacement.EmployeeId == vm.SelectedNurseReplacementId)).ToList(); } else if (vm.SelectedNurseId > 0) { vm.WorkOrders = vm.WorkOrders.Where(wo => wo.Nurse.EmployeeId == vm.SelectedNurseId).ToList(); } #endregion vm.WorkOrders = vm.WorkOrders.OrderBy(x => x.DateCreated).ToList(); CheckForDelete(vm); return(View("Index", vm)); }