예제 #1
0
 public ActionResult AddUserToGroup(int groupID, string returnUrl)
 {
     var dal = new fwUserDAL();
     ViewBag.groupName = new fwGroupDAL().GetByID(groupID).Title;
     var lstUser = dal.ListByGroup(groupID);
     var lstUserID = lstUser.Select(m => m.ID).ToList();
     ViewBag.lstUser = dal.ListAll().Where(m => !lstUserID.Contains(m.ID)).ToList();
     ViewBag.groupID = groupID;
     return View(lstUser);
 }
예제 #2
0
 public static fwUser GetCurrentUser()
 {
     if (!SessionUtilities.Exist(Constant.Session_CurrentUser))
         if (StringHelper.HttpContext.Request.Cookies.Get(Constant.Session_CurrentUser) != null)
         {
             var id = int.Parse(StringHelper.HttpContext.Request.Cookies.Get(Constant.Session_CurrentUser).Value);
             var u = new fwUserDAL().GetByID(id);
             SessionUtilities.Set(Constant.Session_CurrentUser, u);
             return u;
         }
         else return null;
     return (fwUser)SessionUtilities.Get(Constant.Session_CurrentUser);
 }
예제 #3
0
        public List<fwMenu> ListByUser(int userID)
        {
            var u = new fwUserDAL().GetByID(userID);
            if (u == null) return new List<fwMenu>();
            if (u.UserName.ToLower() == Constant.AdminFix) return ListAll();
            string query = @"select m.* from fwMenu m
            inner join fwMenuRole mr on mr.MenuID=m.ID
            inner join fwRoleGroup rg on rg.RoleID=mr.RoleID
            inner join fwUserGroup ug on ug.GroupID=rg.GroupID
            where ug.UserID=@UserID and m.Actived=1 order by [Order]";
            var lst = new List<fwMenu>();
            DataTable dt = DataUtilities.GetTable(query, CommandType.Text, "@UserID", userID);
            foreach (DataRow row in dt.Rows)
            {
                var obj = CreateObj(row);
                lst.Add(obj);
            }

            return lst;
        }
예제 #4
0
        public ActionResult KiemDuyet(int id, string returnUrl)
        {
            var obj = db.Ticket.FirstOrDefault(m => m.ID == id);
            if (!CanKiemDuyet(obj)) return AccessDenied();
            obj.Track += ";#" + DB.CurrentUser.ID;
            obj.Status = TicketStatus.ChoDuyet;
            obj.FeedbackID = null;
            //lấy người có quyền phê duyệt
            var u = new fwUserDAL().ListByRole(RoleList.ApproveTicket).FirstOrDefault();
            obj.Current = u.ID;
            if (!obj.TicketUser.Any(m => m.UserID == u.ID))
                db.Database.ExecuteSqlCommand(string.Format("insert into TicketUser values({0},{1})", obj.ID, u.ID));

            CreateNoti(obj.CreatedBy, "Phiếu đề nghị dụng cụ làm việc của bạn <br /> đã được kiểm duyệt", Url.Action("Details", new { id = id }));
            CreateNoti(obj.Current, "Cần duyệt tra phiếu đề nghị <br /> dụng cụ làm việc", Url.Action("Details", new { id = id }));

            db.SaveChanges();
            ShowMessage("Đồng ý kiểm duyệt thành công!");
            if (!string.IsNullOrEmpty(returnUrl)) Redirect(returnUrl);
            return RedirectToAction("Index", "Home");
        }
예제 #5
0
        public ActionResult GuiYeuCau(int id, string returnUrl)
        {
            var obj = db.Ticket.FirstOrDefault(m => m.ID == id);
            if (!CanGuiYeuCau(obj)) return AccessDenied();
            obj.Track += ";#" + DB.CurrentUser.ID;
            obj.Status = TicketStatus.ChoThongQua;
            obj.FeedbackID = null;
            //Lấy trưởng phòng của người tạo
            var userDAL = new fwUserDAL();
            var lstNhom = userDAL.GetByID(obj.CreatedBy).fwGroup.Select(m => m.ID).ToList();
            var dept = db.Dept.Where(m => lstNhom.Contains(m.GroupID)).FirstOrDefault();
            if (dept == null)
            {
                ShowMessage("Hiện tại bạn chưa thuộc phòng ban nào. Bạn cần phải thuộc một phòng ban có trưởng phòng để thực hiện \"thông qua\" yêu cầu cho bạn.", false);
                return RedirectToAction("Details", new { id = id });
            }

            obj.Current = dept.LeaderUserID.Value;
            db.SaveChanges();
            ShowMessage("Gửi yêu cầu thành công!");

            //Phân quyền xem
            if (!obj.TicketUser.Any(m => m.UserID == dept.LeaderUserID.Value))
                db.Database.ExecuteSqlCommand(string.Format("insert into TicketUser values({0},{1})", obj.ID, dept.LeaderUserID.Value));

            CreateNoti(obj.Current, "Cần thông qua phiếu đề nghị <br /> dụng cụ làm việc", Url.Action("Details", new { id = id }));

            if (!string.IsNullOrEmpty(returnUrl)) Redirect(returnUrl);
            return RedirectToAction("Index", "Home");
        }
        public ActionResult KiemTra(int id)
        {
            var obj = db.Checkout.FirstOrDefault(m => m.ID == id);
            if (!CanKiemTra(obj)) return AccessDenied();
            obj.Track += ";#" + DB.CurrentUser.ID;
            obj.Status = CheckoutStatus.ChoDuyet;
            obj.ChkFeedbackID = null;
            //lấy người có quyền duyệt
            var u = new fwUserDAL().ListByRole(RoleList.ApproveTicket).FirstOrDefault();
            if (u == null)
            {
                ShowMessage("Hiện tại hệ thống chưa có người duyệt phiếu thanh toán!", false);
                RedirectToAction("Details", new { id = id });
            }
            obj.Current = u.ID;
            if (!obj.CheckoutUser.Any(m => m.UserID == u.ID))
                db.Database.ExecuteSqlCommand(string.Format("insert into CheckoutUser values({0},{1})", obj.ID, u.ID));

            db.SaveChanges();

            ShowMessage("Đồng ý kiểm duyệt thành công!");
            CreateNoti(obj.Current, "Cần duyệt phiếu yêu cầu thanh toán", Url.Action("Details", new { id = id }));
            CreateNoti(obj.CreatedBy, "Phiếu yêu cầu thanh toán <br /> đã được kiểm tra", Url.Action("Details", new { id = id }));

            return RedirectToAction("Index", "RequestBill");
        }