/// <summary> /// @author:duynn /// @since:16/06/2019 /// @description: danh sách phòng ban /// </summary> /// <returns></returns> //[CodeAllowAccess(Code = "DsCCTC")] public ActionResult Index() { AssignUserInfo(); CCTC_THANHPHANBusiness = Get<CCTC_THANHPHANBusiness>(); DMLoaiDonViBusiness = Get<DMLoaiDonViBusiness>(); DM_DANHMUC_DATABusiness = Get<DM_DANHMUC_DATABusiness>(); CCTC_THANHPHAN_SEARCHBO searchModel = new CCTC_THANHPHAN_SEARCHBO(); SessionManager.SetValue("CctcThanhPhanSearch", searchModel); CoCauToChucIndexModel viewModel = new CoCauToChucIndexModel() { GroupData = CCTC_THANHPHANBusiness.GetDataByPage(searchModel, currentUser), DS_TYPE = DMLoaiDonViBusiness.DSLoaiDonVi(), DS_CATEGORY = DM_DANHMUC_DATABusiness.DsByMaNhom("DMCAPPHONGBAN", currentUser.ID) }; #region settings deptId int deptId = 0; if (currentUser.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT")) { CCTC_THANHPHAN leaderDept = CCTC_THANHPHANBusiness.Find(currentUser.DM_PHONGBAN_ID.GetValueOrDefault()); if (leaderDept != null) { deptId = leaderDept.PARENT_ID.HasValue ? leaderDept.PARENT_ID.Value : leaderDept.ID; } } else if (currentUser.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT_HUYENUY") || currentUser.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT_XAPHUONG")) { } return View(viewModel); }
/// <summary> /// @author:duynn /// @description: lấy danh sách phòng ban theo trang /// @since: 14/06/2019 /// </summary> /// <param name="searchModel">thông tin tìm kiếm</param> /// <param name="user">người dùng hiện tại</param> /// <param name="pageIndex">thông tin trang hiện tại</param> /// <param name="pageSize">số bản ghi trên một trang</param> /// <returns></returns> public PageListResultBO<CCTC_THANHPHAN_BO> GetDataByPage(CCTC_THANHPHAN_SEARCHBO searchModel, UserInfoBO user, int pageIndex = 1, int pageSize = 20) { var query = from dept in this.context.CCTC_THANHPHAN join users in this.context.DM_NGUOIDUNG on dept.ID equals users.DM_PHONGBAN_ID into groupUserDepts join deptType in this.context.DM_LOAI_DONVI on dept.TYPE equals deptType.ID into groupDeptType from gDeptType in groupDeptType.DefaultIfEmpty() join deptLevel in this.context.DM_DANHMUC_DATA on dept.CATEGORY equals deptLevel.ID into groupDeptLevel from gDeptLevel in groupDeptLevel.DefaultIfEmpty() select new CCTC_THANHPHAN_BO { ID = dept.ID, CODE = dept.CODE, ITEM_LEVEL = dept.ITEM_LEVEL, NAME = dept.NAME, PARENT_ID = dept.PARENT_ID, TYPE = dept.TYPE, THUTU = dept.THUTU, SoLuongCanBo = groupUserDepts.Count(), TenLoaiDonVi = gDeptType != null ? gDeptType.LOAI : string.Empty, TenCapDonVi = gDeptLevel != null ? gDeptLevel.TEXT : string.Empty }; int deptId = 0; if (user.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT")) { CCTC_THANHPHAN leaderDept = this.context.CCTC_THANHPHAN.Find(user.DM_PHONGBAN_ID.GetValueOrDefault()); if (leaderDept != null) { deptId = leaderDept.PARENT_ID.HasValue ? leaderDept.PARENT_ID.Value : leaderDept.ID; } } else if (user.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT_HUYENUY") || user.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT_XAPHUONG")) { if (user.DeptType == 10) { deptId = user.DM_PHONGBAN_ID.GetValueOrDefault(); } else { deptId = user.DeptParentID.GetValueOrDefault(); } } else { deptId = user.DM_PHONGBAN_ID.GetValueOrDefault(); } //duynn lấy danh sách các phòng ban dưới cấp phòng ban hiện tại var tree = this.GetTree(deptId); query = query.Where(x => groupChildrenDepts.Contains(x.ID)); if (searchModel != null) { if (!string.IsNullOrEmpty(searchModel.QR_MAPHONGBAN)) { query = query.Where(x => x.CODE.Contains(searchModel.QR_MAPHONGBAN)); } if (!string.IsNullOrEmpty(searchModel.QR_TENPHONGBAN)) { query = query.Where(x => x.NAME.Contains(searchModel.QR_TENPHONGBAN)); } if (searchModel.QR_LOAIPHONGBAN.HasValue) { query = query.Where(x => x.TYPE == searchModel.QR_LOAIPHONGBAN); } if (searchModel.QR_CAPPHONGBAN.HasValue) { query = query.Where(x => x.ITEM_LEVEL == searchModel.QR_CAPPHONGBAN); } if (!string.IsNullOrEmpty(searchModel.sortQuery)) { query = query.OrderBy(searchModel.sortQuery); } else { query = query.OrderBy(x => x.ID); } } else { query = query.OrderBy(x => x.ID); } var result = new PageListResultBO<CCTC_THANHPHAN_BO>(); if (pageSize == -1) { var pagedList = query.ToList(); result.Count = pagedList.Count; result.TotalPage = 1; result.ListItem = pagedList; } else { var pagedList = query.ToPagedList(pageIndex, pageSize); result.Count = pagedList.TotalItemCount; result.TotalPage = pagedList.PageCount; result.ListItem = pagedList.ToList(); } return result; }