Báo cáo công nợ

Một phần của tài liệu Báo cáo đồ án môn học công nghệ phần mềm đề tài quản lý nhà sách (Trang 78)

Tên chức năng Báo cáo công nợ

Mô tả Báo cáo số tiền khách hàng còn nợ

trong tháng

Tác nhân Nhân viên kế toán, Tổng quản lý

Điều kiện trước Người dùng thuộc phòng ban Kế toán, Quản lý đăng nhập thành công vào hệ thống

Điều kiện sau Sau khi xem báo cáo tồn thành công,

người dùng có thể thực hiện các chức năng khác như xem báo cáo tồn kho

Ngoại lệ

Các yêu cầu đặc biệt

3.1.6.2.3. Biểu đồ luồng xử lý chức năng

(1) Nhân viên nhấn nút xem báo cáo, chọn tháng

(2) Thông tin báo cáo tồn kho từ database DebtReport

(3) Hiển thị báo cáo tồn kho cho người dùng

3.1.6.2.4. Mô tả dòng sự kiện chính (Basic Flow)

Hành động của tác nhân Phản ứng của hệ thống

1. Vào menu > Báo cáo

Sub-menu Báo cáo công nợ

2. Hiển thị màn hình: - Một bảng bao gồm các thành phần: + Tháng + Tên khách hàng + Nợ đầu + Phát sinh + Nợ cuối

3.1.6.2.5. Mô tả dòng sự kiện phụ (Alternative Flow) 3.1.6.2.6. Ghi chú

- Nợ đầu: Số tiền khách nợ từ kỳ trước - Phát sinh

+ Nợ: Số tiền khách hàng nợ thêm + Trả: Số tiền khách hàng trả nợ

- Nợ cuối: Số tiền khách còn nợ vào cuối kỳ Nợ cuối = Nợ đầu - Phát sinh

3.1.7. Cài đặt

3.1.7.1. Cài đặt về quy định

3.1.7.1.1. Thông tin chung chức năng

Tên chức năng Chỉnh sửa cài đặt về quy định

Mô tả Người dùng được phép thay đổi các

quy định

Tác nhân Tổng quản lý

Điều kiện trước Người dùng với chức vụ “Tổng quản lý” đăng nhập thành công vào hệ thống

Điều kiện sau Sau khi thay đổi quy định, người dùng có thể thực hiện các tính năng khác như thay đổi giá cả

Ngoại lệ

Các yêu cầu đặc biệt Người dùng chỉ được thay đổi các quy định:

- Số lượng nhập tối thiểu - Lượng tồn tối thiểu trước khi

nhập

- Tiền nợ tối đa của khách hàng - Lượng tồn tối thiểu sau khi bán

3.1.7.1.2. Giao diện

(1) Thông tin cài đặt nhân viên muốn chỉnh sửa

(2) Thông tin cài đặt hiện tại từ database Setting

(3) Lưu thông tin cài đặt mới từ database Setting

(4) Hiển thị thông báo cài đặt thành công

3.1.7.1.4. Mô tả dòng sự kiện chính (Basic Flow)

Hành động của tác nhân Phản ứng của hệ thống

1. Vào menu Cài đặt

> Sub-menu Cài đặt quy định

2. Hiển thị màn hình:

2.1. Một bảng gồm các dòng sau ứng với giá trị mặc định đã có:

- Số lượng nhập tối thiểu - Lượng tồn tối thiểu trước khi

nhập

- Tiền nợ tối đa của khách hàng - Lượng tồn tối thiểu sau khi bán

Các quy định được mặc định “Đang sử dụng” và đính kèm một checkbox “Sử dụng/ Không sử dụng”

2.2. Một nút “Lưu” 2.3. Một nút “Hủy” 3. Nhập giá trị tương ứng với quy

định muốn thay đổi

4. Ghi nhận lại thông tin thay đổi, chỉ cho phép người dùng nhập giá trị là số nguyên

5. Nhấn nút “Lưu”

+Nếu thông tin nhập thỏa mãn quy định

