public ActionResult Assign(int?Id) { var model = new TimekeepingListViewModel(); var timekeepingList = timekeepingListRepository.GetvwTimekeepingListById(Id.Value); AutoMapper.Mapper.Map(timekeepingList, model); var user = userRepository.GetUserById(WebSecurity.CurrentUserId); var holiday = holidayRepository.GetAllHolidays().AsEnumerable().ToList(); var staff = StaffsRepository.GetvwAllStaffs().Where(x => x.BranchDepartmentId == timekeepingList.DepartmentId); ViewBag.staffList = staff; ViewBag.DayHoliday = holiday; DateTime aDateTime = new DateTime(timekeepingList.Year.Value, timekeepingList.Month.Value, 1); // Cộng thêm 1 tháng và trừ đi một ngày. DateTime retDateTime = aDateTime.AddMonths(1).AddDays(-1); ViewBag.aDateTime = aDateTime; ViewBag.retDateTime = retDateTime; var DayOff = categoryRepository.GetCategoryByCode("DayOffDefault").AsEnumerable().ToList(); ViewBag.DayOff = DayOff; var ShiftsList = shiftsRepository.GetAllShifts().Where(x => x.CategoryShifts == timekeepingList.CategoryShifts).AsEnumerable(); ViewBag.ShiftsList = ShiftsList; return(View(model)); }
public ViewResult Index(string txtSearch) { IQueryable <HolidaysViewModel> q = HolidaysRepository.GetAllHolidays() .Select(item => new HolidaysViewModel { Id = item.Id, CreatedUserId = item.CreatedUserId, //CreatedUserName = item.CreatedUserName, CreatedDate = item.CreatedDate, ModifiedUserId = item.ModifiedUserId, //ModifiedUserName = item.ModifiedUserName, ModifiedDate = item.ModifiedDate, Name = item.Name, Code = item.Code, DayStart = item.DayStart, DayEnd = item.DayEnd, Note = item.Note, DayOffset = item.DayOffset }).OrderByDescending(m => m.ModifiedDate); ViewBag.SuccessMessage = TempData["SuccessMessage"]; ViewBag.FailedMessage = TempData["FailedMessage"]; ViewBag.AlertMessage = TempData["AlertMessage"]; return(View(q)); }
public ViewResult List(int?Id, int?page) { var model = new WorkSchedulesViewModel(); model.TimekeepingListId = Id; var timekeepingList = timekeepingListRepository.GetvwTimekeepingListById(Id.Value); var staff = Erp.BackOffice.Helpers.Common.GetStaffByCurrentUser(); DateTime aDateTime = new DateTime(timekeepingList.Year.Value, timekeepingList.Month.Value, 1); // Cộng thêm 1 tháng và trừ đi một ngày. DateTime retDateTime = aDateTime.AddMonths(1).AddDays(-1); ViewBag.aDateTime = aDateTime; ViewBag.retDateTime = retDateTime; var listTinmeKeeping = workSchedulesRepository.GetvwAllWorkSchedules().Where(x => x.TimekeepingListId.Value == Id).ToList(); var pager = new Pager(listTinmeKeeping.Count(), page, 20); model.pageIndexViewModel = new IndexViewModel <WorkSchedulesViewModel> { Items = listTinmeKeeping.OrderBy(m => m.Code).Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize) .Select(i => new WorkSchedulesViewModel { BranchDepartmentId = i.BranchDepartmentId, Code = i.Code, CodeShifts = i.CodeShifts, Color = i.Color, Day = i.Day, DayOff = i.DayOff, DayOffCode = i.DayOffCode, DayOffName = i.DayOffName, EndTime = i.EndTime, EndTimeIn = i.EndTimeIn, Id = i.Id, //HoursIn = i.HoursIn, //HoursOut = i.HoursOut, Month = i.Month, Name = i.Name, NameShifts = i.NameShifts, //Sale_BranchId = i.Sale_BranchId, //ShiftsId = i.ShiftsId, StaffId = i.StaffId, StartTime = i.StartTime, StartTimeOut = i.StartTimeOut, Symbol = i.Symbol, Timekeeping = i.Timekeeping, Total_minute_work = i.Total_minute_work, Total_minute_work_early = i.Total_minute_work_early, Total_minute_work_late = i.Total_minute_work_late, Total_minute_work_overtime = i.Total_minute_work_overtime, //UserEnrollNumber = i.UserEnrollNumber, Year = i.Year, TimekeepingListId = i.TimekeepingListId }).OrderBy(x => x.ShiftsId).ToList(), Pager = pager }; //lấy danh sách các ngày nghỉ trong tuần, theo quy định từng công ty. var DayOff = categoryRepository.GetCategoryByCode("DayOffDefault").Where(x => x.Value == "True").AsEnumerable().ToList(); ViewBag.DayOff = DayOff; //lấy danh sách các ngày nghỉ lễ trong năm var holiday = holidayRepository.GetAllHolidays().AsEnumerable().ToList(); ViewBag.DayHoliday = holiday; if (model.pageIndexViewModel.Items != null) { //lấy danh sách nhân viên chấm công của tháng đó, chi nhánh đó model.StaffList = model.pageIndexViewModel.Items .GroupBy(x => new { x.StaffId }, (key, group) => new WorkSchedulesViewModel { StaffId = key.StaffId, Code = group.FirstOrDefault().Code, Name = group.FirstOrDefault().Name, Id = group.FirstOrDefault().Id, TimekeepingListId = group.FirstOrDefault().TimekeepingListId, Year = group.FirstOrDefault().Year, Month = group.FirstOrDefault().Month }).ToList(); //lấy danh sách ngày công của nhân viên trong bảng chấm công nhóm theo id nhân viên và ngày công. model.DayWorkList = model.pageIndexViewModel.Items.GroupBy(x => new { x.StaffId, x.Day }, (key, group) => new WorkSchedulesViewModel { StaffId = key.StaffId, Day = key.Day, Id = group.FirstOrDefault().Id }).OrderBy(x => x.Day).ToList(); } return(View(model)); }
public ActionResult Create(DayOffViewModel model) { var urlRefer = Request["UrlReferrer"]; var staffList = staffRepository.GetvwAllStaffs() .Select(item => new StaffsViewModel { Code = item.Code, Name = item.Name, Id = item.Id, BranchName = item.BranchName, ProfileImage = item.ProfileImage }); ViewBag.staffList = staffList; if (ModelState.IsValid) { model.TypeList = Helpers.SelectListHelper.GetSelectList_SymbolTimekeeping(null, App_GlobalResources.Wording.Empty, true); var DayOff = new Domain.Staff.Entities.DayOff(); AutoMapper.Mapper.Map(model, DayOff); DayOff.IsDeleted = false; DayOff.CreatedUserId = WebSecurity.CurrentUserId; DayOff.ModifiedUserId = WebSecurity.CurrentUserId; DayOff.CreatedDate = DateTime.Now; DayOff.ModifiedDate = DateTime.Now; var dates = new List <DateTime>(); //lấy danh sách các ngày nghỉ trong tuần, theo quy định từng công ty. var off = categoryRepository.GetCategoryByCode("DayOffDefault").Where(x => x.Value == "True").ToList(); var holiday = holidayRepository.GetAllHolidays().ToList(); for (DateTime dt = model.DayStart.Value; dt <= model.DayEnd.Value; dt = dt.AddDays(1)) { //không tính ngày lễ , ngày nghỉ cuối tuần vào trong ngày xin nghỉ phép. if (holiday.Where(x => x.DayStart <= dt && dt <= x.DayEnd).Count() <= 0) { if (off.Where(x => x.OrderNo.Value == (int)dt.DayOfWeek).Count() <= 0) { dates.Add(dt); } } } DayOff.Quantity = dates.Count(); var typeDayOff = typeDayOffRepository.GetSymbolTimekeepingById(model.TypeDayOffId.Value); if (typeDayOff.DayOff == true) { //lấy danh sách đơn xin nghỉ phép của nhân viên trong năm thuộc loại phép đang xin nghỉ var dayoff = DayOffRepository.GetAllDayOff().AsEnumerable().Where(x => x.TypeDayOffId == model.TypeDayOffId && x.DayStart.Value.ToString("yyyy") == model.DayStart.Value.ToString("yyyy") && x.StaffId == model.StaffId).ToList(); int QuantityDayOff = 0; if (dayoff.Count() > 0) { foreach (var item in dayoff) { QuantityDayOff += item.Quantity.Value; } } DayOff.QuantityNotUsed = typeDayOff.Quantity - (QuantityDayOff + DayOff.Quantity); if (DayOff.QuantityNotUsed < 0) { TempData[Globals.FailedMessageKey] = "Số ngày nghỉ" + model.NameSymbol + " còn lại của bạn không đủ"; if (Request["IsPopup"] == "true" || Request["IsPopup"] == "True") { ViewBag.closePopup = "true"; } ViewBag.urlRefer = urlRefer; return(View(model)); } } DayOffRepository.InsertDayOff(DayOff); //tạo mã tự động var prefix2 = Erp.BackOffice.Helpers.Common.GetSetting("prefixOrderNo_DayOff"); DayOff.Code = Erp.BackOffice.Helpers.Common.GetCode(prefix2, DayOff.Id); DayOffRepository.UpdateDayOff(DayOff); //var workShedules=workSchedulesRepository.GetvwAllWorkSchedules().Any(dates).Where(x=>x.Day==item.ToShortDateString()) if (Request["IsPopup"] == "true" || Request["IsPopup"] == "True") { TempData[Globals.SuccessMessageKey] = App_GlobalResources.Wording.InsertSuccess; ViewBag.closePopup = "true"; model.Id = DayOff.Id; ViewBag.urlRefer = urlRefer; return(View(model)); } return(Redirect(urlRefer)); } return(View(model)); }