Example #1
0
        public ActionResult PersonalCreate([Bind(Include = "Id,StartDate,EndDate,WorksId,AuditStatus,StaffNumber,Remark")] WorkManages workManages)
        {
            if (ModelState.IsValid)
            {
                string staffNumber = workManages.StaffNumber.Split(new char[] { '-' })[0];

                /**
                 * 对于每一个员工,他的排班在一入职的时候,一定会分配一个默认排班的,所以在进行部门排班或者个人排版的时候,
                 * 这个员工一定已经有一条记录在WorkManages表当中,所以当进行部门排班或者个人排班的时候,只需要对这个员工的
                 * 排班信息进行更新就行了
                 * */
                string             tmpDepartmentId = (from x in db.Staffs where x.StaffNumber.Equals(staffNumber) select x.Department).Single();
                List <WorkManages> tmpWorkManages  = (from x in db.WorkManages
                                                      where x.StaffNumber.Equals(staffNumber) && x.Date <= workManages.EndDate && x.Date >= workManages.StartDate
                                                      select x).ToList();
                //删除原来的在相同时间段内的排班情况
                db.WorkManages.RemoveRange(tmpWorkManages);
                //插入新的排班情况
                int days = workManages.EndDate.DayOfYear - workManages.StartDate.DayOfYear;
                for (int i = 0; i <= days; i++)
                {
                    db.WorkManages.Add(new WorkManages()
                    {
                        WorksId      = workManages.WorksId,
                        AuditStatus  = 1,
                        Flag         = false, //标示是针对个人的排班
                        StaffNumber  = staffNumber,
                        DepartmentId = tmpDepartmentId,
                        Remark       = workManages.Remark,
                        Date         = workManages.StartDate.AddDays(i),
                    });
                }
                db.SaveChanges();
                return(RedirectToAction("PersonalIndex"));
            }
            ViewBag.DepartmentsList = Generate.GetDepartments(base.ConnectionString);
            ViewBag.WorksList       = Generate.GetWorks(base.ConnectionString);
            return(View(workManages));
        }
Example #2
0
        public ActionResult DepartmentCreate([Bind(Include = "Id,StartDate,EndDate,WorksId,AuditStatus,DepartmentId,Remark")] WorkManages workManages)
        {
            if (ModelState.IsValid)
            {
                List <string> StaffNumbers = (from x in db.Staffs where x.Department.Equals(workManages.DepartmentId) select x.StaffNumber).ToList();
                WorkManages   wm           = db.WorkManages.Find(13);

                foreach (string tmpStaffNumber in StaffNumbers)
                {
                    List <WorkManages> tmpWorkManages = (from x in db.WorkManages
                                                         where x.StaffNumber.Equals(tmpStaffNumber) && x.Date <= workManages.EndDate && x.Date >= workManages.StartDate
                                                         select x).ToList();
                    //删除原来的在相同时间段内的排班情况
                    db.WorkManages.RemoveRange(tmpWorkManages);
                    //插入新的排班情况
                    int days = workManages.EndDate.DayOfYear - workManages.StartDate.DayOfYear;
                    for (int i = 0; i <= days; i++)
                    {
                        db.WorkManages.Add(new WorkManages()
                        {
                            WorksId      = workManages.WorksId,
                            AuditStatus  = 1,
                            Flag         = true, //标示是针对部门的排班
                            StaffNumber  = tmpStaffNumber,
                            DepartmentId = workManages.DepartmentId,
                            Remark       = workManages.Remark,
                            Date         = workManages.StartDate.AddDays(i),
                        });
                    }
                    db.SaveChanges();
                }
                return(RedirectToAction("DepartmentIndex"));
            }
            ViewBag.DepartmentsList = Generate.GetDepartments(base.ConnectionString);
            ViewBag.WorksList       = Generate.GetWorks(base.ConnectionString);
            return(View(workManages));
        }
Example #3
0
 public ActionResult PersonalCreate()
 {
     ViewBag.DepartmentsList = Generate.GetDepartments(base.ConnectionString);
     ViewBag.WorksList       = Generate.GetWorks(base.ConnectionString);
     return(View());
 }