thì hệ thống xác nhận thành công và cập nhật quy định

+Nếu thông tin nhập không thỏa mãn quy định thì hệ thống xác nhận thất bại và chờ thông tin nhập lại mới

3.1.7.1.5. Mô tả dòng sự kiện phụ (Alternative Flow)

Hành động của tác nhân Phản ứng của hệ thống

Nhấn nút “Không sử dụng” (Vô hiệu hóa) quy định tương ứng

Hệ thống thông báo “Bạn có chắc muốn Vô hiệu hóa không”.

thống sẽ vô hiệu hóa quy định được chọn

Nếu người dùng chọn “Khôngthì hệ thống sẽ tắt thông báo và hiển thị tiếp tục danh sách quy định đang được chỉnh sửa dang dở.

Nhấn nút “Hủy” Hệ thống thông báo “Bạn có chắc muốn

hủy không”.

Nếu người dùng chọn “thì hệ thống sẽ không lưu lại giá trị đã thay đổi, và tải lại danh sách quy định trước khi chỉnh sửa

Nếu người dùng chọn “Khôngthì hệ thống sẽ tắt thông báo và hiển thị tiếp tục danh sách quy định đang được chỉnh sửa dang dở.

Chương 4: Mô tả tổng thể 4.1. tả tổng thể Phần mềm bao gồm 7 phân hệ chính: - Quản lý sách - Bán sách - Quản lý khách hàng - Quản lý nhân viên - Đăng nhập - Báo cáo - Cài đặt 4.2. Chức năng hệ thống 1. Quản lý sách 1.1. Tạo sách mới 1.2. Nhập sách

1.2. Sửa thông tin sách 1.3. Xóa sách

1.4. Tìm kiếm sách 1.5. Xem sách

2. Bán sách

2.1. Bán sách2.2. Phiếu thu tiền 2.2. Phiếu thu tiền 2.3. Xem hóa đơn 2.4. Tìm kiếm hóa đơn

3. Quản lý khách hàng

3.1. Thêm khách hàng 3.2. Xóa khách hàng

3.3. Sửa khách

hàng

4. Quản lý nhân viên

4.1. Thêm nhân viên 4.2. Xóa nhân viên 4.3. Sửa nhân viên

5. Đăng nhập

5.1. Đăng nhập 5.2. Đăng xuất

6. Báo cáo

6.1. Báo cáo tồn

6.2. Báo cáo công

nợ

7. Cài đặt (Setting):

4.3.

4.4.

Ràng buộc, giả định phụ thuộc

4.4.1. Ràng buộc:

Về Phạm vi

➢ Phần mềm phải gồm các chức năng được liệt kê trong SRS.

Về Thời gian

➢ Phần mềm phải được hoàn tất trong 3 tháng.

Về chi phí

➢ Chi phí phần mềm không được vượt quá định mức.

4.4.2. Giả định:

Tài nguyên

➢ Tất cả thành viên nhóm tham gia có khả năng thực hiện công việc được phân công

➢ Nhóm có đầy đủ các công cụ để thực hiện dự án

Ngân sách

➢ Ngân sách thực hiện dự án không thay đổi xuyên suốt thời gian phát triển.

Phạm vi

➢ Phạm vi dự án không thay đổi một khi khách hàng xác nhận và kí vào document.

Lịch trình

➢ Dự án sẽ được hoàn thành trong 3 tháng.

➢ Dự án sẽ đạt được các milestone theo lịch được đề ra.

➢ Agile kết hợp Thác nước

Kiến trúc và thiết kế

➢ Dự án được thiết kế theo kiến trúc 3 lớp 2 tầng: mô hình Client - Server Client: Tầng GUI Server: Tầng BLL + DAL ❖ Công nghệ Tầng GUI: Winform C# Tầng BLL + DAL: NodeJS ORM: Sequelize Hệ cơ sở dữ liệu: - Microsoft SQL Server - MySQL - PostgreSQL 4.4.3. Phụ thuộc:

