public static bool insertHoaDon(HoaDonBanSachDTO hoaDon)
        {
            string sCommand = string.Format(@"Insert into HOADONBANSACH(TongTien,MaKH,NgayTao) values({0},{1},'{2}')", hoaDon.TongTien, hoaDon.MaKH, hoaDon.NgayTaoHoaDon);

            con = DataProvider.openConnection();
            bool result;

            try
            {
                result = DataProvider.executeNonQuery(sCommand, con);
                DataProvider.closeConnection(con);
            }
            catch
            {
                result = false;
                DataProvider.closeConnection(con);
            }
            return(result);
        }
        public static HoaDonBanSachDTO loadByMaHoaDon(string MaHoaDon)
        {
            string sCommand = "select* from HoaDonBanSach where MaHoaDon = " + MaHoaDon;

            con = DataProvider.openConnection();
            DataTable dt = DataProvider.getDataTable(sCommand, con);
            int       n  = dt.Rows.Count;

            if (n <= 0)
            {
                DataProvider.closeConnection(con);
                return(null);
            }
            HoaDonBanSachDTO hoaDon = new HoaDonBanSachDTO();

            hoaDon.MaHoaDon      = int.Parse(dt.Rows[0]["MaHoaDon"].ToString());
            hoaDon.MaKH          = int.Parse(dt.Rows[0]["MaKH"].ToString());
            hoaDon.NgayTaoHoaDon = dt.Rows[0]["NgayTao"].ToString();
            hoaDon.TongTien      = double.Parse(dt.Rows[0]["TongTien"].ToString());
            DataProvider.closeConnection(con);
            return(hoaDon);
        }
        public static HoaDonBanSachDTO getLastHoaDon()
        {
            string sCommand = "Select top 1 * from HoaDonBanSach order by MaHoaDon desc";

            con = DataProvider.openConnection();
            DataTable dt = DataProvider.getDataTable(sCommand, con);
            int       n  = dt.Rows.Count;

            if (n <= 0)
            {
                DataProvider.closeConnection(con);
                return(null);
            }
            HoaDonBanSachDTO hoaDon = new HoaDonBanSachDTO();

            hoaDon.MaHoaDon      = int.Parse(dt.Rows[0]["MaHoaDon"].ToString());
            hoaDon.MaKH          = int.Parse(dt.Rows[0]["MaKH"].ToString());
            hoaDon.NgayTaoHoaDon = dt.Rows[0]["NgayTao"].ToString();
            hoaDon.TongTien      = double.Parse(dt.Rows[0]["TongTien"].ToString());
            DataProvider.closeConnection(con);
            return(hoaDon);
        }
Exemple #4
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();
        }
Exemple #5
0
 public static bool insertHoaDon(HoaDonBanSachDTO hoaDon)
 {
     return(HoaDonBanSachDAO.insertHoaDon(hoaDon));
 }