private void dgHoaDonTrongNgay_MouseDoubleClick(object sender, MouseButtonEventArgs e) { try { if (dgHoaDonTrongNgay.SelectedItem != null) { hoaDonSelect = new HoaDon(); string maHoaDon = dgHoaDonTrongNgay.SelectedValue.ToString(); hoaDonSelect = CHoaDon_BUS.find(maHoaDon); if (hoaDonSelect != null) { HoaDon hoaDon = CHoaDon_BUS.find(hoaDonSelect.maHoaDon); // Lỗi NullReferenceException vẫn chưa bắt được dgChiTietHoaDonTrongNgay.ItemsSource = hoaDon.ChiTietHoaDons.Select(x => new { maHoaDon = x.maHoaDon, tenSanPham = x.SanPham.tenSanPham, soLuong = x.soLuong, donGia = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", x.SanPham.donGia), thanhTien = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", x.thanhTien) }); } } } catch (NullReferenceException) { MessageBox.Show("Chưa load được dữ liệu"); } }
private void dgQlhoadon_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (dgQlhoadon.SelectedItem != null) { hoaDonSelected = CHoaDon_BUS.find(dgQlhoadon.SelectedValue.ToString()); } }
private void btnTinhtien_Click(object sender, RoutedEventArgs e) { if (chiTietHoaDons.Count() == 0) { MessageBox.Show("Hóa Đơn chưa có chi tiết hóa đơn"); return; } string maHoaDon = CServices.taoMa <HoaDon>(CHoaDon_BUS.toList()); if (CHoaDon_BUS.find(maHoaDon) == null) { try { HoaDon hoaDon = new HoaDon(); hoaDon.maHoaDon = maHoaDon; hoaDon.maNhanVien = nhanVienSelect.maNhanVien; hoaDon.ngayLap = DateTime.Now; hoaDon.tongThanhTien = tongThanhTien; if (txtTienKhachDua.Text == "" || txtTienKhachDua.Text == null) { MessageBox.Show("Vui lòng nhập tiền khách đưa"); return; } else { hoaDon.tienKhachDua = double.Parse(txtTienKhachDua.Text); } if (txtTienThoiLai.Text == "" || txtTienThoiLai.Text == null) { MessageBox.Show("Vui lòng nhập tiền khách đưa để tính tiền thối lại"); return; } else { double tienThua = hoaDon.tienKhachDua.Value - hoaDon.tongThanhTien; if (tienThua < 0) { MessageBox.Show("Tiền khách đưa không thể nhỏ hơn tổng thành tiền"); return; } else if (tienThua >= 500000) { txtTienThoiLai.Text = ""; MessageBox.Show("Xem lại tiền khách đưa"); return; } else { hoaDon.tienThua = tienThua; } } hoaDon.trangThai = 0; foreach (var item in chiTietHoaDons) { ChiTietHoaDon a = new ChiTietHoaDon(); a.maHoaDon = hoaDon.maHoaDon; a.maSanPham = item.maSanPham; a.soLuong = item.soLuong; a.thanhTien = CChiTietHoaDon_BUS.tinhThanhTien(item); hoaDon.ChiTietHoaDons.Add(a); } if (CHoaDon_BUS.add(hoaDon)) { MessageBox.Show("Xuất hóa đơn thành công"); } else { return; } chiTietHoaDons.Clear(); hienThiDSChiTietHD(chiTietHoaDons); tongThanhTien = 0; txtTongTien.Text = ""; txtTienKhachDua.Text = ""; txtTienThoiLai.Text = ""; } catch (ArgumentNullException) { MessageBox.Show("Không được để rỗng đơn giá, tiền khách đưa, tiền thừa"); } catch (FormatException) { MessageBox.Show("Đơn giá, tiền khách đưa, tiền thừa, phải là số"); } catch (OverflowException) { MessageBox.Show("Đơn giá, tiền khách đưa, tiền thừa, vượt quá giới hạn lưu trữ"); } } else { MessageBox.Show("Mã hóa đơn đã tồn tại"); } }