//Wpf loaded private void Window_Loaded(object sender, RoutedEventArgs e) { if (_lstSPTraLai == null) { return; } if (_lstSPTraLai.Count == 0) { return; } //Hiển thị List <HangMuaPubLic> _lstHangTraTemp = new List <HangMuaPubLic>(); foreach (HangMuaPubLic _hmTemp in _lstSPTraLai) { HangMuaPubLic _hm = new HangMuaPubLic(); //Lấy thêm thông tin nến muốn dùng _hm.SanPham.MaSP_SP = _hmTemp.SanPham.MaSP_SP; _hm.SanPham.TenSP_SP = _hmTemp.SanPham.TenSP_SP; _hm.SoLuong = _hmTemp.SoLuong; _lstHangTraTemp.Add(_hm); } dgHangTra.ItemsSource = _lstHangTraTemp; TinhTien(); }
//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(); }
private bool KiemTraSoLuongNhapKho() { //Kiểm tra lỗi trên datagrid var errors = (from c in (from object i in dgHangTra.ItemsSource select dgHangTra.ItemContainerGenerator.ContainerFromItem(i)) where c != null select Validation.GetHasError(c)) .FirstOrDefault(x => x); if (errors) { MessageBox.Show("Lỗi"); return(false); } for (int i = 0; i < dgHangTra.Items.Count; i++) { int _SoSpNhapKhoMAX = _lstSPTraLai[i].SoLuong; HangMuaPubLic _hm = (HangMuaPubLic)dgHangTra.Items[i]; if (_hm.SoLuong < 0 || _hm.SoLuong > _SoSpNhapKhoMAX) { MessageBox.Show("Số lượng lớn hơn 0 và nhỏ hơn số lượng khách trả"); return(false); } } return(true); }
//Thêm mới chi tiết hàng mua private static void ThemHangMua(HangMuaPubLic _hangMua) { //Tính lại chiết khấu phần trăm int _TongTien = _hangMua.SoLuong * Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_hangMua.GiaBan_HM)); int _CkTienMat = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_hangMua.ChietKhauTienMat)); _hangMua.ChietKhauPhanTram = ((float)_CkTienMat / (float)_TongTien) * 100; SqlCommand _cmd = new SqlCommand(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "[Thêm chi tiết hàng mua - bán hàng]"; _cmd.Parameters.AddWithValue("@SoHD_HM", _hangMua.HoaDon.SoHD_HD); _cmd.Parameters.AddWithValue("@MaSP_HM", _hangMua.SanPham.MaSP_SP); _cmd.Parameters.AddWithValue("@SoLuong_HM", _hangMua.SoLuong); _cmd.Parameters.AddWithValue("@CKTienMat_HM", _hangMua.ChietKhauTienMat); _cmd.Parameters.AddWithValue("@GiaNhap_HM", _hangMua.GiaNhap_HM); _cmd.Parameters.AddWithValue("@GiaBan_HM", _hangMua.GiaBan_HM); _cmd.Parameters.AddWithValue("@CKPhanTram_HM", _hangMua.ChietKhauPhanTram); conn.Execute(_cmd); }
//Khôi phục tất private void btnKhoiPhuc_MouseDoubleClick(object sender, MouseButtonEventArgs e) { //Lấy chỉ số dòng chọn // ko chơi dc kiểu như datagrid Button _button = sender as Button; int _index = libHangTra.Items.IndexOf(_button.DataContext); #region Lấy thông tin hàng trả muốn khôi phục lại HangMuaPubLic _hmTemp = _lstHangTra[_index]; HangMuaPubLic _hm = new HangMuaPubLic(); //Lấy thông tin sản phẩm _hm.SanPham.MaSP_SP = _hmTemp.SanPham.MaSP_SP; _hm.SanPham.TenSP_SP = _hmTemp.SanPham.TenSP_SP; _hm.SanPham.GiaNhap_SP = _hmTemp.SanPham.GiaNhap_SP; _hm.SanPham.GiaBanLe_SP = _hmTemp.SanPham.GiaBanLe_SP; _hm.SanPham.GiaBanSi_SP = _hmTemp.SanPham.GiaBanSi_SP; _hm.SanPham.NCC_SP.MaNCC_NCC = _hmTemp.SanPham.NCC_SP.MaNCC_NCC; _hm.SanPham.NSP_SP.MaNSP_NSP = _hmTemp.SanPham.NSP_SP.MaNSP_NSP; _hm.SanPham.DVT_SP.MaDVT_DVT = _hmTemp.SanPham.DVT_SP.MaDVT_DVT; _hm.SanPham.DVT_SP.TenDVT_DVT = _hmTemp.SanPham.DVT_SP.TenDVT_DVT; _hm.SanPham.GhiChu_SP = _hmTemp.SanPham.GhiChu_SP; _hm.SanPham.SoLuong_SP = _hmTemp.SanPham.SoLuong_SP; _hm.SanPham.CKPhanTram_SP = _hmTemp.SanPham.CKPhanTram_SP; _hm.SanPham.Anh_SP = _hmTemp.SanPham.Anh_SP; _hm.SanPham.NgayTao_SP = _hmTemp.SanPham.NgayTao_SP; //Thông tin hàng mua _hm.SoLuong = _hmTemp.SoLuong; _hm.ChietKhauPhanTram = _hmTemp.ChietKhauPhanTram; _hm.ChietKhauTienMat = _hmTemp.ChietKhauTienMat; _hm.GiaBan_HM = _hmTemp.GiaBan_HM; _hm.GiaNhap_HM = _hmTemp.GiaNhap_HM; //Lấy thông tin hóa đơn _hm.HoaDon.SoHD_HD = _hm.HoaDon.SoHD_HD; _hm.HoaDon.NgayLap_HD = _hm.HoaDon.NgayLap_HD; _hm.HoaDon.NguoiLap_HD = _hm.HoaDon.NguoiLap_HD; _hm.HoaDon.BanLe_HD = _hm.HoaDon.BanLe_HD; _hm.HoaDon.KhachHang_HD.MaKH_KH = _hm.HoaDon.KhachHang_HD.MaKH_KH; _hm.HoaDon.CKPhanTram_HD = _hm.HoaDon.CKPhanTram_HD; _hm.HoaDon.TienKhachTra_HD = _hm.HoaDon.TienKhachTra_HD; _hm.HoaDon.VouCher_HD = _hm.HoaDon.VouCher_HD; _hm.HoaDon.MaGiamGia.MaThe_MGG = _hm.HoaDon.MaGiamGia.MaThe_MGG; _hm.HoaDon.TongCKHoaDon = _hm.HoaDon.TongCKHoaDon; #endregion var _hmRemove = _lstHangTra.Single(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); _lstHangTra.Remove(_hmRemove); //Khôi phục lại sản phẩm ở ds hàng mua if (_lstHangMua == null) { _lstHangMua = new List <HangMuaPubLic>(); } if (_lstHangMua.Count == 0) { _lstHangMua.Add(_hm); } else { HangMuaPubLic _rsHangTr = _lstHangMua.Find(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); if (_rsHangTr != null) { _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().SoLuong += _hm.SoLuong; } else { _lstHangMua.Add(_hm); } } //Tính lại chiết khấu sản phẩm HangMuaPubLic _result = _lstHangMua.Find(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); if (_result != null) { float _CkSp = _result.ChietKhauPhanTram; int _GiaBan = Convert.ToInt32(UntilitiesBusiness.BoDauPhay(_result.GiaBan_HM)); int _soLuong = _result.SoLuong; int _CkTienMatSp = (int)((_CkSp * _GiaBan / 100) * _soLuong); if (_CkTienMatSp.ToString().EndsWith("9")) { _CkTienMatSp++; } int _TongTien = 0; int _ThanhTien = 0; _TongTien = _soLuong * _GiaBan; _ThanhTien = _TongTien - _CkTienMatSp; _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().ChietKhauTienMat = _CkTienMatSp.ToString(); _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().ThanhTien = _ThanhTien; _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().TongTienSP = _TongTien; } //Tính lại thành tiền TinhTien(); //Hiển thị danh sách sp libHangTra.ItemsSource = _lstHangTra; libHangTra.Items.Refresh(); dgHangMua.ItemsSource = _lstHangMua; dgHangMua.Items.Refresh(); if (_lstHangTra.Count == 0) { //Tắt nút thanh toán btnThanhToan.IsEnabled = false; btnTiepTucMua.IsEnabled = false; } }
//Nút trả hàng tất cả private void btnTra_MouseDoubleClick(object sender, MouseButtonEventArgs e) { #region Lấy thông tin hàng mua (Lấy chi tiết vì bị lỗi) HangMuaPubLic _hmTemp = (HangMuaPubLic)dgHangMua.SelectedItem; if (_hmTemp == null) { return; } HangMuaPubLic _hm = new HangMuaPubLic(); //Lấy thông tin sản phẩm _hm.SanPham.MaSP_SP = _hmTemp.SanPham.MaSP_SP; _hm.SanPham.TenSP_SP = _hmTemp.SanPham.TenSP_SP; _hm.SanPham.GiaNhap_SP = _hmTemp.SanPham.GiaNhap_SP; _hm.SanPham.GiaBanLe_SP = _hmTemp.SanPham.GiaBanLe_SP; _hm.SanPham.GiaBanSi_SP = _hmTemp.SanPham.GiaBanSi_SP; _hm.SanPham.NCC_SP.MaNCC_NCC = _hmTemp.SanPham.NCC_SP.MaNCC_NCC; _hm.SanPham.NSP_SP.MaNSP_NSP = _hmTemp.SanPham.NSP_SP.MaNSP_NSP; _hm.SanPham.DVT_SP.MaDVT_DVT = _hmTemp.SanPham.DVT_SP.MaDVT_DVT; _hm.SanPham.DVT_SP.TenDVT_DVT = _hmTemp.SanPham.DVT_SP.TenDVT_DVT; _hm.SanPham.GhiChu_SP = _hmTemp.SanPham.GhiChu_SP; _hm.SanPham.SoLuong_SP = _hmTemp.SanPham.SoLuong_SP; _hm.SanPham.CKPhanTram_SP = _hmTemp.SanPham.CKPhanTram_SP; _hm.SanPham.Anh_SP = _hmTemp.SanPham.Anh_SP; _hm.SanPham.NgayTao_SP = _hmTemp.SanPham.NgayTao_SP; //Thông tin hàng mua _hm.SoLuong = _hmTemp.SoLuong; _hm.ChietKhauPhanTram = _hmTemp.ChietKhauPhanTram; _hm.ChietKhauTienMat = _hmTemp.ChietKhauTienMat; _hm.GiaBan_HM = _hmTemp.GiaBan_HM; _hm.GiaNhap_HM = _hmTemp.GiaNhap_HM; //Lấy thông tin hóa đơn _hm.HoaDon.SoHD_HD = _hm.HoaDon.SoHD_HD; _hm.HoaDon.NgayLap_HD = _hm.HoaDon.NgayLap_HD; _hm.HoaDon.NguoiLap_HD = _hm.HoaDon.NguoiLap_HD; _hm.HoaDon.BanLe_HD = _hm.HoaDon.BanLe_HD; _hm.HoaDon.KhachHang_HD.MaKH_KH = _hm.HoaDon.KhachHang_HD.MaKH_KH; _hm.HoaDon.CKPhanTram_HD = _hm.HoaDon.CKPhanTram_HD; _hm.HoaDon.TienKhachTra_HD = _hm.HoaDon.TienKhachTra_HD; _hm.HoaDon.VouCher_HD = _hm.HoaDon.VouCher_HD; _hm.HoaDon.MaGiamGia.MaThe_MGG = _hm.HoaDon.MaGiamGia.MaThe_MGG; _hm.HoaDon.TongCKHoaDon = _hm.HoaDon.TongCKHoaDon; #endregion //Xóa khỏi danh sách hàng mua var _hmRemove = _lstHangMua.Single(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); _lstHangMua.Remove(_hmRemove); //Thêm sp vào danh sách hàng trả if (_lstHangTra == null) { _lstHangTra = new List <HangMuaPubLic>(); } if (_lstHangTra.Count == 0) { _lstHangTra.Add(_hm); } else { HangMuaPubLic _rsHangTr = _lstHangTra.Find(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); if (_rsHangTr != null) { _lstHangTra.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().SoLuong += _hm.SoLuong; } else { _lstHangTra.Add(_hm); } } //Tính lại thành tiền TinhTien(); //Hiển thị danh sách sp libHangTra.ItemsSource = _lstHangTra; libHangTra.Items.Refresh(); dgHangMua.ItemsSource = _lstHangMua; dgHangMua.Items.Refresh(); //Bật nút thanh toán btnThanhToan.IsEnabled = true; btnTiepTucMua.IsEnabled = true; }
//Nút trả từng sản phẩm private void btnTra_Click(object sender, RoutedEventArgs e) { #region Lấy thông tin hàng mua (Lấy chi tiết vì bị lỗi) HangMuaPubLic _hmTemp = (HangMuaPubLic)dgHangMua.SelectedItem; HangMuaPubLic _hm = new HangMuaPubLic(); //Lấy thông tin sản phẩm _hm.SanPham.MaSP_SP = _hmTemp.SanPham.MaSP_SP; _hm.SanPham.TenSP_SP = _hmTemp.SanPham.TenSP_SP; _hm.SanPham.GiaNhap_SP = _hmTemp.SanPham.GiaNhap_SP; _hm.SanPham.GiaBanLe_SP = _hmTemp.SanPham.GiaBanLe_SP; _hm.SanPham.GiaBanSi_SP = _hmTemp.SanPham.GiaBanSi_SP; _hm.SanPham.NCC_SP.MaNCC_NCC = _hmTemp.SanPham.NCC_SP.MaNCC_NCC; _hm.SanPham.NSP_SP.MaNSP_NSP = _hmTemp.SanPham.NSP_SP.MaNSP_NSP; _hm.SanPham.DVT_SP.MaDVT_DVT = _hmTemp.SanPham.DVT_SP.MaDVT_DVT; _hm.SanPham.DVT_SP.TenDVT_DVT = _hmTemp.SanPham.DVT_SP.TenDVT_DVT; _hm.SanPham.GhiChu_SP = _hmTemp.SanPham.GhiChu_SP; _hm.SanPham.SoLuong_SP = _hmTemp.SanPham.SoLuong_SP; _hm.SanPham.CKPhanTram_SP = _hmTemp.SanPham.CKPhanTram_SP; _hm.SanPham.Anh_SP = _hmTemp.SanPham.Anh_SP; _hm.SanPham.NgayTao_SP = _hmTemp.SanPham.NgayTao_SP; //Thông tin hàng mua _hm.SoLuong = _hmTemp.SoLuong; _hm.ChietKhauPhanTram = _hmTemp.ChietKhauPhanTram; _hm.ChietKhauTienMat = _hmTemp.ChietKhauTienMat; _hm.GiaBan_HM = _hmTemp.GiaBan_HM; _hm.GiaNhap_HM = _hmTemp.GiaNhap_HM; //Lấy thông tin hóa đơn _hm.HoaDon.SoHD_HD = _hm.HoaDon.SoHD_HD; _hm.HoaDon.NgayLap_HD = _hm.HoaDon.NgayLap_HD; _hm.HoaDon.NguoiLap_HD = _hm.HoaDon.NguoiLap_HD; _hm.HoaDon.BanLe_HD = _hm.HoaDon.BanLe_HD; _hm.HoaDon.KhachHang_HD.MaKH_KH = _hm.HoaDon.KhachHang_HD.MaKH_KH; _hm.HoaDon.CKPhanTram_HD = _hm.HoaDon.CKPhanTram_HD; _hm.HoaDon.TienKhachTra_HD = _hm.HoaDon.TienKhachTra_HD; _hm.HoaDon.VouCher_HD = _hm.HoaDon.VouCher_HD; _hm.HoaDon.MaGiamGia.MaThe_MGG = _hm.HoaDon.MaGiamGia.MaThe_MGG; _hm.HoaDon.TongCKHoaDon = _hm.HoaDon.TongCKHoaDon; #endregion //Trừ số lượng trên list hàng mua _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().SoLuong--; //Nếu số lượng còn bằng 0 thì xóa luôn if (_lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().SoLuong == 0) { var _hmRemove = _lstHangMua.Single(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); _lstHangMua.Remove(_hmRemove); } //Tính lại chiết khấu sản phẩm HangMuaPubLic _result = _lstHangMua.Find(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); if (_result != null) { float _CkSp = _result.ChietKhauPhanTram; int _GiaBan = Convert.ToInt32(UntilitiesBusiness.BoDauPhay(_result.GiaBan_HM)); int _soLuong = _result.SoLuong; int _CkTienMatSp = (int)((_CkSp * _GiaBan / 100) * _soLuong); if (_CkTienMatSp.ToString().EndsWith("9")) { _CkTienMatSp++; } int _TongTien = 0; int _ThanhTien = 0; _TongTien = _soLuong * _GiaBan; _ThanhTien = _TongTien - _CkTienMatSp; _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().ChietKhauTienMat = _CkTienMatSp.ToString(); _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().ThanhTien = _ThanhTien; _lstHangMua.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().TongTienSP = _TongTien; } //Thêm sp vào danh sách hàng trả if (_lstHangTra == null) { _lstHangTra = new List <HangMuaPubLic>(); } if (_lstHangTra.Count == 0) { _hm.SoLuong = 1; _lstHangTra.Add(_hm); } else { HangMuaPubLic _rsHangTr = _lstHangTra.Find(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP); if (_rsHangTr != null) { _lstHangTra.Where(item => item.SanPham.MaSP_SP == _hm.SanPham.MaSP_SP).First().SoLuong++; } else { _hm.SoLuong = 1; _lstHangTra.Add(_hm); } } //Tính lại thành tiền TinhTien(); //Hiển thị danh sách sp libHangTra.ItemsSource = _lstHangTra; libHangTra.Items.Refresh(); dgHangMua.ItemsSource = _lstHangMua; dgHangMua.Items.Refresh(); //Bật nút thanh toán btnThanhToan.IsEnabled = true; btnTiepTucMua.IsEnabled = true; }
//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); }
//Lấy danh sách hàng mua public static List <HangMuaPubLic> LayDsHangMua(string _soHD) { List <HangMuaPubLic> _lstHangMua = null; HangMuaPubLic _hangMua; 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]; if (_dtHM.Rows.Count > 0) { _lstHangMua = new List <HangMuaPubLic>(); for (int i = 0; i < _dtHM.Rows.Count; i++) { //Lấy thông tin sản phẩm _hangMua = new HangMuaPubLic(); _hangMua.SanPham.MaSP_SP = _dtHM.Rows[i]["MaSP_SP"].ToString(); _hangMua.SanPham.TenSP_SP = _dtHM.Rows[i]["TenSP_SP"].ToString(); _hangMua.SanPham.GiaNhap_SP = _dtHM.Rows[i]["GiaNhap_SP"].ToString(); _hangMua.SanPham.GiaBanLe_SP = _dtHM.Rows[i]["GiaBanLe_SP"].ToString(); _hangMua.SanPham.GiaBanSi_SP = _dtHM.Rows[i]["GiaBanSi_SP"].ToString(); _hangMua.SanPham.NCC_SP.MaNCC_NCC = _dtHM.Rows[i]["MaNCC_SP"].ToString(); _hangMua.SanPham.NSP_SP.MaNSP_NSP = _dtHM.Rows[i]["MaNSP_SP"].ToString(); _hangMua.SanPham.DVT_SP.MaDVT_DVT = _dtHM.Rows[i]["MaDVT_SP"].ToString(); _hangMua.SanPham.GhiChu_SP = _dtHM.Rows[i]["GhiChu_SP"].ToString(); _hangMua.SanPham.SoLuong_SP = (int)_dtHM.Rows[i]["SoLuong_SP"]; _hangMua.SanPham.CKPhanTram_SP = float.Parse(_dtHM.Rows[i]["CKPhanTram_SP"].ToString()); _hangMua.SanPham.Anh_SP = _dtHM.Rows[i]["Anh_SP"].ToString(); _hangMua.SanPham.NgayTao_SP = (DateTime)_dtHM.Rows[i]["NgayTao_SP"]; _hangMua.SanPham.DVT_SP.TenDVT_DVT = _dtHM.Rows[i]["TenDVT_DVT"].ToString(); //Thông tin hàng mua _hangMua.SoLuong = (int)_dtHM.Rows[i]["SoLuong_HM"]; _hangMua.ChietKhauPhanTram = float.Parse(_dtHM.Rows[i]["CKPhanTram_HM"].ToString()); _hangMua.ChietKhauTienMat = _dtHM.Rows[i]["CKTienMat_HM"].ToString(); _hangMua.GiaNhap_HM = _dtHM.Rows[i]["GiaNhap_HM"].ToString(); _hangMua.GiaBan_HM = _dtHM.Rows[i]["GiaBan_HM"].ToString(); //lấy thông tin hóa đơn _hangMua.HoaDon.SoHD_HD = _dtHM.Rows[0]["SoHD_HD"].ToString(); _hangMua.HoaDon.NgayLap_HD = (DateTime)_dtHM.Rows[0]["NgayLap_HD"]; _hangMua.HoaDon.NguoiLap_HD.MaNV_NV = _dtHM.Rows[0]["NguoiLap_HD"].ToString(); _hangMua.HoaDon.BanLe_HD = (bool)_dtHM.Rows[0]["BanLe_HD"]; _hangMua.HoaDon.KhachHang_HD.MaKH_KH = _dtHM.Rows[0]["MaKH_HD"].ToString(); _hangMua.HoaDon.CKPhanTram_HD = float.Parse(_dtHM.Rows[0]["CKPhanTram_HD"].ToString()); _hangMua.HoaDon.TongCKHoaDon = Convert.ToInt32(_dtHM.Rows[0]["ChietKhauTienMat_HD"].ToString()); _hangMua.HoaDon.TienKhachTra_HD = Convert.ToInt32(_dtHM.Rows[0]["TienKhachTra_HD"].ToString()); _hangMua.HoaDon.VouCher_HD = Convert.ToInt32(_dtHM.Rows[0]["VouCher_HD"].ToString()); _hangMua.HoaDon.MaGiamGia.MaThe_MGG = _dtHM.Rows[0]["MaGiamGia_HD"].ToString(); //Tính thành tiền cho hàng mua (đang dùng ở thống kê báo cáo) int _TienckSP = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_hangMua.ChietKhauTienMat)); //Tính tiền cho sản phẩm float _CkPhanTram = _hangMua.ChietKhauPhanTram; int _giaBan = Convert.ToInt32(UntilitiesDataAccess.BoDauPhay(_hangMua.GiaBan_HM)); int _soLuong = _hangMua.SoLuong; int _TongCKSanPham = (int)((_CkPhanTram * _giaBan / 100) * _soLuong); int _TongTien = _soLuong * _giaBan; int _ThanhTien = _TongTien - _TongCKSanPham; _hangMua.TongTienSP = _TongTien; _hangMua.ThanhTien = _ThanhTien; _hangMua.SanPham.ThanhTien_SP = UntilitiesDataAccess.ThemDauPhay((_hangMua.TongTienSP - _TienckSP).ToString()); _lstHangMua.Add(_hangMua); } } return(_lstHangMua); }
//Nhập vào mã hàng,Kho, số lượng, lẻ|buôn - trả về một đối tượng chứa mọi thông tin hàng public static HangMuaPubLic LayHangMua(string MaSP_SP, bool KieuBan, int SoLuong)// kiểu bán lẻ hoặc sỉ true = bán lẻ | false = bán sỉ { HangMuaPubLic hm = new HangMuaPubLic(); //Lấy ra thông tin sản phẩm string StoreprodureName = "LaySPTheoMa_BanHang"; SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = StoreprodureName; cmd.Parameters.AddWithValue("@MaSP_SP", MaSP_SP); DataSet ds = conn.GetDataSet2(cmd); SanPhamPublic sp = new SanPhamPublic();//Chứa thông tin sản phẩm cần lấy ra if (ds.Tables[0].Rows.Count > 0) { //Lấy thông tin DataRow dr = ds.Tables[0].Rows[0]; sp.MaSP_SP = dr["MaSP_SP"].ToString(); sp.TenSP_SP = dr["TenSP_SP"].ToString(); sp.GiaNhap_SP = UntilitiesDataAccess.BoDauPhay(dr["GiaNhap_SP"].ToString()); sp.GiaBanLe_SP = UntilitiesDataAccess.BoDauPhay(dr["GiaBanLe_SP"].ToString()); sp.GiaBanSi_SP = UntilitiesDataAccess.BoDauPhay(dr["GiaBanSi_SP"].ToString()); sp.NCC_SP.MaNCC_NCC = dr["MaNCC_NCC"].ToString(); sp.NCC_SP.TenNCC_NCC = dr["TenNCC_NCC"].ToString(); sp.NCC_SP.GhiChu_NCC = dr["GhiChu_NCC"].ToString(); sp.NSP_SP.MaNSP_NSP = dr["MaNSP_NSP"].ToString(); sp.NSP_SP.TenNSP_NSP = dr["TenNSP_NSP"].ToString(); sp.NSP_SP.GhiChu_NSP = dr["GhiChu_NSP"].ToString(); sp.NSP_SP.DangDung_NSP = dr["DangDung_NSP"].ToString() == "true" ? true : false; sp.NSP_SP.NgayTao_NSP = Convert.ToDateTime(dr["NgayTao_NSP"].ToString()); sp.DVT_SP.MaDVT_DVT = dr["MaDVT_DVT"].ToString(); sp.DVT_SP.TenDVT_DVT = dr["TenDVT_DVT"].ToString(); sp.DVT_SP.DangDung_DVT = dr["DangDung_DVT"].ToString() == "true" ? true : false; sp.GhiChu_SP = dr["GhiChu_SP"].ToString(); sp.SoLuong_SP = Convert.ToInt32(dr["SoLuong_SP"].ToString()); sp.CKPhanTram_SP = Convert.ToInt32(dr["CKPhanTram_SP"].ToString()); } else { return(hm = null); // Trả về null nếu không có sản phẩm nào } //Tính toán giá tiền sản phẩm - có thể viết một hàm tính tiền riêng để áp dụng chính sách khác nhau #region Tính toán giá tiền cho sản phẩm này hm.SanPham = sp; hm.ChietKhauPhanTram = hm.SanPham.CKPhanTram_SP; hm.SoLuong = SoLuong; // Số lượng mặc định ban đầu khi mua là 1 sp if (KieuBan == true) //Bán lẻ { //hm.ChietKhauTienMat = hm.SoLuong * (Convert.ToInt32(hm.ChietKhauPhanTram) * Convert.ToInt32(hm.SanPham.GiaBanLe_SP)) / 100; //hm.TongTienSP = hm.SoLuong * Convert.ToInt32(hm.SanPham.GiaBanLe_SP); //hm.ThanhTien = hm.TongTienSP - hm.ChietKhauTienMat;//Thành tiền gia bán lẻ } else//Bán sỉ { //hm.ChietKhauTienMat = hm.SoLuong * (Convert.ToInt32(hm.ChietKhauPhanTram) * Convert.ToInt32(hm.SanPham.GiaBanSi_SP)) / 100; //hm.TongTienSP = Convert.ToInt32(hm.SanPham.GiaBanSi_SP) * hm.SoLuong; //hm.ThanhTien = hm.TongTienSP - hm.ChietKhauTienMat; // Thành tiền giá bán sỉ } #endregion return(hm); }
//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 }