- Cần phải xây dựng cơ sở dữ liệu trước khi thực hiện các chức năng - Các chức năng chỉ có thể hoàn thành khi giao diện đã được thiết kế

Chương 5: Thiết kế dữ liệu

DANH SÁCH CÁC YÊU CẦU CỦA NHÓM

STT Tên yêu cầu Biểu mẫu Quy định

1 Quản lý sách BM12 Quản lý nhập sách BM2 QĐ1 2 Quản lý nhập sách BM2 QĐ1 3 Quản lý khách hàng BM3.1 BM3.2 QĐ2 4 Lập báo cáo tồn BM4 5 Lập hóa đơn bán sách BM5 QĐ3

6 Quản lý tài khoản và nhân viên QĐ4

7 Thay đổi quy định QĐ5

Đối với các tính tiến hóa: Do có yêu cầu thay đổi quy định [Yêu cầu 7] nên các quy định trong tính tiến hóa sẽ tạm thời không xét.

5.1.

Trình bày chi tiết quá trình thiết kế hình dữ liệu

1. Yêu cầu 1: Quản lý sách

BM1 Danh Sách Sách

STT Tên Sách Thể Loại Tác Giả Số Lượng

1 2

Sách có ngày phát hành, sơ lược về sách và ảnh bìa của sách.

BM1: Thiết kế dữ liệu với tính đúng đắn:

★ Thuộc tính mới - title - genre - author - stock - cost - price - description - releasedDate - imageUrl ★ Thiết kế dữ liệu

- Tạo bảng Book: dùng để chứa các thuộc tính liên quan đến sách: + id là khóa chính

+ title + genre + author

Book id

title author stock price

description genre releasedDate imageUrl

+ stock + cost + price + description + releasedDate + imageUrl ★ Sơ đồ logic

2. Yêu cầu 2: Quản lý nhập sách

BM2 Phiếu Nhập Sách

Ngày nhập:...

STT Sách Thể Loại Tác Giả Số Lượng Đơn Giá Nhập

1 2

title author stock price

description genre releasedDate imageUrl Book id

receiveDate quantity cost BooksReceivedNote bookID

Số lượng nhập ít nhất là 150. Chỉ nhập các sách có lượng tồn ít hơn 300.

BM2: Thiết kế dữ liệu với tính đúng đắn:

★ Thuộc tính mới - quantity - cost

- receiveDate

★ Thiết kế dữ liệu:

Tạo bảng BookReceivedNote: dùng để chứa các thuộc tính liên quan đến phiếu nhập sách vào kho:

+ bookId và receiveDate là khóa chính

+ bookId là khóa ngoại tham chiếu đến thuộc tính id của bảng Book + quantity

+ cost

3. Yêu cầu 3: Quản lý khách hàng

Thông thường, khi khách hàng mua sách, nhà sách sẽ không lưu lại thông tin của mỗi một khách hàng khi đến mua. Ta gọi đó là lữ khách.

Và khi khách hàng mua sách, khách hàng được quyền được nợ. Nếu khách hàng nợ, khách hàng phải ghi lại thông tin khách hàng sau khi thu nợ trong biểu mẫu Phiếu Thu Tiền để nhà sách lưu giữ thông tin nợ và trả của khách hàng đó. [BM4] Và dựa vào đó, nhà sách sẽ có một báo cáo công nợ để theo dõi việc nợ của mỗi khách hàng trong mỗi tháng. [BM3.2] Trong [BM3.1], ta có: Nợ đầu: Số tiền khách nợ từ kỳ trước Phát sinh: Nợ: Số tiền khách hàng nợ thêm Trả: Số tiền khách hàng trả nợ Nợ cuối: Số tiền khách còn nợ vào cuối kỳ

Nợ cuối = Nợ đầu - Phát sinh

BM3.1 Báo Cáo Công Nợ

Tháng:...

STT Khách Hàng Nợ Đầu Phát Sinh Nợ Cuối

1 2

BM3.2 Phiếu Thu Tiền

