//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);
        }
Exemplo n.º 3
0
        //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();
        }
Exemplo n.º 4
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);
            }
        }
Exemplo n.º 5
0
        //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);
        }
Exemplo n.º 6
0
        //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();
        }
Exemplo n.º 7
0
        //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);
        }
Exemplo n.º 10
0
        //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);
            }
        }
Exemplo n.º 11
0
        //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);
        }
Exemplo n.º 14
0
 //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
        }
Exemplo n.º 16
0
        //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);
        }
Exemplo n.º 17
0
        //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);
        }
Exemplo n.º 18
0
        //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);
        }
Exemplo n.º 19
0
 //Hủy hóa đơn
 public static void HuyHoaDon(HoaDonPublic _hoaDon)
 {
     TraHangDataAccess.HuyHoaDon(_hoaDon);
 }
Exemplo n.º 20
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
        }