You are on page 1of 5

Company Runsystem Corporation

Project Name Invoice Management System


Document Description Design Document for Invoice Management System
Creater Duong Anh Tra
Create Date October 27, 2008
Update Date October 27, 2008

Database design

invoice_mst

Fields

Field Type Collation Null Key Default Extra Privileges Comment


invoice_id int(11) (NULL) NO PRI (NULL) auto_increment select,insert,update,references
purpose_id int(11) (NULL) NO (NULL) select,insert,update,references link to project id
purpose_desc text utf8_general_ci YES (NULL) select,insert,update,references more detail about purpose of this invoice
issue_date datetime (NULL) NO (NULL) select,insert,update,references Issue date of this invoice
payment_date datetime (NULL) YES (NULL) select,insert,update,references actually payment date
deadline datetime (NULL) NO (NULL) select,insert,update,references deadline of this invoice
status tinyint(4) (NULL) NO (NULL) select,insert,update,references status of this invoice
invoice_file_path varchar(80) utf8_general_ci YES (NULL) select,insert,update,references path to uploaded invoice file
amount bigint(20) (NULL) NO (NULL) select,insert,update,references before calculate tax amount
unsigned
tax tinyint(4) (NULL) NO (NULL) select,insert,update,references tax rate
total_amount bigint(20) (NULL) NO (NULL) select,insert,update,references total amount, include tax
unsigned
currency_flg tinyint(4) (NULL) NO (NULL) select,insert,update,references 0: VND, 1: JPY, 2: USD
user_id int(11) (NULL) NO (NULL) select,insert,update,references current login id
reminder_email varchar(80) utf8_general_ci NO (NULL) select,insert,update,references reminder email address
del_flg tinyint(4) (NULL) NO (NULL) select,insert,update,references
create_date datetime (NULL) NO (NULL) select,insert,update,references
update_create datetime (NULL) YES (NULL) select,insert,update,references

Indexes

Table Non Key Seq Column Collation Cardinality Sub Packed Null Index Comment
unique name in name part type
index
invoice_mst 0 PRIMARY 1 invoice_id A 0 (NULL) (NULL) BTREE

nendo_mst

Fields

Field Type Collation Null Key Default Extra Privileges Comment


nendo_id int(11) (NULL) NO PRI (NULL) auto_increment select,insert,update,references primary key
year varchar(4) utf8_general_ci YES (NULL) select,insert,update,references
start_month varchar(6) utf8_general_ci YES (NULL) select,insert,update,references
end_month varchar(6) utf8_general_ci YES (NULL) select,insert,update,references
del_flg tinyint(4) (NULL) YES (NULL) select,insert,update,references
create_date datetime (NULL) YES (NULL) select,insert,update,references
update_date datetime (NULL) YES (NULL) select,insert,update,references

Indexes

Table Non Key Seq Column Collation Cardinality Sub Packed Null Index Comment
unique name in name part type
index
nendo_mst 0 PRIMARY 1 nendo_id A 0 (NULL) (NULL) BTREE
Company Runsystem Corporation
Project Name Invoice Management System
Document Description Design Document for Invoice Management System
Creater Duong Anh Tra
Create Date October 27, 2008
Update Date October 30, 2008

Screen name: Add New Invoice

Screen Layout Detail design

Mô tả khái quát
Trang này được dùng để nhập mới invoice. Chỉ người dùng có quyền admin mới được phép
sử dụng chức năng này
Danh sách controls

Tên Loại Giá trị mặc định Độ dài max Bắt buộc Tên Loại Giá trị mặc định Độ dài max Bắt buộc
purpose CB "Other" ○ status CB "Not Send" ○

pur_desc TA ○ file_upload F
client CB "------------------" ○ currency CB "--------------" ○

inv_type CB ○ amount T 20 ○

cr_email T 80 ○ tax T 4 ○

iss_date_day T 2 ○ total_amount T 20 ○

iss_date_month T 2 ○

iss_date_year T 4 ○

dl_date_day T 2 ○

dl_date_month T 2 ○

dl_date_year T 4 ○

Xử lý khi load màn hình

