public ActionResult DeleteConfirmed(int id)
        {
            HolidayTables holidayTables = db.HolidayTables.Find(id);

            db.HolidayTables.Remove(holidayTables);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "Id,StaffNumber,Date,Type,StartHour,EndHour,Remark")] HolidayTables holidayTables)
 {
     if (ModelState.IsValid)
     {
         db.Entry(holidayTables).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(holidayTables));
 }
        public ActionResult Create([Bind(Include = "Id,StaffNumber,Date,Type,StartHour,EndHour,Remark")] HolidayTables holidayTables)
        {
            if (ModelState.IsValid)
            {
                db.HolidayTables.Add(holidayTables);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(holidayTables));
        }
        // GET: HolidayTables/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            HolidayTables holidayTables = db.HolidayTables.Find(id);

            if (holidayTables == null)
            {
                return(HttpNotFound());
            }
            return(View(holidayTables));
        }
        public ActionResult DepartmentCreate([Bind(Include = "Id,DptIds,Date,StartHour,EndHour,Remark,Type")] HolidayTables holidayTable)
        {
            if (ModelState.IsValid)
            {
                List <string> dptIds = holidayTable.DptIds.Split(',').ToList();

                foreach (string tmp in dptIds)
                {
                    //删除原来所有的这个部门在这一天的放假情况
                    List <HolidayTables> tmpList = db.HolidayTables.Where(p => p.DepartmentId.Equals(tmp) && p.Date == holidayTable.Date).ToList();
                    db.HolidayTables.RemoveRange(tmpList);
                    db.SaveChanges();

                    List <string> StaffNubmers = db.Staffs.Where(p => p.Department.Equals(tmp)).Select(p => p.StaffNumber).ToList();
                    tmpList.Clear();
                    foreach (string tmpStaffNumber in StaffNubmers)
                    {
                        tmpList.Add(new HolidayTables()
                        {
                            Flag         = true, //标示是针对部门的假日表
                            DepartmentId = tmp,
                            StaffNumber  = tmpStaffNumber,
                            StartHour    = holidayTable.StartHour,
                            EndHour      = holidayTable.EndHour,
                            Remark       = holidayTable.Remark,
                            Date         = holidayTable.Date,
                            Type         = holidayTable.Type,
                        });
                    }
                    db.HolidayTables.AddRange(tmpList);
                    db.SaveChanges();
                }
                return(RedirectToAction("DepartmentIndex"));
            }
            ViewBag.list            = GetHolidayTypes();
            ViewBag.DepartmentsList = Generate.GetDepartments(base.ConnectionString);
            return(View(holidayTable));
        }
