예제 #1
0
        /// <summary>
        /// VacationApply对象转为数据库对象
        /// </summary>
        /// <param name="flag">标志,1为添加,2为修改需要复制修改人信息</param>
        /// <returns>T_HR_Dimission数据库对象</returns>

        public T_HR_Vacation ToDB(int flag)
        {
            T_HR_Vacation va = new T_HR_Vacation();

            va.ID              = ID;
            va.StaffID         = StaffID;
            va.VPType          = VPType;
            va.StartTime       = StartTime;
            va.EndTime         = EndTime;
            va.TimeSpan        = TimeSpan;
            va.VPReason        = VPReason;
            va.Valid           = Valid;
            va.Remark          = Remark;
            va.CreaterName     = CreaterName;
            va.CreateTime      = CreateTime;
            va.OperationListID = OperationListID;
            if (flag != 1)
            {
                va.EditorName = EditorName;
                va.EditeTime  = EditeTime;
            }
            va.LastID       = LastID;
            va.VPEdit       = VPEdit;
            va.VPDelete     = VPDelete;
            va.EditOrDelete = EditOrDelete;

            return(va);
        }
        public ActionResult VRSubmit(VacationApply vacation)
        {
            DirectResult r    = new DirectResult();
            string       orid = vacation.ID;

            var prelists = from o in entities.T_HR_Vacation
                           where o.VPDelete == true && o.LastID == orid
                           select o;

            foreach (T_HR_Vacation item in prelists)
            {
                T_HR_Vacation prelist = entities.T_HR_Vacation.Find(item.ID);
                prelist.VPDelete = false;
            }

            T_HR_Vacation orlist = entities.T_HR_Vacation.Find(orid);

            orlist.VPDelete     = true;
            orlist.EditOrDelete = "Delete";

            vacation.ID = Guid.NewGuid().ToString();
            vacation.OperationListID = Guid.NewGuid().ToString();
            vacation.Valid           = false;
            vacation.CreaterName     = new LoginUser().EmployeeId;
            vacation.CreateTime      = DateTime.Now;
            vacation.VPEdit          = false;
            vacation.VPDelete        = true;
            vacation.EditOrDelete    = "";
            vacation.LastID          = orid;

            T_CH_Operation_list newList = new T_CH_Operation_list();

            newList.ID           = vacation.OperationListID;
            newList.State        = (int)CheckState.Checking;//审核中
            newList.Check_flowID = vacation.CheckFlowId;
            newList.Check_funcID = vacation.FuncId;
            newList.CreateTime   = DateTime.Now;
            newList.Creator      = new LoginUser().EmployeeId;
            newList.Url          = Url.Action("CheckVacation", "Vacation", new { id = vacation.ID });

            entities.T_HR_Vacation.Add(vacation.ToDB(1));
            entities.T_CH_Operation_list.Add(newList);
            try
            {
                entities.SaveChanges();
                r.Success = true;
                X.Msg.Alert("提示", "保存成功!", new JFunction {
                    Fn = "closewindow"
                }).Show();
            }
            catch (Exception e)
            {
                X.Msg.Alert("警告", "数据保存失败!<br /> note:" + e.Message, new JFunction {
                    Fn = "closewindow"
                }).Show();
                r.Success = false;
            }
            return(r);
        }
        public bool GetPreState(string id)
        {
            T_HR_Vacation last = entities.T_HR_Vacation.Find(id);
            bool          flag = true;
            string        opid;

            if (Convert.ToBoolean(last.VPEdit))
            {
                var pre = (from o in entities.T_HR_Vacation
                           where o.LastID == id && o.VPEdit == true
                           select o).ToList();
                if (pre.Any())
                {
                    opid = pre.First().OperationListID;
                    var list = from o in entities.T_CH_Operation_list
                               where o.ID == opid
                               select o;
                    if (list.Any())
                    {
                        if (list.First().State == 1)
                        {
                            flag = false;
                        }
                    }
                }
            }

            if (Convert.ToBoolean(last.VPDelete))
            {
                var pre = (from o in entities.T_HR_Vacation
                           where o.LastID == id && o.VPDelete == true
                           select o).ToList();
                if (pre.Any())
                {
                    opid = pre.First().OperationListID;
                    var list = from o in entities.T_CH_Operation_list
                               where o.ID == opid
                               select o;
                    if (list.Any())
                    {
                        if (list.First().State == 1)
                        {
                            flag = false;
                        }
                    }
                }
            }

            return(flag);
        }
        public ActionResult AddOrEditVacation(VacationApply vacation)
        {
            try
            {
                vacation.StartTime = Convert.ToDateTime(vacation.StartTimeStr);//计算TimeSpan
                vacation.EndTime   = Convert.ToDateTime(vacation.EndTimeStr);
            }
            catch (FormatException fe)
            {
                X.Msg.Alert("警告", "日期不正确,请检查!").Show();
                return(this.Direct());
            }

            if (vacation.StartTime.Year == vacation.EndTime.Year && vacation.StartTime.Month == vacation.EndTime.Month && vacation.StartTime <= vacation.EndTime)
            {
                DirectResult  r = new DirectResult();
                T_HR_Vacation vacationupdate = entities.T_HR_Vacation.Find(vacation.ID);

                if (vacationupdate == null)//为空为添加
                {
                    vacation.ID = Guid.NewGuid().ToString();
                    vacation.OperationListID = Guid.NewGuid().ToString();
                    vacation.Valid           = true;
                    vacation.CreaterName     = new LoginUser().EmployeeId;
                    vacation.CreateTime      = DateTime.Now;
                    vacation.VPEdit          = false;
                    vacation.VPDelete        = false;

                    T_CH_Operation_list newList = new T_CH_Operation_list();
                    newList.ID           = vacation.OperationListID;
                    newList.State        = (int)CheckState.Checking;//审核中
                    newList.Check_flowID = vacation.CheckFlowId;
                    newList.Check_funcID = vacation.FuncId;
                    newList.CreateTime   = DateTime.Now;
                    newList.Creator      = new LoginUser().EmployeeId;
                    newList.Url          = Url.Action("CheckVacation", "Vacation", new { id = vacation.ID });

                    entities.T_HR_Vacation.Add(vacation.ToDB(1));
                    entities.T_CH_Operation_list.Add(newList);
                    try
                    {
                        entities.SaveChanges();
                        r.Success = true;
                        X.Msg.Alert("提示", "保存成功!", new JFunction {
                            Fn = "closewindow"
                        }).Show();
                    }
                    catch (Exception e)
                    {
                        X.Msg.Alert("警告", "数据保存失败!<br /> note:" + e.Message, new JFunction {
                            Fn = "closewindow"
                        }).Show();
                        r.Success = false;
                    }
                }
                else//否则为修改
                {
                    vacation.EditorName = new LoginUser().EmployeeId;
                    vacation.EditeTime  = DateTime.Now;

                    vacationupdate.Valid = false;

                    vacation.ID = Guid.NewGuid().ToString();
                    vacation.OperationListID = Guid.NewGuid().ToString();
                    vacation.Valid           = true;
                    vacation.VPEdit          = false;
                    vacation.VPDelete        = false;

                    T_CH_Operation_list newList = new T_CH_Operation_list();
                    newList.ID           = vacation.OperationListID;
                    newList.State        = (int)CheckState.Checking;//审核中
                    newList.Check_flowID = vacation.CheckFlowId;
                    newList.Check_funcID = vacation.FuncId;
                    newList.CreateTime   = DateTime.Now;
                    newList.Creator      = new LoginUser().EmployeeId;
                    newList.Url          = Url.Action("CheckVacation", "Vacation", new { id = vacation.ID });

                    entities.T_HR_Vacation.Add(vacation.ToDB(2));
                    entities.T_CH_Operation_list.Add(newList);
                    try
                    {
                        entities.SaveChanges();
                        r.Success = true;
                        X.Msg.Alert("提示", "修改成功!", new JFunction {
                            Fn = "closewindow"
                        }).Show();
                    }
                    catch (Exception e)
                    {
                        X.Msg.Alert("警告", "数据保存失败!<br /> note:" + e.Message, new JFunction {
                            Fn = "closewindow"
                        }).Show();
                        r.Success = false;
                    }
                }
                return(r);
            }
            else
            {
                X.Msg.Alert("警告", "请假不可跨月!").Show();
                return(this.Direct());
            }
        }