1. Hiển thị màn hình như hình vẽ. Các trường text đều được xóa trắng.
Thực hiện việc load dữ liệu vào các combox box.
+ Purpose: Default value là other, có id = 0, các trường còn lại name là tên các dự án, value là project_id
+ Client: Load toàn bộ các client hiện đang có trong hệ thống và sắp xếp theo id
+ Invoice Type: 0: Pay for client; 1: Receive from client
+ Status: 0: Not Send; 1: Not Payment; 2: Payment
+ Currency: Default value không có giá trị gì để người dùng bắt buộc phải nhập và phải chú ý đến trường này để tránh nhầm lẫn.
Database update detail
Các giá trị còn lại là 1:VND; 2: USD; 3:JPY
2. Purpose:
1. Upload file (nếu có) lên server. Nếu quá trình upload có lỗi, hiển thị lỗi và dừng việc insert dữ liệu vào data a. Nếu chọn Other thì phải thực hiện những việc sau:
+ Combobox Client phải set về trạng thái (----------) và người dùng bắt buộc phải chọn một client cho invoice này
2. Tiến hành insert các giá trị trên control vào bảng invoice_mst b. Nếu không chọn Other mà chọn một project đã có sẵn:
+ Hệ thống tự động chọn client ứng với project đã chọn và disable combobox này
Tên trường Giá trị
3. Creater's Email: Là địa chỉ email của người lập invoice. Thông tin này sẽ được chức năng nhắc nhở sử dụng để gửi email
invoice_id Tự động tăng cho người tạo invoice có thể theo dõi được trạng thái của invoice
purpose_id project_id của project đã được chọn 4.Người dùng nhập dữ liệu vào 2 ô Amount và Tax, hệ thống tự động tính Total Amount dựa theo công thức:
purpose_desc Purpose Description đã nhập Total Amount = Amount + Amount * Tax/100
client_id client_id của client đã được chọn Dựa vào Currency đã được lựa chọn và Total Amount đã tính ở trên, hiển thị giá trị của Total Amount lên màn hình
creater_email Creater's Email đã nhập 5. Người dùng bấm Add Invoice:
invoice_type Kiểu của invoice đã được chọn + Hệ thống kiểm tra tính hợp lệ của dữ liệu đã nhập. Xem thêm bảng validate data và hiển thị lỗi.
issue_date Issue Date đã nhập + Nếu có lỗi hiển thị message lỗi và không cho phép đi tiếp
payment_date Để trống + Nếu dữ liệu được kiểm tra hợp lệ tiến hành insert vào bảng invoice_mst trong database và chuyển sang màn hình Update Complete
deadline Deadline đã nhập (Xem thêm chi tiết về insert vào database)
status Status đã chọn 6. Người dùng bấm Clear: Xóa trắng các trường text và trả các combobox về giá trị default
invoice_file_pa Đường dẫn đến file invoice đã được upload lên server (nếu có)
amount Amount đã nhập Các trường hợp lỗi và message tương ứng
tax Tax đã nhập
total_amount Total Amount đã được tính toán STT Điều kiện Hành động Thông báo lỗi
currency_flg Currency đã chọn
1 Không nhập Purpose Description Nhấn Add Invoice Please input Purpose Description!
del_flg 0
create_date Ngày hiện tại Purpose là Other và không chọn
2 Nhấn Add Invoice Please select a Client!
update_date Để trống Client

3 Không nhập Issue Date Nhấn Add Invoice Please input Issue Date!

Issue Date nhập không đúng


4 Nhấn Add Invoice Please input a correct Issue Date!
định dạng

5 Không nhập Deadline Nhấn Add Invoice Please input Deadline!

Deadline nhập không đúng


6 Nhấn Add Invoice Please input a correct Deadline!
định dạng
Khi cả Issue Date và Deadline đã
7 Nhấn Add Invoice Deadline can not be early than Issue Date.
nhập, và Deadline < Issue Date

8 Không chọn Currency Nhấn Add Invoice Please select a Currency !

9 Không nhập Amount Nhấn Add Invoice Please input Amount number!

10 Amount nhập không đúng định dạng Nhấn Add Invoice Please input a correct Amount number!

11 Không nhập Tax Nhấn Add Invoice Please input Tax rate number!

12 Tax nhập không đúng định dạng Nhấn Add Invoice Please input a correct Tax number!
13 File upload có kích cỡ lớn hơn 4Mb Nhấn Add Invoice Upload File is too big!

Các ghi chú

Không có
Company Runsystem Corporation
Project Name Invoice Management System
Document Description Design Document for Invoice Management System
Creater Duong Anh Tra
Create Date October 30, 2008
Update Date October 30, 2008

Screen name: Edit Invoice

Screen Layout Detail design

Mô tả khái quát
Trang này được dùng để sửa các thông tin của invoice đã có. Người dùng cũng sử dụng chức năng này để cập nhật ngày payment của invoice.
Chỉ có admin mới được phép sử dụng chức năng này.
Danh sách controls

Tên Loại Giá trị mặc định Độ dài max Bắt buộc Tên Loại Giá trị mặc định Độ dài max Bắt buộc
purpose CB "Other" ○ status CB "Not Send" ○
pur_desc TA ○ file_upload F
client CB "------------------" ○ currency CB "--------------" ○
inv_type CB ○ amount T 20 ○
cr_email T 80 ○ tax T 4 ○
iss_date_day T 2 ○ total_amount T 20 ○
iss_date_month T 2 ○ pay_date_day T 2 ○
iss_date_year T 4 ○ pay_date_mon T 2 ○
dl_date_day T 2 ○ pay_date_year T 4 ○
dl_date_month T 2 ○
dl_date_year T 4 ○

Xử lý khi load màn hình

1. Hiển thị màn hình như hình vẽ. Hiển thị các dữ liệu của invoice lên các control
Thực hiện việc load dữ liệu vào các combox box.
+ Purpose: load toàn bộ các dự án hiện có lên combobox. Selected value là dự án đã được lưu trong invoice
+ Client: Load toàn bộ các client hiện đang có trong hệ thống và selected value là client đã được lưu trong invoice
+ Invoice Type: load invoice type và selected value là giá trị đã được lưu trong invoice
+ Status: selected value là giá trị đã có trong invoice
+ Currency: selected value là giá trị đã có trong invoice
Database update detail
2. Purpose:
a. Nếu chọn Other thì phải thực hiện những việc sau:
1. Upload file (nếu có) lên server. Nếu quá trình upload có lỗi, hiển thị lỗi và dừng việc insert dữ liệu vào data + Combobox Client phải set về trạng thái (----------) và người dùng bắt buộc phải chọn một client cho invoice này
b. Nếu không chọn Other mà chọn một project đã có sẵn:
2. Tiến hành insert các giá trị trên control vào bảng invoice_mst + Hệ thống tự động chọn client ứng với project đã chọn và disable combobox này
3. Nếu invoice đã được thanh toán, nhập thông tin về ngày thanh toán vào Payment Date
Tên trường Giá trị
4. Creater's Email: Là địa chỉ email của người lập invoice. Thông tin này sẽ được chức năng nhắc nhở sử dụng để gửi email
invoice_id Giữ nguyên giá trị cũ cho người tạo invoice có thể theo dõi được trạng thái của invoice
purpose_id project_id của project đã được chọn 5.Người dùng nhập dữ liệu vào 2 ô Amount và Tax, hệ thống tự động tính Total Amount dựa theo công thức:
purpose_desc Purpose Description đã nhập Total Amount = Amount + Amount * Tax/100
client_id client_id của client đã được chọn Dựa vào Currency đã được lựa chọn và Total Amount đã tính ở trên, hiển thị giá trị của Total Amount lên màn hình
creater_email Creater's Email đã nhập 6. Người dùng bấm Edit Invoice:
invoice_type Kiểu của invoice đã được chọn + Hệ thống kiểm tra tính hợp lệ của dữ liệu đã nhập. Xem thêm bảng validate data và hiển thị lỗi.
issue_date Issue Date đã nhập + Nếu có lỗi hiển thị message lỗi và không cho phép đi tiếp
payment_date Nếu Payment Date được nhập, cập nhật giá trị này vào database, ngược lạ + Nếu dữ liệu được kiểm tra hợp lệ tiến hành update vào bảng invoice_mst trong database và chuyển sang màn hình Update Complete
deadline Deadline đã nhập (Xem thêm chi tiết về update vào database)
status Status đã chọn 7. Người dùng bấm Clear: Xóa trắng các trường text và trả các combobox về giá trị default
invoice_file_pa Đường dẫn đến file invoice đã được upload lên server (nếu có)
amount Amount đã nhập Các trường hợp lỗi và message tương ứng
tax Tax đã nhập
total_amount Total Amount đã được tính toán STT Điều kiện Hành động Thông báo lỗi
currency_flg Currency đã chọn
1 Không nhập Purpose Description Nhấn Add Invoice Please input Purpose Description!
del_flg Giữ nguyên giá trị cũ
create_date Giữ nguyên giá trị cũ Purpose là Other và không chọn
2 Nhấn Add Invoice Please select a Client!
update_date Ngày hiện tại Client

3 Không nhập Issue Date Nhấn Add Invoice Please input Issue Date!

Issue Date nhập không đúng


4 Nhấn Add Invoice Please input a correct Issue Date!
định dạng

5 Không nhập Deadline Nhấn Add Invoice Please input Deadline!

Deadline nhập không đúng


6 Nhấn Add Invoice Please input a correct Deadline!
định dạng
Khi cả Issue Date và Deadline đã
7 Nhấn Add Invoice Deadline can not be early than Issue Date.
nhập, và Deadline < Issue Date

Nếu Payment Date đã nhập và định


8 Nhấn Add Invoice Please input a correct Payment Date!
dạng không đúng
Khi cả Issue Date và Payment Date
9 đã nhập, và Payment Date < Issue Nhấn Add Invoice Payment Date can not be early than Issue Date.
Date
10 Không chọn Currency Nhấn Add Invoice Please select a Currency !

11 Không nhập Amount Nhấn Add Invoice Please input Amount number!
12 Amount nhập không đúng định dạng Nhấn Add Invoice Please input a correct Amount number!

13 Không nhập Tax Nhấn Add Invoice Please input Tax rate number!

14 Tax nhập không đúng định dạng Nhấn Add Invoice Please input a correct Tax number!

15 File upload có kích cỡ lớn hơn 4Mb Nhấn Add Invoice Upload File is too big!

Các ghi chú

Không có

You might also like