private void selectItemBill(object sender, MouseButtonEventArgs e)
 {
     if (ListViewBills.SelectedItems.Count > 0)
     {
         PhieuThuTienSachDTO item = (PhieuThuTienSachDTO)ListViewBills.SelectedItems[0];
         DetailBill.Visibility = Visibility.Visible;
         ListViewProductsBought.ItemsSource = ChiTietHoaDonBanSachBUS.loadByMaHoaDon(item.HoaDonBanSach.MaHoaDon.ToString());
         Label_SummaryPriceOfBill.Content   = item.HoaDonBanSach.TongTien;
         Label_PaidPriceOfBill.Content      = item.SoTienThu;
     }
 }
        public ManageBillPage()
        {
            /* var bills = new List<PhieuThuTienDTO>();
             * bills.Add(new PhieuThuTienDTO(1, 899, 2, "06/03/2019", 0, "Patterns of Enterprise Application Architecture","Leo Nguyen",889));
             * bills.Add(new PhieuThuTienDTO(2, 999, 3, "06/02/2019", 4, "The Clean Coder", "aaG oaahT", 999));
             * bills.Add(new PhieuThuTienDTO(3, 1409, 1, "06/02/2019", 3, "Patterns of Enterprise Application Architecture","Le Sang", 1410));
             * bills.Add(new PhieuThuTienDTO(4, 234, 2, "06/02/2019", 4, "Implementing Domain-Driven Design", "Leo Nguyen", 234));
             * bills.Add(new PhieuThuTienDTO(5, 888, 4, "06/01/2019", 0, "Patterns of Enterprise Application Architecture","Nguyen Thi Thu Quyen", 888));
             * bills.Add(new PhieuThuTienDTO(6, 456, 5, "06/01/2019", 7, "Implementing Domain-Driven Design", "Mr Phong Truong Ho Phong", 456));
             * bills.Add(new PhieuThuTienDTO(7, 123, 6, "05/29/2019", 4, "Patterns of Enterprise Application Architecture","Dang Vinh Phat", 123));
             * bills.Add(new PhieuThuTienDTO(8, 543, 7, "05/29/2019", 10, "Domain-Driven Design Reference","Nguyen Quang Phu", 543));
             * bills.Add(new PhieuThuTienDTO(9, 222, 8, "05/28/2019", 4, "Domain-Driven Design Reference", "Nguyen Van Phuoc", 222));
             * bills.Add(new PhieuThuTienDTO(10, 100.9, 9, "05/27/2019", 3, "Patterns of Enterprise Application Architecture","Le Tuong Qui", 101));
             * bills.Add(new PhieuThuTienDTO(11, 222, 11, "05/26/2019", 0, "Patterns of Enterprise Application Architecture","Chau Hoang Phuc", 222.5));
             * bills.Add(new PhieuThuTienDTO(12, 654, 13, "05/26/2019", 4, "Patterns of Enterprise Application Architecture","Truong Quang", 654));
             * bills.Add(new PhieuThuTienDTO(13, 1234, 16, "05/25/2019", 2, "Patterns of Enterprise Application Architecture","Huynh Lam Phu Si", 1234));
             * bills.Add(new PhieuThuTienDTO(14, 123.23, 23, "05/20/2019", 4, "Building Microservices", "Phan Quoc Phong", 123.23));
             * bills.Add(new PhieuThuTienDTO(15, 1090.8, 25, "05/20/2019", 6, "Building Microservices", "Pham Ngoc Son", 1090.8));*/


            var listPhieuThuTienSach = PhieuThuTienSachBUS.loadAll();

            listPhieuThuTienSach.ForEach(i => {
                int count         = ChiTietHoaDonBanSachBUS.countByMaHoaDon(i.HoaDonBanSach.MaHoaDon.ToString());
                i.SoLuongSachKhac = count - 1;
                i.TenSachDaiDien  = SachBUS.loadByID(ChiTietHoaDonBanSachBUS.loadOneDetail(i.HoaDonBanSach.MaHoaDon.ToString()).Sach.MaSach.ToString()).TenSach;
            });

            Global.Bills = listPhieuThuTienSach;

            var booksBoughtBillPreview = new List <ChiTietHoaDonBanSachDTO>();

            /*booksBoughtBillPreview.Add(new ChiTietHoaDonBanSachDTO(1, 1, "Python Crash Course, 2nd Edition", "Eric Matthes", 3, 161.65, "products/1.jpg"));
             * booksBoughtBillPreview.Add(new ChiTietHoaDonBanSachDTO(2, 2, "Patterns of Enterprise Application Architecture", "Martin Fowler", 1, 80.62, "products/7.jpg"));
             * booksBoughtBillPreview.Add(new ChiTietHoaDonBanSachDTO(3, 3, "The Clean Coder", "Robert C. Martin", 2, 59.85, "products/3.jpg"));
             * booksBoughtBillPreview.Add(new ChiTietHoaDonBanSachDTO(4, 4, "Refactoring", "Martin Fowler", 4, 59.85, "products/4.jpg"));
             * booksBoughtBillPreview.Add(new ChiTietHoaDonBanSachDTO(5, 5, "Clean Architecture", "Robert C. Martin", 6, 54.11, "products/5.jpg"));
             * booksBoughtBillPreview.Add(new ChiTietHoaDonBanSachDTO(6, 6, "Building Microservices", "Sam Newman", 7, 48.69, "products/6.jpg"));*/
            Global.BookBoughtBillsPreview = booksBoughtBillPreview;

            InitializeComponent();
        }
