Xây dựng website và ứng dụng quản lý cho Hệ thống bán sách
Trang 1Trường Đại học Sài GònKhoa Công nghệ thông tin
Đề tài
Xây dựng website và ứng dụng quản lý cho
Hệ thống bán sách
GVHD: Th.s Cao Thái Phương Thanh
Trang 2Mục lục
Phần I: Mô tả hệ thống 3
1 Mô tả ứng dụng: 3
2 Xác định yêu cầu: 4
Phần II: Phân tích – Thiết kế mô hình 5
1 Concept class diagram 5
2 Physical data model 6
2.1 Mô hình: 6
2.2 Mô tả dữ liệu: 7
3 Sequence diagram 12
3.1 Hiển thị sách theo phân loại: 12
3.2 Tìm kiếm: 13
3.3 Đặt hàng: 14
3.4 Quản lý sách: 15
3.5 Quản lý nhập sách: 18
3.6 Xử lý đơn đặt hàng: 21
3.7 Quản lý tồn kho: 22
3.8 Báo cáo thống kê: 23
4 Class diagram 26
4.1 Hiển thị sách theo phân loại: 26
4.2 Tìm kiếm: 27
4.3 Đặt hàng: 28
Trang 3Phần I: Mô tả hệ thống
1 Mô tả ứng dụng:
Do nhu cầu quản lý ngày càng cao và cần mở rộng thị trường kinh doanh, tìm kiếm khách hàng, nhà sách cần phát triển ứng dụng quản lý và 1 trang web để quảng bá sản phẩm đồng thời bán hàng trực tuyến.
o Đối với trang web:
tên sách hoặc tên tác giả(tùy theo khách hàng nhớ).
thể thêm hoặc xóa sách có trong giỏ hàng.
khách hàng cũ thì chỉ cần đăng nhập với tài khoản đã tạo Ngược lại nếu là khách hàng mới thì phải tạo tài khoản mới để đăng nhập Việc này giúp quản lý được thông tin khách hàng
o Đối với ứng dụng quản lý:
cung cấp Khi nhận hàng, nhân viên sẽ kiểm tra hàng và cập nhật danh mục sách Mỗi quyển sách xác định được các thông tin: mã sách, mã thể loại, tác giả và giá sách có thể thay đổi theo thị trường
viên sẽ kiểm tra danh mục sách và thông báo đến khách hàng nếu đáp ứng được hoặc không đáp ứng được đơn đặt hàng bằng việc điện thoại Đồng thời cập nhật khách hàng mới vào danh sách khách hàng Nếu đơn đặt hàng được đáp ứng, nhân viên sẽ viết phiếu xuất và lập hóa đơn bán hàng để thực hiện thanh toán với khách hàng, cập nhập lại số lượng tồn kho.
xuyên kiểm tra, theo dõi và nắm các thông tin về sách trong danh mục sách để có kế hoạch cung cấp hàng cho khách hoặc lên kế hoạch nhập hàng và đồng thời quản lý được số lượng sách tồn kho.
Trang 4lượng sách mỗi loại được bán ra trong khoảng thời gian đó trên số lượng nhập vào Báo cáo cho quản lý nhà sách để đưa ra hướng kinh doanh có hiệu quả.
2 Xác định yêu cầu:
quan và thực hiện được các yêu cầu quản lý, cụ thể như sau:
o Đối với trang web:
o Đối với ứng dụng quản lý:
lượng(trên hoặc dưới số lượng tùy chọn).
Trang 5Phần II: Phân tích – Thiết kế mô hình
1 Concept class diagram
Trang 62 Physical data model
2.1 Mô hình:
Trang 7mã số khác nhau để phân biệt với các quyển sách khác.
sách.
Trang 8Bảng 4: ChuDe – Chủ đề
cho mỗi chủ đề 1 id khác nhau để phân biệt.
Trang 9Bảng 7: CT_DonDatHang – Chi tiết đơn đặt hàng
cho mỗi chi tiết đơn đặt hàng
1 id khác nhau để phân biệt.
Khóa chính.
trong đơn đặt hàng.
thanh toán.
Trang 10Bảng 8: Admin – Người quản trị hệ thống
Khóa chính.
nhập vào hệ thống web.
đăng nhập ứng với mỗi tên đăng nhập.
giao hàng.
Trang 11Bảng 11: CT_PhieuNhapHang – Chi tiết phiếu nhập hàng
cho mỗi chi tiết phiếu nhập 1
id khác nhau để phân biệt.
Khóa chính.
chi tiết phiếu.
phiếu nhập.
Trang 133.2 Tìm kiếm:
Trang 143.3 Đặt hàng:
: KhachHang
: KhachHang : wfrmDs_SachTheoPLoai : wfrmDs_SachTheoPLoai : wfrmChiTietGioHang : wfrmChiTietGioHang : XuLyDonDatHang : XuLyDonDatHang : XuLyCT_DonDatHang : XuLyCT_DonDatHang : DonDatHang : CT_DonDatHang
GioHang ~ session["GioHang']
1: click nut ChonMua
3: click Xem gio hang
13: Insert() 14: return 7: KiemTraDangNhap()
Trang 15: XuLyTheLoai : XuLyTacGia : XuLyGiaSach : XuLySach : XuLyTonKho : TheLoai : GiaSach : TacGia : Sach : TonKho
15: Nhap thong tin chi tiet sach
25: bt_LuuSach_Click( ) 24: Nhap thong tin gia
28: InsertGia( )
29: InsertGia( )
26: Insert( )
27: Insert( ) 14: frmSach_Load( )
16: Chon the loai
23:
30: CapNhatTonKho( )
31: CapNhatTonKho( ) 32:
33:
set slTon = 0
Trang 163: GetAll( )
4: GetAll( )
9: GetAllTacGia( )
10: GetAllTacGia( ) 11:
16: Sua chi tiet sach
17: Cap nhat gia
15: frmSach_Load( )
5:
14: KhoiTao( )
Trang 187: KhoiTao( )
8: frmPhieuNhap_Load( )
9: GetAll( )
10: GetAll( ) 11:
Trang 1932:
Trang 2021:
Trang 213.6 Xử lý đơn đặt hàng:
: ADmin : frmQuanLyDonDatHang : XuLyDonDatHang : XuLyTonKho : DonDatHang : TonKho
10: thay doi tinh trang Don hang
11: click Nut Luu()
20: CapNhatTonKho( ) 21:
1: Chon Qly DDh
2: KhoiTao( )
3: GetAll( )
4: GetAll( ) 5: return list<ddh>
8: Chon Sua Don Hang
9: Chuyen trang thai Sua
6: return list<ddh>
7: ShowALL( )
12: KiemTraTonKho( )
13: GetSLTon( ) 14:
15:
Trang 223.7 Quản lý tồn kho:
: ADmin
: frmTonKho
: XuLyTonKho : TonKho 1: KhoiTao( )
Trang 233.8 Báo cáo thống kê:
a Báo cáo tồn kho:
: ADmin
: frmThongKeBC
: XuLyTheLoai : XuLyTonKho : TheLoai : TonKho 1: KhoiTao( )
7: Chon ngay xem ton kho
8: Chon the loai
Trang 24b Báo cáo số lượng bán ra theo thể loại và trong khoảng thời gian nhất định:
: ADmin
: frmThongKeBC
: XuLyTheLoai : XuLyCT_DonDatHang : TheLoai : CT_DonDatHang 1: KhoiTao( )
7: Chon khoang thoi gian
8: Chon the loai
Trang 25c Báo cáo số lượng bán ra theo giới hạn số lượng và trong khoảng thời gian nhất định:
: ADmin
: frmThongKeBC
: XuLyTheLoai : XuLyCT_DonDatHang : TheLoai : CT_DonDatHang 1: KhoiTao( )
7: Chon khoang thoi gian
8: Chon gioi han sl
Trang 264 Class diagram
4.1 Hiển thị sách theo phân loại:
Sach
Delete() GetSachById() GetAll() Update() Insert() GetSacgbyTheLoaij() GetSachBySearch()
(from Design Model)
<<entity>>
wfrmIndex Load_DsSach() (from Design Model)
<<boundary>>
XuLySach
Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()
(from Design Model)
<<control>>
XuLyTheLoai
GetTheLoaiById() GetALL()
GetSachByTheLoai()
(from Design Model)
<<control>>
0 n 1
Trang 274.2 Tìm kiếm:
Sach
Delete() GetSachById() GetAll() Update() Insert() GetSacgbyTheLoaij() GetSachBySearch()
(from Design Model)
<<entity>>
wUC_TimKiem
btnTim_click() KiemtraThongTinNhap()
(from Design Model)
<<boundary>>
XuLySach
Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()
(from Design Model)
<<control>>
1 1
wfrmKetQuaTimKiem Load_KqTimKiem() (from Design Model)
<<boundary>>
1 n 1
1 n 1
1 1
1
1 n
Trang 284.3 Đặt hàng:
XuLyDonDatHang
InsertDdh() UpdateTrangThai() GetCtDdhByDdh() GetDDhByID() GetAll()
(from Design Model )
<<control>> XuLyCT_DonDatHang
InsertCtDdh() Delete() GetSlBanByLoaiSpAndGioiHan() GetSlBanByTheLoaiAndThoiGian()
(from Design Model )
<<control>>
wfrmChiTietGioHang
Load_dsGioHang() btnDatHangClick()()
(from Design Model )
<<boundary>>
1 n
1
1 n 1
DonDatHang
Insert() GetDDhByID()() Delete()() UpdateTrangThai() GetAll()
(from Design Model )
<<entity>>
1 1
CT_DonDatHang
Insert() Delete() GetCtDDhByDdh() GetSlBanByTheLoaiAndThoiGian() GetSlBanByLoaiSpAndGioiHan()
(from Design Model )
<<entity>>
1 1
1 n 1
1 n 1
1
1
1
1
Trang 294.4 Quản lý sách:
frmDanhMucSach
KhoiTao() bt_ThemSach_Click() frmDanhMucSach_Load() bt_SuaSach_Click() bt_XoaSach_Click() ShowMessage()
(from Design Model)
<<boundary>>
XuLySach
Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()
(from Design Model)
<<control>> XuLyTheLoai
GetTheLoaiById() GetALL() GetSachByTheLoai()
(from Design Model)
<<control>> XuLyGiaSach
InsertGia() UpdateGiaBySach() DeleteALLGiaBySach()
(from Design Model)
<<control>>
TonKho
CapNhatTonKho() GetSLTon() GetTonKhoByNgay() GetTonKhoByDateAndTheLoai()
(from Design Model)
<<entity>>
XuLyTonKho
CapNhatTonKho() KiemTraTonKho() LoadTonKhoTheoNgay() GetTonKhoByDateAndTheLoai()
(from Design Model)
<<control>>
1 1
1
1 GiaSach
InsertGia() UpdateGiaBySach() DeleteAllGiaBySach()
(from Design Model)
<<entity>>1
1 1 1
frmSach
KhoiTao() frmSach_Load() bt_LuuSach_Click()
(from Design Model)
<<boundary>>
1 n 11 n 1
1 n
1 1 n 1
1
1 n
1
1 n 1
(from Design Model)
<<entity>> 1
(from Design Model)
<<entity>>
1
1 1 1
1
1 n 1 1 n
1 n 1
1 n 1
1 n
Trang 30Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()
(from Design Model)
<<control>>
XuLyCT_PhieuNhap
InsertCT_PhieuNhap() GetCT_PhieuNhap() UpdateCT_PhieuNhap() DeleteCtPhieuNhapByPhieuNhap()
(from Design Model)
<<control>>
frmPhieuNhap
KhoiTao() frmPhieuNhap_Load() bt_LuuPhieu_Click() ShowMessage()
(from Design Model)
<<boundary>>
1 n 1
1 n
1
1 n 1
1 n 1
XuLyTonKho
CapNhatTonKho() KiemTraTonKho() LoadTonKhoTheoNgay() GetTonKhoByDateAndTheLoai()
(from Design Model)
<<control>>
1 n
11 1 n 1 n
1 1
TonKho
CapNhatTonKho() GetSLTon() GetTonKhoByNgay() GetTonKhoByDateAndTheLoai()
(from Design Model)
(from Design Model)
<<entity>>
1 1
1 1
1 n 1 n
Trang 314.6 Xử lý đơn đặt hàng:
DonDatHang
Insert() GetDDhByID()() Delete()() UpdateTrangThai() GetAll()
(from Design Model)
<<entity>>
XuLyDonDatHang
InsertDdh() UpdateTrangThai() GetCtDdhByDdh() GetDDhByID() GetAll()
(from Design Model)
(from Design Model)
<<control>>
1 n 1
TonKho
CapNhatTonKho() GetSLTon() GetTonKhoByNgay() GetTonKhoByDateAndTheLoai()
(from Design Model)
<<entity>>
1
1 1
1
1
1 n
1 n 1
1 1
Trang 324.7 Báo cáo thống kê:
TheLoai
GetTheLoaiById() GetALL()()
(from Design Model)
<<entity>>
XuLyTheLoai
GetTheLoaiById() GetALL() GetSachByTheLoai()
(from Design Model)
<<control>>
1
1 CT_DonDatHang
(from Design Model)
(from Design Model)
(from Design Model)
<<control>>
1
1
1 n 1
1 1
1
1
1 1
Trang 33Decription Khách hàng cần tìm kiếm sách, trang web cung cấp chức năng
tìm kiếm theo tùy chọn của khách hàng
Set up Nếu khách hàng nhớ rõ tên sách thì có thể tìm sách rất dễ dàng
bằng cách nhập tên sách ở phần tìm kiếm của trang web
Instructions Khách hàng A cần tìm quyển sách “Chiến tranh và hòa bình”:
i Khách hàng sẽ nhập tên quyển sách này vào mục tên sách trong phần tìm kiếm
ii Khách hàng click vào nút “Tìm kiếm”
iii Hệ thống tiến hành tìm và hiển thị kết quả
Expected results Có 2 kết quả:
Quyển sách khách hàng cần tìm sẽ được hiển thị trên web nếu trong danh mục sách có quyển sách “Chiến tranh và hòa bình” Khách hàng có thể xem chi tiết về quyển sách
và đặt mua nếu muốn
Ngược lại, trang web sẽ hiển thị thông báo không tìm thấy
Trang 34 Tìm theo tên tác giả:
Decription Khách hàng cần tìm kiếm sách, trang web cung cấp chức năng
tìm kiếm theo tùy chọn của khách hàng
Set up Nếu khách hàng chỉ nhớ tên tác giả mà không nhớ tên sách thì có
thể tìm sách bằng cách nhập tên tác giả ở phần tìm kiếm của trangweb
Instructions Khách hàng B sẽ thực hiện các thao tác:
i Khách hàng nhập tên tác giả “Nguyễn Nhật Ánh” vào mụctên tác giả trong phần tìm kiếm
ii Khách hàng click vào nút “Tìm kiếm”
iii Hệ thống tiến hành tìm kiếm và hiển thị kết quả
Expected results Có 2 kết quả:
Trang web sẽ hiển thị tất cả sách của tác giả “Nguyễn NhậtÁnh” có trong danh mục sách Khách hàng sẽ chọn quyển sách cần tìm trong các kết quả hiển thị
Trang web sẽ hiển thị thông báo không tìm thấy kết quả nào
Tìm theo thể loại:
Decription Khách hàng cần tìm kiếm sách, trang web cung cấp chức năng
tìm kiếm theo tùy chọn của khách hàng
Set up Khách hàng muốn tìm sách theo một thể loại cụ thể
Instructions Khách hàng C sẽ thực hiện các thao tác:
Trang 35Expected results Kết quả đạt được sau khi đặt hàng - trong đơn đặt hàng của khách
hàng A được lưu gồm có:
Sách “Oxford yêu thương”
Trang 37ii Khách hàng B click nút “Đăng kí”.
iii Hệ thống tiến hành lưu thông tin đăng kí và hiển thị thông báo
iv Website chuyển qua trang chi tiết giỏ hàng
v Khách hàng nhấn nút “Đặt hàng”
vi Hệ thống kiểm tra và thông báo đặt hàng thành công
Expected results Kết quả đạt được sau khi đặt hàng - trong đơn đặt hàng được lưu
Trang 38Set up Truyện “Tôi thấy hoa vàng trên cỏ xanh” mới nhập về lần đầu
cần thêm vào danh mục
Instructions Nhân viên thực hiện các thao tác sau:
i Chọn chức năng “Quản lý sách” trên Menu
ii Màn hình “Danh mục sách” được mở và nhân viên click nút “Thêm” trên màn hình này
iii Màn hình “Thông tin sách” được mở và nhân viên tiến hành nhập thông tin chi tiết của 1 quyển sách
o Tên sách: “Tôi thấy hoa vàng trên cỏ xanh”
iv Sau khi nhập đầy đủ thông tin, nhân viên nhấn nút “Lưu”
Hệ thống sẽ tiến hành thêm sách này vào cơ sở dữ liệu vàthông báo nếu có
Expected results Nhân viên đóng và mở lại màn hình “Danh mục sách”, truyện
“Tôi thấy hoa vàng trên cỏ xanh” đã có trong danh mục
Trang 39 Sửa sách:
Decription Thông tin 1 quyển sách đã bị nhập sai, nhân viên được yêu cầu
phải sửa thông tin bị sai
Set up Quyển sách “Ngôn ngữ quảng cáo – Advertising language”, mục
thể loại bị sai
Instructions Nhân viên thực hiện các thao tác sau:
i Chọn chức năng “Quản lý sách” trên Menu
ii Màn hình “Danh mục sách” được mở, nhân viên chọn sách cần sửa và click vào cột “Sửa” trên cùng dòng với sách được chọn
iii Màn hình “Thông tin sách” được mở và nhân viên tiến hành sửa thông tin bị sai:
o Tên sách: “Ngôn ngữ quảng cáo – Advertising language”
o Tác giả: “Lưu Trọng Tuấn”
Expected results Nhân viên đóng và mở lại màn hình “Danh mục sách”, thông tin
sách “Ngôn ngữ quảng cáo – Advertising language” đã được sửa lại
Decription Quá trình xóa 1 quyển sách trong danh mục
Set up Nhân viên muốn xóa quyển sách “Tây du kí”
Instructions Nhân viên thực hiện các thao tác sau:
i Chọn chức năng “Quản lý sách” trên Menu
ii Màn hình “Danh mục sách” được mở, nhân viên chọn
Trang 40Expected results Quyển sách đã được xóa và có hiển thị thông báo xóa
thành công
b Quản lý nhập kho:
Decription Quá trình nhân viên tạo phiếu nhập
Set up Sau khi nhận hàng, nhân viên cần tạo 1 phiếu nhập kho
Instructions Nhân viên thực hiện các thao tác sau:
i Nhân viên chọn chức năng “Quản lý phiếu nhập” trên Menu
ii Màn hình “Quản lý phiếu nhập” được mở và nhân viên click nút “Thêm”
iii Màn hình “Phiếu nhập” được mở, nhân viên tiến hành tạo phiếu nhập
iv Nhân viên nhập thông tin phiếu nhập
v Nhân viên tạo chi tiết phiếu nhập bằng việc chọn sách trong danh mục sách và nhập số lượng:
“Đi qua hoa cúc”
o Tác giả: Nguyễn Nhật Ánh
o Số lượng: 100
“Oxford yêu thương”
o Tác giả: Dương Thụy
o Số lượng: 300
“Tôi tài giỏi, bạn cũng thế”
o Tác giả: Adam Khoo
o Số lượng: 100
“Cấu trúc dữ liệu và giải thuật”
Trang 41 “Cấu trúc dữ liệu và giải thuật”: Số lượng 50
“Kỹ thuật lập trình C”: Số lượng 100
Decription Quá trình nhân viên sửa phiếu nhập
Set up Thông tin của 1 phiếu nhập bị sai, nhân viên phải sửa lại thông
iii Màn hình “Phiếu nhập” được mở và thông tin chi tiết của phiếu nhập này được load lên màn hình
iv Nhân viên tiến hành sửa thông tin phiếu nhập:
“Đi qua hoa cúc”
o Tác giả: Nguyễn Nhật Ánh
o Số lượng: 50 40
“Oxford yêu thương”
o Tác giả: Dương Thụy
o Số lượng: 300
“Tôi tài giỏi, bạn cũng thế”
o Tác giả: Adam Khoo
o Số lượng: 100
“Cấu trúc dữ liệu và giải thuật”
o Tác giả: Đỗ Xuân Lôi
o Số lượng: 50
“Kỹ thuật lập trình C”
o Tác giả: Dương Thiên Tứ
o Số lượng: 100
v Nhân viên click nút “Lưu” trên màn hình này
vi Hệ thống tiến hành xử lý và hiển thị thông báo nếu có
Trang 42Decription Quá trình nhân viên xóa 1 phiếu nhập.
Set up Nhân viên muốn xóa 1 phiếu nhập
Instructions i Nhân viên chọn chức năng “Quản lý phiếu nhập” trên
Menu
ii Màn hình “Quản lý phiếu nhập” được mở, nhân viên chọn phiếu nhập cần sửa và click vào cột “Xóa” trên cùng dòng với phiếu nhập được chọn
iii Hệ thống tiến hành xử lý và hiển thị thông báo nếu có.Expected results Phiếu nhập đã được xóa