public bool ExporHoaDon(contentReportHoaDon content, ref string fileName, bool isPrintPreview)
        {
            // Check if data is null
            if (content.dataSource == null || (content.dataSource != null && content.dataSource.Count == 0))
            {
                return(false);
            }
            // Create replacer
            Dictionary <string, string> replacer = new Dictionary <string, string>();

            replacer.Add(MAHD, content.mahd);
            replacer.Add(TENNV, content.tennv);
            replacer.Add(TENKH, content.tenkh);
            replacer.Add(TONGTH, content.tienHang);
            replacer.Add(TONGTT, content.tongThanhTien);
            replacer.Add(TICHDIEM, content.tichDiem);
            replacer.Add(DUNGDIEM, content.dungDiem);
            replacer.Add(TIENMAT, content.khachDua);
            replacer.Add(TRALAI, content.traLai);
            replacer.Add(DTL, content.diemTichLuyHientai);
            BuildReplacerCurrentDate(ref replacer);


            return(OutSimpleReport(content.dataSource, replacer, "HoaDonBanHang", isPrintPreview, ref fileName));
        }
 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());
     }
 }