Exemplo n.º 1
0
        private void InfoBind()
        {
            using (IFMPDBContext db = new IFMPDBContext())
            {
                LeaveAudit LeaveAudit = db.LeaveAudit.FirstOrDefault(t => t.ID == LeaveAuditID);

                if (LeaveAudit != null)
                {
                    Role Role = null;
                    if (LeaveAudit.RoleID != null)
                    {
                        Role = db.Role.FirstOrDefault(t => t.ID == LeaveAudit.RoleID);
                    }
                    Leave Leave = db.Leave.FirstOrDefault(t => t.ID == LeaveAudit.LeaveID);
                    ltl_LeaveUser.Text = db.User.FirstOrDefault(t => t.ID == Leave.UserID).RealName;
                    ltl_BeginDate.Text = Leave.BeginDate.ToString("yyyy-MM-dd");
                    ltl_EndDate.Text   = Leave.EndDate.ToString("yyyy-MM-dd");
                    ltl_Day.Text       = Leave.Day.ToString();
                    ltl_LeaveType.Text = Enum.GetName(typeof(LeaveType), Leave.LeaveType);
                    ltl_Content.Text   = Leave.Content;

                    if (Role == null || Role.Name == "总经理" || Role.Name == "生产副总")
                    {
                        //无需下一级
                        LeaveAuditUser.Visible = false;
                    }
                    else if (Role.Name == "主管班长")
                    {
                        //发送给车间主任
                        List <User> UserList = db.User.Where(t => db.UserRole.Where(m => db.Role.Where(k => k.Name == "车间主任").Select(k => k.ID).Contains(m.RoleID)).Select(m => m.UserID).Contains(t.ID)).ToList();
                        this.ddl_AuditUser.DataSource     = UserList;
                        this.ddl_AuditUser.DataValueField = "ID";
                        this.ddl_AuditUser.DataTextField  = "RealName";
                        this.ddl_AuditUser.DataBind();
                    }
                    else if (Role.Name == "车间主任")
                    {
                        List <User> UserList = db.User.Where(t => db.UserRole.Where(m => db.Role.Where(k => k.Name == "生产副总").Select(k => k.ID).Contains(m.RoleID)).Select(m => m.UserID).Contains(t.ID)).ToList();
                        this.ddl_AuditUser.DataSource     = UserList;
                        this.ddl_AuditUser.DataValueField = "ID";
                        this.ddl_AuditUser.DataTextField  = "RealName";
                        this.ddl_AuditUser.DataBind();
                    }
                }
            }
        }
