//Action To find Shift for New Work
        public ActionResult FindShiftForNewWork(AssignShiftEmployeesViewModel viewModel)
        {
            var datetime     = viewModel.Datetime;
            var departmentId = _departmentRepository.GetDepartmentId(viewModel);
            var shiftTypeId  = viewModel.ShiftTypeId;

            var shiftId = _shiftRepository.GetShiftIdByDayTimeAndDepartmentId(datetime, departmentId, shiftTypeId);

            TempData["ID"] = shiftId;
            //TempData["DepartmentID"] = departmentId;
            return(RedirectToAction("NewWork"));
        }
Example #2
0
        public ActionResult AddAWorkWeek(WorkDayViewModel viewModel)
        {
            var shift = _context.Shifts
                        .Include(s => s.Department)
                        .Include(s => s.ShiftType)
                        .Any(s => s.DateTime == viewModel.WorkDate && s.DepartmentId == viewModel.DepartmentId);

            viewModel.Departments = _context.Departments.ToList();

            if (viewModel.DepartmentId == 0 || viewModel.NumberOfWorkDays == 0 || viewModel.NumbersOfShifts == 0 || viewModel.WorkDate == null)
            {
                var returnViewModel = new WorkDayViewModel
                {
                    Departments      = viewModel.Departments,
                    WorkDate         = viewModel.WorkDate,
                    NumberOfWorkDays = viewModel.NumberOfWorkDays,
                    NumbersOfShifts  = viewModel.NumbersOfShifts
                };
                return(RedirectToAction("AddAWorkWeek", returnViewModel));
            }

            if (!shift)
            {
                for (int j = 0; j < viewModel.NumberOfWorkDays; j++)
                {
                    for (byte i = 1; i <= viewModel.NumbersOfShifts; i++)
                    {
                        var newShift = new Shift(viewModel.WorkDate.AddDays(j), i, viewModel.DepartmentId);
                        _context.Shifts.Add(newShift);
                    }
                }
                _context.SaveChanges();

                viewModel.Department = _context.Departments.Where(d => d.Id == viewModel.DepartmentId).Single();
                var assigneViewModel = new AssignShiftEmployeesViewModel
                {
                    Department = viewModel.Department,
                    ShiftTypes = _context.ShiftTypes.ToList()
                };

                return(View("ChooseDateAssigment", assigneViewModel));
            }

            return(View(viewModel));
        }
Example #3
0
        public ActionResult NewWork(AssignShiftEmployeesViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                viewModel.Employees = _context.Employees
                                      .Where(e => e.DepartmentId == viewModel.Shift.DepartmentId)
                                      .ToList();
                viewModel.Shift = _context.Shifts
                                  .Include(s => s.Department)
                                  .Include(s => s.ShiftType)
                                  .Single();

                return(View("NewWork", viewModel));
            }

            var employee = viewModel.EmployeeId;
            var shift    = viewModel.Shift.Id;

            var exist = _context.Works.Any(w => w.EmployeeID == employee && w.ShiftId == shift);

            //var existandiscanceled = _context.Works.Any(w => w.EmployeeID == employee && w.ShiftId == shift && w.IsCanceled);

            //if (existandiscanceled)
            //{
            //    var updatedWork = _context.Works.Where(w => w.EmployeeID == employee && w.ShiftId == shift).Single();
            //    updatedWork.IsCanceled = false;
            //    _context.SaveChanges();
            //    return RedirectToAction("NewWork", viewModel.Shift.Id);
            //}
            if (exist)
            {
                return(RedirectToAction("NewWork"));
            }

            var work = new Work(viewModel.EmployeeId, viewModel.Shift.Id);

            _context.Works.Add(work);
            _context.SaveChanges();

            var shiftId = viewModel.Shift.Id;

            TempData["ID"] = shiftId;
            return(RedirectToAction("NewWork", shiftId));
        }
        public ActionResult AddAWorkWeek(WorkDayViewModel viewModel)
        {
            var shift = _shiftRepository.GetShiftExist(viewModel);

            viewModel.Departments = _departmentRepository.GetDepartments();

            if (viewModel.DepartmentId == 0 || viewModel.NumberOfWorkDays == 0 || viewModel.NumbersOfShifts == 0 || viewModel.WorkDate == null)
            {
                var returnViewModel = new WorkDayViewModel
                {
                    Departments      = viewModel.Departments,
                    WorkDate         = viewModel.WorkDate,
                    NumberOfWorkDays = viewModel.NumberOfWorkDays,
                    NumbersOfShifts  = viewModel.NumbersOfShifts
                };
                return(RedirectToAction("AddAWorkWeek", returnViewModel));
            }

            if (!shift)
            {
                for (int j = 0; j < viewModel.NumberOfWorkDays; j++)
                {
                    for (byte i = 1; i <= viewModel.NumbersOfShifts; i++)
                    {
                        var newShift = new Shift(viewModel.WorkDate.AddDays(j), i, viewModel.DepartmentId);
                        _context.Shifts.Add(newShift);
                    }
                }
                _context.SaveChanges();

                viewModel.Department = _departmentRepository.GetDepartment(viewModel);
                var assigneViewModel = new AssignShiftEmployeesViewModel
                {
                    Department = viewModel.Department,
                    ShiftTypes = _shiftTypeRepository.GetShiftTypes()
                };

                return(View("ChooseDateAssigment", assigneViewModel));
            }

            return(View(viewModel));
        }
        public ActionResult NewWork(AssignShiftEmployeesViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                viewModel.Employees = _employeeRepository.GetEmployeeIdEqualsToShiftId(viewModel);
                viewModel.Shift     = _shiftRepository.GetShift();

                return(View("NewWork", viewModel));
            }

            var employee = viewModel.EmployeeId;

            if (employee.Equals(0))
            {
                return(RedirectToAction("NewWork"));
            }

            var shift = viewModel.Shift.Id;

            var exist = _workRepository.GetWork(employee, shift);

            if (exist)
            {
                return(RedirectToAction("NewWork"));
            }

            var work = new Work(viewModel.EmployeeId, viewModel.Shift.Id);

            _context.Works.Add(work);
            _context.SaveChanges();

            var shiftId = viewModel.Shift.Id;

            TempData["ID"] = shiftId;
            return(RedirectToAction("NewWork", shiftId));
        }
        //get
        public ActionResult NewWork(int?id)
        {
            var newId = Convert.ToInt32(TempData["ID"]);

            if (newId != 0)
            {
                id = newId;
            }

            //var depapartmentID = Convert.ToInt32(TempData["DepartmentID"]);
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var shift = _shiftRepository.GetShift(id);

            if (shift == null)
            {
                return(HttpNotFound());
            }

            var employees = _employeeRepository.GetEmployeesWhoNotWorking(shift);

            var workingEmployees = _employeeRepository.GetEmployeesWhoAreWorking(shift);

            var viewModel = new AssignShiftEmployeesViewModel
            {
                Shift            = shift,
                Employees        = employees,
                WorkingEmployees = workingEmployees,
                Department       = shift.Department,
            };

            return(View("NewWork", viewModel));
        }
 public int GetDepartmentId(AssignShiftEmployeesViewModel viewModel)
 {
     return(_context.Departments.Where(d => d.Id == viewModel.Department.Id).Single().Id);
 }
 public ICollection <Employee> GetEmployeeIdEqualsToShiftId(AssignShiftEmployeesViewModel viewModel)
 {
     return(_context.Employees
            .Where(e => e.DepartmentId == viewModel.Shift.DepartmentId)
            .ToList());
 }