Họ tên khách hàng:... Điện thoại:... Ngày thu tiền:...

Địa chỉ:... Email:... Số tiền thu:...

BM3 Thiết kế dữ liệu với tính đúng đắn: ★ Thuộc tính mới: - firstName - lastName - phone - email - address - isFemale - month - debtAmount - paidAmount - openingDebit - closingDebit - paidDate - Description - isMember ★ Thiết kế dữ liệu

- Tạo bảng Customer: dùng để chứa các thuộc tính liên quan đến khách hàng: + id là khóa chính

+ firstName

+ lastName + phone + email + address + isFemale + isMember

- Tạo bảng DebtRecepit: dùng để chứa các thuộc tính liên quan đến phiếu thu tiền nợ:

+ id là khóa chính của DebtReceipt

+ customerID - khóa ngoại tham chiếu đến thuộc tính id của bảng Customer

+ datePaid + paidAmount + description

- Tạo bảng DebtReport: dùng để chứa các thuộc tính liên quan đến báo cáo thu nợ khách hàng

+ id là khóa chính của DebtReceipt

+ customerID - khóa ngoại tham chiếu đến thuộc tính id của bảng Customer

+ debtReceiptID - khóa ngoại tham chiếu đến thuộc tính id của bảng DebtReceipt

+ Month

+ openingDebit + closingDebit + debtAmount

+ paidAmount - khóa ngoại tham chiếu đến thuộc tính paidAmount của bảng DebtRecepit

★ Sơ đồ logic

4. Yêu cầu 4: Lập báo cáo tồn

Trong [BM5.1], ta có:

Phát sinh:

Nhập: Số lượng sách nhập thêm trong kỳ Xuất: Số lượng sách bán ra trong kỳ Tồn cuối: Hàng còn tồn kho ở cuối kỳ

Tồn cuối = Tồn đầu - Phát sinh

BM4 Báo Cáo Tồn

Tháng:...

STT Sách Tồn Đầu Phát Sinh Tồn Cuối

1 2

BM4: Thiết kế dữ liệu với tính đúng đắn:

★ Thuộc tính mới: - openingStock - closingStock - receiveBooks - soldBooks - month ★ Thiết kế dữ liệu

Tạo bảng InventoryReport: dùng để chứa các thuộc tính liên quan đến báo cáo tồn kho

- id là khóa chính

- bookId là khóa ngoại tham chiếu đến thuộc tính id của bảng Book - openingStock

BooksRecei vedNote bookId Book

id

title author stock price

DebtRece it id

customerI Customer

id firstName lastName phone

DebtRepo rt id customerI d debtrecei - receivedBooks - soldBooks - closingStock - month ★ Sơ đồ logic

5. Yêu cầu 5: Quản lý bán sách

BM5 Hóa Đơn Bán Sách

Họ tên khách hàng:... Ngày lập hóa đơn:...

STT Sách Thể Loại Số Lượng Đơn Giá Bán

InventoryR eport id bookId openingSt ock

Có thuộc tính để thể hiện tình trạng của hóa đơn và cho biết hóa đơn đã được thanh toán hay chưa và số tiền khách hàng đã thanh toán hóa đơn đó.

QĐ3: Chỉ bán cho các khách hàng nợ không quá 20.000 và đầu sách có lượng tồn sau khi bán ít nhất là 20. Đơn giá bán = 105% x Đơn giá nhập.

BM5: Thiết kế dữ liệu với tính đúng đắn: ★ Thuộc tính mới - orderDate - quantity - Price ★ Thiết kế dữ liệu

- Tạo bảng Order: dùng để chứa các thuộc tính liên quan đến đặt sách + id là khóa chính

+ orderDate

- Tạo bảng OrderDetail:

+ orderId và bookId là khóa chính với orderId là khóa ngoại tham chiếu đến id của bảng Order và bookID là khóa ngoại tham chiếu đến id của bảng Book

Inventory Report id bookId orderdet ailId

Book id title author stock price

DebtRec epit id

