public JsonResult CheckSave(T_CheckAttendanceApprove model)
        {
            using (TransactionScope sc = new TransactionScope())
            {
                try
                {
                    string name = Server.UrlDecode(Request.Cookies["NickName"].Value);
                    T_CheckAttendanceApprove editModel = db.T_CheckAttendanceApprove.Find(model.ID);
                    editModel.Status      = model.Status;
                    editModel.ApproveDate = DateTime.Now;
                    editModel.ApproveName = name;
                    editModel.Memo        = model.Memo;
                    db.Entry <T_CheckAttendanceApprove>(editModel).State = System.Data.Entity.EntityState.Modified;
                    T_CheckAttendace CModel = db.T_CheckAttendace.Find(editModel.PID);
                    if (model.Status == 1)//同意
                    {
                        int nextStep = editModel.Step + 1;
                        List <T_CheckAttendaceConfig> ConfigList = db.T_CheckAttendaceConfig.Where(a => a.Step == nextStep && a.Mode == CModel.Mode).ToList();
                        if (ConfigList.Count > 0)//下一步
                        {
                            CModel.Status         = 0;
                            CModel.Step           = nextStep;
                            CModel.CurrentApprove = ConfigList.First().Name;
                            T_CheckAttendanceApprove newApprove = new T_CheckAttendanceApprove();
                            newApprove.ApproveName = ConfigList.First().Name;
                            newApprove.PID         = editModel.PID;
                            newApprove.Status      = -1;
                            newApprove.Step        = nextStep;
                            db.T_CheckAttendanceApprove.Add(newApprove);
                        }
                        else//结束
                        {
                            CModel.CurrentApprove = "";
                            CModel.Status         = 1;
                            CModel.Step           = 99;
                        }
                    }
                    else//不同意结束
                    {
                        CModel.CurrentApprove = "";
                        CModel.Status         = 2;
                        CModel.Step           = 99;
                    }
                    db.Entry <T_CheckAttendace>(CModel).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();



                    // ModularByZP();
                    sc.Complete();
                    return(Json(new { State = "Success" }, JsonRequestBehavior.AllowGet));
                }
                catch (Exception e)
                {
                    return(Json(new { State = "Faile", Message = e.Message }, JsonRequestBehavior.AllowGet));
                }
            }
        }
        public JsonResult EditSave(T_CheckAttendace model)
        {
            using (TransactionScope sc = new TransactionScope())
            {
                try
                {
                    T_CheckAttendace editModel = db.T_CheckAttendace.Find(model.ID);

                    editModel.CurrentApprove = model.CurrentApprove;
                    editModel.Days           = model.Days;
                    editModel.EndTime        = model.EndTime;
                    editModel.Mode           = model.Mode;
                    editModel.Reason         = model.Reason;
                    editModel.StartTime      = model.StartTime;
                    editModel.WorkEndTime    = model.WorkEndTime;
                    editModel.WorkStartTime  = model.WorkStartTime;
                    editModel.IsDelete       = 0;
                    if (model.LeaveType == null || model.LeaveType == "")
                    {
                        model.LeaveType = model.Type;
                    }
                    if (editModel.Status == 2)
                    {
                        editModel.Status = -1;
                        editModel.Step   = 1;
                        T_CheckAttendanceApprove approve = new T_CheckAttendanceApprove();
                        approve.Status      = -1;
                        approve.ApproveName = model.CurrentApprove;
                        approve.PID         = model.ID;
                        approve.Step        = 1;
                        db.T_CheckAttendanceApprove.Add(approve);
                        db.SaveChanges();
                    }
                    db.Entry <T_CheckAttendace>(editModel).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                    //ModularByZP();
                    sc.Complete();
                    return(Json(new { State = "Success" }, JsonRequestBehavior.AllowGet));
                }
                catch (DbEntityValidationException e)
                {
                    return(Json(new { State = "Faile", Message = e.EntityValidationErrors.First().ValidationErrors.First().ErrorMessage }, JsonRequestBehavior.AllowGet));
                }
            }
        }
        public JsonResult ApplySave(T_CheckAttendace model)
        {
            using (TransactionScope sc = new TransactionScope())
            {
                try
                {
                    model.PostName = Server.UrlDecode(Request.Cookies["NickName"].Value);
                    model.Status   = -1;
                    model.Step     = 1;
                    model.IsDelete = 0;
                    if (model.LeaveType == null || model.LeaveType == "")
                    {
                        model.LeaveType = model.Type;
                    }
                    model.PostTime = DateTime.Now;
                    db.T_CheckAttendace.Add(model);
                    db.SaveChanges();

                    T_CheckAttendanceApprove approve = new T_CheckAttendanceApprove();
                    approve.Status      = -1;
                    approve.ApproveName = model.CurrentApprove;
                    approve.PID         = model.ID;
                    approve.Step        = 1;
                    db.T_CheckAttendanceApprove.Add(approve);
                    db.SaveChanges();

                    //ModularByZP();

                    sc.Complete();
                    return(Json(new { State = "Success" }, JsonRequestBehavior.AllowGet));
                }
                catch (DbEntityValidationException e)
                {
                    return(Json(new { State = "Faile", Message = e.EntityValidationErrors.First().ValidationErrors.First().ErrorMessage }, JsonRequestBehavior.AllowGet));
                }
            }
        }
        public ActionResult ViewCheck(int PID)
        {
            T_CheckAttendanceApprove model = db.T_CheckAttendanceApprove.FirstOrDefault(a => a.Status == -1 && a.PID == PID);

            return(View(model));
        }