예제 #3
0
        private void Btn_PlaceOrder_Click(object sender, RoutedEventArgs e)
        {
            if (khachHangMuaHang == null)
            {
                KhachHangDTO khachHang = new KhachHangDTO();
                khachHang.HoTen  = TextBox_FullNameCustomer.Text;
                khachHang.Email  = TextBox_EmailCustomer.Text;
                khachHang.DiaChi = TextBox_AddressCustomer.Text;
                khachHang.Sdt    = TextBox_PhoneNumberCustomer.Text;
                khachHang.TienNo = 0;

                KhachHangBUS.addCustomer(khachHang);
                khachHangMuaHang = new KhachHangDTO(KhachHangBUS.getLastedID(), khachHang.HoTen, khachHang.DiaChi, khachHang.Email, khachHang.Sdt, khachHang.TienNo);
                LogKhachHangDTO logKhachHang = new LogKhachHangDTO();
                logKhachHang.MaKH     = khachHangMuaHang.MaKH;
                logKhachHang.ThoiGian = datePickerNgayMua.ToString();
                logKhachHang.TienNo   = 0;
                LogKhachHangBUS.insertToLog(logKhachHang);
            }
            listChiTietHoaDon.ForEach(i =>
            {
                if (SachBUS.CheckUpdateSoLuong(i.Sach.MaSach.ToString(), i.SoLuong.ToString()) == false)
                {
                    MessageBox.Show("Lượng tồn sau khi bán của sách " + i.Sach.TenSach + " không hợp lệ", "Thông báo");
                    return;
                }
            });


            if (KhachHangBUS.checkNoToiDa(khachHangMuaHang.MaKH.ToString()) == false)
            {
                MessageBox.Show("Khách hàng " + khachHangMuaHang.HoTen + " có tiền nợ vượt mức cho phép mua hàng", "Thông báo");
                return;
            }

            // Cập nhật lại số lượng sách
            listChiTietHoaDon.ForEach(i =>
            {
                if (SachBUS.updateSoLuong(i.Sach.MaSach.ToString(), i.SoLuong.ToString()) == false)
                {
                    MessageBox.Show("Có lỗi xảy ra trong quá trình cập nhật số lượng sách", "Thông báo");
                    return;
                }
            });
            // Cập nhật hóa đơn bán sách
            HoaDonBanSachDTO hoaDon = new HoaDonBanSachDTO();

            hoaDon.TongTien      = double.Parse(Label_SummaryPriceOfBill.Content.ToString());
            hoaDon.MaKH          = khachHangMuaHang.MaKH;
            hoaDon.NgayTaoHoaDon = datePickerNgayMua.ToString();
            if (HoaDonBanSachBUS.insertHoaDon(hoaDon) == false)
            {
                MessageBox.Show("Có lỗi xảy ra trong quá trình tạo hóa đơn", "Thông báo");
                return;
            }
            // Cập nhật chi tiết hóa đơn bán sách
            hoaDon = HoaDonBanSachBUS.getLastHoaDon();
            listChiTietHoaDon.ForEach(i =>
            {
                i.MaHoaDon = hoaDon.MaHoaDon;
                if (ChiTietHoaDonBanSachBUS.insertChiTietHoaDon(i) == false)
                {
                    MessageBox.Show("Có lỗi xảy ra trong quá trình cập nhật chi tiết hóa đơn bán sách", "Thông báo");
                    return;
                }
            });
            // Cập nhật tiền nợ của khách hàng
            double noTangThem = double.Parse(Label_SummaryPriceOfBill.Content.ToString()) - double.Parse(TextBox_PayCustomer.Text);
            double tienNoMoi  = khachHangMuaHang.TienNo + noTangThem;

            if (tienNoMoi != khachHangMuaHang.TienNo)
            {
                if (KhachHangBUS.changeDebt(khachHangMuaHang.MaKH, tienNoMoi) == false)
                {
                    MessageBox.Show("Cập nhật tiền nợ của khách hàng thất bại", "Thông báo");
                    return;
                }
            }
            //Tạo log sách
            listChiTietHoaDon.ForEach(i =>
            {
                LogSachDTO logSach = new LogSachDTO();
                logSach.MaSach     = i.Sach.MaSach;
                logSach.SoLuong    = i.Sach.SoLuong - i.SoLuong;
                logSach.ThoiGian   = datePickerNgayMua.ToString();
                logSach.HanhDong   = "Sell a book";
                if (LogSachBUS.insertToLog(logSach) == false)
                {
                    MessageBox.Show("Có lỗi xảy ra trong quá trình tạo log sách", "Thông báo");
                    return;
                }
            });
            // Tạo log khách hàng
            if (tienNoMoi != khachHangMuaHang.TienNo)
            {
                LogKhachHangDTO logKhachHang = new LogKhachHangDTO();
                logKhachHang.MaKH     = khachHangMuaHang.MaKH;
                logKhachHang.ThoiGian = datePickerNgayMua.ToString();
                logKhachHang.TienNo   = tienNoMoi;
                if (LogKhachHangBUS.insertToLog(logKhachHang) == false)
                {
                    MessageBox.Show("Có lỗi xảy ra trong quá trình tạo log khách hàng", "Thông báo");
                    return;
                }
            }

            // Tạo phiếu thu tiền
            PhieuThuTienSachDTO phieuThu = new PhieuThuTienSachDTO();

            phieuThu.HoaDonBanSach = hoaDon;
            phieuThu.SoTienThu     = double.Parse(TextBox_PayCustomer.Text);
            if (PhieuThuTienSachBUS.insert(phieuThu) == false)
            {
                MessageBox.Show("Có lỗi xảy ra trong quá trình tạo phiếu thu tiền", "Thông báo");
                return;
            }
            MessageBox.Show("Thanh toán thành công", "Thông báo");
            listChiTietHoaDon.Clear();
            Global.BookBoughtBills.Clear();
            countProductBuy.Badge = 0;
            Global.Books          = SachBUS.loadAll();
            Global.Customers      = KhachHangBUS.loadAll();
        }