Ejemplo n.º 1
0
        public ActionResult Index()
        {
            HscvVanBanPhatHanhModel model = new HscvVanBanPhatHanhModel();

            DM_DANHMUC_DATABusiness = Get <DM_DANHMUC_DATABusiness>();
            //model.ListDoMat = DM_DANHMUC_DATABusiness.GetDataByCode(DMLOAI_CONSTANT.DOMAT);
            model.ListDoKhan        = DM_DANHMUC_DATABusiness.GetDataByCode(DMLOAI_CONSTANT.DOKHAN);
            model.ListDoUuTien      = DM_DANHMUC_DATABusiness.GetDataByCode(DMLOAI_CONSTANT.DOUUTIEN);
            model.ListLoaiVanBan    = DM_DANHMUC_DATABusiness.GetDataByCode(DMLOAI_CONSTANT.LOAI_VANBAN);
            model.ListLinhVucVanBan = DM_DANHMUC_DATABusiness.GetDataByCode(DMLOAI_CONSTANT.LINHVUCVANBAN);
            HSCV_VANBANDENBusiness  = Get <HSCV_VANBANDENBusiness>();
            HSCV_VANBANDEN_SEARCH searchModel = new HSCV_VANBANDEN_SEARCH();

            AssignUserInfo();
            CCTC_THANHPHANBusiness = Get <CCTC_THANHPHANBusiness>();
            List <int> Ids = new List <int>();

            if (IsInActivities(currentUser.ListThaoTac, PermissionVanbanModel.DONVI))
            {
                CCTC_THANHPHAN DonVi = CCTC_THANHPHANBusiness.Find(currentUser.DM_PHONGBAN_ID);
                if (DonVi != null && DonVi.PARENT_ID.HasValue && DonVi.PARENT_ID.Value > 0)
                {
                    Ids = CCTC_THANHPHANBusiness.GetDSChild(DonVi.PARENT_ID.Value).Select(x => x.ID).ToList();
                    Ids.Add(DonVi.PARENT_ID.Value);
                    model.TreeData       = CCTC_THANHPHANBusiness.GetTree(DonVi.PARENT_ID.Value);
                    searchModel.DONVI_ID = DonVi.PARENT_ID.Value;
                }
                else
                {
                    Ids = CCTC_THANHPHANBusiness.GetDSChild(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0).Select(x => x.ID).ToList();
                    Ids.Add(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0);
                    searchModel.DONVI_ID = currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0;
                }
            }
            //Nếu là quản lý phòng ban
            else if (IsInActivities(currentUser.ListThaoTac, PermissionVanbanModel.PHONGBAN))
            {
                Ids = CCTC_THANHPHANBusiness.GetDSChild(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0).Select(x => x.ID).ToList();
                Ids.Add(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0);
                searchModel.DONVI_ID = currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0;
            }
            else
            {
                Ids.Add(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0);
                //searchModel.USER_ID = currentUser.ID;
            }
            searchModel.ListDonVi = Ids;
            if (model.TreeData == null)
            {
                model.TreeData = CCTC_THANHPHANBusiness.GetTree(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0);
            }
            searchModel.pageSize  = MaxPerpage;
            searchModel.pageIndex = 1;
            searchModel.ListIds   = initIds(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0);
            model.ListResult      = HSCV_VANBANDENBusiness.GetDaTaByPage(searchModel, MaxPerpage);
            SessionManager.SetValue("VanBanDenSearch", searchModel);
            //model.ListVanBan = initVanBanDi();
            model.UserInfoBO = currentUser;
            return(View(model));
        }