Exemple #6
0
        //生成每天所需要的基本打卡表和日考勤报表
        public void GenerateSignInCardStatusAndEveryDaySign(DateTime CurrentDate)
        {
            List <HolidayTables> holidays = db.HolidayTables.Where(p => p.Date == CurrentDate).ToList();
            //找到每一个员工在CurrentDate这一天所有的WorkTimes
            var StaffWorks = (from x in db.Staffs.Where(p => p.FreeCard == false)
                              join p in db.WorkManages.Where(p => p.Date == CurrentDate.Date) on x.StaffNumber equals p.StaffNumber
                              join n in db.WorkTimes on p.WorksId equals n.WorksId
                              select new
            {
                x.StaffNumber,
                x.Name,
                p.Date,
                p.WorksId,
                n.StartTime,
                n.EndTime,
                n.AheadMinutes,
                n.LateMinutes,
                n.LeaveEarlyMinutes,
                n.BackMinutes
            }).ToList();

            foreach (var tmp in StaffWorks)
            {
                HolidayTables tmpHoliday = null;
                if (holidays.Count != 0)
                {
                    try
                    {
                        tmpHoliday = holidays.Where(p => p.StaffNumber.Equals(tmp.StaffNumber)).Single();
                    }
                    catch (Exception e)
                    {
                        Tools.WriteErrorLog(e);
                        break;
                    }
                }

                if (tmpHoliday != null && tmpHoliday.StartHour <= tmp.StartTime.Hours && tmpHoliday.EndHour >= tmp.StartTime.Hours)
                {
                    continue;
                }
                //写入信息到打卡表
                //添加上班时间点
                db.SignInCardStatus.Add(new SignInCardStatus()
                {
                    StaffNumber       = tmp.StaffNumber,
                    WorkDate          = CurrentDate,
                    NeedWorkTime      = tmp.StartTime,
                    NeedStartTime     = Tools.MinusMinutes(tmp.StartTime, tmp.AheadMinutes),
                    NeedEndTime       = Tools.AddMinutes(tmp.StartTime, tmp.LateMinutes),
                    Type              = "上班",
                    ComeLateMinutes   = 0,
                    LeaveEarlyMinutes = 0
                });
                //添加下班时间点
                db.SignInCardStatus.Add(new SignInCardStatus()
                {
                    StaffNumber       = tmp.StaffNumber,
                    WorkDate          = CurrentDate,
                    NeedWorkTime      = tmp.EndTime,
                    NeedStartTime     = Tools.MinusMinutes(tmp.EndTime, tmp.LeaveEarlyMinutes),
                    NeedEndTime       = Tools.AddMinutes(tmp.EndTime, tmp.BackMinutes),
                    Type              = "下班",
                    ComeLateMinutes   = 0,
                    LeaveEarlyMinutes = 0
                });
                db.SaveChanges();
            }
            var Staffs = StaffWorks.Select(p => new { p.StaffNumber, p.WorksId }).Distinct().ToList();

            foreach (var tmp in Staffs)
            {
                //生成日考勤报表
                db.EveryDaySignInDates.Add(new EveryDaySignInDate(tmp.StaffNumber, tmp.WorksId, CurrentDate));
                db.SaveChanges();
            }
        }
        public ActionResult PersonalCreate([Bind(Include = "Id,Staffs,Date,StartHour,EndHour,Remark,Flag,Type")] HolidayTables holidayTables)
        {
            var staff = (from s in db.Staffs
                         select new StaffModel
            {
                department = s.Department,
                text = s.StaffNumber + "-" + s.Name,
                value = s.StaffNumber             // + "-" + s.Name         //显示框中显示的选中值直接就是员工号,不带姓名的
            }).ToList();

            var group = (from d in db.Departments
                         select new StaffModel {
                department = d.DepartmentId, name = d.Name
            }).ToList();

            Dictionary <string, int> sum = new Dictionary <string, int>();

            foreach (var g in group)
            {
                int count = 0;
                foreach (var s in staff)
                {
                    if (s.department == g.department)
                    {
                        count++;
                    }
                }
                sum.Add(g.department, count);
            }

            ViewBag.Count    = sum;
            ViewBag.Receiver = staff;
            ViewBag.Group    = group;
            ViewBag.list     = GetHolidayTypes();
            if (ModelState.IsValid)
            {
                List <string>        numbers    = holidayTables.Staffs.Split(',').ToList();
                List <HolidayTables> tmpHoliday = new List <HolidayTables>();
                foreach (string tmpStaffNumber in numbers)
                {
                    db.HolidayTables.RemoveRange(db.HolidayTables.Where(p => p.StaffNumber.Equals(tmpStaffNumber) && p.Date == holidayTables.Date).ToList());
                    db.SaveChanges();
                    tmpHoliday.Add(new HolidayTables()
                    {
                        Flag         = false, //标示是针对个人的排班
                        StaffNumber  = tmpStaffNumber,
                        DepartmentId = db.Staffs.Where(p => p.StaffNumber.Equals(tmpStaffNumber)).Single().Department,
                        Date         = holidayTables.Date,
                        StartHour    = holidayTables.StartHour,
                        EndHour      = holidayTables.EndHour,
                        Type         = holidayTables.Type,
                        Remark       = holidayTables.Remark,
                    });
                }
                db.HolidayTables.AddRange(tmpHoliday);
                db.SaveChanges();
                return(RedirectToAction("PersonalIndex"));
            }
            ViewBag.list = GetHolidayTypes();
            return(View(holidayTables));
        }