custome OrderDe

tail orderId bookId

Custom er id firstNam e Order id orderDat e BooksRec eivedNote bookId DebtRe port id

custome rId expense

BM5: Thiết kế dữ liệu với tính tiến hóa:

★ Thuộc tính mới - discount - totalOrder - paidAmount - totalOrderDetail - isPaid - orderdetailId ★ Thiết kế dữ liệu:

Trong bảng Order, thêm các thuộc tính: + Discount

+ totalOrder + isPaid

Inventory Report id bookId orderdet ailId

Book id title author stock price

DebtRec epit id custome OrderDe

tail orderId bookId

Custom er id firstNam e Order

id orderDat e discount totalOrd BooksRec

eivedNote bookId

DebtRe port

id custome rId expense

+ customerId là khóa ngoại tham chiếu đến id của bảng Customer + paidAmount

Trong bảng OrderDetail, thêm thuộc tính: totalOrderDetail

★ Sơ đồ logic

6. Yêu cầu 6: Quản lý tài khoản và nhân viên

Người dùng có tài khoản để đăng nhập vào hệ thống. Mỗi tài khoản chứa thông tin cá nhân của người dùng.

BM6: Thiết kế dữ liệu với tính đúng đắn:

QĐ4 : Mỗi tài khoản sẽ được phân quyền và mỗi hóa đơn sẽ thuộc 1 người dùng xuất ra.

★ Thuộc tính mới: - username - password - firstName - lastName - phone - dateOfBirth - email - address - isFemale - idCard ★ Thiết kế dữ liệu - Tạo bảng User: + id là khóa chính + firstName + lastName + phone + dateOfBirth + email + address + isFemale + idCard - Tạo bảng Account + id là khóa chính

+ userId là khóa ngoại tham chiếu đến id của bảng User + username

Inventory Report

id bookId orderDet ailed

Book id title author stock price

DebtRec eipt id custome Account id usernam e User id firstNam e lastNam e OrderDe

tail orderId bookId

Custom er id firstNam e

Order

id orderDat e discount totalOrd BooksRec

eivedNote bookId

DebtRe port

id custome rId debtrece

+ password

★ Sơ đồ logic

BM6: Thiết kế dữ liệu với tính tiến hóa:

★ Thuộc tính mới: - isAdmin

★ Thiết kế dữ liệu: Thêm thuộc tính isAdmin vào bảng Account

Inventory Report

id bookId orderDet ailed

Book id title author stock price

DebtRec eipt id custome Account id usernam e User id firstNam e lastNam e OrderDe

tail orderId bookId

Custom er id firstNam e Order

id orderDat e discount totalOrd BooksRec

eivedNote bookId

DebtRe port id

7. Yêu cầu 7: Thay đổi quy định

Tính đúng đắn: Không có thuộc tính mới Tính tiến hóa: ★ Thuộc tính mới: ○ nameSetting ○ valueSetting ★ Thiết kế dữ liệu: Tạo bảng Setting: - id là khóa chính - nameSetting - valueSetting

Chú thích: Trong bảng Setting sẽ có 2 column đó là nameSetting và valueSetting VD: INSERT INTO (nameSetting ,valueSetting) VALUES

("TienNoToiDa",30000)

Nhờ đó, mỗi lúc người dùng muốn thay đổi quy định đối với Tiền nợ tối đa ta chỉ cần:

UPDATE Setting

SET valueSetting= “40000”, ... WHERE id = “1”;

- Sơ đồ logic

QĐ5: Người dùng có thể thay đổi các quy định như sau:

+ QĐ1: Thay đổi số lượng nhập tối thiểu, lượng tồn tối thiểu trước khi nhập.

+ QĐ2: Sử dụng hay không sử dụng quy định này

SETTI NG Inventory

Report id bookId orderDet ailId

Book id title author stock price

DebtRec eipt id custome Account

Một phần của tài liệu Báo cáo đồ án môn học công nghệ phần mềm đề tài quản lý nhà sách (Trang 78)

w