//Nút reset private void btnReset_Click(object sender, RoutedEventArgs e) { _dtHoaDon = TraHangBusiness.DanhSachHoaDon(); dgHoaDon.ItemsSource = _dtHoaDon.DefaultView; txtTimKiem.Text = ""; dateNgayLap.SelectedDate = DateTime.Today; }
//Kiểm tra số lượng nhập kho private void btnThanhToan_Click(object sender, RoutedEventArgs e) { //Kiểm tra số lượng nhập vào if (!KiemTraSoLuongNhapKho()) { return; } //Nhập sản phẩm trả vào kho for (int i = 0; i < dgHangTra.Items.Count; i++) { HangMuaPubLic _hm = (HangMuaPubLic)dgHangTra.Items[i]; int _soSPLoi = _lstSPTraLai[i].SoLuong - _hm.SoLuong; string _ghiChu = ".[" + DateTime.Now.ToString("ddMMyy") + " Trả: " + _hm.SoLuong + " .Lỗi:" + _soSPLoi.ToString() + "]"; TraHangBusiness.NhapSPVaoKho(_hm.SanPham.MaSP_SP, _hm.SoLuong, _ghiChu); } //Gọi phương thức thanh toán - trả hàng EventHandler _eh = _ThanhToanTraSp; if (_eh != null) { _eh(this, e); } this.Close(); }
//Nút xóa private void btnXoa_Click(object sender, RoutedEventArgs e) { HoaDonPublic _hoaDon = (dgDsHoaDon.SelectedItem as ThongKeTheoHoaDonPublic).HoaDon;; if (MessageBox.Show("Hóa đơn không thể khôi phục lại sau khi xóa bạn có chắc muốn xóa hóa đơn này?", "Xác nhận xóa", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { TraHangBusiness.HuyHoaDon(_hoaDon); UserControl_Loaded(sender, e); } }
//wpf loaded private void Window_Loaded(object sender, RoutedEventArgs e) { dateNgayLap.SelectedDate = DateTime.Today; _dtHoaDon = TraHangBusiness.DanhSachHoaDon(); dgHoaDon.ItemsSource = _dtHoaDon.DefaultView; if (!String.IsNullOrEmpty(_strTim)) { txtTimKiem.Text = _strTim; btnTim_Click(sender, e); txtTimKiem.SelectAll(); txtTimKiem.Focus(); } }
//Kiểm tra số hóa đơn nhập vào private bool KiemTraSoHD() { string _soHD = txtSoHD.Text.Trim(); if (String.IsNullOrEmpty(_soHD)) { lbWarning.Visibility = System.Windows.Visibility.Visible; lbWarning.Content = "Nhập vào số hóa đơn!"; txtSoHD.Focus(); return(false); } string _strKiemTraSoHD = @"^([a-zA-Z0-9._-]*)$"; if (!System.Text.RegularExpressions.Regex.IsMatch(_soHD, _strKiemTraSoHD)) { lbWarning.Visibility = System.Windows.Visibility.Visible; lbWarning.Content = "Số hóa đơn sai định dạng!"; txtSoHD.Focus(); txtSoHD.SelectAll(); return(false); } //Kiểm tra có hóa đơn này ko? HoaDonPublic _hd = TraHangBusiness.LayHoaDon(_soHD); if (_hd == null) { lbWarning.Visibility = System.Windows.Visibility.Visible; lbWarning.Content = "Hóa đơn không tồn tại!"; txtSoHD.Focus(); txtSoHD.SelectAll(); return(false); } lbWarning.Visibility = System.Windows.Visibility.Hidden; return(true); }
//Nút mua hàng tiếp -- Bỏ chưa làm private void btnTiepTucMua_Click(object sender, RoutedEventArgs e) { #region 1.Lấy thông tin #endregion #region 2. Hủy hóa đơn cũ if (_hoaDon != null) { TraHangBusiness.HuyHoaDon(_hoaDon); } else { MessageBox.Show("Hóa đơn hủy rỗng!"); } #endregion #region 3.Lưu lịch sử bán hàng LichSuBanHangPublic _lsbh = new LichSuBanHangPublic(); _lsbh.MaLSBH_LSBH = UntilitiesBusiness.GetNextID("tbl_LICHSUBANHANG", "MaLSBH_LSBH", "LS.", 10); _lsbh.NhanVienThucHien_LSBH.MaNV_NV = "NV00001"; _lsbh.SoHD_LSBH.SoHD_HD = _hoaDon.SoHD_HD; _lsbh.MoTa_LSBH = "Khách trả hàng"; _lsbh.ThoiGian_LSBH = DateTime.Now; LichSuBanHangBusiness.ThemLichSuBanHang(_lsbh); #endregion #region 4.Chuyển sang giao diện bán hàng //Chuẩn bị thông tin truyền sang //Tạo hóa đơn mới _hoaDonMoi.SoHD_HD = UntilitiesBusiness.GetNextID("tbl_HOADON", "SoHD_HD", "HD.", 10); _hoaDonMoi.NgayLap_HD = DateTime.Now; _hoaDonMoi.KhachHang_HD = _hoaDon.KhachHang_HD; _hoaDonMoi.NguoiLap_HD.MaNV_NV = _hoaDon.NguoiLap_HD.MaNV_NV; _hoaDonMoi.MaGiamGia.MaThe_MGG = _hoaDon.MaGiamGia.MaThe_MGG; _hoaDonMoi.BanLe_HD = _hoaDon.BanLe_HD; _hoaDonMoi.DangDung_HD = true; _hoaDonMoi.TienKhachTraTruoc = _TienDaTra; _lstSpTiepTucMua = new List <SanPhamPublic>(); SanPhamPublic _sp; foreach (HangMuaPubLic _hm in _lstHangMua) { _sp = new SanPhamPublic(); _sp.STT = _lstSpTiepTucMua.Count + 1; _sp.MaSP_SP = _hm.SanPham.MaSP_SP; _sp.TenSP_SP = _hm.SanPham.TenSP_SP; _sp.SoLuong_SP = _hm.SoLuong; _sp.CKPhanTram_SP = _hm.ChietKhauPhanTram; _sp.CKTienMat = _hm.ChietKhauTienMat; _sp.GiaNhap_SP = _hm.GiaNhap_HM; _sp.GiaBan = _hm.GiaBan_HM; _sp.DVT_SP.TenDVT_DVT = _hm.SanPham.DVT_SP.TenDVT_DVT; _sp.ThanhTien_SP = UntilitiesBusiness.ThemDauPhay(_hm.ThanhTien.ToString()); _lstSpTiepTucMua.Add(_sp); } EventHandler _eh = _TiepTucMua; if (_eh != null) { _eh(this, e); } #endregion }
//Phương thức thanh toán - trả sp private void ThanhToanTraSp(object sender, EventArgs e) { #region 1.Lấy thông tin #endregion #region 2. Hủy hóa đơn cũ if (_hoaDon != null) { TraHangBusiness.HuyHoaDon(_hoaDon); } else { MessageBox.Show("Hóa đơn hủy rỗng!"); } #endregion #region 3.Lưu lịch sử bán hàng LichSuBanHangPublic _lsbh = new LichSuBanHangPublic(); _lsbh.MaLSBH_LSBH = UntilitiesBusiness.GetNextID("tbl_LICHSUBANHANG", "MaLSBH_LSBH", "LS.", 10); _lsbh.NhanVienThucHien_LSBH = _NhanVien; _lsbh.SoHD_LSBH.SoHD_HD = _hoaDon.SoHD_HD; _lsbh.MoTa_LSBH = "Khách trả hàng"; _lsbh.ThoiGian_LSBH = DateTime.Now; LichSuBanHangBusiness.ThemLichSuBanHang(_lsbh); #endregion #region 4.Tạo hóa đơn mới nếu còn hàng if (_lstHangMua == null) { goto go; } if (_lstHangMua.Count == 0) { goto go; } //Tạo hóa đơn mới _hoaDonMoi.SoHD_HD = UntilitiesBusiness.GetNextID("tbl_HOADON", "SoHD_HD", "HD.", 10); _hoaDonMoi.NgayLap_HD = DateTime.Now; _hoaDonMoi.KhachHang_HD = _hoaDon.KhachHang_HD; _hoaDonMoi.NguoiLap_HD = _NhanVien; _hoaDonMoi.MaGiamGia.MaThe_MGG = _hoaDon.MaGiamGia.MaThe_MGG; _hoaDonMoi.BanLe_HD = _hoaDon.BanLe_HD; _hoaDonMoi.DangDung_HD = true; ////Tạo danh sách hàng mua cho hóa đơn mới List <SanPhamPublic> _lstSpMua = new List <SanPhamPublic>(); SanPhamPublic _sp; foreach (HangMuaPubLic _hm in _lstHangMua) { _sp = new SanPhamPublic(); _sp.MaSP_SP = _hm.SanPham.MaSP_SP; _sp.TenSP_SP = _hm.SanPham.TenSP_SP; _sp.SoLuong_SP = _hm.SoLuong; _sp.CKPhanTram_SP = _hm.ChietKhauPhanTram; _sp.CKTienMat = _hm.ChietKhauTienMat; _sp.GiaNhap_SP = _hm.GiaNhap_HM; _sp.GiaBan = _hm.GiaBan_HM; _sp.DVT_SP.TenDVT_DVT = _hm.SanPham.DVT_SP.TenDVT_DVT; _sp.ThanhTien_SP = UntilitiesBusiness.ThemDauPhay(_hm.ThanhTien.ToString()); _lstSpMua.Add(_sp); } ////Lưu hóa đơn mới BanHangBusiness.BanHang(_hoaDonMoi, _lstSpMua, false); ////Lưu lịch sử bán hàng //_lsbh = new LichSuBanHangPublic(); //_lsbh.MaLSBH_LSBH = UntilitiesBusiness.GetNextID("tbl_LICHSUBANHANG", "MaLSBH_LSBH", "LS.", 10); //_lsbh.NhanVienThucHien_LSBH = _NhanVien; //_lsbh.SoHD_LSBH.SoHD_HD = _hoaDonMoi.SoHD_HD; //_lsbh.MoTa_LSBH = "Khách mua hàng"; //_lsbh.ThoiGian_LSBH = DateTime.Now; //LichSuBanHangBusiness.ThemLichSuBanHang(_lsbh); //In hóa đơn mới nếu có //Chuẩn bị dữ liệu Pos_ds _Pos_ds = new Pos_ds(); DataTable _dtHoaDonBanLe = _Pos_ds.tbl_HOADON; DataRow _drHoaDonBanLe; foreach (SanPhamPublic _spHoaDon in _lstSpMua) { _drHoaDonBanLe = _dtHoaDonBanLe.NewRow(); _drHoaDonBanLe["MaSP_SP"] = _spHoaDon.MaSP_SP; _drHoaDonBanLe["TenSP_SP"] = _spHoaDon.TenSP_SP; _drHoaDonBanLe["GiaBan_SP"] = _spHoaDon.GiaBan; _drHoaDonBanLe["DVT_SP"] = _spHoaDon.DVT_SP.TenDVT_DVT; _drHoaDonBanLe["SoLuong_SP"] = _spHoaDon.SoLuong_SP; _drHoaDonBanLe["ChietKhau_SP"] = _spHoaDon.CKTienMat; _drHoaDonBanLe["ThanhTien_SP"] = _spHoaDon.ThanhTien_SP; _dtHoaDonBanLe.Rows.Add(_drHoaDonBanLe); } _hoaDonMoi.TongSoLuongSP = _lstSpMua.Sum(item => item.SoLuong_SP); HoaDonBanLe_UPresentation wpf_HoaDon = new HoaDonBanLe_UPresentation(); wpf_HoaDon._dtHoaDon = _dtHoaDonBanLe; wpf_HoaDon._hoaDon = _hoaDonMoi; wpf_HoaDon.ShowDialog(); #endregion go: #region 5.Khởi tạo lại dữ liệu: danh sách hàng trả hàng mua _lstHangMua.Clear(); _lstHangTra.Clear(); _hoaDon = null; _hoaDonMoi = null; //Hiển thị dgHangMua.ItemsSource = _lstHangMua; dgHangMua.Items.Refresh(); libHangTra.ItemsSource = _lstHangTra; libHangTra.Items.Refresh(); lbSoHD.Content = ""; lbNgayLap.Content = ""; lbNhanVien.Content = ""; lbKhachHang.Content = ""; lbTongTien.Content = "0"; lbTongCkSP.Content = "0"; lbTongCKHD.Content = "0"; lbVoucher.Content = "0"; lbMaGiamGia.Content = "0"; lbThanhTien.Content = "0"; btnThanhToan.IsEnabled = false; btnTiepTucMua.IsEnabled = false; btnHoDon.IsEnabled = true; txtSoHD.Focus(); #endregion }
//Nút nhập hóa đơn private void btnHoDon_Click(object sender, RoutedEventArgs e) { if (txtSoHD.Text.EndsWith("?")) { KiemKeTimHoaDonPresentation wpf = new KiemKeTimHoaDonPresentation(); wpf._strTim = txtSoHD.Text.Replace("?", ""); wpf._TimHoaDon += new EventHandler(TimHoaDon); wpf.ShowDialog(); goto go; } //Kiểm tra số hóa đơn nhập vào if (!KiemTraSoHD()) { return; } go: //Lấy hóa đơn và hàng mua string _soHD = txtSoHD.Text.Trim(); List <HangMuaPubLic> _lst = TraHangBusiness.LayDsHangMua(_soHD); if (_lst != null) { _lstHangMua = _lst; _hoaDon = _lstHangMua[0].HoaDon; //Kiểm tra xem giá bán có thay đổi ko. nếu có thì ko cho mua tiếp trên hóa đơn này KiemTraGia(); //Hiển thị thông tin dgHangMua.ItemsSource = _lstHangMua; lbSoHD.Content = _hoaDon.SoHD_HD; lbNgayLap.Content = _hoaDon.NgayLap_HD.ToString("dd/MM/yyyy HH:mm tt"); lbNhanVien.Content = _hoaDon.NguoiLap_HD.MaNV_NV; //Khách hàng if (String.IsNullOrEmpty(_hoaDon.KhachHang_HD.MaKH_KH)) { lbKhachHang.Content = "Khách vãng lai"; } else { _hoaDon.KhachHang_HD = TraHangBusiness.LayKhachHang(_hoaDon.KhachHang_HD.MaKH_KH); lbKhachHang.Content = _hoaDon.KhachHang_HD.HoTen_KH; } //Tính tổng tiền hóa đơn cũ _TienDaTra = TinhTien(); _hoaDon.TongTien_HD = _hoaDonMoi.TongTien_HD;//Lấy tổng tiền (tính số điểm khách hàng để trừ khi hủy hóa đơn) //Tắt nút nhập txtSoHD.Text = ""; btnHoDon.IsEnabled = false; } else { lbWarning.Visibility = System.Windows.Visibility.Visible; lbWarning.Content = "Lỗi hóa đơn, hóa đơn không chứa sản phẩm nào!"; txtSoHD.Focus(); txtSoHD.SelectAll(); } }
//Tính tiền khách đã thanh toán ở hóa đơn cũ private int TinhTien() { if (_lstHangMua == null || _hoaDon == null) { return(0); } int _TongTien = 0; int _TongCkSP = 0; float _CkHD = 0; //Phần trăm int _TongCkHd = _hoaDon.TongCKHoaDon; //Tiền int _Voucher = _hoaDon.VouCher_HD; int _TienMaGiamGia = 0; //Tiền int _CkMaGiamGia = 0; //Phần trăm int _ThanhTien = 0; if (!String.IsNullOrEmpty(_hoaDon.MaGiamGia.MaThe_MGG)) { _CkMaGiamGia = TraHangBusiness.LayCKMaGiamGia(_hoaDon.MaGiamGia.MaThe_MGG); } foreach (HangMuaPubLic _hm in _lstHangMua) { _TongTien = _TongTien + Convert.ToInt32(UntilitiesBusiness.BoDauPhay(_hm.GiaBan_HM)) * _hm.SoLuong; _TongCkSP = _TongCkSP + Convert.ToInt32(UntilitiesBusiness.BoDauPhay(_hm.ChietKhauTienMat)); } //Tính tiền chiết khấu từ mã giảm giá _TienMaGiamGia = _TongTien * _CkMaGiamGia / 100; //Tiền triết khấu từ nhóm khách hàng _CkHD = _hoaDon.CKPhanTram_HD; _TongCkHd = (int)(_TongTien * _CkHD / 100); if (_TongCkHd.ToString().EndsWith("9")) { _TongCkHd = _TongCkHd + 1; } _ThanhTien = _TongTien - _TongCkSP - _TongCkHd - _Voucher - _TienMaGiamGia; if (_ThanhTien < 0) { _ThanhTien = 0; } //Hiển thị thành tiền lbTongTien.Content = UntilitiesBusiness.ThemDauPhay(_TongTien.ToString()); lbTongCkSP.Content = UntilitiesBusiness.ThemDauPhay(_TongCkSP.ToString()); lbTongCKHD.Content = UntilitiesBusiness.ThemDauPhay(_TongCkHd.ToString()); lbVoucher.Content = UntilitiesBusiness.ThemDauPhay(_Voucher.ToString()); lbMaGiamGia.Content = UntilitiesBusiness.ThemDauPhay(_TienMaGiamGia.ToString()); lbThanhTien.Content = UntilitiesBusiness.ThemDauPhay(_ThanhTien.ToString()); _TienSauTraSp = _ThanhTien; //Hóa đơn mới if (_hoaDonMoi == null) { _hoaDonMoi = new HoaDonPublic(); } _hoaDonMoi.TongTien_HD = _TongTien; _hoaDonMoi.CKPhanTram_HD = _CkHD; _hoaDonMoi.TongCKHoaDon = _TongCkHd; _hoaDonMoi.TongCKSanPham = _TongCkSP; _hoaDonMoi.VouCher_HD = _Voucher; _hoaDonMoi.TienMaGiamGia = _TienMaGiamGia; _hoaDonMoi.TienKhachTra_HD = _ThanhTien; _hoaDonMoi.TienThuaTraLaiKhach = 0; _hoaDonMoi.ThanhTien = _ThanhTien; return(_ThanhTien); }