private void btnLuu_Click(object sender, EventArgs e) { if (TongTien >= TienGiam) { DiemTichLuyCapNhat = DiemThuong; } else { DiemTichLuyCapNhat = Convert.ToInt32(TongTien / 1000) + DiemThuong; } HoaDon hd = new HoaDon(); hd.SoHoaDon = SoMaHoaDon.Text.Trim(); hd.MaKhachHang = txtMaKhachHang.Text.Trim(); hd.MaNhanVien = "NV0001"; hd.NgayLap = deNgayLap.DateTime; hd.TongTien = TienThanhToan; hd.TienGiam = TienGiam; hd.DiemThuong = DiemThuong; if (HoaDonService.Insert(hd)) { ChiTietHoaDon cthd = new ChiTietHoaDon(); cthd.SoHoaDon = hd.SoHoaDon; for (int i = 0; i < grvHoaDon.RowCount; i++) { cthd.MaHangHoa = grvHoaDon.GetRowCellValue(i, "MaHangHoa").ToString(); cthd.SoLuong = Convert.ToInt32(grvHoaDon.GetRowCellValue(i, "SoLuong").ToString()); DataRowView row = lueHangHoa.Properties.GetDataSourceRowByKeyValue(cthd.MaHangHoa) as DataRowView; cthd.DonGia = Convert.ToDecimal(row.Row["GiaBan"].ToString()); cthd.ThanhTien = cthd.SoLuong * cthd.DonGia; if (!ChiTietHoaDonService.Insert(cthd)) { XtraMessageBox.Show("Lưu thất bại!"); if (i > 0) { if (!ChiTietHoaDonService.Delete(hd.SoHoaDon)) { XtraMessageBox.Show("Roll back không thành công!"); return; } } if (HoaDonService.Delete(hd.SoHoaDon)) { XtraMessageBox.Show("Roll back thành công!"); } else { XtraMessageBox.Show("Roll back không thành công!"); } return; } DataTable dtHH = HangHoaService.GetById(cthd.MaHangHoa); int SL = Convert.ToInt32(dtHH.Rows[0][5].ToString()); dtHH.Rows[0][5] = SL - cthd.SoLuong; if (!HangHoaService.SaveChanges(dtHH)) { XtraMessageBox.Show("Không update được hàng hóa"); } } if (hd.MaKhachHang != "KH0000") { DataTable dtKT = KhachHangThanThietService.SearchMaKhachHang(hd.MaKhachHang); dtKT.Rows[0][5] = DiemTichLuyCapNhat; if (!KhachHangThanThietService.SaveChanges(dtKT)) { XtraMessageBox.Show("Không update được khách hàng thân thiết"); } } XtraMessageBox.Show("Lưu thành công!"); isSaved = true; } else { XtraMessageBox.Show("Lưu thất bại!"); isSaved = false; } }