public override QueryBuilder PLBuildQueryFilter()
        {
            QueryBuilder filter = new QueryBuilder(BIEN_MUC.FILTER_STRING);
            filter.addSoPhieu(BIEN_MUC.MA_BANG, MaBang.Text);
            filter.addLike("LOWER(" + BIEN_MUC.NOI_DUNG + ")", NoiDung.Text.ToLower());
            AppCtrl.addID(filter, BIEN_MUC.SO_DKCB_HD, SoDKHDCB);
            AppCtrl.addID(filter, BIEN_MUC.TIET_MUC, TietMuc);
            AppCtrl.addID(filter, BIEN_MUC.LOAI_LUU_TRU, LoaiBang);
            AppCtrl.addID(filter, BIEN_MUC.DON_VI_CUNG_CAP, DonViCungCap);
            AppCtrl.addID(filter, BIEN_MUC.DON_VI_SO_HUU, DonViSoHuu);
            filter.addIn(BIEN_MUC.POST_MASTER, AppCtrl.GetCheckedValues(TinhTrang, true));
            filter.addIn(BIEN_MUC.IS_THANH_LY, AppCtrl.GetCheckedValues(ThanhLy, true));
            AppCtrl.addFilterFromTo(filter, BIEN_MUC.NGAY_NHAP, ngayNhap);
            AppCtrl.addFilterFromTo(filter, BIEN_MUC.NAM_SAN_XUAT, NamSXTu.Value, NamSXDen.Value);
            long[] IDs = QuocGia._getSelectedIDs();
            if (IDs.Length > 0 && IDs.Length < QuocGia.Properties.GetItems().Count)
            {
                string cond = "(";
                foreach (long id in IDs)
                {
                    cond += BIEN_MUC.NUOC_SAN_XUAT + " like '%," + id + ",%' or ";
                }
                cond = cond.TrimEnd(' ', 'r', 'o');
                cond = cond += ")";
                filter.addCondition(cond);
            }
            filter.addCondition("1=1");
            filter.setDescOrderBy(BIEN_MUC.NGAY_CAP_NHAT);

            return filter;
        }
        public override QueryBuilder PLBuildQueryFilter()
        {
            QueryBuilder filter = null;
            string sql = UpdateRow();
            filter = new QueryBuilder(sql);

            filter.addCondition("1=1");
            if (this.ASCSortClause != "")
                filter.setAscOrderBy(ASCSortClause);
            if (this.DESCSortClause != "")
                filter.setDescOrderBy(DESCSortClause);
            return filter;
        }
 private void btnView_Click(object sender, EventArgs e)
 {
     var sql =string.Format(@"SELECT PGS_ID,NAME,
         TU_NGAY, DEN_NGAY, MA_PGS,IS_DELETE,FILE_NAME, NGUOI_TAO,
         NGAY_TAO, NGUOI_CAP_NHAT, NGAY_CAP_NHAT,CONG_TY,
         PHONG_BAN,GHI_CHU,NULL CONTENT_FILE,'' PATH_FILE
         FROM TNS_PROGRAMS_GRID_SCR pgs
         WHERE (is_delete='N' or is_delete is null) and 1=1");
     var query = new QueryBuilder(sql);
     query.addLike("LOWER(" + TNS_PROGRAMS_GRID_SCR.NAME + ")", TenNguon.Text.ToLower());
     query.addLike("LOWER(" + TNS_PROGRAMS_GRID_SCR.FILE_NAME + ")", TenFile.Text.ToLower());
     AppCtrl.addID(query, TNS_PROGRAMS_GRID_SCR.NGUOI_TAO, NguoiLap);
     AppCtrl.addFilterFromTo(query, TNS_PROGRAMS_GRID_SCR.NGAY_TAO, NgayLap);
     query.addDateFromTo(TNS_PROGRAMS_GRID_SCR.TU_NGAY, StartDateFrom.DateTime, StartDateTo.DateTime);
     query.addDateFromTo(TNS_PROGRAMS_GRID_SCR.DEN_NGAY, EndDateFrom.DateTime, EndDateTo.DateTime);
     query.addCondition("1=1");
     query.setDescOrderBy("NGAY_TAO");
     var ds = HelpDB.getDBService().LoadDataSet(query);
     if(ds!=null&&ds.Tables.Count>0)
     {
         gridControlDetail.DataSource = ds.Tables[0];
     }
 }
        public override QueryBuilder PLBuildQueryFilter()
        {
            QueryBuilder filter = null;
            string sql = UpdateRow();
            filter = new QueryBuilder(sql);
            filter.addSoPhieu("CT." + CHUONG_TRINH.MA_CT, MaCT.Text);
            filter.addLike("LOWER(CT." + CHUONG_TRINH.NOI_DUNG + ")", NoiDung.Text.ToLower());
            filter.addLike("LOWER(CT." + CHUONG_TRINH.TEN_GOC + ")", TenGoc.Text.ToLower());
            filter.addLike("LOWER(CT." + CHUONG_TRINH.CATEGORY + ")", Category.Text.ToLower());
            AppCtrl.addID(filter, "CT." + CHUONG_TRINH.TIET_MUC, TietMuc);
            AppCtrl.addID(filter, "CT." + CHUONG_TRINH.NUOC_SAN_XUAT, NuocSX);
            AppCtrl.addFilterFromTo(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGAY_NHAP, ngayNhap);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.PHONG_BAN, PhongBan);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGUOI_NHAP, NguoiNhap);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.POST_MASTER_ID, PostMaster);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.LOAI_LUU_TRU, LoaiLuuTru);

            filter.addCondition("1=1");
            if (this.ASCSortClause != "")
                filter.setAscOrderBy(ASCSortClause);
            if (this.DESCSortClause != "")
                filter.setDescOrderBy(DESCSortClause);
            return filter;
        }
示例#5
0
        public override QueryBuilder PLBuildQueryFilter()
        {
            QueryBuilder filter = new QueryBuilder(UpdateRow());
            filter.addLike("LOWER(" + KE_HOACH_LPS.MA_KHLPS + ")", MaKeHoach.Text.ToLower());
            filter.addLike("LOWER(" + KE_HOACH_LPS.TEN_KE_HOACH + ")", TenKeHoach.Text.ToLower());
            AppCtrl.addID(filter, KE_HOACH_LPS.NGUOI_LAP, NguoiLap);
            AppCtrl.addID(filter, KE_HOACH_LPS.KENH_PHAT, kenhPhat);
            AppCtrl.addFilterFromTo(filter, KE_HOACH_LPS.NGAY_LAP, NgayLap);
            AppCtrl.addID(filter, CHUONG_TRINH.PHONG_BAN, PhongBan);

            filter.addCondition("1=1");
            filter.setDescOrderBy(this.DESCSortClause);
            return filter;
        }
 public override QueryBuilder PLBuildQueryFilter()
 {
     DataSet ds;
     if (!checkTin_noi_bat.Checked)
     {
         QueryBuilder query = new QueryBuilder
         (
             " SELECT ID,PRIOR,TT.NHOM_TIN,TIEU_DE, NGAY_CAP_NHAT,TT.NGUOI_CAP_NHAT,NHOM_TIN,DUYET," +
             " CASE WHEN PRIOR='Y' THEN 'Tin tức nổi bật' ELSE NULL END TIN_NOI_BAT" +
             " FROM TIN_TUC TT WHERE 1=1"
         );
         query.addID("NHOM_TIN", PLNhomTT._getSelectedID());
         query.addDateFromTo("NGAY_CAP_NHAT", dateTungay.DateTime, dateDenngay.DateTime);
         query.setDescOrderBy("NGAY_CAP_NHAT");
         if (DATinTuc.Instance.getNguoiDuyet(DATinTuc.quyenDuyet).Contains(FrameworkParams.currentUser.employee_id))
             query.addDuyet(PLDBUtil.FIELD_DUYET, DuyetSelect.layTrangThai());
         else
             query.addCondition(string.Format("{0} = 2 or NGUOI_CAP_NHAT = {1}", PLDBUtil.FIELD_DUYET, FrameworkParams.currentUser.employee_id));
         ds = DABase.getDatabase().LoadDataSet(query);
         barSubItem1.Enabled = ds.Tables[0].Rows.Count > 0;
         gridControlMaster.DataSource = ds.Tables[0];
         HookFocusRow();
     }
     else
     {
         ds = DATinTuc.Instance.Get_5_tin(PLNhomTT._getSelectedID(), dateTungay.DateTime, dateDenngay.DateTime,DuyetSelect);
         barSubItem1.Enabled = ds.Tables[0].Rows.Count > 0;
         gridControlMaster.DataSource = ds.Tables[0];
         HookFocusRow();
     }
     if (ds.Tables[0].Rows.Count == 0)
     {
         this.ThongTinNoiBat(null, null);
         barButtonItemDuyet.Enabled = false;
         barButtonItemK_Duyet.Enabled = false;
     }
     return null;
 }
        public void SetNext()
        {
            //LockControls = false;
            string idT = GetIDsThu();
            _doLichPhatSong = DALichPhatSongNew.I.LoadAll(-2);

            _rootLichPhatSong = null;
            _isAdd = true;
            btnCreateDetail.Text = "Tạo chi tiết LPS  >>";

            var qr = new QueryBuilder(@"select first 1 ngay_phat_song from ql_lich_phat_song_ct lpsct
                 inner join ql_lich_phat_song lps on lps.lps_id=lpsct.lps_id
                where extract(weekday from ngay_phat_song) in(" + idT + ") and 1=1");
            qr.add(QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG, Operator.GreaterEqual, NgayPhatCuoi.DateTime, DbType.DateTime);
            qr.addID("lps." + QL_LICH_PHAT_SONG.KENH_PHAT, KenhPhat._getSelectedID());
            qr.add(string.Format("extract(hour from {0})", "LPS." + QL_LICH_PHAT_SONG.GIO_PHAT_SONG), Operator.Equal, GioPhat.Time.Hour, DbType.Int32);
            qr.add(string.Format("extract(minute from {0})", "LPS." + QL_LICH_PHAT_SONG.GIO_PHAT_SONG), Operator.Equal, GioPhat.Time.Minute, DbType.Int32);
            qr.setDescOrderBy(QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG);
            var ds = HelpDB.getDatabase().LoadDataSet(qr);
            var thus = AppCtrl.GetThuTrongTuan(ThuTrongTuan._getSelectedIDs());
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                NgayBatDau.DateTime = AppCtrl.GetNextDate((DateTime)ds.Tables[0].Rows[0][0], thus);
            }

            else
                NgayBatDau.DateTime = AppCtrl.GetNextDate(NgayPhatCuoi.DateTime, thus);

            _replaceType = ReplaceType.NONE;
            NgayPhatCuoi.EditValue = null;
            SoNgayPhat.EditValue = null;
            GhiChu.Text = "";
            NoiDung._setSelectedID(-1);
            TenGoc.Text = "";
            Category.Text = "";
            TongTapPhat.EditValue = null;
            TongTapCT.EditValue = null;
            NuocSX._setSelectedIDs(new long[] { -1 });
            NamSX.EditValue = null;
            TietMuc._setSelectedID(-1);
            PostMaster._setSelectedID(-1);
            ThoiLuong.Text = "";
            // LockControls = false;
            _dsDetail.Clear();
            gridControlDetail.DataSource = _dsDetail.Tables[0];
            btnNext.Enabled = false;
            btnDelete.Enabled = false;
            btnCopy.Enabled = false;
            Title.Text = "TẠO MỚI LỊCH PHÁT SÓNG";
            ColStart.Visible = false;

            NgayBatDau.Properties.ReadOnly = false;
            KenhPhat.MainCtrl.Properties.ReadOnly = false;
            ThuTrongTuan.Properties.ReadOnly = false;
            GioPhat.Properties.ReadOnly = false;

            _error.ClearErrors();
            groupBox1.Visible = false;
        }
 /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
 /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
 /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
 /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
 /// phải có cột là DUYET_BIT
 /// </summary>
 public override QueryBuilder PLBuildQueryFilter()
 {
     QueryBuilder query =  new QueryBuilder(UpdateRow());
     query.addSoPhieu("LOWER(" + BANG_GIA_BUDGET.MA_BGBG + ")", MaKeHoach.Text.ToLower());
     AppCtrl.addID(query, BANG_GIA_BUDGET.NGUOI_LAP, NguoiLap);
     AppCtrl.addFilterFromTo(query, BANG_GIA_BUDGET.NGAY_LAP, NgayLap);
     AppCtrl.addID(query, BANG_GIA_BUDGET.NGUOI_CAP_NHAT, NguoiXoa);
     AppCtrl.addFilterFromTo(query, BANG_GIA_BUDGET.NGAY_CAP_NHAT,NgayXoa);
     query.addCondition("1=1");
     query.setDescOrderBy(this.DESCSortClause);
     return query;
 }
        /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
        /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
        /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
        /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
        /// phải có cột là DUYET_BIT
        /// </summary>
        public override QueryBuilder PLBuildQueryFilter()
        {
            error.ClearErrors();
            gridViewMaster.ClearGrouping();
            if (TruongCap1.Text != string.Empty)
            {
                gridViewMaster.Columns[(int)TruongCap1._getSelectedID()].Group();
                gridViewMaster.Columns[(int)TruongCap1._getSelectedID()].Visible = false;
            }

            if (TruongCap2.Text != string.Empty)
            {
                if (TruongCap2.Text != TruongCap1.Text)
                {
                    gridViewMaster.Columns[(int)TruongCap2._getSelectedID()].Group();
                    gridViewMaster.Columns[(int)TruongCap2._getSelectedID()].Visible = false;
                }
                else TruongCap2.SetError(error, "Trường thống kê này đã được sử dụng!");
            }
            if (TruongCap3.Text != string.Empty)
            {
                if (TruongCap3.Text != TruongCap1.Text && TruongCap3.Text != TruongCap2.Text)
                {
                    gridViewMaster.Columns[(int)TruongCap3._getSelectedID()].Group();
                    gridViewMaster.Columns[(int)TruongCap3._getSelectedID()].Visible = false;
                }
                else TruongCap3.SetError(error, "Trường thống kê này đã được sử dụng!");
            }

            QueryBuilder filter = new QueryBuilder(UpdateRow());
            filter.addSoPhieu(BIEN_MUC.MA_BANG, MaBang.Text);
            filter.addLike("LOWER(" + BIEN_MUC.NOI_DUNG + ")", NoiDung.Text.ToLower());
            filter.addID(BIEN_MUC.SO_DKCB_HD, SoDKHDCB._getSelectedIDs());
            filter.addID(BIEN_MUC.TIET_MUC, TietMuc._getSelectedIDs());
            filter.addID(BIEN_MUC.LOAI_LUU_TRU, LoaiBang._getSelectedIDs());
            filter.addIn(BIEN_MUC.POST_MASTER, AppCtrl.GetCheckedValues(TinhTrang, true));
            filter.addID(BIEN_MUC.DON_VI_CUNG_CAP, DonViCungCap._getSelectedIDs());
            filter.addID(BIEN_MUC.DON_VI_SO_HUU, DonViSoHuu._getSelectedIDs());
            filter.addDateFromTo(BIEN_MUC.NGAY_NHAP, ngayNhap.FromDate, ngayNhap.ToDate);
            long[] IDs = QuocGia._getSelectedIDs();
            if (IDs.Length > 0 && IDs.Length < QuocGia.Properties.GetItems().Count)
            {
                string cond = "(";
                foreach (long id in IDs)
                {
                    cond += BIEN_MUC.NUOC_SAN_XUAT + " like '%," + id + "' or " + BIEN_MUC.NUOC_SAN_XUAT + " like '" + id + ",%' or " + BIEN_MUC.NUOC_SAN_XUAT + " like '%," + id + ",%' or ";
                }
                cond = cond.TrimEnd(' ', 'r', 'o');
                cond = cond += ")";
                filter.addCondition(cond);
            }
            filter.addCondition("1=1");
            filter.setDescOrderBy(BIEN_MUC.NGAY_CAP_NHAT);
            return filter;
        }
示例#10
0
        public override QueryBuilder PLBuildQueryFilter()
        {
            FWWaitingMsg msg = new FWWaitingMsg();
            if (dtRecipient == null) dtRecipient = HelpDB.getDatabase().LoadDataSet("SELECT ID,NAME FROM DM_NHAN_VIEN").Tables[0];
            QueryBuilder query = new QueryBuilder(UpdateRow());

            StringBuilder cond = new StringBuilder("");
            if (cmbNguoiYC._getSelectedID() != -1) cond.Append(string.Format("YC.NGUOI_GUI_ID = {0}", cmbNguoiYC._getSelectedID()));
            long[] arrNguoiNhan = cmbNguoiNhan._SelectedIDs;
            if (arrNguoiNhan.Length > 0 && cond.Length > 0) cond.Append(" OR ");
            int temp = arrNguoiNhan.Length;
            foreach (long id in arrNguoiNhan)
            {
                cond.Append(string.Format(@"(YC.NGUOI_NHAN_ID LIKE '{0}%')
                        OR (YC.NGUOI_NHAN_ID LIKE '%,{0},%') OR (YC.NGUOI_NHAN_ID LIKE '%,{0}')
                        OR (YCTL.NGUOI_NHAN_ID LIKE '{0}%')
                        OR (YCTL.NGUOI_NHAN_ID LIKE '%,{0},%') OR (YCTL.NGUOI_NHAN_ID LIKE '%,{0}')", id));
                temp--;
                if (temp > 0)
                {
                    cond.Append(" OR ");
                }
            }
            if (cond.Length > 0)
            {
                query.addCondition(cond.ToString());
            }
            if (mruEditYeuCau.Text.Trim() != "" && mruEditYeuCau.Text.Trim() != null)
            {
                query.addCondition(string.Format("CHU_DE = '{0}'", mruEditYeuCau.Text.Trim()));
            }
            if (PLMucuutien._getSelectedID() != -1)
                query.add("MUC_UU_TIEN", Operator.Equal,PLMucuutien._getSelectedID() , DbType.Int32);
            if (PLTinhtrang._getSelectedID() != -1)
                query.add("TINH_TRANG", Operator.Equal, PLTinhtrang._getSelectedID(), DbType.Int32);

            query.addDateFromTo("YC.NGAY_GUI", ngayLamViec.FromDate, ngayLamViec.ToDate);
            query.setDescOrderBy("YC.NGAY_GUI");
            DataSet ds = HelpDB.getDatabase().LoadDataSet(query);
            foreach (DataRow  row in ds.Tables[0].Rows)
                row["NGUOI_NHAN"] = GetNameOfRecipient(row["NGUOI_NHAN_ID"].ToString());
            gridControlMaster.DataSource = ds.Tables[0];
            msg.Finish();
            return null;
        }
示例#11
0
 public override QueryBuilder PLBuildQueryFilter()
 {
     QueryBuilder filter = new QueryBuilder(UpdateRow());
     filter.addID("NLV.NV_ID", PLNhanVien._getSelectedID());
     filter.addCondition("NLV.LOAI=" + (Int32)TimeInOutType.NghiPhep);
     filter.addDateFromTo("NLV.NGAY_LAM_VIEC", TuNgay.DateTime, DenNgay.DateTime);
     filter.setDescOrderBy("NLV.NGAY_LAM_VIEC");
     filter.setAscOrderBy("NV.TEN_NV");
     filter.addDuyet(PLDBUtil.FIELD_DUYET, DuyetSelect.layTrangThai());
     return filter;
 }
 public override QueryBuilder PLBuildQueryFilter()
 {
     PLOptions.ReSetData();
     QueryBuilder filter = new QueryBuilder(UpdateRow());
     filter.addID("NLV.NV_ID", PLNhanVien._getSelectedID());
     if (this.getISChamCong().Length == 3)
         filter.addCondition("(IS_CHAM_CONG in ('Y','N','') or IS_CHAM_CONG is null )");
     else
         filter.addIn("IS_CHAM_CONG", this.getISChamCong());
     StringBuilder s_condition = new StringBuilder("");
     if (chkDi_tre.Checked)
         s_condition.Append("GIO_BAT_DAU>='" + PLOptions.GIO_DI_TRE.TimeOfDay.ToString() + "'");
     if (chkVe_som.Checked && chkDi_tre.Checked)
         s_condition.Append("OR GIO_KET_THUC<CASE WHEN EXTRACT(WEEKDAY FROM NLV.NGAY_LAM_VIEC)=6 THEN '" + PLOptions.GIO_NGHI_TRUA.TimeOfDay.ToString() + "' ELSE '" + PLOptions.GIO_VE_SOM.TimeOfDay.ToString() + "' END");
     else if (chkVe_som.Checked)
         s_condition.Append("GIO_KET_THUC<CASE WHEN EXTRACT(WEEKDAY FROM NLV.NGAY_LAM_VIEC)=6 THEN '" + PLOptions.GIO_NGHI_TRUA.TimeOfDay.ToString() + "' ELSE '" + PLOptions.GIO_VE_SOM.TimeOfDay.ToString() + "' END");
     if (s_condition.Length > 0)
         filter.addCondition(s_condition.ToString());
     filter.addDateFromTo("NLV.NGAY_LAM_VIEC", TuNgay.DateTime, DenNgay.DateTime);
     filter.setDescOrderBy("NLV.NGAY_LAM_VIEC");
     filter.setAscOrderBy("NV.TEN_NV");
     return filter;
 }
 public override QueryBuilder PLBuildQueryFilter()
 {
     AppCtrl.DisplayTheoTuyBienCot(gridViewMaster, repositoryItemCheckedCotHienThi);
     //if (repositoryItemCheckedCotHienThi.GetCheckedItems().ToString() != string.Empty)
     //{
     //    if (colKenhPhat.Visible) colKenhPhat.Group();
     //    if (colNgay.Visible) colNgay.Group();
     //    if (colTietMuc.Visible) colTietMuc.Group();
     //}
     QueryBuilder filter = new QueryBuilder(UpdateRow());
     AppCtrl.addID(filter,LichPhatSong.KENH_PHAT,kenhPhat);
     AppCtrl.addFilterFromTo(filter,LichPhatSong.NGAY_PHAT_SONG, ngayNhap);
     filter.setDescOrderBy(LichPhatSong.NGAY_PHAT_SONG);
     filter.setAscOrderBy(LichPhatSong.GIO_PHAT_SONG);
     filter.addCondition("1=1");
     return filter;
 }
 public override QueryBuilder PLBuildQueryFilter()
 {
     FWWaitingMsg msg = new FWWaitingMsg();
     QueryBuilder filter = new QueryBuilder(UpdateRow());
     filter.addID("NLV.NV_ID", NhanVien._getSelectedID());
     if (this.getISChamCong().Length == 3)
         filter.addCondition("(IS_CHAM_CONG in ('Y','N','') or IS_CHAM_CONG is null )");
     else
         filter.addIn("IS_CHAM_CONG", this.getISChamCong());
     if (chkBinhThuong.Checked ==  true &&
         chkDi_tre.Checked == true && chkVe_som.Checked == true) goto Nhan;
     StringBuilder s_condition = new StringBuilder("");
     if (chkDi_tre.Checked)
         s_condition.Append("GIO_BAT_DAU>='" + AppGetSysParam.GetGIO_BAT_DAU_SANG.ToString() + "'");
     if (chkVe_som.Checked && chkDi_tre.Checked)
         s_condition.Append(" OR GIO_KET_THUC<CASE WHEN EXTRACT(WEEKDAY FROM NLV.NGAY_LAM_VIEC)=6 THEN '" + AppGetSysParam.GetGIO_KET_THUC_SANG.ToString() + "' ELSE '" + ((DateTime)frmAppParamsHelp.GetThamSo("GIO_KET_THUC_CHIEU")).TimeOfDay.ToString() + "' END");
     else if (chkVe_som.Checked)
         s_condition.Append("GIO_KET_THUC<CASE WHEN EXTRACT(WEEKDAY FROM NLV.NGAY_LAM_VIEC)=6 THEN '" + AppGetSysParam.GetGIO_KET_THUC_SANG.ToString() + "' ELSE '" + ((DateTime)frmAppParamsHelp.GetThamSo("GIO_KET_THUC_CHIEU")).TimeOfDay.ToString() + "' END");
     if (s_condition.Length > 0)
     {
         if (chkBinhThuong.Checked)
             s_condition.Append(" OR (GIO_BAT_DAU<'" + AppGetSysParam.GetGIO_BAT_DAU_SANG.ToString() + "' AND GIO_KET_THUC >=CASE WHEN EXTRACT(WEEKDAY FROM NLV.NGAY_LAM_VIEC)=6 THEN '" + AppGetSysParam.GetGIO_KET_THUC_SANG.ToString() + "' ELSE '" + ((DateTime)frmAppParamsHelp.GetThamSo("GIO_KET_THUC_CHIEU")).TimeOfDay.ToString() + "'END)");
     }
     else {
         if (chkBinhThuong.Checked)
             s_condition.Append("(GIO_BAT_DAU<'" + AppGetSysParam.GetGIO_BAT_DAU_SANG.ToString() + "' AND GIO_KET_THUC >=CASE WHEN EXTRACT(WEEKDAY FROM NLV.NGAY_LAM_VIEC)=6 THEN '" + AppGetSysParam.GetGIO_KET_THUC_SANG.ToString() + "' ELSE '" + ((DateTime)frmAppParamsHelp.GetThamSo("GIO_KET_THUC_CHIEU")).TimeOfDay.ToString() + "' END)");
     }
     filter.addCondition(s_condition.ToString());
     //if (this.chkDi_tre.Checked || chkVe_som.Checked)
         //filter.addID("LOAI", 1);
     Nhan:
     if (ngayLamViec.Types != SelectionTypes.None)
         filter.addDateFromTo("NLV.NGAY_LAM_VIEC", ngayLamViec.FromDate, ngayLamViec.ToDate);
     filter.setDescOrderBy("NLV.NGAY_LAM_VIEC");
     filter.setAscOrderBy("NAME");
     msg.Finish();
     return filter;
 }
        /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
        /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
        /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
        /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
        /// phải có cột là DUYET_BIT
        /// </summary>
        public override QueryBuilder PLBuildQueryFilter()
        {
            if (isAdvance)
            {
                try
                {

                    //if (filterControl1.FilterString != "")
                    //    filterControl1.FilterCriteria = PrepairFilter(filterControl1.FilterCriteria);
                    FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1);
                    SQLDATA sqlData = fch.GetSQLFilter(true, true);
                    DataSet ds = null;
                    if (sqlData.Filters != "")
                    {

                        ds = filterCase.DataSetFilterFromDatabase(sqlData, "category, noi_dung");
                    }
                    else
                    {
                        QueryBuilder query = new QueryBuilder(UpdateRow());
                        query.addCondition("1=1");
                        if (this.ASCSortClause != "")
                            query.setAscOrderBy(ASCSortClause);
                        if (this.DESCSortClause != "")
                            query.setDescOrderBy(DESCSortClause);
                        ds = HelpDB.getDatabase().LoadDataSet(query);
                    }
                    if (ds != null && ds.Tables.Count > 0)
                    {
                        gridControlMaster.DataSource = ds.Tables[0];
                        // filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.NGAY_PHAT_DAU_TIEN]);
                        //filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.THOI_HAN_BAN_QUYEN_DISPLAY]);

                    }
                }
                catch
                {

                }
                return null;

            }
            else
            {
                QueryBuilder filter = null;
                string sql = UpdateRow();
                filter = new QueryBuilder(sql);
                filter.addSoPhieu("CT." + CHUONG_TRINH.MA_CT, MaCT.Text);
                filter.addLike("LOWER(CT." + CHUONG_TRINH.NOI_DUNG + ")", NoiDung.Text.ToLower());
                AppCtrl.addID(filter, "CT." + CHUONG_TRINH.TIET_MUC, TietMuc);
                AppCtrl.addFilterFromTo(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGAY_NHAP, ngayNhap);
                AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.PHONG_BAN, PhongBan);
                AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGUOI_NHAP, NguoiNhap);
                AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.POST_MASTER_ID, PostMaster);
                AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.LOAI_LUU_TRU, LoaiLuuTru);
                if (!SoDKCBHD._IsNotCheckAnyOrCheckedAll)
                {
                    filter.addCondition("exists(select chd.ctpm_hd_id from chuong_trinh_post_Master_hd chd where chd.ctpm_id=pm.ctpm_id and chd.so_dkcb_hd in " + SoDKCBHD._getStrSelectedIDs() + ")");
                }

                string w2 = "";
                if (TapSoTu.Value > 0)
                {
                    w2 += " AND bm.tap_so >= " + TapSoTu.Value;
                }
                if (TapSoDen.Value > 0)
                {
                    w2 += " AND bm.tap_so <=" + TapSoDen.Value;
                }

                if (TenTap.Text.Trim() != "")
                {
                    w2 += " AND lower(bm.ten_tap) like '%" + TenTap.Text.Trim().ToLower() + "%'";
                }

                if (w2 != "")
                {
                    filter.addCondition(string.Format("exists(select bm.bm_id from bien_muc bm where (is_delete='N' or is_delete is null) and bm.ctpm_id=pm.ctpm_id {0})", w2));
                }
                filter.addCondition("1=1");
                if (this.ASCSortClause != "")
                    filter.setAscOrderBy(ASCSortClause);
                if (this.DESCSortClause != "")
                    filter.setDescOrderBy(DESCSortClause);
                return filter;
            }
        }
 public override QueryBuilder PLBuildQueryFilter()
 {
     QueryBuilder filter = null;
     string sql = @"select ctccv_id,(select name from dm_loai_cong_viecn lcv where lcv.id=ctcv.lcv_id) TEN_CV,
     nv.ten_nv NHANVIEN,
     ctcv.ngay_lam_viec,ctcv.ngay_cap_nhat,ctcv.lcv_id,ctcv.nv_id,ctcv.mo_ta,ctcv.thoi_gian_thuc_hien,ctcv.duyet
     from chi_tiet_cong_viec ctcv inner join dm_nhan_vien nv on nv.id=ctcv.nv_id
     where nv.visible_bit='Y' and  1=1";
     filter = new QueryBuilder(sql);
     filter.addID("LCV_ID", Loai_Cv._getSelectedID());
     filter.addID("NV_ID", Nhan_vien._getSelectedID());
     filter.addDateFromTo("NGAY_LAM_VIEC", TuNgay.DateTime, DenNgay.DateTime);
     filter.addDuyet("DUYET", DuyetSelect.layTrangThai());
     filter.addGroupBy("ctccv_id,lcv_id,nv.ten_nv,ngay_lam_viec,ngay_cap_nhat,nv_id,mo_ta,thoi_gian_thuc_hien,duyet");
     filter.setDescOrderBy("NGAY_LAM_VIEC");
     DataSet ds = DABase.getDatabase().LoadDataSet(filter);
     gridControlMaster.DataSource = ds.Tables[0];
     return null;
 }
示例#17
0
        /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
        /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
        /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
        /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
        /// phải có cột là DUYET_BIT
        /// </summary>
        public override QueryBuilder PLBuildQueryFilter()
        {
            QueryBuilder filter = null;
            string sql = UpdateRow();
            filter = new QueryBuilder(sql);
            filter.addSoPhieu("CT."+CHUONG_TRINH.MA_CT, MaCT.Text);
            filter.addLike("LOWER(CT." + CHUONG_TRINH.NOI_DUNG + ")", NoiDung.Text.ToLower());
            AppCtrl.addID(filter, "CT." + CHUONG_TRINH.TIET_MUC, TietMuc);
            AppCtrl.addFilterFromTo(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGAY_NHAP, ngayNhap);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.PHONG_BAN, PhongBan);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.NGUOI_NHAP, NguoiNhap);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.POST_MASTER_ID, PostMaster);
            AppCtrl.addID(filter, "PM." + CHUONG_TRINH_POST_MASTER.LOAI_LUU_TRU, LoaiLuuTru);
            if (!SoDKCBHD._IsNotCheckAnyOrCheckedAll)
            {
                filter.addCondition("exists(select chd.ctpm_hd_id from chuong_trinh_post_Master_hd chd where chd.ctpm_id=pm.ctpm_id and chd.so_dkcb_hd in " + SoDKCBHD._getStrSelectedIDs() + ")");
            }

            string w2 = "";
            if (TapSoTu.Value > 0)
            {
                w2 += " AND bm.tap_so >= " + TapSoTu.Value;
            }
            if (TapSoDen.Value > 0)
            {
                w2 += " AND bm.tap_so <=" + TapSoDen.Value;
            }

            if (TenTap.Text.Trim() != "")
            {
                w2 += " AND lower(bm.ten_tap) like '%" + TenTap.Text.Trim().ToLower() + "%'";
            }

            if (w2 != "")
            {
                filter.addCondition(string.Format("exists(select bm.bm_id from bien_muc bm where (is_delete='N' or is_delete is null) and bm.ctpm_id=pm.ctpm_id {0})", w2));
            }
            filter.addCondition("1=1");
            if (this.ASCSortClause != "")
                filter.setAscOrderBy(ASCSortClause);
            if (this.DESCSortClause != "")
                filter.setDescOrderBy(DESCSortClause);
            return filter;
        }
        public override QueryBuilder PLBuildQueryFilter()
        {
            var query = new QueryBuilder(UpdateRow());
            query.addLike("LOWER(" + TNS_PROGRAMS_GRID_SCR.NAME + ")", TenNguon.Text.ToLower());
            query.addLike("LOWER(" + TNS_PROGRAMS_GRID_SCR.FILE_NAME + ")", TenFile.Text.ToLower());
            AppCtrl.addID(query, TNS_PROGRAMS_GRID_SCR.NGUOI_TAO, NguoiLap);
            AppCtrl.addFilterFromTo(query, TNS_PROGRAMS_GRID_SCR.NGAY_TAO, NgayLap);
            query.addDateFromTo(TNS_PROGRAMS_GRID_SCR.TU_NGAY, StartDateFrom.DateTime, StartDateTo.DateTime);
            query.addDateFromTo(TNS_PROGRAMS_GRID_SCR.DEN_NGAY, EndDateFrom.DateTime, EndDateTo.DateTime);

            query.addCondition("1=1");
            query.setDescOrderBy(this.DESCSortClause);
            return query;
        }
        public override QueryBuilder PLBuildQueryFilter()
        {
            FWWaitingMsg wait = new FWWaitingMsg();
            //Viết theo cách này không áp dụng tìm kiếm nâng cao được
            QueryBuilder query = new QueryBuilder(UpdateRow());
            query.addID("PC.LCV_ID", LoaiCV._getSelectedID());
            if (mruEditTenCongViec.Text.Trim() != "" && mruEditTenCongViec.Text.Trim() != null)
            {
                query.addCondition(string.Format("PC.CONG_VIEC = '{0}'", mruEditTenCongViec.Text.Trim()));
            }
            StringBuilder cond = new StringBuilder("");
            if (NhanVien._getSelectedID() != -1) cond.Append(string.Format("NGUOI_GIAO = {0}", NhanVien._getSelectedID()));
            long [] NTH_ID=NguoiThucHien._SelectedIDs;
            if (NTH_ID.Length > 0 && cond.Length > 0) cond.Append(" OR ");
            int temp = NTH_ID.Length;
            foreach (long id in NTH_ID)
            {
                cond.Append("CT.MA_NV = " + id + "");
                temp--;
                if (temp > 0)
                {
                    cond.Append(" OR ");
                }
            }
            if (cond.Length > 0)
            {
                query.addCondition(cond.ToString());
            }
            query.addID("TINH_TRANG", Tinhtrang._getSelectedID());
            query.addID("MUC_UU_TIEN", cmbDoUuTien._getSelectedID());
            query.setDescOrderBy("PC.NGAY_BAT_DAU");
            query.addDateFromTo("PC.NGAY_BAT_DAU", ngayLamViec.FromDate, ngayLamViec.ToDate);
            GridDataSet = HelpDB.getDatabase().LoadDataSet(query);
            GridDataSet.Tables[0].Columns.Add("NV_THAM_GIA");
            //DataSet dùng cho việc tính tiến độ công việc
            string sql = @"SELECT C.PCCV_ID,PHAN_TRAM_THAM_GIA,MAX(TIEN_DO) TIEN_DO,T.TONG_PHAN_TRAM
                            FROM CHI_TIET_PHAN_CONG C,
                            (SELECT PCCV_ID,SUM(PHAN_TRAM_THAM_GIA) TONG_PHAN_TRAM
                                FROM CHI_TIET_PHAN_CONG WHERE TIEN_DO = 0 GROUP BY PCCV_ID) T
                                    WHERE TIEN_DO > 0 AND T.PCCV_ID = C.PCCV_ID AND
                                    C.THOI_GIAN_CAP_NHAT IN (SELECT MAX(CT.THOI_GIAN_CAP_NHAT) FROM CHI_TIET_PHAN_CONG CT WHERE CT.PCCV_ID=T.PCCV_ID GROUP BY CT.MA_NV)
                                          GROUP BY C.PCCV_ID,C.MA_NV,PHAN_TRAM_THAM_GIA,T.TONG_PHAN_TRAM";
            DataSet ds = HelpDB.getDatabase().LoadDataSet(sql);

            foreach (DataRow dr in GridDataSet.Tables[0].Rows)
            {
                String ten = "";
                String sqlString = "SELECT CT.MA_NV, NV.NAME, CT.PHAN_TRAM_THAM_GIA FROM CHI_TIET_PHAN_CONG CT, DM_NHAN_VIEN NV WHERE CT.MA_NV = NV.ID AND CT.PCCV_ID = " + dr["PCCV_ID"].ToString() + " GROUP BY MA_NV,NAME, PHAN_TRAM_THAM_GIA";
                DataTable dt = HelpDB.getDatabase().LoadDataSet(sqlString).Tables[0];
                foreach (DataRow row in dt.Rows)
                {
                    if (ten == "")
                        ten = ten + row["NAME"].ToString() + " (" + row["PHAN_TRAM_THAM_GIA"].ToString() + "%)";
                    else
                        ten = ten + "\n" + row["NAME"].ToString() + " (" + row["PHAN_TRAM_THAM_GIA"].ToString() + "%)";
                }
                dr["NV_THAM_GIA"] = ten;
                //Tính giá trị cho cột tính độ dựa vào DataSet (ds) ở trên
                long tam=HelpNumber.ParseInt64(dr["PCCV_ID"]);
                DataRow[] arrRow = ds.Tables[0].Select(string.Format("PCCV_ID = {0}", HelpNumber.ParseInt64(dr["PCCV_ID"])));
                decimal tongTienDo = 0;
                foreach (DataRow row in arrRow)
                    tongTienDo += (HelpNumber.ParseInt64(row["TIEN_DO"]) * HelpNumber.ParseInt64(row["PHAN_TRAM_THAM_GIA"]));
                if (arrRow.Length > 0) HelpNumber.RoundDecimal(tongTienDo /= HelpNumber.ParseInt64(arrRow[0]["TONG_PHAN_TRAM"]),2);
                dr["TONG_TIEN_DO"] = tongTienDo.ToString() + "%";
            }
            try
            {
                if (GridDataSet != null && GridDataSet.Tables[0].Rows.Count > 0)
                {
                    gridControlMaster.DataSource = GridDataSet.Tables[0];
                    splitContainerControl1.SplitterPosition = 171;
                }
                else
                {
                    gridControlMaster.DataSource = null;
                }
            }
            catch
            {}
            wait.Finish();
            return null;
        }
        public override QueryBuilder PLBuildQueryFilter()
        {
            FWWaitingMsg msg = new FWWaitingMsg();
            DataSet ds = new DataSet();
            long nhom_tin = PLNhomTT._getSelectedID();
            Feature fQuanTri = Permission.loadFeature(AppPermission.FQuanTriTinTuc.id
                , AppPermission.FQuanTriTinTuc.featureName, FrameworkParams.currentUser.username);
            if (!checkTin_noi_bat.Checked)
            {
                //Lấy tin nổi bật đã được duyệt.

                QueryBuilder query = new QueryBuilder
                    (
                        @" SELECT ID,PRIOR,NHOM_TIN,TIEU_DE, NGAY_CAP_NHAT,NGUOI_CAP_NHAT,DUYET, CASE WHEN SO_NGAY_HIEU_LUC > 0 THEN DATEADD(DAY,SO_NGAY_HIEU_LUC,NGAY_CAP_NHAT) ELSE NULL END AS NGAY_HIEU_LUC,
                     CASE WHEN PRIOR='Y' THEN 'Tin tức nổi bật' ELSE NULL END TIN_NOI_BAT
                     FROM TIN_TUC  WHERE PRIOR = 'Y' AND DUYET = '2' AND 1=1"
                    );
                query.addDateFromTo("NGAY_CAP_NHAT", ngay.FromDate, ngay.ToDate);
                if (fQuanTri.isRead)//(DATinTuc.Instance.getNguoiDuyet(DATinTuc.quyenDuyet).Contains(FrameworkParams.currentUser.employee_id))
                    query.addDuyet(PLConst.FIELD_DUYET, DuyetSelect.layTrangThai());
                else
                    query.addCondition(string.Format("1=1 or NGUOI_CAP_NHAT = {0}", FrameworkParams.currentUser.employee_id));
                query.addCondition("NHOM_TIN IN (SELECT ID FROM DM_NHOM_TIN_TUC WHERE VISIBLE_BIT ='Y')");
                ds = TinTucPermission.I._LoadDataSetWithResGroupPermission(query, "NHOM_TIN", nhom_tin);

                //Lấy tin mới nhất đã được duyệt.
                QueryBuilder query1 = new QueryBuilder
                    (
                        @" SELECT ID,PRIOR,NHOM_TIN,TIEU_DE, NGAY_CAP_NHAT,NGUOI_CAP_NHAT,DUYET,CASE WHEN SO_NGAY_HIEU_LUC > 0 THEN DATEADD(DAY,SO_NGAY_HIEU_LUC,NGAY_CAP_NHAT) ELSE NULL END AS NGAY_HIEU_LUC,
                     CASE WHEN PRIOR='Y' THEN 'Tin tức nổi bật' ELSE NULL END TIN_NOI_BAT
                     FROM TIN_TUC  WHERE PRIOR = 'N' AND DUYET = '2'
                     AND NGAY_CAP_NHAT = (SELECT MAX(NGAY_CAP_NHAT)
                                            FROM TIN_TUC
                                            WHERE PRIOR = 'N' AND DUYET = '2')
                     AND 1=1"
                    );
                query1.addDateFromTo("NGAY_CAP_NHAT", ngay.FromDate, ngay.ToDate);
                query1.addCondition("NHOM_TIN IN (SELECT ID FROM DM_NHOM_TIN_TUC WHERE VISIBLE_BIT ='Y')");
                if (fQuanTri.isRead)//(DATinTuc.Instance.getNguoiDuyet(DATinTuc.quyenDuyet).Contains(FrameworkParams.currentUser.employee_id))
                    query1.addDuyet(PLConst.FIELD_DUYET, DuyetSelect.layTrangThai());
                else
                    query1.addCondition(string.Format("1=1 or NGUOI_CAP_NHAT = {0}", FrameworkParams.currentUser.employee_id));
                DataTable dtTT_Max = TinTucPermission.I._LoadDataSetWithResGroupPermission(query1, "NHOM_TIN", nhom_tin).Tables[0];

                //Lấy các tin còn lại
                QueryBuilder query2 = new QueryBuilder
                    (
                        @" SELECT ID,PRIOR,NHOM_TIN,TIEU_DE, NGAY_CAP_NHAT,NGUOI_CAP_NHAT,DUYET,CASE WHEN SO_NGAY_HIEU_LUC > 0 THEN DATEADD(DAY,SO_NGAY_HIEU_LUC,NGAY_CAP_NHAT) ELSE NULL END AS NGAY_HIEU_LUC,
                     CASE WHEN PRIOR='Y' THEN 'Tin tức nổi bật' ELSE NULL END TIN_NOI_BAT
                     FROM TIN_TUC  WHERE NGAY_CAP_NHAT <> (SELECT MAX(NGAY_CAP_NHAT)
                                            FROM TIN_TUC
                                            WHERE PRIOR = 'N' AND DUYET = '2')
                     AND 1=1"
                    );
                query2.addDateFromTo("NGAY_CAP_NHAT", ngay.FromDate, ngay.ToDate);
                query2.addCondition("NHOM_TIN IN (SELECT ID FROM DM_NHOM_TIN_TUC WHERE VISIBLE_BIT ='Y')");
                query2.setDescOrderBy("NGAY_CAP_NHAT");
                if (ds.Tables[0].Rows.Count > 0)
                    query2.addCondition(string.Format("ID != '{0}'", ds.Tables[0].Rows[0]["ID"].ToString()));
                if (fQuanTri.isRead)//(DATinTuc.Instance.getNguoiDuyet(DATinTuc.quyenDuyet).Contains(FrameworkParams.currentUser.employee_id))
                    query2.addDuyet(PLConst.FIELD_DUYET, DuyetSelect.layTrangThai());
                else
                    query2.addCondition(string.Format("{0}='2' or NGUOI_CAP_NHAT = {1}", PLConst.FIELD_DUYET, FrameworkParams.currentUser.employee_id));

                DataTable dtTT = TinTucPermission.I._LoadDataSetWithResGroupPermission(query2, "NHOM_TIN", nhom_tin).Tables[0];
                foreach (DataRow row in dtTT_Max.Rows) ds.Tables[0].ImportRow(row);
                foreach (DataRow row in dtTT.Rows) ds.Tables[0].ImportRow(row);
                gridControlMaster.DataSource = ds.Tables[0];
                barSubItem1.Enabled = ds.Tables[0].Rows.Count > 0;
                HookFocusRow();
            }
            else
            {
                ds = DATinTuc.Instance.Get_5_tin(PLNhomTT._getSelectedID(), ngay.FromDate, ngay.ToDate, DuyetSelect);
                barSubItem1.Enabled = ds.Tables[0].Rows.Count > 0;
                gridControlMaster.DataSource = ds.Tables[0];
                barSubItem1.Enabled = ds.Tables[0].Rows.Count > 0;
                HookFocusRow();
            }
            if (ds.Tables[0].Rows.Count == 0)
            {
                this.ThongTinNoiBat(null);
                barButtonItemDuyet.Enabled = false;
                barButtonItemK_Duyet.Enabled = false;
            }
            msg.Finish();
            return null;
        }
 /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
 /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
 /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
 /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
 /// phải có cột là DUYET_BIT
 /// </summary>
 public override QueryBuilder PLBuildQueryFilter()
 {
     QueryBuilder query =  new QueryBuilder(UpdateRow());
     query.addSoPhieu("LOWER(" + BANG_GIA_BUDGET.MA_BGBG + ")", MaKeHoach.Text.ToLower());
     AppCtrl.addID(query, BANG_GIA_BUDGET.NGUOI_LAP, NguoiLap);
     AppCtrl.addFilterFromTo(query, BANG_GIA_BUDGET.NGAY_LAP, NgayLap);
     if (ThoiGianApDung.SelectedType != ProtocolVN.Framework.Win.Trial.SelectionTypes.None)
     {
         query.add(BANG_GIA_BUDGET.TU_NGAY, Operator.GreaterEqual, ThoiGianApDung.FromDate.Date, DbType.Date);
         query.add(BANG_GIA_BUDGET.DEN_NGAY, Operator.LessEqual, ThoiGianApDung.ToDate.Date, DbType.Date);
     }
     query.addCondition("1=1");
     query.setDescOrderBy(this.DESCSortClause);
     return query;
 }
        /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
        /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
        /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
        /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
        /// phải có cột là DUYET_BIT
        /// </summary>
        public override QueryBuilder PLBuildQueryFilter()
        {
            string sql = UpdateRow();
            var query = new QueryBuilder(sql);
            query.addLike("LOWER(" + CHUONG_TRINH.NOI_DUNG + ")", NoiDung.Text.ToLower());
            query.addLike("LOWER(" + CHUONG_TRINH.TEN_GOC + ")", TenGoc.Text.ToLower());
            query.addLike("LOWER(" + CHUONG_TRINH.CATEGORY + ")", Category.Text.ToLower());
            AppCtrl.addID(query, CHUONG_TRINH.TIET_MUC, TietMuc);
            AppCtrl.addID(query, CHUONG_TRINH.DON_VI_CUNG_CAP, DonViCungCap);
            AppCtrl.addFilterFromTo(query, BIEN_MUC.NAM_SAN_XUAT, NamSXTu.Value, NamSXDen.Value);
            long[] ids = QuocGia._getSelectedIDs();
            if (ids.Length > 0 && ids.Length < QuocGia.Properties.GetItems().Count)
            {
                string cond = ids.Aggregate("(", (current, id) => current + (BIEN_MUC.NUOC_SAN_XUAT + " like '%," + id + ",%' or "));
                cond = cond.TrimEnd(' ', 'r', 'o');
                cond = cond + ")";
                query.addCondition(cond);
            }
            AppCtrl.addID(query, CHUONG_TRINH.BAN_QUYEN_THUOC, BanQuyenThuoc);
            query.addDateFromTo(CHUONG_TRINH.BAN_QUYEN_DID_END, BQDTTNEndTu.DateTime, BQDTTNEndDen.DateTime);
            query.addDateFromTo(CHUONG_TRINH.BAN_QUYEN_DTNN_END, BQDTNNEndTu.DateTime, BQDTNNEndDen.DateTime);
            AppCtrl.addFilterFromTo(query, CHUONG_TRINH.TONG_SO_RUN, TongSoRunTu.Value, TongSoRunDen.Value);
            AppCtrl.addFilterFromTo(query, CHUONG_TRINH.SO_LAN_DA_PHAT, SoRunDaDungTu.Value, SoRunDaDungDen.Value);
            AppCtrl.addFilterFromTo(query, "(" + CHUONG_TRINH.TONG_SO_RUN + "-" + CHUONG_TRINH.SO_LAN_DA_PHAT + ")", SoRunConLaiTu.Value, SoRunConLaiDen.Value);
            AppCtrl.addFilterFromTo(query, CHUONG_TRINH.NGAY_NHAP, ngayNhap);
            AppCtrl.addID(query, CHUONG_TRINH.PHONG_BAN, PhongBan);
            query.addIn(CHUONG_TRINH.IS_TRONG_KHO, AppCtrl.GetCheckedValues(TrongKho, true));
            string ftTimeslot = AppCtrl.getFilterFromTo("CTNPDT.TIMESLOT", TimeslotTu, TimeslotDen);
            if (ftTimeslot != "")
            {
                query.addCondition(string.Format(@"exists(select ctnpdt.ct_id from chuong_trinh_npdt   ctnpdt
                                                    where ctnpdt.timeslot is not null and ctnpdt.ct_id= ct.ct_id {0})", ftTimeslot));
            }
            string w1 = "";
            if(!LoaiLuuTru._IsNotCheckAnyOrCheckedAll)
            {
                w1 += " AND " + CHUONG_TRINH_POST_MASTER.LOAI_LUU_TRU + " in " + LoaiLuuTru._getStrSelectedIDs();
            }
            if (!SoDKCBHD._IsNotCheckAnyOrCheckedAll )
            {
                w1 += " AND exists(select chd.ctpm_hd_id from chuong_trinh_post_Master_hd chd where chd.ctpm_id=cp.ctpm_id and chd.so_dkcb_hd in " + SoDKCBHD._getStrSelectedIDs() + ")";

            }
            if (w1 != "")
                query.addCondition(string.Format(@"exists(select cp.ctpm_id from chuong_trinh_post_Master cp where (is_delete='N' or is_delete is null) and  cp.ct_id = ct.ct_id {0})", w1));

            string w2 = "";
            if (TapSoTu.Value > 0)
            {
                w2 += " AND bm.tap_so >= " + TapSoTu.Value;
            }
            if (TapSoDen.Value > 0)
            {
                w2 += " AND bm.tap_so <=" + TapSoDen.Value;
            }

            if (TenTap.Text.Trim() != "")
            {
                w2 += " AND lower(bm.ten_tap) like '%" + TenTap.Text.Trim().ToLower() + "%'";
            }

            if (w2 != "")
            {
                query.addCondition(string.Format("exists(select bm.bm_id from bien_muc bm where (is_delete='N' or is_delete is null) and bm.ct_id=ct.ct_id {0})", w2));
            }

            query.addCondition("1=1");
            if (ASCSortClause != "")
                query.setAscOrderBy(ASCSortClause);
            if (DESCSortClause != "")
                query.setDescOrderBy(DESCSortClause);
            return query;
        }
示例#23
0
        //Hiện form confirm trước khi lưu
        private ConfirmSaveLPSResult ShowConfirm()
        {
            string strthus = GetIDsThu();
            var qr = new QueryBuilder(@"select first 1 LPS_CT_ID from ql_lich_phat_song_ct lpsct
            inner join ql_lich_phat_song lps on lps.lps_id=lpsct.lps_id
            where extract(weekday from ngay_phat_song) in(" + strthus + ") and 1=1");
            if (_doLichPhatSong.NGAY_BAT_DAU != null)
                qr.add(QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG, Operator.GreaterEqual, _doLichPhatSong.NGAY_BAT_DAU.Value.Date, DbType.DateTime);
            qr.add("lps." + QL_LICH_PHAT_SONG.LPS_ID, Operator.NotEqual, _doLichPhatSong.LPS_ID, DbType.Int64);
            qr.addID("lps." + QL_LICH_PHAT_SONG.KENH_PHAT, _doLichPhatSong.KENH_PHAT);
            if (_doLichPhatSong.GIO_PHAT_SONG != null)
            {
                qr.add(string.Format("extract(hour from {0})", "LPS." + QL_LICH_PHAT_SONG.GIO_PHAT_SONG), Operator.Equal, _doLichPhatSong.GIO_PHAT_SONG.Value.Hour, DbType.Int32);
                qr.add(string.Format("extract(minute from {0})", "LPS." + QL_LICH_PHAT_SONG.GIO_PHAT_SONG), Operator.Equal, _doLichPhatSong.GIO_PHAT_SONG.Value.Minute, DbType.Int32);
            }
            DataSet ds = HelpDB.getDatabase().LoadDataSet(qr);
            bool show = ds != null && ds.Tables.Count != 0 && ds.Tables[0].Rows.Count > 0;
            var rs = ConfirmSaveLPSResult.SAVE_NORMAL;
            if (_doLichPhatSong.IsInsert == false)
            {
                #region Kiểm tra tính liên tục so với lịch phía trước
                _doLichPhatSong.DSDetail.Tables[0].DefaultView.RowFilter = "STATE IS NULL or STATE <> 'DEL'";
                _doLichPhatSong.DSDetail.Tables[0].DefaultView.Sort = QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG;
                DateTime dtNBD = ((DateTime)_doLichPhatSong.DSDetail.Tables[0].DefaultView[0][QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG]).Date;

                qr = new QueryBuilder(@"select first 1 ngay_phat_song from ql_lich_phat_song_ct lpsct
                 inner join ql_lich_phat_song lps on lps.lps_id=lpsct.lps_id
                where extract(weekday from ngay_phat_song) in(" + strthus + ") and 1=1");
                qr.add(QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG, Operator.LessEqual, dtNBD, DbType.DateTime);
                qr.add("lps." + QL_LICH_PHAT_SONG.LPS_ID, Operator.NotEqual, _doLichPhatSong.LPS_ID, DbType.Int64);
                qr.addID("lps." + QL_LICH_PHAT_SONG.KENH_PHAT, KenhPhat._getSelectedID());
                qr.add(string.Format("extract(hour from {0})", "LPS." + QL_LICH_PHAT_SONG.GIO_PHAT_SONG), Operator.Equal, GioPhat.Time.Hour, DbType.Int32);
                qr.add(string.Format("extract(minute from {0})", "LPS." + QL_LICH_PHAT_SONG.GIO_PHAT_SONG), Operator.Equal, GioPhat.Time.Minute, DbType.Int32);
                qr.setDescOrderBy(QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG);
                ds = HelpDB.getDatabase().LoadDataSet(qr);
                int c = 0;
                DateTime okdate = DateTime.MinValue;
                if (ds != null && ds.Tables.Count != 0 && ds.Tables[0].Rows.Count > 0)
                {
                    List<DayOfWeek> thutt = AppCtrl.GetThuTrongTuan(_doLichPhatSong.DSDetail.Tables[0].DefaultView[0][QL_LICH_PHAT_SONG_CT.THU_TRONG_TUAN].ToString());
                    var predt = (DateTime)ds.Tables[0].Rows[0][0];

                    predt = predt.AddDays(1);
                    okdate = predt;
                    while (predt < dtNBD)
                    {
                        if (thutt.Contains(predt.DayOfWeek))
                        {
                            if (c == 0)
                                okdate = predt;
                            c++;
                            break;
                        }
                        predt = predt.AddDays(1);
                    }
                #endregion

                }

                if (c > 0 || show)
                {
                    rs = ConfirmSaveLPSDialog.ShowConfirm(this);
                }
                if (c > 0 && rs == ConfirmSaveLPSResult.SAVE_ARRANGE)
                {
                    string where = QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG + ">='" + dtNBD + "'";
                    ArrangeDays(okdate, where);
                    _doLichPhatSong.DSDetail.Clear();
                    HelpDB.getDBService().LoadDataSet(_doLichPhatSong.DSDetail, string.Format(
                         "select * from QL_LICH_PHAT_SONG_CT where LPS_ID={0}", _doLichPhatSong.LPS_ID), "QL_LICH_PHAT_SONG_CT");
                    HelpDataSet.MergeDataSet(new[] { "LPS_CT_ID" }, _doLichPhatSong.DSDetail, _dsDetail, true);

                    _doLichPhatSong.DSDetail.Tables[0].DefaultView.RowFilter = "STATE IS NULL or STATE <> 'DEL'";
                    _doLichPhatSong.DSDetail.Tables[0].DefaultView.Sort = QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG;
                    DataTable dtRS = _doLichPhatSong.DSDetail.Tables[0].DefaultView.ToTable(true, QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG);
                    if (dtRS.Rows.Count > 0)
                    {
                        _doLichPhatSong.NGAY_BAT_DAU = (DateTime)dtRS.Rows[0][0];
                        _doLichPhatSong.SO_NGAY_PHAT = dtRS.Rows.Count;
                        _doLichPhatSong.NGAY_PHAT_CUOI = (DateTime)dtRS.Rows[dtRS.Rows.Count - 1][0];
                    }
                }
            }
            else
            {
                if (show)
                    rs = ConfirmSaveLPSDialog.ShowConfirm(this);
            }
            return rs;
        }
 private void LoadData()
 {
     QueryBuilder query = new QueryBuilder(LichPhatSong.SQL_XEM_LICH_PHAT_SONG);
     AppCtrl.addID(query, LichPhatSong.KENH_PHAT, kenhPhat);
     AppCtrl.addFilterFromTo(query, LichPhatSong.NGAY_PHAT_SONG, ngayPhatSong);
     query.setDescOrderBy(LichPhatSong.NGAY_PHAT_SONG);
     query.setAscOrderBy(LichPhatSong.GIO_PHAT_SONG);
     //query.addCondition(string.Format(" NGAY_PHAT_SONG BETWEEN '{0}' AND '{1}'", ngayPhatSong[0].ToString("MM/dd/yyyy"), ngayPhatSong[1].ToString("MM/dd/yyyy")));
     gridDataSet = HelpDB.getDatabase().LoadDataSet(query);
     if (gridDataSet.Tables[0].Rows.Count > 0) barButtonItemPrint.Enabled = barButtonItemCapNhat.Enabled = true;
     else barButtonItemPrint.Enabled = barButtonItemCapNhat.Enabled = false;
     gridControlMaster.DataSource = gridDataSet.Tables[0];
 }
 public override QueryBuilder PLBuildQueryFilter()
 {
     QueryBuilder query = new QueryBuilder(UpdateRow());
     AppCtrl.addID(query, LichPhatSong.KENH_PHAT, kenhPhat);
     AppCtrl.addFilterFromTo(query, LichPhatSong.NGAY_PHAT_SONG, ngayNhap);
     query.setDescOrderBy(LichPhatSong.NGAY_PHAT_SONG);
     query.setAscOrderBy(LichPhatSong.GIO_PHAT_SONG);
     query.addCondition("1=1");
     return query;
 }
示例#26
0
        private static BarButtonItem AddXemTatCa(BarManager barManager, Bar mainBar,
            BarButtonItem barButtonItemSearch, PopupControlContainer popUP,
            BarCheckItem filter, GridView gridViewMaster, string filterString,
            string ascSortClause, string descSortClause, string groupClause
            )
        {
            int index = 0;
            for (int i = 0; i < mainBar.LinksPersistInfo.Count; i++)
            {
                LinkPersistInfo info = mainBar.LinksPersistInfo[i];
                if (info.Item.Name == barButtonItemSearch.Name)
                {
                    info.BeginGroup = false;
                    index = i;
                    break;
                }
            }

            var viewAll = new BarButtonItem
                              {
                                  Caption = "Xem tất c&ả",
                                  PaintStyle = BarItemPaintStyle.CaptionGlyph,
                                  Glyph = FrameworkParams.imageStore.GetImage2020("Picture.png"),
                                  Visibility = BarItemVisibility.Always
                              };

            viewAll.Appearance.ForeColor = Color.Red;
            Font bk = viewAll.Font;
            viewAll.Appearance.Font = new Font(bk, FontStyle.Bold);
            viewAll.Appearance.Options.UseFont = true;
            viewAll.Appearance.Options.UseForeColor = true;

            mainBar.LinksPersistInfo.Insert(index, new LinkPersistInfo(viewAll, true));
            barManager.Items.Add(viewAll);

            viewAll.ItemClick += delegate
                                     {

                                         var wait = new FWWaitingMsg();

                                         try
                                         {

                                             var query = new QueryBuilder(filterString);
                                             if (!string.IsNullOrEmpty(groupClause))
                                             {
                                                 query.addGroupBy(groupClause);
                                             }
                                             if (ascSortClause != "")
                                                 query.setAscOrderBy(ascSortClause);
                                             if (descSortClause != "")
                                                 query.setDescOrderBy(descSortClause);
                                             var ds = HelpDB.getDBService().LoadDataSet(query);
                                             gridViewMaster.ClearSelection();
                                             if (ds != null && ds.Tables.Count > 0)
                                             {
                                                 gridViewMaster.GridControl.DataSource = ds.Tables[0];
                                                 if (gridViewMaster.RowCount > 0)
                                                 {
                                                     gridViewMaster.FocusedRowHandle = -1;
                                                     gridViewMaster.SelectRow(0);
                                                     gridViewMaster.FocusedRowHandle = 0;
                                                 }
                                                 else
                                                 {
                                                     gridViewMaster.SelectRow(-1);
                                                 }

                                             }
                                             else gridViewMaster.GridControl.DataSource = null;

                                             filter.Checked = false;

                                             //if (frm == null
                                             //    || !(frm is PhieuQuanLyBandedChange)
                                             //    || ((PhieuQuanLyBandedChange)frm)._UsingCheckFiler)
                                             //{
                                             //    popUP.Visible = false;
                                             //}

                                             ClearDataCtrl(popUP.Controls);
                                         }
                                         catch (Exception ex)
                                         {
                                             PLException.AddException(ex);
                                         }
                                         finally
                                         {
                                             wait.Finish();
                                         }
                                     };
            return viewAll;
        }
示例#27
0
        public void InitDanhSachThangTinhLuongLeft()
        {
            #region Lấy dữ liệu
            QueryBuilder query = new QueryBuilder("select thang_nam , right(thang_nam,4) as nam, is_chot from bang_luong where 1=1");
            query.setDescOrderBy("THANG_NAM");
            query.addGroupBy("THANG_NAM,IS_CHOT");

            DataSet ds = HelpDB.getDatabase().LoadDataSet(query, "BANG_LUONG");
            DataTable Kq = new XLSortThangNam().Sort(ds.Tables[0]);
            treeListBangLuong.ParentFieldName = "NAM";
            query = new QueryBuilder("select right(thang_nam,4) as nam from bang_luong where 1=1");
            query.setDescOrderBy("NAM");
            query.addGroupBy("NAM");

            DataSet dsyy = DABase.getDatabase().LoadDataSet(query, "BANG_LUONG");

            foreach (DataRow dong in dsyy.Tables[0].Rows)
            {
                TreeListNode n = treeListBangLuong.AppendNode(new object[] { "Năm " + dong["NAM"].ToString(), "N" }, -1);
                foreach (DataRow item in Kq.Rows)
                {
                    if (HelpNumber.ParseInt32(item["NAM"]) == HelpNumber.ParseInt32(dong["NAM"]))
                    {
                        treeListBangLuong.AppendNode(new object[] { item["THANG_NAM"], item["IS_CHOT"] }, n.Id);
                        strThangNam.Append(item["THANG_NAM"].ToString() + ",");
                    }
                }
            }
            if (treeListBangLuong.FocusedNode != null)
            {
                barButtonItemChot.Enabled = treeListBangLuong.FocusedNode.GetDisplayText("THANG_NAM").Contains("Năm") ? false : true;
                strBangLuong = treeListBangLuong.FocusedNode.FirstNode.GetValue("THANG_NAM").ToString();
                treeListBangLuong.SetFocusedNode(treeListBangLuong.FocusedNode.FirstNode);
            }
            treeListBangLuong.ExpandAll();

            #endregion

            #region Tạo sự kiện
            treeListBangLuong.FocusedNodeChanged += new FocusedNodeChangedEventHandler(treeList1_FocusedNodeChanged);
            #endregion
        }
示例#28
0
        /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
        /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
        /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
        /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
        /// phải có cột là DUYET_BIT
        /// </summary>
        public override QueryBuilder PLBuildQueryFilter()
        {
            var query = new QueryBuilder(UpdateRow());
            if (!string.IsNullOrEmpty(TenCT.Text.Trim()))
            {
                query.addCondition(string.Format(@"(lower(ct.{0}) like '%{1}%' or lower(lps.{2}) like '%{1}%' )",
                    CHUONG_TRINH.NOI_DUNG, TenCT.Text.ToLower(), QL_LICH_PHAT_SONG.TEN_CT));
            }
            if (!string.IsNullOrEmpty(Category.Text.Trim()))
            {
                query.addCondition(string.Format(@"(lower(ct.{0}) like '%{1}%' or lower(lps.{2}) like '%{1}%' )",
                 CHUONG_TRINH.CATEGORY, Category.Text.ToLower(), QL_LICH_PHAT_SONG.CATEGORY));
            }
            if (TietMuc._IsNotCheckAnyOrCheckedAll == false)
            {
                query.addCondition(string.Format(@"(ct.{0} in {1} or lps.{2} in {1} )", CHUONG_TRINH.TIET_MUC,
                    TietMuc._getStrSelectedIDs(), QL_LICH_PHAT_SONG.TIET_MUC));
            }
            if (PostMaster._IsNotCheckAnyOrCheckedAll == false)
            {
                query.addCondition(string.Format(@"(CTPM.{0} in {1} or lps.{2} in {1} )",
                   CHUONG_TRINH_POST_MASTER.POST_MASTER_ID, PostMaster._getStrSelectedIDs(), QL_LICH_PHAT_SONG.POST_MASTER)
                  );
            }
            AppCtrl.addID(query, "LPS." + QL_LICH_PHAT_SONG.KENH_PHAT, KenhPhat);

            string fieldGio = string.Format("right( '00'|| extract(hour from lpsct.{0}),2)||':' ||right( '00'|| extract(minute from lpsct.{0}),2)", QL_LICH_PHAT_SONG_CT.GIO_PHAT_SONG);

            if (GioPhatTu.EditValue != null && GioPhatTu.Text != "")
            {
                query.addCondition(string.Format(@"({0}>='{1}')", fieldGio, GioPhatTu.Text));
            }

            if (GioPhatDen.EditValue != null && GioPhatDen.Text != "")
            {
                query.addCondition(string.Format(@"({0}<='{1}')", fieldGio, GioPhatDen.Text));
            }
            if (ThongTinThem.CheckedItems.Count == 1)
            {
                query.addIn("LPS." + QL_LICH_PHAT_SONG.IS_PHAT_LAI, AppCtrl.GetCheckedValues(ThongTinThem, true));
            }
            AppCtrl.addFilterFromTo(query, "LPSCT." + QL_LICH_PHAT_SONG_CT.NGAY_PHAT_SONG, NgayBatDauPhat);
            AppCtrl.addFilterFromTo(query, "LPS." + QL_LICH_PHAT_SONG.NGAY_TAO, ngayNhap);
            AppCtrl.addID(query, "LPS." + QL_LICH_PHAT_SONG.NGUOI_TAO, NguoiNhap);
            AppCtrl.addID(query, "LPS." + QL_LICH_PHAT_SONG.PHONG_BAN, PhongBan);

            long[] ds = ThuTrongTuan._getSelectedIDs();
            if (ThuTrongTuan._IsNotCheckAnyOrCheckedAll == false)
            {
                string cond = ds.Aggregate("(", (current, id) => current + ("LPS." + QL_LICH_PHAT_SONG.THU_TRONG_TUAN + " like '%," + id + ",%' or "));
                cond = cond.TrimEnd(' ', 'r', 'o');
                cond = cond + ")";
                query.addCondition(cond);
            }

            query.addCondition("1=1");
            query.addGroupBy(GroupByClause);
            if (ASCSortClause != "")
                query.setAscOrderBy(ASCSortClause);
            if (DESCSortClause != "")
                query.setDescOrderBy(DESCSortClause);

            long[] kp=KenhPhat._getSelectedIDs();
            if ( kp.Length == 1 && kp[0] != -1)
            {
                Col_LPS_KenhPhat.UnGroup();
            }
            else Col_LPS_KenhPhat.Group();

            if (NgayBatDauPhat.SelectedType == Framework.Win.Trial.SelectionTypes.OneDate)
            {
                Col_LPS_NgayPhat.UnGroup();
            }
            else
            {
                Col_LPS_NgayPhat.Group();
            }
            gridViewMaster.ViewCaption = "CHƯƠNG TRÌNH PHÁT SÓNG TRÊN " + (KenhPhat.Text == "" ? "CÁC KÊNH " : " KÊNH " + KenhPhat.Text) + " - " + NgayBatDauPhat.Caption.ToUpper();
            return query;
        }
 public override QueryBuilder PLBuildQueryFilter()
 {
     AppCtrl.DisplayTheoTuyBienCot(gridViewMaster, repositoryItemCheckedCotHienThi);
     QueryBuilder query = new QueryBuilder(UpdateRow());
     AppCtrl.addID(query, LichPhatSong.KENH_PHAT, kenhPhat);
     AppCtrl.addFilterFromTo(query, LichPhatSong.NGAY_PHAT_SONG, ngayNhap);
     query.setDescOrderBy(LichPhatSong.NGAY_PHAT_SONG);
     query.setAscOrderBy(LichPhatSong.GIO_PHAT_SONG);
     query.addCondition("1=1");
     return query;
 }
        /// <summary>Step 5: Xây dựng Query Buider cho việc tìm kiếm
        /// Xây dựng một QueryBuilder từ những chọn lựa trong phần filter.
        /// Từ QueryBuilder này ta có thể lấy được dữ liệu thỏa điều kiện.
        /// Nếu hỗ trợ duyệt thì trong câu truy vấn trả về 
        /// phải có cột là DUYET_BIT
        /// </summary>
        public override QueryBuilder PLBuildQueryFilter()
        {
            if (isAdvance)
            {
                try
                {

                    //if (filterControl1.FilterString != "")
                    //    filterControl1.FilterCriteria = PrepairFilter(filterControl1.FilterCriteria);
                    FilterControlHelper fch = new FirebirdFilterToSQLStatement(filterControl1);
                    SQLDATA sqlData = fch.GetSQLFilter(true, true);
                    DataSet ds = null;
                    if (sqlData.Filters != "")
                    {

                        ds = filterCase.DataSetFilterFromDatabase(sqlData, "category, noi_dung");
                    }
                    else
                    {
                        QueryBuilder query = new QueryBuilder(UpdateRow());
                        query.addCondition("1=1");
                        if (this.ASCSortClause != "")
                            query.setAscOrderBy(ASCSortClause);
                        if (this.DESCSortClause != "")
                            query.setDescOrderBy(DESCSortClause);
                        ds = HelpDB.getDatabase().LoadDataSet(query);
                    }
                    if (ds != null && ds.Tables.Count > 0)
                    {
                        gridControlMaster.DataSource = ds.Tables[0];
                        // filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.NGAY_PHAT_DAU_TIEN]);
                        //filterControl1.FilterColumns.Remove(filterControl1.FilterColumns[BIEN_MUC.THOI_HAN_BAN_QUYEN_DISPLAY]);

                    }
                }
                catch
                {

                }
                return null;

            }
            else
            {
                QueryBuilder filter = null;
                string sql = UpdateRow();
                filter = new QueryBuilder(sql);
                filter.addLike("LOWER(" + CHUONG_TRINH.NOI_DUNG + ")", NoiDung.Text.ToLower());
                filter.addLike("LOWER(" + CHUONG_TRINH.TEN_GOC + ")", TenGoc.Text.ToLower());
                filter.addLike("LOWER(" + CHUONG_TRINH.CATEGORY + ")", Category.Text.ToLower());
                AppCtrl.addID(filter, CHUONG_TRINH.TIET_MUC, TietMuc);
                AppCtrl.addID(filter, CHUONG_TRINH.DON_VI_CUNG_CAP, DonViCungCap);
                AppCtrl.addFilterFromTo(filter, BIEN_MUC.NAM_SAN_XUAT, NamSXTu.Value, NamSXDen.Value);
                long[] IDs = QuocGia._getSelectedIDs();
                if (IDs.Length > 0 && IDs.Length < QuocGia.Properties.GetItems().Count)
                {
                    string cond = "(";
                    foreach (long id in IDs)
                    {
                        cond += BIEN_MUC.NUOC_SAN_XUAT + " like '%," + id + ",%' or ";
                    }
                    cond = cond.TrimEnd(' ', 'r', 'o');
                    cond = cond += ")";
                    filter.addCondition(cond);
                }
                AppCtrl.addID(filter, CHUONG_TRINH.BAN_QUYEN_THUOC, BanQuyenThuoc);
                filter.addDateFromTo(CHUONG_TRINH.BAN_QUYEN_DID_END, BQDTTNEndTu.DateTime, BQDTTNEndDen.DateTime);
                filter.addDateFromTo(CHUONG_TRINH.BAN_QUYEN_DTNN_END, BQDTNNEndTu.DateTime, BQDTNNEndDen.DateTime);
                AppCtrl.addFilterFromTo(filter, CHUONG_TRINH.TONG_SO_RUN, TongSoRunTu.Value, TongSoRunDen.Value);
                AppCtrl.addFilterFromTo(filter, CHUONG_TRINH.SO_LAN_DA_PHAT, SoRunDaDungTu.Value, SoRunDaDungDen.Value);
                AppCtrl.addFilterFromTo(filter, "(" + CHUONG_TRINH.TONG_SO_RUN + "-" + CHUONG_TRINH.SO_LAN_DA_PHAT + ")", SoRunConLaiTu.Value, SoRunConLaiDen.Value);
                AppCtrl.addFilterFromTo(filter, CHUONG_TRINH.NGAY_NHAP, ngayNhap);
                AppCtrl.addID(filter, CHUONG_TRINH.PHONG_BAN, PhongBan);
                filter.addIn(Alias + CHUONG_TRINH.IS_TRONG_KHO, AppCtrl.GetCheckedValues(TrongKho, true));
                string ftTimeslot = AppCtrl.getFilterFromTo("CTNPDT.TIMESLOT", TimeslotTu, TimeslotDen);
                if (ftTimeslot != "")
                {
                    filter.addCondition(string.Format(@"exists(select ctnpdt.ct_id from chuong_trinh_npdt   ctnpdt
                                                    where ctnpdt.timeslot is not null and ctnpdt.ct_id= ct.ct_id {0})", ftTimeslot));
                }
                string w1 = "";
                if (!LoaiLuuTru._IsNotCheckAnyOrCheckedAll)
                {
                    w1 += " AND " + CHUONG_TRINH_POST_MASTER.LOAI_LUU_TRU + " in " + LoaiLuuTru._getStrSelectedIDs();
                }
                if (!SoDKCBHD._IsNotCheckAnyOrCheckedAll)
                {
                    w1 += " AND exists(select chd.ctpm_hd_id from chuong_trinh_post_Master_hd chd where chd.ctpm_id=cp.ctpm_id and chd.so_dkcb_hd in " + SoDKCBHD._getStrSelectedIDs() + ")";

                }
                if (w1 != "")
                    filter.addCondition(string.Format(@"exists(select cp.ctpm_id from chuong_trinh_post_Master cp where (is_delete='N' or is_delete is null) and  cp.ct_id = ct.ct_id {0})", w1));

                string w2 = "";
                if (TapSoTu.Value > 0)
                {
                    w2 += " AND bm.tap_so >= " + TapSoTu.Value;
                }
                if (TapSoDen.Value > 0)
                {
                    w2 += " AND bm.tap_so <=" + TapSoDen.Value;
                }

                if (TenTap.Text.Trim() != "")
                {
                    w2 += " AND lower(bm.ten_tap) like '%" + TenTap.Text.Trim().ToLower() + "%'";
                }

                if (w2 != "")
                {
                    filter.addCondition(string.Format("exists(select bm.bm_id from bien_muc bm where (is_delete='N' or is_delete is null) and bm.ct_id=ct.ct_id {0})", w2));
                }

                filter.addCondition("1=1");
                if (this.ASCSortClause != "")
                    filter.setAscOrderBy(ASCSortClause);
                if (this.DESCSortClause != "")
                    filter.setDescOrderBy(DESCSortClause);
                return filter;
            }
        }