public JsonResult GetData(int pageIndex, string sortQuery, int pageSize)
        {
            AssignUserInfo();
            qlChuyenBusiness = Get <QL_DANGKYXE_LAIXEBusiness>();
            ChuyenSearchBO searchModel = (ChuyenSearchBO)SessionManager.GetValue("SearchChuyen");

            if (searchModel == null)
            {
                searchModel = new ChuyenSearchBO();
            }
            searchModel.sortQuery         = sortQuery;
            searchModel.CCTC_THANHPHAN_ID = currentUser.DeptParentID.GetValueOrDefault();
            PageListResultBO <ChuyenBO> data = qlChuyenBusiness.GetDataByPage(searchModel);

            return(Json(data));
        }
        public ActionResult Index()
        {
            AssignUserInfo();
            qlChuyenBusiness = Get <QL_DANGKYXE_LAIXEBusiness>();
            qlLaiXeBusiness  = Get <QL_LAIXEBusiness>();
            qlXeBusiness     = Get <QL_XEBusiness>();

            ChuyenIndexViewModel viewModel   = new ChuyenIndexViewModel();
            ChuyenSearchBO       searchModel = new ChuyenSearchBO();

            searchModel.CCTC_THANHPHAN_ID = currentUser.DeptParentID.GetValueOrDefault();
            viewModel.listChuyens         = qlChuyenBusiness.GetDataByPage(searchModel);
            viewModel.groupCars           = qlXeBusiness.GetDropDownAvailableCars();
            viewModel.groupDrivers        = qlLaiXeBusiness.GetDropDownAvailableDrivers();
            viewModel.currentUserId       = currentUser.ID;
            SessionManager.SetValue("SearchChuyen", searchModel);
            return(View(viewModel));
        }
Exemple #3
0
        /// <summary>
        /// @author: duynn
        /// @description: lấy danh sách chuyến
        /// @since: 28/08/2018
        /// </summary>
        /// <param name="searchModel"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public PageListResultBO <ChuyenBO> GetDataByPage(ChuyenSearchBO searchModel, int pageIndex = 1, int pageSize = 20)
        {
            IQueryable <ChuyenBO> queryResult = (from trip in this.context.QL_DANGKYXE_LAIXE
                                                 join registration in this.context.QL_DANGKY_XE
                                                 on trip.QL_DANGKY_XE_ID equals registration.ID

                                                 join car in this.context.QL_XE
                                                 on trip.XE_ID equals car.ID

                                                 join driver in this.context.QL_LAIXE
                                                 on trip.LAIXE_ID equals driver.ID
                                                 orderby trip.ID descending
                                                 select new ChuyenBO
            {
                ID = trip.ID,
                TEN_CHUYEN = trip.TEN_CHUYEN,
                MUCDICH = registration.MUCDICH,
                XE_ID = car.ID,
                TENXE = car.TENXE,
                LAIXE_ID = driver.ID,
                TEN_LAIXE = driver.HOTEN,
                TRANGTHAI = trip.TRANGTHAI ?? 0,
                NGAY_XUATPHAT = registration.NGAY_XUATPHAT,
                GIO_XUATPHAT = registration.GIO_XUATPHAT,
                PHUT_XUATPHAT = registration.PHUT_XUATPHAT,
                NGAYSUA = registration.NGAYSUA,
                NGUOITAO = trip.NGUOITAO,
                CCTC_THANHPHAN_ID = trip.CCTC_THANHPHAN_ID,
            });

            if (searchModel != null)
            {
                if (!string.IsNullOrEmpty(searchModel.TEN_CHUYEN))
                {
                    searchModel.TEN_CHUYEN = searchModel.TEN_CHUYEN.Trim().ToLower();
                    queryResult            = queryResult.Where(x => !string.IsNullOrEmpty(x.TEN_CHUYEN) && x.TEN_CHUYEN.Trim().ToLower().Contains(searchModel.TEN_CHUYEN));
                }

                if (searchModel.CCTC_THANHPHAN_ID != null)
                {
                    queryResult = queryResult.Where(x => x.CCTC_THANHPHAN_ID == searchModel.CCTC_THANHPHAN_ID.Value);
                }

                if (searchModel.queryTimeStart != null)
                {
                    queryResult = queryResult.Where(x => x.NGAY_XUATPHAT >= searchModel.queryTimeStart);
                }

                if (searchModel.queryTimeEnd != null)
                {
                    queryResult = queryResult.Where(x => x.NGAY_XUATPHAT <= searchModel.queryTimeEnd);
                }
                if (searchModel.XE_ID != null)
                {
                    queryResult = queryResult.Where(x => x.XE_ID == searchModel.XE_ID);
                }

                if (searchModel.LAIXE_ID != null)
                {
                    queryResult = queryResult.Where(x => x.LAIXE_ID == searchModel.LAIXE_ID);
                }

                if (string.IsNullOrEmpty(searchModel.sortQuery) == false)
                {
                    queryResult = queryResult.OrderBy(searchModel.sortQuery);
                }
                else
                {
                    queryResult = queryResult.OrderByDescending(x => x.NGAYSUA).ThenByDescending(x => x.ID);
                }
            }
            PageListResultBO <ChuyenBO> result    = new PageListResultBO <ChuyenBO>();
            IPagedList <ChuyenBO>       pagedList = queryResult.ToPagedList(pageIndex, pageSize);

            result.Count     = pagedList.TotalItemCount;
            result.TotalPage = pagedList.PageCount;
            result.ListItem  = pagedList.ToList();
            result.ListItem.ForEach(x =>
            {
                if (x.NGAY_XUATPHAT != null)
                {
                    x.THOIGIAN_XUATPHAT = string.Format("{0:dd/MM/yyyy}", x.NGAY_XUATPHAT);
                    if (x.GIO_XUATPHAT != null)
                    {
                        x.THOIGIAN_XUATPHAT += " " + x.GIO_XUATPHAT.Value.ToString("D2") + "h";

                        if (x.PHUT_XUATPHAT != null)
                        {
                            x.THOIGIAN_XUATPHAT += x.PHUT_XUATPHAT.Value.ToString("D2");
                        }
                    }
                }
                switch (x.TRANGTHAI.Value)
                {
                case TRANGTHAI_CHUYEN_CONSTANT.MOITAO_ID:
                    x.TEN_TRANGTHAI = TRANGTHAI_CHUYEN_CONSTANT.MOITAO_TEXT;
                    x.MAU_TRANGTHAI = TRANGTHAI_CHUYEN_CONSTANT.MOITAO_COLOR;
                    break;

                case TRANGTHAI_CHUYEN_CONSTANT.DANGCHAY_ID:
                    x.TEN_TRANGTHAI = TRANGTHAI_CHUYEN_CONSTANT.DANGCHAY_TEXT;
                    x.MAU_TRANGTHAI = TRANGTHAI_CHUYEN_CONSTANT.DANGCHAY_COLOR;
                    break;

                case TRANGTHAI_CHUYEN_CONSTANT.DA_HOANTHANH_ID:
                    x.TEN_TRANGTHAI = TRANGTHAI_CHUYEN_CONSTANT.DA_HOANTHANH_TEXT;
                    x.MAU_TRANGTHAI = TRANGTHAI_CHUYEN_CONSTANT.DA_HOANTHANH_COLOR;
                    break;

                default:
                    break;
                }
            });
            return(result);
        }
