//Hiển thị thông tin private void HienThiHoaDon() { //Hiển thị thông tin hóa đơn _hoadon = ThongKeBusiness.TinhTien1HoaDon(_soHD); if (_hoadon == null) { return; } lbSoHD.Content = _hoadon.SoHD_HD; lbNgayLap.Content = _hoadon.NgayLap_HD.ToString("dd/MM/yyyy HH:mm"); lbNguoiLap.Content = _hoadon.NguoiLap_HD.MaNV_NV; if (String.IsNullOrEmpty(_hoadon.KhachHang_HD.MaKH_KH)) { lbKhachHang.Content = "Khách vãng lai"; } else { lbKhachHang.Content = _hoadon.KhachHang_HD.MaKH_KH; } lbTongTien.Content = UntilitiesBusiness.ThemDauPhay(_hoadon.TongTien_HD.ToString()); lbTongCKSP.Content = UntilitiesBusiness.ThemDauPhay(_hoadon.TongCKSanPham.ToString()); lbTongCKHD.Content = UntilitiesBusiness.ThemDauPhay(_hoadon.TongCKHoaDon.ToString()); lbVoucher.Content = UntilitiesBusiness.ThemDauPhay(_hoadon.VouCher_HD.ToString()); lbTienMaGiamGia.Content = UntilitiesBusiness.ThemDauPhay(_hoadon.TienMaGiamGia.ToString()); lbThanhTien.Content = UntilitiesBusiness.ThemDauPhay(_hoadon.ThanhTien.ToString()); //Hiển thị thông tin hàng mua _lstHangMua = ThongKeBusiness.LayHangMua(_soHD); dgDsHangMua.ItemsSource = _lstHangMua; }
//Lấy hóa đơn theo số hóa đơn - lấy tất private static HoaDonPublic LayHoaDon(string _soHD) { HoaDonPublic _hd = null; SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Lấy hóa đơn theo sohd]"; _cmd.Parameters.AddWithValue("@SoHD_HD", _soHD); DataTable _dtHd = conn.GetDataSet2(_cmd).Tables[0]; //Lấy thông tin if (_dtHd.Rows.Count > 0) { _hd = new HoaDonPublic(); _hd.SoHD_HD = _dtHd.Rows[0]["SoHD_HD"].ToString(); _hd.NgayLap_HD = (DateTime)_dtHd.Rows[0]["NgayLap_HD"]; _hd.NguoiLap_HD.MaNV_NV = _dtHd.Rows[0]["NguoiLap_HD"].ToString(); _hd.KhachHang_HD.MaKH_KH = _dtHd.Rows[0]["MaKH_HD"].ToString(); _hd.BanLe_HD = (bool)_dtHd.Rows[0]["BanLe_HD"]; _hd.CKPhanTram_HD = float.Parse(_dtHd.Rows[0]["CKPhanTram_HD"].ToString()); _hd.TongCKHoaDon = Convert.ToInt32(_dtHd.Rows[0]["ChietKhauTienMat_HD"].ToString()); _hd.TienKhachTra_HD = Convert.ToInt32(_dtHd.Rows[0]["TienKhachTra_HD"].ToString()); _hd.VouCher_HD = Convert.ToInt32(_dtHd.Rows[0]["VouCher_HD"].ToString()); _hd.MaGiamGia.MaThe_MGG = _dtHd.Rows[0]["MaGiamGia_HD"].ToString(); _hd.DangDung_HD = (bool)_dtHd.Rows[0]["DangDung_HD"]; return(_hd); } return(_hd); }
//Khởi tạo bán hàng - dowork private void KhoiTao_dowork() { //Khởi tạo hóa đơn mới _hoaDon = new HoaDonPublic(); _hoaDon.SoHD_HD = UntilitiesBusiness.GetNextID("tbl_HOADON", "SoHD_HD", "HD.", 10); _hoaDon.NgayLap_HD = DateTime.Now; _hoaDon.NguoiLap_HD = _NhanVien; _khachHang = new KhachHangPublic(); _khachHang.MaKH_KH = null; _hoaDon.KhachHang_HD = _khachHang; _hoaDon.KhachHang_HD.NHK_KH.ChietKhau_NKH = 0; _hoaDon.BanLe_HD = true; // Chú ý: đặt lại giá trị khi thêm hàng vào giỏ _hoaDon.TongCKHoaDon = 0; _hoaDon.TongCKSanPham = 0; _hoaDon.TongTien_HD = 0; _hoaDon.TongTienNhap = 0; _hoaDon.TienKhachTra_HD = 0; _hoaDon.TienConLaiPhaiTra = 0; _hoaDon.VouCher_HD = 0; //Nếu có hóa đơn cũ truyền vào thì lấy thông tin từ hóa đơn cũ if (_hoaDonCu != null && _lstSpTiepTucMua != null) { _hoaDon.KhachHang_HD = _hoaDonCu.KhachHang_HD; _hoaDon.TongCKHoaDon = _hoaDonCu.TongCKHoaDon; _hoaDon.TongCKSanPham = _hoaDonCu.TongCKSanPham; _hoaDon.TongTien_HD = _hoaDonCu.TongTien_HD; _hoaDon.TongTienNhap = _hoaDonCu.TongTienNhap; _hoaDon.TienKhachTraTruoc = _hoaDonCu.TienKhachTraTruoc; _hoaDon.TienKhachTra_HD = 0; _hoaDon.TienConLaiPhaiTra = 0; _dsSPMua = new List <SanPhamPublic>(); _dsSPMua = _lstSpTiepTucMua; ////Hủy dữ liệu cũ truyền sang _hoaDonCu = null; _lstSpTiepTucMua = null; } else { //Khởi tạo giỏ hàng- truwnowngf hợp ko có hóa đơn cũ tiếp tục mua hàng _dsSPMua = new List <SanPhamPublic>(); _dsSPMua.Clear(); } //Lấy thiết lập _thietLap = ThietLapHeThongBusiness.LayThietLapHeThong(); }
//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); } }
//Phương thức tiếp tục mua private void TiepTucMua(object sender, EventArgs e) { //Lấy danh sách hàng tiếp tục mua NhapHangTraUPresentation wpf_nhapHangTra = (NhapHangTraUPresentation)sender; List <SanPhamPublic> _LstSpTiepTucMua = wpf_nhapHangTra._lstSpTiepTucMua; HoaDonPublic _hoaDonCu = wpf_nhapHangTra._hoaDonMoi; BanHangUPresentation wpf_bh = new BanHangUPresentation(); wpf_bh._hoaDonCu = _hoaDonCu; wpf_bh._lstSpTiepTucMua = _LstSpTiepTucMua; gdContentMain.Children.Clear(); gdContentMain.Children.Add(wpf_bh); }
//Nút chiết khấu private void btnChietKhau_Click(object sender, RoutedEventArgs e) { if (_dsSPMua.Count == 0) { MessageBox.Show("Chưa có sản phẩm nào trong giỏ hàng !"); return; } //Lấy thông tin: hóa đơn | khách hàng HoaDonPublic _hdTemp = _hoaDon; BanHangSuaChietKhauPresentation wpf = new BanHangSuaChietKhauPresentation(); wpf._hoaDon = _hdTemp; wpf._SuaChietKhau += new EventHandler(SuaChietKhauHD); wpf.ShowDialog(); }
//Phương thức sửa chiết khấu hóa đơn private void SuaChietKhauHD(object sender, EventArgs e) { //Lấy thông tin(Tổng chiết khấu hóa đơn) BanHangSuaChietKhauPresentation wpf = (BanHangSuaChietKhauPresentation)sender; HoaDonPublic _hdTemp = wpf._hoaDon; int _TongCkHD = _hdTemp.TongCKHoaDon; //Tính lại thành tiền _hoaDon.TongCKHoaDon = _TongCkHD; _hoaDon.ThanhTien = _hoaDon.TongTien_HD - _hoaDon.TongCKSanPham - _hoaDon.TongCKHoaDon; _hoaDon.TienConLaiPhaiTra = _hoaDon.ThanhTien; //Hiển thị txtbCkHoaDon.Text = UntilitiesBusiness.ThemDauPhay(_hoaDon.TongCKHoaDon.ToString()); txtbThanhTien.Text = UntilitiesBusiness.ThemDauPhay(_hoaDon.ThanhTien.ToString()); txtbConPhaiTra.Text = txtbThanhTien.Text; }
//THỐNG KÊ THEO NHÂN VIÊN CHI TIẾT public static List <ThongKeTheoHoaDonPublic> ThongKeTheoNhanVienChiTiet(string _MaNV, DateTime _dtTuNgay, DateTime _dtDenNgay) { List <ThongKeTheoHoaDonPublic> _lstKqThongKeTheoNhanVien = new List <ThongKeTheoHoaDonPublic>(); DateTime _dtNgayBatDau = new DateTime(_dtTuNgay.Year, _dtTuNgay.Month, _dtTuNgay.Day, 0, 0, 0); DateTime _dtNgayKetThuc = new DateTime(_dtDenNgay.Year, _dtDenNgay.Month, _dtDenNgay.Day, 23, 59, 59); //Lấy danh sách hóa đơn theo nhân viên SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Lấy danh sách hóa đơn theo nhân viên]"; _cmd.Parameters.AddWithValue("@Ma_NV", _MaNV); _cmd.Parameters.AddWithValue("@TuNgay", _dtNgayBatDau); _cmd.Parameters.AddWithValue("@DenNgay", _dtNgayKetThuc); DataTable _dtHoaDon = conn.GetDataSet2(_cmd).Tables[0]; ThongKeTheoHoaDonPublic _thongKeTheoHoaDon; //Tính chi tiết hóa đơn if (_dtHoaDon.Rows.Count > 0) { for (int i = 0; i < _dtHoaDon.Rows.Count; i++) { int _TongThu = 0; int _TongLoiNhuan = 0; int _TongTienNhap = 0; _thongKeTheoHoaDon = new ThongKeTheoHoaDonPublic(); HoaDonPublic _hd = new HoaDonPublic(); _hd = TinhTien1HoaDon(_dtHoaDon.Rows[i]["SoHD_HD"].ToString()); _TongThu += _hd.ThanhTien; _TongTienNhap += _hd.TongTienNhap; _TongLoiNhuan = _TongThu - _TongTienNhap; _thongKeTheoHoaDon.HoaDon = _hd; _thongKeTheoHoaDon.TongThu = UntilitiesDataAccess.ThemDauPhay(_TongThu.ToString()); _thongKeTheoHoaDon.TongLoiNhuan = UntilitiesDataAccess.ThemDauPhay(_TongLoiNhuan.ToString()); _lstKqThongKeTheoNhanVien.Add(_thongKeTheoHoaDon); } } return(_lstKqThongKeTheoNhanVien); }
//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); }
//Hủy hóa đơn public static void HuyHoaDon(HoaDonPublic _hoaDon) { //Đổi trạng thái hóa đơn SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Hủy hóa đơn]"; _cmd.Parameters.AddWithValue("@SoHD_HD", _hoaDon.SoHD_HD); conn.Execute(_cmd); _cmd.Dispose(); if (_hoaDon.KhachHang_HD.MaKH_KH != null) { //Trừ điểm khách hàng ThietLapHeThongPublic _thietLap = ThietLapHeThongDataAccess.LayThietLapHeThong(); int _diemTru = _hoaDon.TongTien_HD / _thietLap.MucQuyDoiDiem; TruDiemKhachHang(_hoaDon.KhachHang_HD.MaKH_KH, _diemTru); //Chỉnh nhóm khách hàng XetNhomKhacHang(_hoaDon.KhachHang_HD); } }
//Thêm mới hóa đơn private static void ThemMoiHoaDon(HoaDonPublic _hoaDon) { //Tính lại % chiết khấu hóa đơn để khi trả sp có giá để tính _hoaDon.CKPhanTram_HD = ((float)_hoaDon.TongCKHoaDon / (float)_hoaDon.TongTien_HD) * 100; SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Thêm hóa đơn - bán hàng]"; _cmd.Parameters.AddWithValue("@SoHD_HD", _hoaDon.SoHD_HD); _cmd.Parameters.AddWithValue("@NgayLap_HD", _hoaDon.NgayLap_HD); _cmd.Parameters.AddWithValue("@NguoiLap_HD", _hoaDon.NguoiLap_HD.MaNV_NV); _cmd.Parameters.AddWithValue("@MaKH_HD", _hoaDon.KhachHang_HD.MaKH_KH == null ? "" : _hoaDon.KhachHang_HD.MaKH_KH); _cmd.Parameters.AddWithValue("@BanLe_HD", _hoaDon.BanLe_HD); _cmd.Parameters.AddWithValue("@ChietKhauTienMat_HD", _hoaDon.TongCKHoaDon); _cmd.Parameters.AddWithValue("@TienKhachTra_HD", _hoaDon.TienKhachTra_HD); _cmd.Parameters.AddWithValue("@VouCher_HD", _hoaDon.VouCher_HD); _cmd.Parameters.AddWithValue("@MaGiamGia_HD", _hoaDon.MaGiamGia.MaThe_MGG == null ? "" : _hoaDon.MaGiamGia.MaThe_MGG); _cmd.Parameters.AddWithValue("@CKPhanTram_HD", _hoaDon.CKPhanTram_HD); _cmd.Parameters.AddWithValue("@DangDung_HD", _hoaDon.DangDung_HD); conn.Execute(_cmd); }
//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); }
//Bán hàng public static void BanHang(HoaDonPublic _hoaDon, List <SanPhamPublic> _gioHang, bool _truSoLuong) { BanHangDataAccess.BanHang(_hoaDon, _gioHang, _truSoLuong); }
//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 }
//THỐNG KÊ THEO NHÂN VIÊN public static List <ThongKeTheoNhanVienPublic> ThongKeTheoNhanVien(DateTime _dtTuNgay, DateTime _dtDenNgay) { List <ThongKeTheoNhanVienPublic> _lstKQThongkeTheoNV = new List <ThongKeTheoNhanVienPublic>(); #region 1.Lấy thông tin nhân viên, hóa đơn DateTime _dtNgayBatDau = new DateTime(_dtTuNgay.Year, _dtTuNgay.Month, _dtTuNgay.Day, 0, 0, 0); DateTime _dtNgayKetThuc = new DateTime(_dtDenNgay.Year, _dtDenNgay.Month, _dtDenNgay.Day, 23, 59, 59); SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Thống kê theo nhân viên]"; _cmd.Parameters.AddWithValue("@TuNgay", _dtNgayBatDau); _cmd.Parameters.AddWithValue("@DenNgay", _dtNgayKetThuc); DataSet _dsThongKeTheoNV = conn.GetDataSet2(_cmd); _cmd.Dispose(); DataTable _dtNhanVien = _dsThongKeTheoNV.Tables[0]; DataTable _dtHoaDon = _dsThongKeTheoNV.Tables[1]; #endregion #region 2.Tính tổng thu, tổng lợi nhuận theo tưng nhân viên if (_dtNhanVien.Rows.Count == 0) { return(null); } ThongKeTheoNhanVienPublic _thongkeTheoNV; for (int i = 0; i < _dtNhanVien.Rows.Count; i++) { //Lấy thông tin nhân viên _thongkeTheoNV = new ThongKeTheoNhanVienPublic(); NhanVienPublic _nv = new NhanVienPublic(); _nv.MaNV_NV = _dtNhanVien.Rows[i]["MaNV_NV"].ToString(); _nv.HoTen_NV = _dtNhanVien.Rows[i]["HoTen_NV"].ToString(); _nv.NgaySinh_NV = Convert.ToDateTime(_dtNhanVien.Rows[i]["NgaySinh_NV"].ToString()); _nv.GioiTinh_NV = _dtNhanVien.Rows[i]["GioiTinh_NV"].ToString(); _nv.DiaChi_NV = _dtNhanVien.Rows[i]["DiaChi_NV"].ToString(); _nv.SDT_NV = _dtNhanVien.Rows[i]["SDT_NV"].ToString(); _nv.Anh_NV = _dtNhanVien.Rows[i]["Anh_NV"].ToString(); _nv.DangDung_NV = (bool)_dtNhanVien.Rows[i]["DangDung_NV"]; _thongkeTheoNV.NhanVien = _nv; //Tính tiền các hóa đơn do nhân viên này lập từ ngày - đến ngày int _TongThu = 0; int _TongLai = 0; int _TongSoLuongHD = 0; int _TongTienNhap = 0; string _strFilterHoaDon = "NguoiLap_HD = '" + _thongkeTheoNV.NhanVien.MaNV_NV + "'"; DataView _dvHD = new DataView(_dtHoaDon, _strFilterHoaDon, "SoHD_HD", DataViewRowState.CurrentRows); if (_dvHD.Count > 0) { //Tính tiền từng hóa đơn for (int j = 0; j < _dvHD.Count; j++) { HoaDonPublic _hd = TinhTien1HoaDon(_dvHD[j]["SoHD_HD"].ToString()); _TongThu = _TongThu + _hd.ThanhTien; _TongTienNhap = _TongTienNhap + _hd.TongTienNhap; _TongSoLuongHD++; } _TongLai = _TongThu - _TongTienNhap; } _thongkeTheoNV.TongLoiNhuan = UntilitiesDataAccess.ThemDauPhay(_TongLai.ToString()); _thongkeTheoNV.TongThu = UntilitiesDataAccess.ThemDauPhay(_TongThu.ToString()); _thongkeTheoNV.TongSoHDBanDuoc = _TongSoLuongHD; _lstKQThongkeTheoNV.Add(_thongkeTheoNV); } #endregion return(_lstKQThongkeTheoNV); }
//THỐNG KÊ THEO HÓA ĐƠN public static List <ThongKeTheoHoaDonPublic> ThongKeTheoHoaDon(DateTime _dtTuNgay, DateTime _dtDenNgay) { List <ThongKeTheoHoaDonPublic> _lstKqThongKeTheoHoaDon = new List <ThongKeTheoHoaDonPublic>(); #region 1.Lấy hóa đơn, hàng mua trong khoảng thời gian DateTime _dtNgayBatDau = new DateTime(_dtTuNgay.Year, _dtTuNgay.Month, _dtTuNgay.Day, 0, 0, 0); DateTime _dtNgayKetThuc = new DateTime(_dtDenNgay.Year, _dtDenNgay.Month, _dtDenNgay.Day, 23, 59, 59); SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Thống kê theo hóa đơn]"; _cmd.Parameters.AddWithValue("@TuNgay", _dtNgayBatDau); _cmd.Parameters.AddWithValue("@DenNgay", _dtNgayKetThuc); DataSet _dsThongKeTheoHoaDon = conn.GetDataSet2(_cmd); _cmd.Dispose(); DataTable _dtHoaDon = _dsThongKeTheoHoaDon.Tables[0]; DataTable _dtHangMua = _dsThongKeTheoHoaDon.Tables[1]; #endregion #region 2.Tính thống kê tổng thu, tổng lợi nhuận từng hóa đơn if (_dtHoaDon.Rows.Count > 0) { for (int i = 0; i < _dtHoaDon.Rows.Count; i++) { ThongKeTheoHoaDonPublic _thongKeTheoHoaDon = new ThongKeTheoHoaDonPublic(); ////Lấy thông tin hóa đơn //HoaDonPublic _hoaDon = new HoaDonPublic(); //_hoaDon.SoHD_HD = _dtHoaDon.Rows[i]["SoHD_HD"].ToString(); //_hoaDon.NgayLap_HD = Convert.ToDateTime(_dtHoaDon.Rows[i]["NgayLap_HD"].ToString()); //_hoaDon.NguoiLap_HD.MaNV_NV = _dtHoaDon.Rows[i]["NguoiLap_HD"].ToString(); //_hoaDon.KhachHang_HD.MaKH_KH = _dtHoaDon.Rows[i]["MaKH_HD"].ToString(); //_hoaDon.BanLe_HD = (bool)_dtHoaDon.Rows[i]["BanLe_HD"]; //_hoaDon.TongCKHoaDon = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_dtHoaDon.Rows[i]["ChietKhauTienMat_HD"].ToString())); //_hoaDon.TienKhachTra_HD = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_dtHoaDon.Rows[i]["TienKhachTra_HD"].ToString())); //_hoaDon.VouCher_HD = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_dtHoaDon.Rows[i]["VouCher_HD"].ToString())); //_hoaDon.MaGiamGia.MaThe_MGG = _dtHoaDon.Rows[i]["MaGiamGia_HD"].ToString(); //_hoaDon.CKPhanTram_HD = float.Parse(_dtHoaDon.Rows[i]["CKPhanTram_HD"].ToString()); //_hoaDon.TraHang_HD = (bool)_dtHoaDon.Rows[i]["TraHang_HD"]; //_hoaDon.DangDung_HD = (bool)_dtHoaDon.Rows[i]["DangDung_HD"]; //_thongKeTheoHoaDon.HoaDon = _hoaDon; ////Tính tiền cho từng hóa đơn //int _TongThu = 0; //int _TongLai = 0; //int _TongSoLuongBan = 0; //int _TongTienNhap = 0; //string _strFilterHangMua = "SoHD_HM = '" + _thongKeTheoHoaDon.HoaDon.SoHD_HD + "'"; //DataView _dvHangMua = new DataView(_dtHangMua, _strFilterHangMua, "SoHD_HM", DataViewRowState.CurrentRows); //if (_dvHangMua.Count > 0) //{ // for (int j = 0; j < _dvHangMua.Count; j++) // { // int _soLuong = Convert.ToInt32(_dvHangMua[j]["SoLuong_HM"].ToString()); // int _giaBan = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_dvHangMua[j]["GiaBan_HM"].ToString())); // int _giaNhap = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_dvHangMua[j]["GiaNhap_HM"].ToString())); // int _TienCKSP = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_dvHangMua[j]["CKTienMat_HM"].ToString())); // _TongTienNhap = _TongTienNhap + _giaNhap; // _TongSoLuongBan = _TongSoLuongBan + _soLuong; // _TongThu = _TongThu + (_soLuong * _giaBan - _TienCKSP); // } // _TongLai = _TongThu - _TongTienNhap; //} HoaDonPublic _hd = TinhTien1HoaDon(_dtHoaDon.Rows[i]["SoHD_HD"].ToString()); _thongKeTheoHoaDon.HoaDon = _hd; int _TongLoiNhuan = _hd.ThanhTien - _hd.TongTienNhap; _thongKeTheoHoaDon.TongThu = UntilitiesDataAccess.ThemDauPhay(_hd.ThanhTien.ToString()); _thongKeTheoHoaDon.TongLoiNhuan = UntilitiesDataAccess.ThemDauPhay(_TongLoiNhuan.ToString()); _lstKqThongKeTheoHoaDon.Add(_thongKeTheoHoaDon); } } #endregion return(_lstKqThongKeTheoHoaDon); }
//Tính tiền cho một hóa đơn public static HoaDonPublic TinhTien1HoaDon(string _soHD) { HoaDonPublic _hoaDon = new HoaDonPublic(); #region 1.Lấy thông tin hóa đơn _hoaDon = LayHoaDon(_soHD); if (_hoaDon == null) { return(null); } #endregion #region 2.Tính tiền cho hóa đơn //Lấy danh sách hàng mua DataTable _dtHM; SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Lấy danh sách hàng mua]"; _cmd.Parameters.AddWithValue("@SoHD_HM", _soHD); _dtHM = conn.GetDataSet2(_cmd).Tables[0]; int _TongGia = 0; int _TongCkTienMatSP = 0; int _TongTienNhap = 0; int _soLuong; int _giaBan; HangMuaPubLic _hm; if (_dtHM.Rows.Count > 0) { for (int i = 0; i < _dtHM.Rows.Count; i++) { _hm = new HangMuaPubLic(); _hm.SoLuong = (int)_dtHM.Rows[i]["SoLuong_HM"]; _hm.ChietKhauTienMat = _dtHM.Rows[i]["CKTienMat_HM"].ToString(); _hm.GiaNhap_HM = _dtHM.Rows[i]["GiaNhap_HM"].ToString(); _hm.GiaBan_HM = _dtHM.Rows[i]["GiaBan_HM"].ToString(); _soLuong = _hm.SoLuong; _giaBan = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_hm.GiaBan_HM)); _TongTienNhap = _TongTienNhap + Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_hm.GiaNhap_HM)); _TongCkTienMatSP = _TongCkTienMatSP + Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_hm.ChietKhauTienMat)); _TongGia = _TongGia + (_soLuong * _giaBan); } } int _ckMaGiamGia = 0; if (!String.IsNullOrEmpty(_hoaDon.MaGiamGia.MaThe_MGG)) { //Lấy tiền mã giảm giá DataTable _dtMaGiamGia = BanHangDataAccess.LayMaGiamGiaTheoMa(_hoaDon.MaGiamGia.MaThe_MGG).Tables[0]; _ckMaGiamGia = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_dtMaGiamGia.Rows[0]["ChietKhau_MGG"].ToString())); } _hoaDon.TienMaGiamGia = _TongGia * _ckMaGiamGia / 100; _hoaDon.TongTienNhap = _TongTienNhap; _hoaDon.TongCKSanPham = _TongCkTienMatSP; _hoaDon.TongTien_HD = _TongGia; _hoaDon.ThanhTien = _hoaDon.TongTien_HD - _hoaDon.TongCKSanPham - _hoaDon.TongCKHoaDon; _hoaDon.TienConLaiPhaiTra = _hoaDon.ThanhTien - _hoaDon.VouCher_HD - _hoaDon.TienMaGiamGia; _hoaDon.TienThuaTraLaiKhach = _hoaDon.TienKhachTra_HD - _hoaDon.TienConLaiPhaiTra; #endregion return(_hoaDon); }
//Hủy hóa đơn public static void HuyHoaDon(HoaDonPublic _hoaDon) { TraHangDataAccess.HuyHoaDon(_hoaDon); }
//Bán hàng public static void BanHang(HoaDonPublic _hoaDon, List <SanPhamPublic> _gioHang, bool _truSoLuong) { #region 1.Thêm mới hóa đơn //Lưu hóa đơn mới ThemMoiHoaDon(_hoaDon); //Tắt mã giảm giá nếu có if (!String.IsNullOrEmpty(_hoaDon.MaGiamGia.MaThe_MGG)) { TatMaGiamGia(_hoaDon.MaGiamGia.MaThe_MGG); } #endregion #region 2.Lưu hàng mua HangMuaPubLic _hangMua = new HangMuaPubLic(); _hangMua.HoaDon.SoHD_HD = _hoaDon.SoHD_HD; foreach (SanPhamPublic _sp in _gioHang) { //Lấy thông tin hàng mua _hangMua.SanPham.MaSP_SP = _sp.MaSP_SP; _hangMua.SoLuong = _sp.SoLuong_SP; _hangMua.ChietKhauPhanTram = _sp.CKPhanTram_SP; _hangMua.ChietKhauTienMat = _sp.CKTienMat; _hangMua.GiaNhap_HM = _sp.GiaNhap_SP; _hangMua.GiaBan_HM = _sp.GiaBan; //Thêm hàng mua ThemHangMua(_hangMua); //Trừ hàng trong kho if (_truSoLuong) { TruSoLuongSPTrongKho(_hangMua.SanPham.MaSP_SP, _hangMua.SoLuong); } } #endregion #region 3.Cập nhật thông tin mua hàng cho khác //Cộng điểm tích lũy cho khách hàng if (!String.IsNullOrEmpty(_hoaDon.KhachHang_HD.MaKH_KH)) { bool _CongDiem = _thietLap.CongDiemKhachHang; //(Cấu hình bật tắt chức năng) if (_CongDiem) { CongDiemTichLuy(_hoaDon.KhachHang_HD.MaKH_KH, _hoaDon.TongTien_HD); } //Cập nhật số lần mua hàng và ngày mua hàng gần nhất CapNhatSoLanMuaChoKhach(_hoaDon.KhachHang_HD.MaKH_KH); //Xét nhóm khách hàng cho khách hàng XetNhomKhacHang(_hoaDon.KhachHang_HD); } #endregion #region 4.Lưu lịch sử bán hàng LichSuBanHangPublic _lsbh = new LichSuBanHangPublic(); _lsbh.MaLSBH_LSBH = UntilitiesDataAccess.GetNextID("tbl_LICHSUBANHANG", "MaLSBH_LSBH", "LS.", 10); _lsbh.NhanVienThucHien_LSBH.MaNV_NV = _hoaDon.NguoiLap_HD.MaNV_NV; _lsbh.SoHD_LSBH.SoHD_HD = _hoaDon.SoHD_HD; _lsbh.MoTa_LSBH = "Khách mua hàng"; _lsbh.ThoiGian_LSBH = DateTime.Now; LichSuBanHangDataAccess.ThemLichSuBanHang(_lsbh); #endregion }