예제 #1
0
 //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();
        }
예제 #3
0
        //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);
            }
        }
예제 #4
0
        //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);
        }