Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }