public string get_so_hd_khung_by_id_hd(decimal ip_dc_so_hd)
    {
        DS_V_DM_HOP_DONG_KHUNG v_ds_hd_khung = new DS_V_DM_HOP_DONG_KHUNG();
        US_V_DM_HOP_DONG_KHUNG v_us_hd_khung = new US_V_DM_HOP_DONG_KHUNG();

        v_us_hd_khung.FillDataset(v_ds_hd_khung, " WHERE  ID = " + ip_dc_so_hd);
        if (v_ds_hd_khung.V_DM_HOP_DONG_KHUNG.Rows.Count == 0)
        {
            return("");
        }
        return(CIPConvert.ToStr(v_ds_hd_khung.V_DM_HOP_DONG_KHUNG.Rows[0][V_DM_HOP_DONG_KHUNG.SO_HOP_DONG]));
    }
        public bool check_exist_so_hd(string ip_str_so_hd)
        {
            US_V_DM_HOP_DONG_KHUNG v_us_hop_dong_khung = new US_V_DM_HOP_DONG_KHUNG();
            DS_V_DM_HOP_DONG_KHUNG v_ds_hd_khung       = new DS_V_DM_HOP_DONG_KHUNG();

            v_us_hop_dong_khung.FillDataset(v_ds_hd_khung, " where SO_HOP_DONG = '" + ip_str_so_hd + "'");
            if (v_ds_hd_khung.V_DM_HOP_DONG_KHUNG.Rows.Count == 0)
            {
                return(false);                                                //Mã này chưa có, insert được
            }
            return(true);
        }
        public US_V_DM_HOP_DONG_KHUNG(decimal i_dbID)
        {
            pm_objDS        = new DS_V_DM_HOP_DONG_KHUNG();
            pm_strTableName = c_TableName;
            IMakeSelectCmd v_objMkCmd = new CMakeAndSelectCmd(pm_objDS, c_TableName);

            v_objMkCmd.AddCondition("ID", i_dbID, eKieuDuLieu.KieuNumber, eKieuSoSanh.Bang);
            SqlCommand v_cmdSQL;

            v_cmdSQL = v_objMkCmd.getSelectCmd();
            this.FillDatasetByCommand(pm_objDS, v_cmdSQL);
            pm_objDR = getRowClone(pm_objDS.Tables[pm_strTableName].Rows[0]);
        }
    private void load_data_2_cbo_hop_dong_loc()
    {
        m_txt_so_hd_search.Items.Clear();
        US_V_DM_HOP_DONG_KHUNG v_us_v_dm_hop_dong_khung = new US_V_DM_HOP_DONG_KHUNG();
        DS_V_DM_HOP_DONG_KHUNG v_ds_v_dm_hop_dong_khung = new DS_V_DM_HOP_DONG_KHUNG();

        v_us_v_dm_hop_dong_khung.load_hop_dong_by_id_giang_vien(CIPConvert.ToDecimal(m_cbo_ten_giang_vien.SelectedValue), v_ds_v_dm_hop_dong_khung);

        m_txt_so_hd_search.Items.Add(new ListItem("Tất cả", "0"));
        for (int v_i = 0; v_i < v_ds_v_dm_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows.Count; v_i++)
        {
            m_txt_so_hd_search.Items.Add(new ListItem(CIPConvert.ToStr(v_ds_v_dm_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows[v_i][V_DM_HOP_DONG_KHUNG.SO_HOP_DONG]), CIPConvert.ToStr(v_ds_v_dm_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows[v_i][V_DM_HOP_DONG_KHUNG.ID])));
        }
    }
    private void load_data_2_grid(string ip_str_ma_hop_dong)
    {
        US_V_DM_HOP_DONG_KHUNG v_us_hop_dong_khung = new US_V_DM_HOP_DONG_KHUNG();
        DS_V_DM_HOP_DONG_KHUNG v_ds_hop_dong_khung = new DS_V_DM_HOP_DONG_KHUNG();

        v_us_hop_dong_khung.FillDataset(v_ds_hop_dong_khung, " WHERE SO_HOP_DONG = N'" + ip_str_ma_hop_dong + "'");
        if (v_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows.Count == 0)
        {
            string someScript;
            someScript = "<script language='javascript'>{ alert('Không có hợp đồng nào phù hợp!'); window.close(); }</script>";
            Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", someScript);
            return;
        }
        m_grv_dm_danh_sach_hop_dong_khung.DataSource = v_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG;
        m_grv_dm_danh_sach_hop_dong_khung.DataBind();
    }
        public void search_hop_dong_khung(string ip_str_ten_giang_vien
                                          , string ip_str_tu_khoa_search
                                          , string ip_so_hop_dong
                                          , decimal ip_dc_id_loai_hop_dong
                                          , decimal ip_dc_id_trang_thai_hop_dong
                                          , decimal ip_dc_id_don_vi_quan_ly
                                          , decimal ip_dc_thang_ky
                                          , decimal ip_dc_nam_ky
                                          , DateTime ip_dat_ngay_hieu_luc
                                          , DateTime ip_dat_ngay_ket_thuc
                                          , string ip_str_ma_po_quan_ly
                                          , DS_V_DM_HOP_DONG_KHUNG op_ds_dm_hop_dong_khung
                                          , string ip_str_po)
        {
            CStoredProc v_sp_search_hop_dong_khung = new CStoredProc("pr_V_DM_HOP_DONG_KHUNG_Search");

            v_sp_search_hop_dong_khung.addNVarcharInputParam("@TEN_GIANG_VIEN", ip_str_ten_giang_vien);

            v_sp_search_hop_dong_khung.addNVarcharInputParam("@TU_KHOA", ip_str_tu_khoa_search);

            v_sp_search_hop_dong_khung.addNVarcharInputParam("@SO_HOP_DONG", ip_so_hop_dong);

            v_sp_search_hop_dong_khung.addDecimalInputParam("@LOAI_HOP_DONG", ip_dc_id_loai_hop_dong);

            v_sp_search_hop_dong_khung.addDecimalInputParam("@TRANG_THAI_HOP_DONG", ip_dc_id_trang_thai_hop_dong);

            v_sp_search_hop_dong_khung.addDecimalInputParam("@DON_VI_QUAN_LY", ip_dc_id_don_vi_quan_ly);

            v_sp_search_hop_dong_khung.addDecimalInputParam("@THANG_KY", ip_dc_thang_ky);
            v_sp_search_hop_dong_khung.addDecimalInputParam("@NAM_KY", ip_dc_nam_ky);
            v_sp_search_hop_dong_khung.addDatetimeInputParam("@NGAY_HIEU_LUC", ip_dat_ngay_hieu_luc);
            v_sp_search_hop_dong_khung.addDatetimeInputParam("@NGAY_KET_THUC", ip_dat_ngay_ket_thuc);
            v_sp_search_hop_dong_khung.addNVarcharInputParam("@USER_NAME", ip_str_po);
            v_sp_search_hop_dong_khung.addNVarcharInputParam("@MA_PO_QUAN_LY", ip_str_ma_po_quan_ly);

            v_sp_search_hop_dong_khung.fillDataSetByCommand(this, op_ds_dm_hop_dong_khung);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            m_lbl_thong_bao.Text = "";
            string v_str_so_hd, v_str_loai_hd;
            if (Request.QueryString["sohd"] != null)
            {
                v_str_so_hd   = CIPConvert.ToStr(Request.QueryString["sohd"]);
                v_str_loai_hd = CIPConvert.ToStr(Request.QueryString["loai"]);
                if (v_str_so_hd.Equals(""))
                {
                    string someScript;
                    someScript = "<script language='javascript'>{ alert('Bạn chưa nhập số hợp đồng'); window.close(); }</script>";
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", someScript);
                    return;
                }
                m_lbl_so_hd.Text = v_str_so_hd;

                US_V_DM_HOP_DONG_KHUNG v_us_hop_dong_khung = new US_V_DM_HOP_DONG_KHUNG();
                DS_V_DM_HOP_DONG_KHUNG v_ds_hop_dong_khung = new DS_V_DM_HOP_DONG_KHUNG();

                v_us_hop_dong_khung.FillDataset(v_ds_hop_dong_khung, " WHERE SO_HOP_DONG = N'" + v_str_so_hd + "'");
                if (v_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows.Count == 0)
                {
                    string someScript;
                    someScript = "<script language='javascript'>{ alert('Không có hợp đồng nào phù hợp!'); window.close(); }</script>";
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", someScript);
                    return;
                }
                if (v_str_loai_hd.Equals("VH"))
                {
                    // nhưng số hợp đồng nhập vào lại của hợp đồng học liệu
                    if (CIPConvert.ToStr(v_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows[0][V_DM_HOP_DONG_KHUNG.HOC_LIEU_YN]).Equals("Y"))
                    {
                        m_lbl_thong_bao.Text = "";
                        string someScript;
                        someScript = "<script language='javascript'>{ alert('Ta đang dự toán cho hợp đồng vận hành. Hợp đồng nhập vào là hợp đông học liệu'); window.close(); }</script>";
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", someScript);
                        return;
                    }
                }
                // Nếu là HĐ học liệu
                else
                {
                    // nhưng số hợp đồng nhập vào lại của hợp đồng vận hành
                    if (CIPConvert.ToStr(v_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows[0][V_DM_HOP_DONG_KHUNG.VAN_HANH_YN]).Equals("Y"))
                    {
                        m_lbl_thong_bao.Text = "";
                        string someScript;
                        someScript = "<script language='javascript'>{ alert('Ta đang dự toán cho hợp đồng học liệu. Hợp đồng nhập vào là hợp đông vận hành'); window.close(); }</script>";
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", someScript);
                        return;
                    }
                }

                // Chỗ này kiểm tra xem có hợp đồng nào trùng với hợp đồng đang xét đến ko?
                if (!check_trung_hop_dong(v_str_so_hd))
                {
                    string someScript;
                    someScript = "<script language='javascript'>{ alert('Tồn tại số hợp đồng trùng với số hợp đồng này. Hãy xử lý trước khi lên bảng kê cho hợp đồng này!');}</script>";
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", someScript);
                    m_grv_dm_danh_sach_hop_dong_khung.DataSource = m_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG;
                    m_grv_dm_danh_sach_hop_dong_khung.DataBind();
                    return;
                }
                kiem_tra_toan_bo_thanh_toan_ung_hop_dong(get_id_hd_khung_by_so_hd(v_str_so_hd), v_str_loai_hd);
                // Đoạn này đã lấy được số hợp đồng, search và đổ lên lưới
                m_grv_dm_danh_sach_hop_dong_khung.DataSource = v_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG;
                m_grv_dm_danh_sach_hop_dong_khung.DataBind();
            }
        }
    }
        public void load_hop_dong_by_id_giang_vien_cm_da_ky(decimal ip_dc_id_giang_vien, DS_V_DM_HOP_DONG_KHUNG ip_ds_v_dm_hop_dong_khung)
        {
            CStoredProc v_cstore = new CStoredProc("pr_V_DM_HOP_DONG_KHUNG_Load_data_2_cbo_by_Id_Giang_Vien_CM_da_ky");

            ip_ds_v_dm_hop_dong_khung.EnforceConstraints = false;
            v_cstore.addDecimalInputParam("@ID_GIANG_VIEN", ip_dc_id_giang_vien);
            v_cstore.fillDataSetByCommand(this, ip_ds_v_dm_hop_dong_khung);
        }
 public US_V_DM_HOP_DONG_KHUNG()
 {
     pm_objDS        = new DS_V_DM_HOP_DONG_KHUNG();
     pm_strTableName = c_TableName;
     pm_objDR        = pm_objDS.Tables[pm_strTableName].NewRow();
 }