Ejemplo n.º 2
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext.HttpContext.Session != null)
            {
                bool skipAuthorization = filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true) ||
                                         filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true);
                if (!skipAuthorization)
                {
                    if (filterContext.HttpContext.Session.IsNewSession || filterContext.HttpContext.Session["UserInfo"] == null)
                    {
                        if (filterContext.HttpContext.Request.IsAjaxRequest())
                        {
                            if (((ReflectedActionDescriptor)filterContext.ActionDescriptor).MethodInfo.ReturnType == typeof(JsonResult))
                            {
                                var rs = new JsonResultBO(false);
                                rs.Message           = "Phiên làm việc của bạn đã hết";
                                filterContext.Result = Json(rs);
                            }
                            else if (((ReflectedActionDescriptor)filterContext.ActionDescriptor).MethodInfo.ReturnType == typeof(PartialViewResult))
                            {
                                filterContext.Result =
                                    RedirectToAction("TimeOutSession", "home", new { area = "" });
                            }
                        }
                        else
                        {
                            filterContext.Result =
                                RedirectToAction("login", "account", new { area = "" });
                        }

                        return;
                    }
                    else if (filterContext.HttpContext.Session["UserInfo"] != null)
                    {
                        AssignUserInfo();
                        var hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
                        var hscvVanBanDiBusiness  = Get <HSCV_VANBANDIBusiness>();

                        HSCV_VANBANDEN_SEARCH searchVanBanDen = new HSCV_VANBANDEN_SEARCH();
                        searchVanBanDen.USER_ID   = currentUser.ID;
                        searchVanBanDen.ITEM_TYPE = MODULE_CONSTANT.VANBANDEN;
                        var resultVanBanDen = hscvVanBanDenBusiness.GetListInProcess(searchVanBanDen, 10, 1);

                        HSCV_VANBANDI_SEARCH searchVanBanDi = new HSCV_VANBANDI_SEARCH();
                        searchVanBanDi.USER_ID   = currentUser.ID;
                        searchVanBanDi.ITEM_TYPE = MODULE_CONSTANT.VANBANTRINHKY;
                        var resultVanBanDi = hscvVanBanDiBusiness.GetListProcessing(searchVanBanDi, 10, 1);

                        SessionManager.SetValue("ProcessingVanBanDenNumber", resultVanBanDen.Count);
                        SessionManager.SetValue("ProcessingVanBanDiNumber", resultVanBanDi.Count);
                    }
                }
            }
            base.OnActionExecuting(filterContext);
        }
