// SỬA THÔNG TIN ĐỘC GIẢ
 public int UpdateDG_MaDG(DocGiaDTO dgDTO)
 {
     try
     {
         return dgDAL.UpdateDG_MaDG(dgDTO);
     }
     catch (SqlException ex)
     {
         throw ex;
     }
 }
 public DataTable PhieuTraSach_TimDocGia_MaDG(DocGiaDTO p)
 {
     try
     {
         return psDAL.PhieuTraSach_TimDocGia_MaDG(p);
     }
     catch (SqlException ex)
     {
         throw ex;
     }
 }
        // Thêm độc giả
        public int InsertDG(DocGiaDTO dgDTO)
        {
            try
            {
                return dgDAL.InsertDG(dgDTO);
            }
            catch (SqlException ex)
            {
                throw ex;
            }

        }
 // Xóa độc giả
 public int XoaDG_MaDG(DocGiaDTO dgDTO)
 {
     try
     {
         connect = new ConnectionData();
         int Nparamater = 1;
         string[] name = new string[Nparamater];
         object[] values = new object[Nparamater];
         name[0] = "@MaDG";
         values[0] = dgDTO.MaDG;
         return connect.UpdateData("Delete_DocGia_ByMaDG", name, values, Nparamater);
     }
     catch (SqlException ex)
     {
         throw ex;
     }
 }
        // Thêm độc giả
        public int InsertDG(DocGiaDTO dgDTO)
        {
            connect = new ConnectionData();
            try
            {
                //var binding = BindingObject(dgDTO);
                // return connect.UpdateData("sp_DocGia_Insert", binding.Names, binding.Values, binding.Names.Length);
                int Nparamater = 9;
                String[] name = new string[Nparamater];
                object[] values = new object[Nparamater];
                name[0] = "@MaDG";
                values[0] = dgDTO.MaDG;
                name[1] = "@HoVaTen";
                values[1] = dgDTO.HoVaTen;
                name[2] = "@GioiTinh";
                values[2] = dgDTO.GioiTinh;
                name[3] = "@NgaySinh";
                values[3] = dgDTO.NgaySinh;
                name[4] = "@DiaChi";
                values[4] = dgDTO.DiaChi;
                name[5] = "@Email";
                values[5] = dgDTO.Email;
                name[6] = "@MaLDG";
                values[6] = dgDTO.MaLDG;
                name[7] = "@NgayLap";
                values[7] = dgDTO.NgayLap;
                name[8] = "@NgayHetHan";
                values[8] = dgDTO.NgayHetHan;
                return connect.UpdateData("sp_DocGia_Insert", name, values, Nparamater);

            }
            catch (SqlException ex)
            {
                throw ex;
            }

        }
 public DataTable LoadDG_TimTheoLoaiDG(DocGiaDTO dgDTO){
     return dgDAL.LoadDG_TimTheoLoaiDG(dgDTO);
 }
 /* public DataTable TimDG_LoaiDG(DocGiaDTO dgDTO) {
      return dgDAL.TimDG_LoaiDG(dgDTO);
  }*/
  public DataTable DocGia_TimTheoTen(DocGiaDTO dgDTO){
      return dgDAL.DocGia_TimTheoTen(dgDTO);
  }
 public DataTable LoadDG_MaDG(DocGiaDTO dgDTO)
 {
     return dgDAL.LoadDG_MaDG(dgDTO);
 }
 public DataTable TimDG_HoTen(DocGiaDTO dgDTO)
 {
     return dgDAL.TimDG_HoTen(dgDTO);
 }
        public DataTable TimDG_HoTen(DocGiaDTO dgDTO)
        {
            try
            {
                connect = new ConnectionData();
                int Nparamater = 1;
                string[] name = new string[Nparamater];
                object[] values = new object[Nparamater];
                name[0] = "@HoVaTen";
                values[0] = dgDTO.HoVaTen;
                return connect.GetData("FindDocGia_GetByHoTen", name, values, Nparamater);

            }
            catch (SqlException ex)
            {
                throw ex;
            }
        }
 // xóa độc giả
 public int XoaDG_MaDG(DocGiaDTO dgDTO)
 {
     return dgDAL.XoaDG_MaDG(dgDTO);
 }
 // Tim doc gia theo the loai
 public DataTable LoadDG_TimTheoLoaiDG(DocGiaDTO dgDTO) {
     try
     {
         connect = new ConnectionData();
         int Nparamater = 1;
         string[] name=new string[Nparamater];
         object[] values=new object[Nparamater];
         name[0] = "@loaidocgia";
         values[0] = dgDTO.MaLDG;
         return connect.GetData("DocGia_TimTheoLoaiDG",name,values,Nparamater);
     }
     catch(SqlException ex) {
         throw ex;
     }
 }
        // tim doc gia theo loai doc gia
        /*public DataTable TimDG_LoaiDG(DocGiaDTO dgDTO) {
            try {
                connect = new ConnectionData();
                int Nparamater = 1;
                string[] name = new string[Nparamater];
                object[] values = new object[Nparamater];
                name[0] = "@loaidocgia";
                values[0] = dgDTO.MaLDG;
                return connect.GetData("FindDocGia_GetByLoaiDG",name,values,Nparamater);

            }catch(SqlException ex){
                throw ex;
            }
        }*/
        // tim doc gia theo ten
        public DataTable DocGia_TimTheoTen(DocGiaDTO dgDTO)
        {
            try
            {
                connect = new ConnectionData();
                int Nparamater = 1;
                string[] name = new string[Nparamater];
                object[] value = new object[Nparamater];
                name[0] = "@search";
                value[0] = dgDTO.MaDG;
                return connect.GetData("DocGia_TimTheoTen", name, value, Nparamater);
            }
            catch (SqlException ex)
            {
                throw ex;
            }
        }
 public DataTable PhieuTraSach_TimDocGia_MaDG(DocGiaDTO p)
 {
     try
     {
         connect = new ConnectionData();
         int Nparamater = 1;
         string[] name = new string[Nparamater];
         object[] value = new object[Nparamater];
         name[0] = "@MaDG";
         value[0] = p.MaDG;
         return connect.GetData("PHIEUSACH_PhieuTraSach_TimDocGia_MaDG", name, value, Nparamater);
     }
     catch (SqlException ex)
     {
         throw ex;
     }
 }
 public DataTable TimDG_MaDG(DocGiaDTO dgDTO)
 {
     return dgDAL.TimDG_MaDG(dgDTO);
 }
        //sự kiện click của nút tìm
        private void btnTimDocGia_Click(object sender, EventArgs e)
        {
            PhieuSachDTO ps = new PhieuSachDTO();
            ps.MaDG = ("" + txtMaDG.Text.ToString().Trim() + "");
            //kiểm tra xem độc giả đã có mượn sách trước đó chưa, nếu có mà chưa trả thì không được mượn nữa
            DataTable data = psBLL.PhieuMuonSach_KiemTraDaTra_MaDG(ps);
            if (Convert.ToInt32(data.Rows[0][0]) == 0)
            {
                XtraMessageBox.Show("Bạn chưa trả sách trước đó nên không thể mượn được nữa!");
                return;
            }
            if (string.IsNullOrEmpty(txtMaDG.Text.ToString()))
            {
                XtraMessageBox.Show("Bạn chưa nhập mã độc giả!");
            }
            else
            {
                lammoiDocGia();
                dgDTO = new DocGiaDTO();
                dgDTO.MaDG = ("" + txtMaDG.Text.ToString().Trim() + "");
                //tìm độc giả thông qua mã độc giả
                DataTable dtTable = psBLL.PhieuTraSach_TimDocGia_MaDG(dgDTO);
                if (dtTable.Rows.Count == 0)
                {
                    XtraMessageBox.Show("Mã độc giả không tồn tại!");
                }
                else
                {

                    if (Convert.ToDateTime(dtTable.Rows[0]["NgayHetHan"]) < DateTime.Now)
                    {
                        XtraMessageBox.Show("Thời hạn thẻ của độc giả đã hết!");
                    }
                    else
                    {

                        txtHoTenDG.DataBindings.Add("Text", dtTable, "HoVaTen");
                        txtLoaiDG.DataBindings.Add("Text", dtTable, "TenLDG");
                        string t = dtTable.Rows[0]["GioiTinh"].ToString();
                        if (t == "True")
                        {
                            txtGioiTinhDG.Text = "Nữ";
                        }
                        else txtGioiTinhDG.Text = "Nam";
                        txtNgaySinh.DataBindings.Add("Text", dtTable, "NgaySinh");
                        txtDiaChiDG.DataBindings.Add("Text", dtTable, "DiaChi");
                        txtEmailDG.DataBindings.Add("Text", dtTable, "Email");
                        txtNgayLapThe.DataBindings.Add("Text", dtTable, "NgayLap");
                        txtNgayHetHan.DataBindings.Add("Text", dtTable, "NgayHetHan");
                    }
                }

            }
            enableChoMuon();
        }
        //sự kiện click của nút tìm độc giả
        private void btnTimDocGia_Click(object sender, EventArgs e)
        {
            if (txtMaDG.Text == "")
            {
                XtraMessageBox.Show("Bạn chưa nhập mã độc giả!");
                return;
            }
            else
            {
                lammoi();
                psDTO = new PhieuSachDTO();
                dgDTO = new DocGiaDTO();
                psBLL = new PhieuSachBLL();
                dgDTO.MaDG = txtMaDG.Text.ToString().Trim();
                DataTable dtTable = psBLL.PhieuTraSach_TimDocGia_MaDG(dgDTO);
                if (dtTable.Rows.Count == 0)
                {
                    XtraMessageBox.Show("Mã độc giả không tồn tại!");
                    return;
                }
                else
                {
                    txtHoTenDG.DataBindings.Add("Text", dtTable, "HoVaTen");
                    txtLoaiDG.DataBindings.Add("Text", dtTable, "TenLDG");
                    string t = dtTable.Rows[0]["GioiTinh"].ToString();
                    if (t == "True")
                    {
                        txtGioiTinhDG.Text = "Nữ";
                    }
                    else txtGioiTinhDG.Text = "Nam";
                    txtDiaChi.DataBindings.Add("Text", dtTable, "DiaChi");
                    txtEmail.DataBindings.Add("Text", dtTable, "Email");

                    psDTO.MaDG = txtMaDG.Text.ToString().Trim();
                    //tìm phiếu sách dựa vào mã độc giả
                    DataTable dt = psBLL.PhieuTraSach_TimPhieuSach_MaDG(psDTO);
                    if (dt.Rows.Count == 0)
                    {
                        XtraMessageBox.Show("Độc giả không mượn sách!");
                    }
                    else
                    {
                        txtNgayMuon.DataBindings.Add("Text", dt, "NgayMuon", true, System.Windows.Forms.DataSourceUpdateMode.Never, null, "d");
                        DateTime dtime = Convert.ToDateTime(txtNgayMuon.Text.ToString());
                        //quy định
                        DataTable qdQuyDinh = qdBLL.QuyDinh_LoadDuLieu();
                        txtHanTra.Text = dtime.AddDays(Convert.ToInt16(qdQuyDinh.Rows[5]["GiaTri"])).ToString("dd/MM/yyyy");
                        txtNgayTra.Text = DateTime.Now.ToString("dd/MM/yyyy");

                        txtTienNoKyNay.DataBindings.Add("Text", dt, "TienNoKyNay");
                        PhieuSachDTO psDT = new PhieuSachDTO();
                        psDT.MaDG = ("" + txtMaDG.Text.ToString().Trim() + "");
                        //hiển thị những cuốn sách được mượn theo mã độc giả
                        DataTable da = psBLL.PhieuTraSach_HienSachTra_MaDG(psDT);
                        gridControl1.DataSource = da;
                        int tienphat = 0;
                        for (int i = 0; i < grdSachTra.RowCount; i++)
                        {
                            tienphat += Convert.ToInt32(grdSachTra.GetRowCellValue(i, "TienPhat"));
                        }
                        txtTienPhatKyNay.Text = tienphat.ToString();

                        txtTongNo.Text = (Convert.ToInt32(txtTienPhatKyNay.Text.ToString()) + Convert.ToInt32(txtTienNoKyNay.Text.ToString().Replace(",", ""))).ToString();
                    }
                }
                enableButton();
            }
        }