Exemple #4
0
        /// <summary>
        /// @author: duynn
        /// @description: báo cáo chuyến
        /// </summary>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public List <ChuyenReportBO> GetTripReportResult(ChuyenSearchBO searchModel)
        {
            List <UserInfoBO> users = (from user in this.context.DM_NGUOIDUNG.Where(x => x.IS_ACTIVE != false)
                                       join dept in this.context.CCTC_THANHPHAN.Where(x => x.IS_DELETE != true && x.PARENT_ID == searchModel.CCTC_THANHPHAN_ID)
                                       on user.DM_PHONGBAN_ID equals dept.ID
                                       select new UserInfoBO()
            {
                ID = user.ID,
                HOTEN = user.HOTEN
            }).ToList();


            IQueryable <ChuyenBO> queryResult = (from user in this.context.DM_NGUOIDUNG.Where(x => x.IS_ACTIVE != false)
                                                 join dept in this.context.CCTC_THANHPHAN.Where(x => x.IS_DELETE != true && x.PARENT_ID == searchModel.CCTC_THANHPHAN_ID)
                                                 on user.DM_PHONGBAN_ID equals dept.ID
                                                 join registration in this.context.QL_DANGKY_XE.Where(x => x.IS_DELETE != true)
                                                 on user.ID equals registration.CANBO_ID
                                                 into group1
                                                 from g1 in group1.DefaultIfEmpty()

                                                 join trip in this.context.QL_DANGKYXE_LAIXE.Where(x => x.TRANGTHAI == TRANGTHAI_CHUYEN_CONSTANT.DA_HOANTHANH_ID)
                                                 on g1.ID equals trip.QL_DANGKY_XE_ID
                                                 select new ChuyenBO()
            {
                CANBO_ID = user.ID,
                TEN_CANBO = user.HOTEN,
                TEN_CHUYEN = trip.TEN_CHUYEN,
                NGAY_XUATPHAT = g1.NGAY_XUATPHAT,
                GIO_XUATPHAT = g1.GIO_XUATPHAT ?? 0,
                PHUT_XUATPHAT = g1.PHUT_XUATPHAT ?? 0,
                DIEM_XUATPHAT = g1.DIEM_XUATPHAT,
                DIEM_KETTHUC = g1.DIEM_KETTHUC,
                TONG_CHIPHI = trip.TONG_CHIPHI ?? 0,
                NGAYSUA = trip.NGAYSUA,
                QUANGDUONG_DICHUYEN = trip.QUANGDUONG_DICHUYEN ?? 0
            });

            if (searchModel.queryTimeStart != null)
            {
                searchModel.queryTimeStart = searchModel.queryTimeStart.Value.ToStartDay();
                queryResult = queryResult.Where(x => x.NGAY_XUATPHAT >= searchModel.queryTimeStart.Value);
            }

            if (searchModel.queryTimeEnd != null)
            {
                searchModel.queryTimeEnd = searchModel.queryTimeEnd.Value.ToEndDay();
                queryResult = queryResult.Where(x => x.NGAY_XUATPHAT <= searchModel.queryTimeEnd.Value);
            }

            if (searchModel.CANBO_IDs != null && searchModel.CANBO_IDs.Count > 0)
            {
                users       = users.Where(x => searchModel.CANBO_IDs.Contains(x.ID)).ToList();
                queryResult = queryResult.Where(x => searchModel.CANBO_IDs.Contains(x.CANBO_ID));
            }

            List <ChuyenReportBO> result = new List <ChuyenReportBO>();

            foreach (var user in users)
            {
                ChuyenReportBO item = new ChuyenReportBO();
                item.TEN_CANBO    = user.HOTEN;
                item.groupOfTrips = queryResult.Where(x => x.CANBO_ID == user.ID).ToList();
                result.Add(item);
            }
            return(result);
        }
        public ActionResult ReportTrip(FormCollection collection)
        {
            AssignUserInfo();
            qlChuyenBusiness    = Get <QL_DANGKYXE_LAIXEBusiness>();
            dmNguoiDungBusiness = Get <DM_NGUOIDUNGBusiness>();

            ReportTripViewModel reportResult = new ReportTripViewModel();

            reportResult.reportEntity = new List <ChuyenReportBO>();

            int    type                 = collection["queryType"].ToIntOrZero();
            string reportTitle          = string.Empty;
            string timeRangeReportTitle = string.Empty;

            ChuyenSearchBO searchModel = new ChuyenSearchBO();
            List <long>    userIds     = new List <long>();

            if (collection["CANBO_ID"] != null)
            {
                userIds = collection["CANBO_ID"].ToListLong(',');
                searchModel.CANBO_IDs = userIds;
            }
            searchModel.CCTC_THANHPHAN_ID = currentUser.DeptParentID.GetValueOrDefault();
            if (type == LOAI_BAOCAO_THOIGIAN_CONSTANT.NGAY)
            {
                searchModel.queryTimeStart = collection["queryTimeStart"].ToDateTime();
                searchModel.queryTimeEnd   = collection["queryTimeEnd"].ToDateTime();

                string dateStartStr = searchModel.queryTimeStart.Value.ToVietnameseDateFormat();
                string dateEndStr   = searchModel.queryTimeEnd.Value.ToVietnameseDateFormat();

                reportResult.title   = string.Format("Từ ngày {0} đến ngày {1}", dateStartStr, dateEndStr);
                reportTitle          = string.Format("BÁO CÁO CÔNG TÁC TỪ NGÀY {0} ĐẾN NGÀY {1}", dateStartStr, dateEndStr);
                timeRangeReportTitle = string.Format("từ ngày {0} đến ngày {1}", dateStartStr, dateEndStr);
            }
            else if (type == LOAI_BAOCAO_THOIGIAN_CONSTANT.THANG)
            {
                int year  = collection["queryYear"].ToIntOrZero();
                int month = collection["queryMonth"].ToIntOrZero();

                searchModel.queryTimeStart = new DateTime(year, month, 1);
                searchModel.queryTimeEnd   = new DateTime(year, month, DateTime.DaysInMonth(year, month));

                reportResult.title = string.Format("Trong tháng {0} năm {1}", month, year);

                reportTitle          = string.Format("BÁO CÁO CÔNG TÁC THÁNG {0}/{1}", month, year);
                timeRangeReportTitle = string.Format("trong tháng {0}/{1}", month, year);
            }
            else if (type == LOAI_BAOCAO_THOIGIAN_CONSTANT.NAM)
            {
                int year = collection["queryYear"].ToIntOrZero();
                searchModel.queryTimeStart = new DateTime(year, 1, 1);
                searchModel.queryTimeEnd   = new DateTime(year, 12, 31);

                reportResult.title   = string.Format("Trong năm {0}", year);
                reportTitle          = string.Format("BÁO CÁO CÔNG TÁC NĂM {0}", year);
                timeRangeReportTitle = string.Format("trong năm {0}", year);
            }

            if (userIds != null && userIds.Count > 0)
            {
                string[] arrNames = new string[userIds.Count()];
                foreach (var userId in userIds)
                {
                    DM_NGUOIDUNG user = dmNguoiDungBusiness.Find(userId);
                    arrNames[userIds.IndexOf(userId)] = user.HOTEN;
                }
                timeRangeReportTitle = string.Format("{0} của cán bộ {1}", timeRangeReportTitle, string.Join(",", arrNames));
            }

            List <ChuyenReportBO> tripReportResult = qlChuyenBusiness.GetTripReportResult(searchModel);

            reportResult.title        = reportTitle;
            reportResult.timeLine     = timeRangeReportTitle.ToUpper();
            reportResult.reportEntity = tripReportResult;

            SessionManager.SetValue("ReportTripSession", reportResult);
            return(PartialView("_ReportTripResult", reportResult));
        }