Ejemplo n.º 3
0
        public JsonResult getData(int indexPage, string sortQuery, int pageSize)
        {
            HSCV_VANBANDENBusiness = Get <HSCV_VANBANDENBusiness>();
            var searchModel = SessionManager.GetValue("VanBanDenSearch") as HSCV_VANBANDEN_SEARCH;

            if (!string.IsNullOrEmpty(sortQuery))
            {
                if (searchModel == null)
                {
                    searchModel = new HSCV_VANBANDEN_SEARCH();
                }
                searchModel.sortQuery = sortQuery;
                if (pageSize > 0)
                {
                    searchModel.pageSize = pageSize;
                }
                SessionManager.SetValue("VanBanDenSearch", searchModel);
            }
            var data = HSCV_VANBANDENBusiness.GetDaTaByPage(searchModel, pageSize, indexPage);

            return(Json(data));
        }
        public JsonResult GetData(int pageIndex, string sortQuery, int pageSize, int type)
        {
            AssignUserInfo();
            hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
            string sessionName;
            HSCV_VANBANDEN_SEARCH searchModel = new HSCV_VANBANDEN_SEARCH();

            switch (type)
            {
            case VANBANDEN_CONSTANT.CHUA_XULY:
                sessionName = "VanBanDenChuaXuLySearchModel";
                break;

            case VANBANDEN_CONSTANT.DA_XULY:
                sessionName = "VanBanDenDaXuLySearchModel";
                break;

            case VANBANDEN_CONSTANT.THAMGIA_XULY:
                sessionName = "VanBanDenThamGiaXuLySearchModel";
                break;

            case VANBANDEN_CONSTANT.NOIBO_CHUAXULY:
                searchModel.isInternal = true;
                searchModel.ITEM_TYPE  = MODULE_CONSTANT.VANBANDENNOIBO;
                sessionName            = "VanBanDenNoiBoChuaXuLySearchModel";
                break;

            case VANBANDEN_CONSTANT.NOIBO_DAXULY:
                searchModel.isInternal = true;
                searchModel.ITEM_TYPE  = MODULE_CONSTANT.VANBANDENNOIBO;
                sessionName            = "VanBanDenNoiBoDaXuLySearchModel";
                break;

            default:
                sessionName = string.Empty;
                break;
            }
            PageListResultBO <HSCV_VANBANDEN_BO> data = new PageListResultBO <HSCV_VANBANDEN_BO>();

            if (!string.IsNullOrEmpty(sessionName))
            {
                searchModel = (HSCV_VANBANDEN_SEARCH)SessionManager.GetValue(sessionName);
                if (searchModel == null)
                {
                    searchModel           = new HSCV_VANBANDEN_SEARCH();
                    searchModel.USER_ID   = currentUser.ID;
                    searchModel.ITEM_TYPE = MODULE_CONSTANT.VANBANDEN;
                }
                searchModel.sortQuery = sortQuery;
                if (pageSize > 0)
                {
                    searchModel.pageSize = pageSize;
                }
                SessionManager.SetValue(sessionName, searchModel);

                switch (type)
                {
                case VANBANDEN_CONSTANT.CHUA_XULY:
                case VANBANDEN_CONSTANT.NOIBO_CHUAXULY:
                    data = hscvVanBanDenBusiness.GetListInProcess(searchModel, pageSize, pageIndex);
                    break;

                case VANBANDEN_CONSTANT.DA_XULY:
                case VANBANDEN_CONSTANT.NOIBO_DAXULY:
                    data = hscvVanBanDenBusiness.GetListProcessed(searchModel, pageSize, pageIndex);
                    break;

                case VANBANDEN_CONSTANT.THAMGIA_XULY:
                    data = hscvVanBanDenBusiness.GetListJoinProcess(searchModel, pageSize, pageIndex);
                    break;

                default:
                    break;
                }
            }
            return(Json(data));
        }
        /// <summary>
        /// @description: view model văn bản đến
        /// @author: duynn
        /// @since: 06/08/2018
        /// </summary>
        /// <param name="typeOfVanBanDen"></param>
        /// <returns></returns>
        public ListVanBanDenViewModel GetListViewModelOfVanBanDen(int typeOfVanBanDen)
        {
            AssignUserInfo();
            hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();

            HSCV_VANBANDEN_SEARCH searchModel = new HSCV_VANBANDEN_SEARCH();

            searchModel.USER_ID   = currentUser.ID;
            searchModel.ITEM_TYPE = MODULE_CONSTANT.VANBANDEN;

            ListVanBanDenViewModel model = new ListVanBanDenViewModel();

            model.userInfo              = currentUser;
            model.typeOfLoaiVanBan      = typeOfVanBanDen;
            model.groupOfLoaiVanBans    = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.LOAI_VANBAN, 0);
            model.groupOfLinhVucVanBans = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.LINHVUCVANBAN, 0);
            model.groupOfDoKhans        = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.DOKHAN, 0);
            model.groupOfDoUuTiens      = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.DOUUTIEN, 0);
            int tmpdept = currentUser.DeptParentID.HasValue ? currentUser.DeptParentID.Value : 0;

            model.groupSoVanBanDens = dmDanhMucDataBusiness.DsByMaNhomByDept(DMLOAI_CONSTANT.SOVANBANDEN, 0, tmpdept);
            DM_THAOTAC userFunction = currentUser.ListThaoTac.Where(o => o.MA_THAOTAC.ToUpper() == "HSCV_VANBANDEN_CREATE").FirstOrDefault();

            model.canCreate = (userFunction != null && userFunction.DM_THAOTAC_ID > 0);
            string sessionName;

            switch (typeOfVanBanDen)
            {
            case VANBANDEN_CONSTANT.CHUA_XULY:
                sessionName             = "VanBanDenChuaXuLySearchModel";
                model.title             = "Quản lý văn bản đến chưa xử lý";
                model.groupOfVanBanDens = hscvVanBanDenBusiness.GetListInProcess(searchModel);
                break;

            case VANBANDEN_CONSTANT.DA_XULY:
                sessionName             = "VanBanDenDaXuLySearchModel";
                model.title             = "Quản lý văn bản đến đã xử lý";
                model.groupOfVanBanDens = hscvVanBanDenBusiness.GetListProcessed(searchModel);
                break;

            case VANBANDEN_CONSTANT.THAMGIA_XULY:
                sessionName             = "VanBanDenThamGiaXuLySearchModel";
                model.title             = "Quản lý văn bản đến tham gia xử lý";
                model.groupOfVanBanDens = hscvVanBanDenBusiness.GetListJoinProcess(searchModel);
                break;

            case VANBANDEN_CONSTANT.NOIBO_CHUAXULY:
                sessionName             = "VanBanDenNoiBoChuaXuLySearchModel";
                searchModel.isInternal  = true;
                searchModel.ITEM_TYPE   = MODULE_CONSTANT.VANBANDENNOIBO;
                model.title             = "Quản lý văn bản đến nội bộ chưa xử lý";
                model.groupOfVanBanDens = hscvVanBanDenBusiness.GetListInProcess(searchModel);
                break;

            case VANBANDEN_CONSTANT.NOIBO_DAXULY:
                searchModel.isInternal  = true;
                searchModel.ITEM_TYPE   = MODULE_CONSTANT.VANBANDENNOIBO;
                sessionName             = "VanBanDenNoiBoDaXuLySearchModel";
                model.title             = "Quản lý văn bản đến nội bộ đã xử lý";
                model.groupOfVanBanDens = hscvVanBanDenBusiness.GetListProcessed(searchModel);
                break;

            default:
                sessionName = string.Empty;
                break;
            }
            SessionManager.SetValue(sessionName, searchModel);
            return(model);
        }
        /// <summary>
        /// @description: hàm lấy danh sách sau khi phân trang
        /// @author: duynn
        /// @since: 08/08/2018
        /// </summary>
        /// <param name="queryResult"></param>
        /// <param name="searchModel"></param>
        /// <param name="pageSize"></param>
        /// <param name="pageIndex"></param>
        /// <returns></returns>
        public PageListResultBO <HSCV_VANBANDEN_BO> GetQueryResultAfterPaging(IQueryable <HSCV_VANBANDEN_BO> queryResult, HSCV_VANBANDEN_SEARCH searchModel, int pageSize, int pageIndex)
        {
            if (searchModel != null && queryResult != null)
            {
                queryResult = queryResult.GroupBy(x => x.ID).Select(y => y.FirstOrDefault());
                if (!string.IsNullOrEmpty(searchModel.SOHIEU))
                {
                    queryResult = queryResult.Where(x => x.SOHIEU.ToLower().Contains(searchModel.SOHIEU.ToLower().Trim()));
                }

                if (!string.IsNullOrEmpty(searchModel.TRICHYEU))
                {
                    queryResult = queryResult.Where(x => x.TRICHYEU.ToLower().Contains(searchModel.TRICHYEU.ToLower().Trim()));
                }
                if (!string.IsNullOrEmpty(searchModel.NGUOIKY))
                {
                    queryResult = queryResult.Where(x => x.NGUOIKY.ToLower().Contains(searchModel.NGUOIKY.ToLower().Trim()));
                }

                if (searchModel.LOAIVANBAN_ID.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.LOAIVANBAN_ID == x.LOAIVANBAN_ID);
                }

                if (searchModel.LINHVUCVANBAN_ID.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.LINHVUCVANBAN_ID == x.LINHVUCVANBAN_ID);
                }
                if (searchModel.DOKHAN_ID.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.DOKHAN_ID == x.DOKHAN_ID);
                }
                if (searchModel.DOMAT_ID.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.DOMAT_ID == x.DOMAT_ID);
                }
                if (searchModel.SOVANBANDEN_ID.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.SOVANBANDEN_ID == x.SOVANBANDEN_ID);
                }
                //Ngày ban hành
                if (searchModel.NGAYBANHANH_TU.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYBANHANH_TU <= x.NGAY_BANHANH);
                }
                if (searchModel.NGAYBANHANH_DEN.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYBANHANH_DEN >= x.NGAY_BANHANH);
                }
                //Hiệu lực từ ngày đến ngày
                if (searchModel.NGAYHIEULUC_TU.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYHIEULUC_TU <= x.NGAY_HIEULUC);
                }
                if (searchModel.NGAYHIEULUC_TU.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYHIEULUC_DEN >= x.NGAY_HIEULUC);
                }
                //Hết hiệu lực từ ngày đến ngày
                if (searchModel.NGAYHETHIEULUC_TU.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYHETHIEULUC_TU <= x.NGAYHET_HIEULUC);
                }
                if (searchModel.NGAYHETHIEULUC_DEN.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYHETHIEULUC_DEN >= x.NGAYHET_HIEULUC);
                }
                //Ngày văn bản từ ngày đến ngày
                if (searchModel.NGAYVANBAN_TU.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYVANBAN_TU <= x.NGAY_VANBAN);
                }
                if (searchModel.NGAYVANBAN_DEN.HasValue)
                {
                    queryResult = queryResult.Where(x => searchModel.NGAYVANBAN_DEN >= x.NGAY_VANBAN);
                }

                if (!string.IsNullOrEmpty(searchModel.sortQuery))
                {
                    queryResult = queryResult.OrderBy(searchModel.sortQuery);
                }
                else
                {
                    queryResult = queryResult.OrderByDescending(x => x.SOVANBANDEN_ID)
                                  .ThenByDescending(x => x.SODITHEOSO_NUMBER);
                }
                queryResult = queryResult.Where(x => x.IS_NOIBO == searchModel.isInternal);
            }

            PageListResultBO <HSCV_VANBANDEN_BO> result = new PageListResultBO <HSCV_VANBANDEN_BO>();

            if (pageIndex == -1)
            {
                int count = queryResult.Count() <= 0 ? 1 : queryResult.Count();
                IPagedList <HSCV_VANBANDEN_BO> pagedList = queryResult.ToPagedList(1, count);
                result.ListItem  = queryResult.ToList();
                result.Count     = count;
                result.TotalPage = count;
            }
            else
            {
                IPagedList <HSCV_VANBANDEN_BO> pagedList = queryResult.ToPagedList(pageIndex, pageSize);
                result.Count     = pagedList.TotalItemCount;
                result.TotalPage = pagedList.PageCount;
                result.ListItem  = pagedList.ToList();
                foreach (var item in result.ListItem)
                {
                    item.CAN_CREATE_CALENDAR = (item.NGUOITAO == searchModel.USER_ID && CheckIsFinish(item.ID));
                }
            }
            return(result);
        }
        /// <summary>
        /// @description: danh sách văn bản đến tham gia xử lý
        /// @author: duynn
        /// @since: 06/08/2018
        /// </summary>
        /// <param name="searchModel"></param>
        /// <param name="pageSize"></param>
        /// <param name="pageIndex"></param>
        /// <returns></returns>
        public PageListResultBO <HSCV_VANBANDEN_BO> GetListJoinProcess(HSCV_VANBANDEN_SEARCH searchModel, int pageSize = 20, int pageIndex = 1)
        {
            IQueryable <HSCV_VANBANDEN_BO> queryResult = from vanban in this.context.HSCV_VANBANDEN
                                                         join loaivanban in this.context.DM_DANHMUC_DATA
                                                         on vanban.LOAIVANBAN_ID equals loaivanban.ID
                                                         into group1
                                                         from g1 in group1.DefaultIfEmpty()

                                                         join douutien in this.context.DM_DANHMUC_DATA
                                                         on vanban.DOMAT_ID equals douutien.ID
                                                         into group2
                                                         from g2 in group2.DefaultIfEmpty()

                                                         join dokhan in this.context.DM_DANHMUC_DATA
                                                         on vanban.DOKHAN_ID equals dokhan.ID
                                                         into group3
                                                         from g3 in group3.DefaultIfEmpty()

                                                         join linhvuc in this.context.DM_DANHMUC_DATA
                                                         on vanban.LINHVUCVANBAN_ID equals linhvuc.ID
                                                         into group4
                                                         from g4 in group4.DefaultIfEmpty()

                                                         join sovb in this.context.DM_DANHMUC_DATA
                                                         on vanban.SOVANBANDEN_ID equals sovb.ID
                                                         into group5
                                                         from g5 in group5.DefaultIfEmpty()

                                                         join donvi in this.context.DM_DANHMUC_DATA
                                                         on vanban.DONVI_ID equals donvi.ID
                                                         into group6
                                                         from g6 in group6.DefaultIfEmpty()

                                                         join wf in context.WF_ITEM_USER_PROCESS.Where(x => x.ITEM_TYPE.Equals(searchModel.ITEM_TYPE) &&
                                                                                                       searchModel.USER_ID == x.USER_ID && x.IS_XULYCHINH == false)
                                                         on vanban.ID equals wf.ITEM_ID
                                                         select new HSCV_VANBANDEN_BO()
            {
                ID              = vanban.ID,
                SOHIEU          = vanban.SOHIEU,
                TRICHYEU        = vanban.TRICHYEU,
                NGAY_BANHANH    = vanban.NGAY_BANHANH,
                NGAY_VANBAN     = vanban.NGAY_VANBAN,
                NGAY_HIEULUC    = vanban.NGAY_HIEULUC,
                NGAYHET_HIEULUC = vanban.NGAYHET_HIEULUC,

                TEN_HINHTHUC  = g1.TEXT,
                LOAIVANBAN_ID = g1.ID,

                TEN_DOMAT   = g2.TEXT,
                DOMAT_ID    = g2.ID,
                SOTRANG     = vanban.SOTRANG,
                TEN_DOKHAN  = g3.TEXT,
                DOKHAN_ID   = g3.ID,
                ICON_DOKHAN = g3.ICON,

                TEN_LINHVUC      = g4.TEXT,
                LINHVUCVANBAN_ID = g4.ID,

                TENSOVANBAN       = g5.TEXT,
                TEN_DONVI         = g6.TEXT,
                SODITHEOSO        = vanban.SODITHEOSO,
                SODITHEOSO_NUMBER = vanban.SODITHEOSO_NUMBER ?? 0,
                NGUOIKY           = vanban.NGUOIKY,
                NGUOITAO          = vanban.NGUOITAO,
                NGAYTAO           = vanban.NGAYTAO,
                CHUCVU            = vanban.CHUCVU,
                SOVANBANDEN_ID    = vanban.SOVANBANDEN_ID,
                IS_NOIBO          = vanban.IS_NOIBO == true ? true : false,
                PROCESS_USER_ID   = wf.USER_ID,
            };

            queryResult = queryResult.GroupBy(x => x.ID).Select(x => x.FirstOrDefault());
            PageListResultBO <HSCV_VANBANDEN_BO> result = GetQueryResultAfterPaging(queryResult, searchModel, pageSize, pageIndex);

            return(result);
        }
        public PageListResultBO <HSCV_VANBANDEN_BO> GetDaTaByPage(HSCV_VANBANDEN_SEARCH searchModel, int pageSize = 20, int pageIndex = 1)
        {
            var ListJobId = new List <long?>();
            var query     = from vanban in this.context.HSCV_VANBANDEN
                            join loaivanban in this.context.DM_DANHMUC_DATA
                            on vanban.LOAIVANBAN_ID equals loaivanban.ID
                            into group1
                            from g1 in group1.DefaultIfEmpty()

                            join linhvuc in this.context.DM_DANHMUC_DATA
                            on vanban.LINHVUCVANBAN_ID equals linhvuc.ID
                            into group2
                            from g2 in group2.DefaultIfEmpty()

                            join dokhan in this.context.DM_DANHMUC_DATA
                            on vanban.DOKHAN_ID equals dokhan.ID
                            into group3
                            from g3 in group3.DefaultIfEmpty()

                            join domat in this.context.DM_DANHMUC_DATA
                            on vanban.DOMAT_ID equals domat.ID
                            into group4
                            from g4 in group4.DefaultIfEmpty()

                            join nguoidung in this.context.DM_NGUOIDUNG
                            on vanban.NGUOITAO equals nguoidung.ID
                            into group5
                            from g5 in group5.DefaultIfEmpty()

                            select new HSCV_VANBANDEN_BO
            {
                CHUCVU           = vanban.CHUCVU,
                DOKHAN_ID        = vanban.DOKHAN_ID,
                DOMAT_ID         = vanban.DOMAT_ID,
                ID               = vanban.ID,
                LINHVUCVANBAN_ID = vanban.LINHVUCVANBAN_ID,
                LOAIVANBAN_ID    = vanban.LOAIVANBAN_ID,
                NGAYSUA          = vanban.NGAYSUA,
                NGAYTAO          = vanban.NGAYTAO,
                NGUOIKY          = vanban.NGUOIKY,
                NGUOISUA         = vanban.NGUOISUA,
                NGUOITAO         = vanban.NGUOITAO,
                NOIDUNG          = vanban.NOIDUNG,
                SOHIEU           = vanban.SOHIEU,
                SOTRANG          = vanban.SOTRANG,
                TEN_DOKHAN       = g3.TEXT,
                TEN_DOMAT        = g4.TEXT,
                TEN_HINHTHUC     = g1.TEXT,
                TEN_LINHVUC      = g2.TEXT,
                ICON_DOKHAN      = g3.ICON,
                ICON_DOMAT       = g4.ICON,
                ICON_HINHTHUC    = g1.ICON,
                ICON_LINHVUC     = g2.ICON,
                TEN_NGUOITAO     = g5.HOTEN,
                TRICHYEU         = vanban.TRICHYEU,
                DONVI_ID         = vanban.DONVI_ID,
                VANBANDI_ID      = vanban.VANBANDI_ID,
                NGAYHET_HIEULUC  = vanban.NGAYHET_HIEULUC,
                NGAY_BANHANH     = vanban.NGAY_BANHANH,
                NGAY_HIEULUC     = vanban.NGAY_HIEULUC,
                NGAY_VANBAN      = vanban.NGAY_VANBAN,
                COLOR            = g3.COLOR,
                ListDonViNhan    = (from receiver in this.context.HSCV_VANBANDEN_DONVINHAN
                                    join unit in this.context.CCTC_THANHPHAN
                                    on receiver.DONVI_ID equals unit.ID
                                    where receiver.DONVI_ID.HasValue && receiver.VANBANDEN_ID == vanban.ID
                                    select new HSCV_VANBANDEN_DONVINHAN_BO
                {
                    DONVI_ID = receiver.DONVI_ID,
                    ID = receiver.ID,
                    TEN_DONVI = unit.NAME,
                    VANBANDEN_ID = receiver.VANBANDEN_ID
                }).ToList()
                                   //TEN_DONVI = g6.NAME
            };

            if (searchModel != null)
            {
                #region Tìm kiếm
                if (searchModel.isMobileFilter && !string.IsNullOrEmpty(searchModel.mobileQuery))
                {
                    query = query.Where(x => (x.SOHIEU != null && x.SOHIEU.ToLower().Contains(searchModel.mobileQuery.ToLower().Trim())) ||
                                        (x.TRICHYEU != null && x.TRICHYEU.ToLower().Contains(searchModel.mobileQuery.ToLower().Trim())));
                }
                //Tìm kiếm theo đơn vị
                if (searchModel.ListDonVi != null && searchModel.ListDonVi.Any())
                {
                    ListJobId = (from receiver in this.context.HSCV_VANBANDEN_DONVINHAN
                                 where receiver.DONVI_ID.HasValue && searchModel.ListDonVi.Contains(receiver.DONVI_ID.Value)
                                 select receiver.VANBANDEN_ID).ToList();
                    //query = query.Where(x => (x.DONVI_ID.HasValue && searchModel.ListDonVi.Contains(x.DONVI_ID.Value)));
                    query = query.Where(x => ListJobId.Contains(x.ID));
                }
                else
                {
                    query = query.Where(x => x.NGUOITAO.HasValue && x.NGUOITAO.Value == searchModel.USER_ID && !x.VANBANDI_ID.HasValue);
                }
                if (!string.IsNullOrEmpty(searchModel.SOHIEU))
                {
                    query = query.Where(x => !string.IsNullOrEmpty(x.SOHIEU) && x.SOHIEU.ToLower().Trim().Contains(searchModel.SOHIEU.Trim()));
                }
                if (!string.IsNullOrEmpty(searchModel.TRICHYEU))
                {
                    query = query.Where(x => !string.IsNullOrEmpty(x.TRICHYEU) && x.TRICHYEU.ToLower().Trim().Contains(searchModel.TRICHYEU));
                }
                if (searchModel.LOAIVANBAN_ID.HasValue)
                {
                    query = query.Where(x => x.LOAIVANBAN_ID.HasValue && x.LOAIVANBAN_ID.Value == searchModel.LOAIVANBAN_ID);
                }
                if (searchModel.LINHVUCVANBAN_ID.HasValue)
                {
                    query = query.Where(x => x.LINHVUCVANBAN_ID.HasValue && x.LINHVUCVANBAN_ID.Value == searchModel.LINHVUCVANBAN_ID);
                }
                if (searchModel.DOMAT_ID.HasValue)
                {
                    query = query.Where(x => x.DOMAT_ID.HasValue && x.DOMAT_ID.Value == searchModel.DOMAT_ID);
                }
                if (searchModel.DOKHAN_ID.HasValue)
                {
                    query = query.Where(x => x.DOKHAN_ID.HasValue && x.DOKHAN_ID.Value == searchModel.DOKHAN_ID);
                }
                if (!string.IsNullOrEmpty(searchModel.NGUOIKY))
                {
                    query = query.Where(x => !string.IsNullOrEmpty(x.NGUOIKY) && x.NGUOIKY.ToLower().Trim().Contains(searchModel.NGUOIKY));
                }
                if (searchModel.NGAYBANHANH_TU.HasValue)
                {
                    query = query.Where(x => searchModel.NGAYBANHANH_TU <= x.NGAY_BANHANH);
                }
                if (searchModel.NGAYBANHANH_DEN.HasValue)
                {
                    query = query.Where(x => searchModel.NGAYBANHANH_DEN >= x.NGAY_BANHANH);
                }
                #endregion
                if (!string.IsNullOrEmpty(searchModel.sortQuery))
                {
                    query = query.OrderBy(searchModel.sortQuery);
                }
                else
                {
                    query = query.OrderByDescending(x => x.NGAYTAO);
                }
            }
            else
            {
                query = query.OrderByDescending(x => x.NGAYTAO);
            }
            var resultmodel  = new PageListResultBO <HSCV_VANBANDEN_BO>();
            var dataPageList = query.ToPagedList(pageIndex, pageSize);
            resultmodel.Count     = dataPageList.TotalItemCount;
            resultmodel.TotalPage = dataPageList.PageCount;
            resultmodel.ListItem  = dataPageList.ToList();
            //foreach (var item in resultmodel.ListItem)
            //{
            //    //Danh sách đơn vị nhận được văn bản này
            //    var ListDonVi = (from vanban in this.context.HSCV_VANBANDEN_DONVINHAN
            //                     join cctc in this.context.CCTC_THANHPHAN
            //                     on vanban.DONVI_ID equals cctc.ID
            //                     where vanban.VANBANDEN_ID == item.ID
            //                     select cctc).ToList();
            //    item.ListDonVi = ListDonVi;
            //    int length = ListDonVi.Count;
            //}
            return(resultmodel);
        }