Exemplo n.º 2
0
        protected void btn_Submit_Click(object sender, EventArgs e)
        {
            try
            {
                LeaveState LeaveState = (LeaveState)Convert.ToInt32(this.ddl_Audit.SelectedValue);
                using (IFMPDBContext db = new IFMPDBContext())
                {
                    //这里应该有权限,很重要
                    LeaveAudit LeaveAudit = db.LeaveAudit.FirstOrDefault(t => t.ID == LeaveAuditID);
                    if (LeaveAudit != null)
                    {
                        Role Role = null;
                        if (LeaveAudit.RoleID != null)
                        {
                            Role = db.Role.FirstOrDefault(t => t.ID == LeaveAudit.RoleID);
                        }
                        Leave Leave = db.Leave.FirstOrDefault(t => t.ID == LeaveAudit.LeaveID);
                        if (Role == null || Role.Name == "总经理" || Role.Name == "生产副总")
                        {
                            Leave.LeaveState      = LeaveState;
                            LeaveAudit.AuditDate  = DateTime.Now;
                            LeaveAudit.LeaveState = LeaveState;

                            if (LeaveState == LeaveState.通过)
                            {
                                Notice Notice = new Notice();
                                Notice.Contenet = "您有一条请假申请通过"
                                                  + "|请假类型:" + Enum.GetName(typeof(LeaveType), Leave.LeaveType)
                                                  + "|请假日期:" + Leave.BeginDate.ToString("yyyy-MM-dd") + "至" + Leave.EndDate.ToString("yyyy-MM-dd")
                                                  + "|请假天数:" + Leave.Day
                                                  + "|请假描述:" + Leave.Content
                                                  + "|状态:通过";
                                Notice.IsSend       = false;
                                Notice.NoticeType   = NoticeType.系统通知;
                                Notice.ReciveUserID = Leave.UserID;
                                Notice.SendUserID   = UserID;
                                Notice.SourceID     = Leave.ID;
                                Notice.SendDate     = DateTime.Now;
                                db.Notice.Add(Notice);
                            }
                            else if (LeaveState == LeaveState.通过)
                            {
                                Notice Notice = new Notice();
                                Notice.Contenet = "您有一条请假申请被驳回"
                                                  + "|请假类型:" + Enum.GetName(typeof(LeaveType), Leave.LeaveType)
                                                  + "|请假日期:" + Leave.BeginDate.ToString("yyyy-MM-dd") + "至" + Leave.EndDate.ToString("yyyy-MM-dd")
                                                  + "|请假天数:" + Leave.Day
                                                  + "|请假描述:" + Leave.Content
                                                  + "|状态:驳回";
                                Notice.IsSend       = false;
                                Notice.NoticeType   = NoticeType.系统通知;
                                Notice.ReciveUserID = Leave.UserID;
                                Notice.SendUserID   = UserID;
                                Notice.SourceID     = Leave.ID;
                                Notice.SendDate     = DateTime.Now;
                                db.Notice.Add(Notice);
                            }
                            else
                            {
                                ShowMessage("请选择正确的审核结果");
                                return;
                            }
                        }
                        else if (Role.Name == "主管班长" || Role.Name == "车间主任")
                        {
                            int ReciveUserID = Convert.ToInt32(ddl_AuditUser.SelectedValue);

                            LeaveAudit.AuditDate  = DateTime.Now;
                            LeaveAudit.LeaveState = LeaveState;

                            if (LeaveState == LeaveState.通过)
                            {
                                Leave.LeaveState = LeaveState.审核中;

                                LeaveAudit NewLeaveAudit = new IFMPLibrary.Entities.LeaveAudit();
                                NewLeaveAudit.LeaveID  = Leave.ID;
                                NewLeaveAudit.UserID   = ReciveUserID;
                                NewLeaveAudit.SendDate = DateTime.Now;
                                if (Role.Name == "主管班长")
                                {
                                    NewLeaveAudit.RoleID = db.Role.FirstOrDefault(t => t.Name == "车间主任").ID;
                                }
                                else
                                {
                                    NewLeaveAudit.RoleID = db.Role.FirstOrDefault(t => t.Name == "生产副总").ID;
                                }
                                NewLeaveAudit.LeaveState = LeaveState.未审核;
                                db.LeaveAudit.Add(NewLeaveAudit);
                                //NewLeaveAudit.RoleID=
                                //NewLeaveAudit.

                                Notice Notice = new Notice();
                                Notice.Contenet = "当前有一条请假申请待审核"
                                                  + "|发起人:" + db.User.FirstOrDefault(t => t.ID == Leave.UserID).RealName
                                                  + "|请假类型:" + Enum.GetName(typeof(LeaveType), Leave.LeaveType)
                                                  + "|请假日期:" + Leave.BeginDate.ToString("yyyy-MM-dd") + "至" + Leave.EndDate.ToString("yyyy-MM-dd")
                                                  + "|请假天数:" + Leave.Day
                                                  + "|请假描述:" + Leave.Content
                                                  + "|状态:待审核";
                                Notice.IsSend       = false;
                                Notice.NoticeType   = NoticeType.系统通知;
                                Notice.ReciveUserID = ReciveUserID;
                                Notice.SendUserID   = UserID;
                                Notice.SourceID     = Leave.ID;
                                Notice.SendDate     = DateTime.Now;
                                db.Notice.Add(Notice);
                            }
                            else if (LeaveState == LeaveState.通过)
                            {
                                Leave.LeaveState = LeaveState.通过;
                                Notice Notice = new Notice();
                                Notice.Contenet = "您有一条请假申请被驳回"
                                                  + "|请假类型:" + Enum.GetName(typeof(LeaveType), Leave.LeaveType)
                                                  + "|请假日期:" + Leave.BeginDate.ToString("yyyy-MM-dd") + "至" + Leave.EndDate.ToString("yyyy-MM-dd")
                                                  + "|请假天数:" + Leave.Day
                                                  + "|请假描述:" + Leave.Content
                                                  + "|状态:驳回";
                                Notice.IsSend       = false;
                                Notice.NoticeType   = NoticeType.系统通知;
                                Notice.ReciveUserID = Leave.UserID;
                                Notice.SendUserID   = UserID;
                                Notice.SourceID     = Leave.ID;
                                Notice.SendDate     = DateTime.Now;
                                db.Notice.Add(Notice);
                            }
                            else
                            {
                                ShowMessage("请选择正确的审核结果");
                                return;
                            }
                        }
                        db.SaveChanges();
                        new SysLogDAO().AddLog(LogType.操作日志_添加, "请假审核", UserID);
                        ShowMessage();
                    }
                    else
                    {
                        ShowMessage("找不到该请假审核纪录");
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                ShowMessage(ex.Message);
                new SysLogDAO().AddLog(LogType.系统日志, ex.Message, UserID);
                return;
            }
        }
Exemplo n.º 3
0
        protected void btn_Submit_Click(object sender, EventArgs e)
        {
            try
            {
                using (IFMPDBContext db = new IFMPDBContext())
                {
                    //这里应该有权限,很重要
                    Leave Leave = new Leave();
                    User  User  = db.User.FirstOrDefault(t => t.ID == UserID);

                    Leave.BeginDate  = Convert.ToDateTime(txt_BeginDate.Text);
                    Leave.EndDate    = Convert.ToDateTime(txt_EndDate.Text);
                    Leave.Day        = Convert.ToDouble(txt_Day.Text);
                    Leave.LeaveType  = (LeaveType)Convert.ToInt32(ddl_LeaveType.SelectedValue);
                    Leave.Content    = txt_Content.Text;
                    Leave.IsDel      = false;
                    Leave.LeaveState = LeaveState.未审核;
                    Leave.UserID     = User.ID;
                    Leave.CreateDate = DateTime.Now;
                    //合法判断
                    if (Leave.Day <= 0)
                    {
                        ShowMessage("请输入合法的天数");
                        return;
                    }

                    //判断审核流程
                    if (Leave.Day <= 7)
                    {
                        Department Department = db.Department.FirstOrDefault(t => db.DepartmentUser.Where(m => m.UserID == UserID).Select(m => m.DepartmentID).Contains(t.ID) && t.IsAdmin);
                        if (Department == null)
                        {
                            ShowMessage("未查找到对应部门,请联系人事部门或系统管理员");
                            return;
                        }
                        //如果负责人就是自己,由上级负责人审核?
                        db.Leave.Add(Leave);
                        db.SaveChanges();
                        LeaveAudit LeaveAudit = new LeaveAudit();
                        LeaveAudit.LeaveID  = Leave.ID;
                        LeaveAudit.SendDate = DateTime.Now;

                        LeaveAudit.UserID     = Department.MasterUserID;
                        LeaveAudit.LeaveState = LeaveState.未审核;
                        db.LeaveAudit.Add(LeaveAudit);


                        //添加通知
                        Notice Notice = new Notice();
                        Notice.Contenet = "当前有一条请假申请待审核"
                                          + "|发起人:" + User.RealName
                                          + "|请假类型:" + Enum.GetName(typeof(LeaveType), Leave.LeaveType)
                                          + "|请假日期:" + Leave.BeginDate.ToString("yyyy-MM-dd") + "至" + Leave.EndDate.ToString("yyyy-MM-dd")
                                          + "|请假天数:" + Leave.Day
                                          + "|请假描述:" + Leave.Content
                                          + "|状态:待审核";
                        Notice.IsSend       = false;
                        Notice.NoticeType   = NoticeType.系统通知;
                        Notice.ReciveUserID = Department.MasterUserID;
                        Notice.SendUserID   = UserID;
                        Notice.SourceID     = Leave.ID;
                        Notice.SendDate     = DateTime.Now;

                        //Notice.URL = ParaUtils.SiteURL + "/jfz/app/TaskAudit.html?flag=1&id=" + ScoreTask.ID;
                        db.Notice.Add(Notice);
                        new SysLogDAO().AddLog(LogType.操作日志_添加, "发起请假", UserID);
                        db.SaveChanges();
                    }
                    else
                    {
                        int ReciveUserID = 0;
                        //如果负责人就是自己,由上级负责人审核?
                        db.Leave.Add(Leave);
                        db.SaveChanges();
                        LeaveAudit LeaveAudit = new LeaveAudit();
                        if (User.UserLeaveType == UserLeaveType.后勤人员)
                        {
                            //发送给总经理
                            ReciveUserID = Convert.ToInt32(ddl_AuditUser.SelectedValue);
                            if (db.UserRole.FirstOrDefault(t => t.UserID == ReciveUserID && t.RoleID == db.Role.FirstOrDefault(m => m.Name == "总经理").ID) == null)
                            {
                                ShowMessage("请选择正确的审核人");
                                return;
                            }
                            LeaveAudit.RoleID = db.Role.FirstOrDefault(t => t.Name == "总经理").ID;
                        }

                        if (User.UserLeaveType == UserLeaveType.车间人员)
                        {
                            //发送给班长
                            ReciveUserID = Convert.ToInt32(ddl_AuditUser.SelectedValue);
                            if (db.UserRole.FirstOrDefault(t => t.UserID == ReciveUserID && t.RoleID == db.Role.FirstOrDefault(m => m.Name == "主管班长").ID) == null)
                            {
                                ShowMessage("请选择正确的审核人");
                                return;
                            }
                            LeaveAudit.RoleID = db.Role.FirstOrDefault(t => t.Name == "主管班长").ID;
                        }


                        LeaveAudit.LeaveID  = Leave.ID;
                        LeaveAudit.SendDate = DateTime.Now;

                        LeaveAudit.UserID     = ReciveUserID;
                        LeaveAudit.LeaveState = LeaveState.未审核;
                        db.LeaveAudit.Add(LeaveAudit);


                        //添加通知
                        Notice Notice = new Notice();
                        Notice.Contenet = "当前有一条请假申请待审核"
                                          + "|发起人:" + User.RealName
                                          + "|请假类型:" + Enum.GetName(typeof(LeaveType), Leave.LeaveType)
                                          + "|请假日期:" + Leave.BeginDate.ToString("yyyy-MM-dd") + "至" + Leave.EndDate.ToString("yyyy-MM-dd")
                                          + "|请假天数:" + Leave.Day
                                          + "|请假描述:" + Leave.Content
                                          + "|状态:待审核";
                        Notice.IsSend       = false;
                        Notice.NoticeType   = NoticeType.系统通知;
                        Notice.ReciveUserID = ReciveUserID;
                        Notice.SendUserID   = UserID;
                        Notice.SourceID     = Leave.ID;
                        Notice.SendDate     = DateTime.Now;

                        //Notice.URL = ParaUtils.SiteURL + "/jfz/app/TaskAudit.html?flag=1&id=" + ScoreTask.ID;
                        db.Notice.Add(Notice);
                        new SysLogDAO().AddLog(LogType.操作日志_添加, "发起请假", UserID);
                        db.SaveChanges();
                    }
                    ShowMessage();
                }
            }
            catch (Exception ex)
            {
                ShowMessage(ex.Message);
                new SysLogDAO().AddLog(LogType.系统日志, ex.Message, UserID);
                return;
            }
        }