private void btnThanhToan_Click(object sender, EventArgs e)
 {
     // chỉ thanh toán khi :
     //  số tiền trả lại(số tiền khách đưa - tiền hàng) >= 0
     //  trong giỏ có hàng
     //  tất cả các thông tin cần thiết đều có
     //  sau khi insert hóa đơn
     // insert từng chi tiết hóa đơn
     // update điểm tích lũy
     try
     {
         if (lstGioHang.Items.Count > 0)
         {
             if (cmbTienKhachDua.Text != "")
             {
                 if (Double.Parse(txtTienTraLai.Text) >= 0)
                 {
                     try
                     {
                         dalHoaDon.thanhToanHoaDon(txtMaHoaDon.Text, frmLogin.nhanVien.MANV, cbbKhachHang.SelectedValue.ToString(), txtTongGiaTriGioHang.Text, txtDungDiemTichLuy.Text, txtTichDiem.Text, convertGioHang(lstGioHang));
                         rptHoaDonBanHang    rpt     = new rptHoaDonBanHang();
                         contentReportHoaDon content = new contentReportHoaDon();
                         content.mahd               = txtMaHoaDon.Text;
                         content.tenkh              = cbbKhachHang.Text;
                         content.tennv              = txtNhanVien.Text;
                         content.tongThanhTien      = txtTongGiaTriGioHang.Text;
                         content.tienHang           = txtTienHang.Text;
                         content.tichDiem           = txtTichDiem.Text;
                         content.dungDiem           = txtDungDiemTichLuy.Value.ToString();
                         content.khachDua           = cmbTienKhachDua.Text;
                         content.traLai             = txtTienTraLai.Text;
                         content.diemTichLuyHientai = (int.Parse(dalHoaDon.getTichLuy(cbbKhachHang.SelectedValue.ToString())) + (int.Parse(txtTichDiem.Text) - int.Parse(txtDungDiemTichLuy.Value.ToString()))).ToString();
                         content.dataSource         = convertGioHang(lstGioHang);
                         string path = txtMaHoaDon.Text;
                         rpt.ExporHoaDon(content, ref path, false);
                         if (!string.IsNullOrEmpty(path) && MessageBox.Show("Bạn có muốn mở file không?", "Thông tin", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
                         {
                             System.Diagnostics.Process.Start(path);
                         }
                     }
                     catch (Exception ex)
                     {
                         MessageBox.Show(ex.ToString());
                     }
                     dsHangHoa = dalHoaDon.getHangHoa("");
                     dataGridViewHangHoa.DataSource = dsHangHoa;
                     taoHoaDonMoi();
                 }
                 else
                 {
                     MessageBox.Show("Khách chưa đưa đủ tiền !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
             else
             {
                 MessageBox.Show("Khách chưa đưa tiền !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
         else
         {
             MessageBox.Show("Hãy chọn hàng trước khi thanh toán !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }