private void load_data_2_grid(decimal ip_dc_id_gv)
    {
        try
        {
            m_ds_hop_dong_khung.Clear();
            // Đổ dữ liệu từ US vào DS
            m_us_dm_hop_dong_khung.FillDataset(m_ds_hop_dong_khung, " WHERE ID_GIANG_VIEN=" + ip_dc_id_gv);

            // Nếu dữ liệu trống
            if (m_ds_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows.Count == 0)
            {
                m_lbl_thong_bao.Text      = "Chưa có hợp đông khung nào cho giảng viên này";
                m_pnl_table.Visible       = true;
                m_cbo_gvien.SelectedValue = CIPConvert.ToStr(m_dc_id_gv);
            }
            else
            {
                m_pnl_table.Visible = false;
            }
            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();
        }
        catch (Exception v_e)
        {
            //nhớ using Ip.Common
            CSystemLog_301.ExceptionHandle(this, v_e);
        }
    }
 private bool check_trung_hop_dong(string ip_str_so_hd)
 {
     m_us_dm_hop_dong_khung.FillDataset(m_ds_dm_hop_dong_khung, " WHERE SO_HOP_DONG = N'" + ip_str_so_hd + "'");
     if (m_ds_dm_hop_dong_khung.V_DM_HOP_DONG_KHUNG.Rows.Count > 1)
     {
         return(false);                                                            // có hợp đồng trùng
     }
     return(true);
 }
    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]));
    }
    private decimal get_id_hd_khung_by_so_hd(string ip_str_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  SO_HOP_DONG = N'" + ip_str_so_hd + "'");
        if (v_ds_hd_khung.V_DM_HOP_DONG_KHUNG.Rows.Count == 0)
        {
            return(0);
        }
        return(CIPConvert.ToDecimal(v_ds_hd_khung.V_DM_HOP_DONG_KHUNG.Rows[0][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();
    }
    private void load_data_2_grid()
    {
        try
        {
            // Đổ dữ liệu từ US vào DS
            m_us_dm_hop_dong_khung.FillDataset(m_ds_hop_dong_khung);

            // Treo dữ liệu lên lưới
            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();
        }
        catch (Exception v_e)
        {
            //nhớ using Ip.Common
            CSystemLog_301.ExceptionHandle(this, v_e);
        }
    }
    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();
            }
        }
    }