//Click trên các dòng trong datagridview , lấy dữ liệu dòng đó gán vào các trường input
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            string sosotamtru = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();

            if (string.IsNullOrEmpty(sosotamtru))
            {
                return;
            }

            string   chuho     = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
            string   noitamtru = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
            DateTime ngaycap   = Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[3].Value);
            DateTime denngay   = Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells[4].Value);

            sotamtruDto = new SoTamTruDTO(sosotamtru, chuho, noitamtru, ngaycap, denngay);

            ImportToComboboxMaChuHo();

            txt_SoSoTamTru.Text = sotamtruDto.SoSoTamTru;
            dt_TuNgay.Value     = sotamtruDto.NgayCap;
            dt_DenNgay.Value    = sotamtruDto.DenNgay;

            txt_NoiTamTru.Text = noitamtru;
            ImportToComboboxMaChuHo();
        }
        //Sửa một sổ tạm trú
        private void btnSua_Click(object sender, EventArgs e)
        {
            if (!isInputTrueSoTamTru())
            {
                MessageBox.Show("Vui lòng nhập đủ thông tin!");
                return;
            }

            string sosotamtru = txt_SoSoTamTru.Text.ToString();

            string machuhotamtru = sotamtruBus.convertTentoMaNhanKhauTamTru(cbb_MaChuHo.Text.ToString(), sosotamtru);

            //Kiểm tra sự tồn tại của mã số sổ tạm trú
            if (!sotamtruBus.ExistedSoTamTru(sosotamtru))
            {
                MessageBox.Show("Sổ tạm trú " + sosotamtru + " chưa tồn tại ! vui lòng kiểm tra lại!");
                return;
            }

            //Kiểm tra sự tồn tại của mã nhân khẩu tạm trú để làm chủ hộ
            if (!sotamtruBus.Existed_NhanKhauTamTru(machuhotamtru))
            {
                MessageBox.Show("Chưa đăng ký tạm trú cho nhân khẩu có mã " + machuhotamtru + " !");
                return;
            }
            //Kiểm tra chủ hộ này có nằm trong một sổ tạm trú khác hay không?
            if (sotamtruBus.Duplicated_NhanKhauTamTru(machuhotamtru, sosotamtru))
            {
                MessageBox.Show("Nhân khẩu tạm trú " + machuhotamtru + " đang ở trong sổ tạm trú khác!");
                return;
            }

            //Không cho sửa ngày đăng ký và ngày kết thúc sổ tạm trú

            SoTamTruBUS Sotamtru = new SoTamTruBUS();

            DateTime TuNgay  = sotamtruBus.TimNgayDangKyTamTru(sosotamtru);
            DateTime DenNgay = sotamtruBus.ThoiHanSoTamTru(sosotamtru);

            if (TuNgay != dt_TuNgay.Value.Date || DenNgay != dt_DenNgay.Value.Date)
            {
                MessageBox.Show("Không được phép sửa ngày đăng ký và ngày hết hạn sổ tạm trú");
                return;
            }


            machuhotamtru = Sotamtru.convertTentoMaNhanKhauTamTru(cbb_MaChuHo.Text.ToString(), sosotamtru);

            DialogResult dialogResult = MessageBox.Show("Bạn có muốn cập nhật thông tin sổ tạm trú " + sosotamtru + " không?", "Thông báo", MessageBoxButtons.YesNo);

            if (dialogResult == DialogResult.Yes)
            {
                int r = dataGridView1.CurrentCell.RowIndex;

                string   choohiennay = txt_NoiTamTru.Text.ToString();
                DateTime tungay      = TuNgay;
                DateTime denngay     = DenNgay;


                SoTamTruDTO sotamtru = new SoTamTruDTO(sosotamtru, machuhotamtru, choohiennay, tungay, denngay);

                if (sotamtruBus.Update(sotamtru, r))
                {
                    MessageBox.Show("Sửa thông tin sổ tạm trú " + sosotamtru + " thành công!");
                    LoadDataGridView();
                    ResetValueInput();
                    dataGridView1.DataSource = sotamtruBus.TimKiem(sotamtru.SoSoTamTru).Tables[0];
                }
                else
                {
                    MessageBox.Show("Sửa thông tin sổ tạm trú " + sosotamtru + " thất bại!");
                }
            }
            else if (dialogResult == DialogResult.No)
            {
            }
        }
        //Thêm một sổ tạm trú mới
        private void btnThem_Click(object sender, EventArgs e)
        {
            if (!isInputTrueSoTamTru())
            {
                MessageBox.Show("Vui lòng nhập đủ thông tin!");
                return;
            }


            string sosotamtru = txt_SoSoTamTru.Text.ToString();

            SoTamTruBUS sotamtru = new SoTamTruBUS();

            string machuhotamtru = sotamtru.convertTentoMaNhanKhauTamTru(cbb_MaChuHo.Text.ToString(), sosotamtru);

            //Kiểm tra sự tồn tại của mã số sổ tạm trú
            if (sotamtruBus.ExistedSoTamTru(sosotamtru))
            {
                MessageBox.Show("Sổ tạm trú " + sosotamtru + " đã có ! vui lòng kiểm tra lại!");
                return;
            }

            //Kiểm tra sự tồn tại của mã nhân khẩu tạm trú để làm chủ hộ
            if (!sotamtruBus.Existed_NhanKhauTamTru(machuhotamtru))
            {
                MessageBox.Show("Chưa đăng ký tạm trú cho nhân khẩu có mã " + machuhotamtru + " !");
                return;
            }
            //Kiểm tra chủ hộ này có nằm trong một sổ tạm trú khác hay không?
            if (sotamtruBus.Duplicated_NhanKhauTamTru(machuhotamtru, sosotamtru))
            {
                MessageBox.Show("Nhân khẩu tạm trú " + machuhotamtru + " đang ở trong sổ tạm trú khác!");
                return;
            }
            DateTime tungay  = dt_TuNgay.Value.Date;
            DateTime denngay = dt_DenNgay.Value.Date;

            //Kiểm tra thời gian bắt đầu phải lớn hơn thời gian kết thúc
            if (tungay > denngay)
            {
                MessageBox.Show("Thời gian bắt đầu không được nhỏ hơn thời gian kết thúc!");
                return;
            }

            //KIểm tra thời gian đăng ký có hợp lệ không?
            if (!sotamtruBus.CheckThoiGianDangKyTamTru(tungay, denngay))
            {
                MessageBox.Show("Thời gian tạm trú không được quá 2 năm!");
                return;
            }

            string choohiennay = txt_NoiTamTru.Text.ToString();



            sotamtruDto = new SoTamTruDTO(sosotamtru, machuhotamtru, choohiennay, tungay, denngay);

            if (sotamtruBus.Add(sotamtruDto))
            {
                MessageBox.Show("Đăng ký tạm trú có sổ tạm trú " + sosotamtru + " thành công!");
                LoadDataGridView();
                ResetValueInput();
            }
            else
            {
                MessageBox.Show("Đăng ký tạm trú sổ tạm trú " + sosotamtru + " thất bại!");
            }
        }