Ejemplo n.º 9
0
        public JsonResult searchData(FormCollection form)
        {
            HSCV_VANBANDENBusiness = Get <HSCV_VANBANDENBusiness>();
            var searchModel = SessionManager.GetValue("VanBanDenSearch") as HSCV_VANBANDEN_SEARCH;

            if (searchModel == null)
            {
                searchModel          = new HSCV_VANBANDEN_SEARCH();
                searchModel.pageSize = MaxPerpage;
            }
            int DONVI_ID = form["DONVI_ID"].ToIntOrZero();

            if (DONVI_ID > 0)
            {
                AssignUserInfo();
                CCTC_THANHPHANBusiness = Get <CCTC_THANHPHANBusiness>();
                List <int> Ids = new List <int>();
                if (IsInActivities(currentUser.ListThaoTac, PermissionVanbanModel.DONVI))
                {
                    CCTC_THANHPHAN DonVi = CCTC_THANHPHANBusiness.Find(currentUser.DM_PHONGBAN_ID);
                    Ids = new List <int>();
                    if (DonVi != null && DonVi.PARENT_ID.HasValue && DonVi.PARENT_ID.Value > 0)
                    {
                        Ids = CCTC_THANHPHANBusiness.GetDSChild(DonVi.PARENT_ID.Value).Select(x => x.ID).ToList();
                        Ids.Add(DonVi.PARENT_ID.Value);
                    }
                    else
                    {
                        Ids = CCTC_THANHPHANBusiness.GetDSChild(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0).Select(x => x.ID).ToList();
                        Ids.Add(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0);
                    }
                }
                else if (IsInActivities(currentUser.ListThaoTac, PermissionVanbanModel.PHONGBAN))
                {
                    Ids = CCTC_THANHPHANBusiness.GetDSChild(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0).Select(x => x.ID).ToList();
                    Ids.Add(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0);
                }
                if (Ids.Contains(DONVI_ID))
                {
                    Ids = CCTC_THANHPHANBusiness.GetDSChild(DONVI_ID).Select(x => x.ID).ToList();
                    Ids.Add(DONVI_ID);
                    searchModel.ListDonVi = Ids;
                }
                else
                {
                    searchModel.ListDonVi = Ids;
                }
            }
            searchModel.SOHIEU           = form["SOHIEU"];
            searchModel.TRICHYEU         = form["TRICHYEU"];
            searchModel.DOKHAN_ID        = form["DOKHAN_ID"].ToIntOrNULL();
            searchModel.DOMAT_ID         = form["DOMAT_ID"].ToIntOrNULL();
            searchModel.LINHVUCVANBAN_ID = form["LINHVUCVANBAN_ID"].ToIntOrNULL();
            searchModel.LOAIVANBAN_ID    = form["LOAIVANBAN_ID"].ToIntOrNULL();
            searchModel.NGUOIKY          = form["NGUOIKY"];
            searchModel.NGAYBANHANH_TU   = form["BANHANH_TU"].ToDateTime();
            searchModel.NGAYBANHANH_DEN  = form["BANHANH_DEN"].ToDateTime();
            SessionManager.SetValue("VanBanDenSearch", searchModel);
            var data = HSCV_VANBANDENBusiness.GetDaTaByPage(searchModel, searchModel.pageSize, 1);

            return(Json(data));
        }