//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);
        }
Example #4
0
        //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);
        }
Example #10
0
        //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);
        }
Example #11
0
        //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
        }