Bài tập lớn uml quản lý nhân sự

Đội ngũ nhân viên: Ðội ngũ chuyên viên của Công ty gồm hơn 150 nguời, trong đó hơn 80% là các kỹ sư đã tốt nghiệp đại học chuyên ngành Ðiện tử - Tin học, Kinh tế, Kế toán... Trong số đó hơn 12 chuyên viên kỹ thuật của Công ty đã tham dự các khoá tu nghiệp với công nghệ tiên tiến của các nhà sản xuất hàng đầu trên thế giới, đặc biệt là các công nghệ ứng dụng trong việc phát triển hệ thống máy tính thông minh.

Địa chỉ: 41 Thái Hà - Ðống Ða - Hà Nội

Hiện tại công ty có 4 cơ sơ trên địa bàn Hà Nội

Ðịa chỉ : Số 241 Phố Vọng - Hai Bà Trung - Hà Nội Ðiện thoại : [04] 3.628 5868 Fax : [04] 3.628 5867

Ðịa chỉ : Số 41 Thái Hà - Ðống Ða - Hà Nội Ðiện thoại : [04] 3.5377109 Fax : [04] 3.5377108

Ðịa chỉ : Số 05 Hồ Tùng Mậu - Cầu Giấy - Hà Nội Ðiện thoại : [04] 3.9369989 Fax : [04] 3.9369986

Ðịa chỉ : Số 104 Lê Thanh Nghị - Hai Bà Trung - Hà Nội Ðiện thoại : [04] 3.7664647 Fax : [04] 3.7664648

  1. Nhiệm vụ cơ bản

§ Lấy hàng từ nhà cung cấp bán cho khách hàng

§ Nhận tiền thanh toán từ khách hàng

§ Thanh toán tiền hàng cho nhà cung cấp

  1. Cơ cấu tổ chức

Khi có yêu cầu nhập thiết bị: nhân viên tiến hành ghi phiếu yêu cầu gồm các

thông tin chi tiết về thiết bị và gửi đến cho nhà cung cấp.

Nhà cung cấp sẽ gửi đơn chào hàng chi tiết các thiết bị bao gồm các thông tin

như: tên, loại thiết bị, số lượng, nguồn gốc….Qua đơn chào hàng của nhà cung cấp thì

cửa hàng sẽ đưa ra đơn đặt hàng và gửi đến cho nhà cung cấp, để đáp ứng nhu cầu

nhập thiết bị của cửa hàng nhà cung cấp sẽ chuyển thiết bị cho cửa hàng theo hợp đồng

mua,bán hàng hóa và biên lai bàn giao thiết bị [kiêm hóa đơn thanh toán tiền thiết bị].

Trước khi nhập hàng vào kho thì cửa hàng sẽ kiểm tra xem đã đủ thiết bị chưa

theo biên bản bàn giao thiết bị mà nhà cung cấp gửi đến, đồng thời cửa hàng sẽ ghi các

thông tin cần thiết vào sổ chi và sổ kho. Nếu thiết bị nào không đạt yêu cầu thì cửa

hàng sẽ trả lại nhà cung cấp, và yêu cầu nhà cung cấp cấp lại những thiết bị như hợp

Khi khách có nhu cầu mua thiết bị, khách hàng xem thông tin hàng hóa, tìm kiếm

hàng cần mua. Nếu khách hàng chọn được thiết bị cần mua thì cửa hàng sẽ kiểm tra

trong kho, nếu trong kho còn hàng thì nhân viết sẽ viết phiếu bán hàng. Sau đó cửa

hàng sẽ tiến hành bàn giao thiết bị cho khách và gửi đến khách hàng hóa đơn thanh

toán, phiếu bảo hành và các giấy tờ liên quan, có kèm theo các khuyến mại[nếu có].

Khi khách đã thanh toán tiền thiết bị thì cửa hàng sẽ lập biên lai thu tiền cho khách

đồng thời sẽ ghi các thông tin cần thiết vào sổ thu và sổ kho.

Để tiện cho việc quản lý hệ thống sẽ lưu trữ và quản lý thông tin về nhà cung cấp

và thông tin khách hàng.Có thể sửa hoặc xóa khi cần thiết.

Sau một khoảng thời gian nhất định nhân viên các bộ phận sẽ tổng hợp thông tin

mua,bán, và các thông tin khác.

Chương II: Phân tích thiết kế

  1. Phân tích thiết kế
  1. Biểu đồ use case [Use case diagram]

Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên

kết của chúng đối với Use case mà hệ thống cung cấp. Một Use case là một lời miêu tả của một chức năng mà hệ thống cung cấp. Lời miêu tả Use case thường là một văn bản tài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động. Các Use case được miêu tả duy nhất theo hướng nhìn từ ngoài vào của các tác nhân [hành vi của hệ thống theo như sự mong đợi của người sử dụng], không miêu tả chức năng được cung cấp sẽ hoạt động nội bộ bên trong hệ thống ra sao. Các Use case định nghĩa các yêu cầu về mặt chức năng đối với hệ thống.

  1. Xác định các tác nhân và use case

Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên kết của chúng đối với Use case mà hệ thống cung cấp. Một Use case là một lời miêu tả của một chức năng mà hệ thống cung cấp. Lời miêu tả Use case thường là một văn bản tài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động. Các Use case được miêu tả duy nhất theo hướng nhìn từ ngoài vào của các tác nhân [hành vi của hệ thống

theo như sự mong đợi của người sử dụng], không miêu tả chức năng được cung cấp sẽ

hoạt động nội bộ bên trong hệ thống ra sao. Các Use case định nghĩa các yêu cầu về mặt chức năng đối với hệ thống.

  1. Biểu đồ use case tổng quát

Khái quát chức năng chính của hệ thống. Các chức năng này có tính tổng quát dễ dàng nhìn thấy được trên quan điểm của các tác nhân. Dựa vào yêu cầu của bài toán ta có use case tổngquát như sau:

  1. Phân rã biểu đồ use case

Từ use case tổng quát chúng ta chúng ta biểu diễn lại thành dạng phân cấp gọi là phân rã biểu đồ use case thành các use case con trong đó sử dụng quan hệ để chỉ ra rằng một use case được sử dụng bởi một use case khác.

Mô tả: Khách hàng có thể tìm hàng theo tên hàng hoặc theo mã hàng. Nhập thông tin về mã hàng hoặc tên hàng, hệ thống sẽ tìm kiếm theo yêu cầu và gửi kết quả lại cho khách hàng biết.

  1. Use case quản lý khách hàng

Điều kiện: Phải đăng nhập vào hệ thống.

Mô tả: Nhân viên sau khi đăng nhập được. Tìm khách hàng theo mã hoặc tên rồi sau đó có thể tùy chọn các chức năng tương ứng như nhập thông tin khách hàng, xóa thông tin khách hàng, sửa thông tin khách hàng..

  1. Use case quản lý nhà cung cấp

Điều kiện: Phải đăng nhập vào hệ thống.

Mô tả: Nhân viên sau khi đăng nhập được. Tìm nhà cung cấp theo tên hoặc địa chỉ rồi sau đó có thể tùy chọn các chức năng tương ứng như nhập thông tin nhà cung cấp, xóa thông tin nhà cung cấp, sửa thông tin nhà cung cấp

  1. Use case quản lý bán hàng

Điểu kiện: Phải đăng nhập được vào hệ thống.

Mô tả: Dựa vào yêu cầu của khách hàng, nhân viên sẽ lập hóa đơn bán hàng, kiểm tra hàng trong kho xem có còn hayđáp ứng được không [tìm hàng], nếu đáp ứng được thì sẽ giao hàng cho khách hàng và cập nhật thông tin hàng bán vào hệ thống.

Nếu hàng trong kho không đáp ứng được thì thông báo cho khách hàng.

  1. Use case quản lý nhập hàng

Điểu kiện: Phải đăng nhập được vào hệ thống.

Mô tả: Dựa vào yêu cầu của khách hàng, nhân viên sẽ lập hóa đơn bán hàng, kiểm tra hàng trong kho xem có còn hayđáp ứng được không [tìm hàng], nếu đáp ứng được thì sẽ giao hàng cho khách hàng và cập nhật thông tin hàng bán vào hệ thống.

Nếu hàng trong kho không đáp ứng được thì thông báo cho khách hàng.

  1. Use case báo cáo thống kê

Điều kiện: Đăng nhập được vào hệ thống

Mô tả: Cuổi tháng nhân viên sẽ thống kê hàng bán, hàng nhập, thống kê doanh thu và báo cáo cho quản lý.

  1. Use case quản li tài khoản

Điều kiện: Đăng nhập được vào hệ thống

Mô tả: Khi có nhân viên mới vào làm việc trong hệ thống hoặc có nhân viên ghỉ việc trong hệ thống

Dựa vào các use case đãđược phân rã, ta tổng hợp lại tất cả các use case.

  1. Xây dựng biểu đồ lớp căn bản

Xác định các lớp từ use case

Xét từ bài toán quản lý bán hàng và use case chi tiết đã xây dựng ở trên chúng ta có thể liệt kê các lớp cơ bản như khách hàng, hàng xuất, hàng nhập, phiếu xuất, phiếu nhập, hàng, nhà cung cấp.

Xác định các thuộc tính và một số phương thức cơ bản

Từ các lớp xác định ở bước trên ta có thể thấy một số thuộc tính và phương thức cơ bản như trong lớp khách hàng thì có thuộc tính mã khách hàng, tên khách hàng, địa chỉ, điện thoại. Lớp hàng xuất có số phiếu xuất, tên hàng, số lượng xuất,đơn giá.... Cụ thể như hình sau:

  1. Xây dựng biều đồ tuần tự

Mục đích: biểu diễn tương tác giữa những người dùng và những đối tượng

bên trong hệ thống. Biểu đồ này cho biết các thông điệp được truyền tuần tự

như thế nào theo thời gian. Thứ tự các sự kiện trong biểu đồ tuần tự hoàn toàn

tương tự như trong scenario mô tả use case tương ứng.

Biểu diễn: Biểu đồ tuần tự được biểu diễn bởi các đối tượng và message

truyền đi giữa các đối tượng đó.

Trong hệ thống quản lý bán hàng, chúng ta lựa chọn biểu đồ tương tác dạng tuần

tự để biểu diễn các tương tác giữa các đối tượng. Để xác định rõ các thành phần cần bổ sung trong biểu đồ lớp, trong mỗi biểu đồ tuần tự của hệ thống quản lý bán hàng sẽ thực hiện:

- Xác định rõ kiểu của đối tượng tham gia trong tương tác [ví dụ giao diện, điều khiển hay thực thể].

- Mỗi biểu đồ tuần tự có thể có ít nhất một lớp giao diện [Form] tương ứng

với chức năng [use case] mà biểu đồ đó mô tả

- Mỗi biểu đồ tuần tự có thể liên quan đến một hoặc nhiều đối tượng thực thể.

Các đối tượng thực thể chính là các đối tượng của các lớp đã được xây dựng

trong biểu đồ thiết kế chi tiết. Dưới đây là một số biểu đồ tuần tự cho các chức năng của hệ thống quản lý bán hàng:

· Biểu đồ tuần tự cho chức năng đăng nhập

· Biểu đồ tuần tự cho chức năng tìm hàng

· Biểu đồ tuần tự cho chức năng thêm hàng

· Biểu đồ tuần tự cho chức năng cho chức năng quản lý bán hàng

· Biểu đồ tuần tự cho chức năng cho chức năng quản lý khách hàng

· Biểu đồ tuần tự cho chức năng cho chức năng thông kế bán hàng

  1. Biểu đồ lớp chi tiết

Xây dựng biểu đồ lớp thiết kế chi tiết

Dựa vào biểu đồ lớp cơ bản đã xây dựng ở trên và các biểu đồ tuần tự, biểu đồ lớp chi tiết bổ sung nhiều thuộc tính và phương thức hơn so với biểu đồ lớp cơ bản.

Biểu đồ lớp chi tiết cho chức năng tra cứu hàng

Biểu đồ lớp chi tiết cho chức năng quản lý khách hàng

Biểu đồ lớp chi tiết cho chức năng quản lý nhà cung cấp

Biểu đồ lớp chi tiết cho chức năng quản lý hàng

Biểu đồ lớp chi tiết cho chức năng quản lý bán hàng

  1. Biểu đồ ca sử dụng

· Biểu đồ ca sử dụng đăng nhập

· Biểu đồ ca sử dụng lập hóa đơn

· Biểu đồ ca sử dụng nhập hàng

· Biểu đồ ca sử dụng thống kê

II. Thiết kế cơ sở dữ liệu

  1. Hàng

STT

Tên thuộc tính

Kiểu dữ liệu

Not null/null

Khóa chính

Khóa ngoại

1

MaHang

nChar

Not null

P

2

TenHang

Nvarchar

Not null

3

LoaiHang

Nvarchar

null

4

DonViTinh

Nvarchar

null

  1. Đăng nhập

STT

Tên thuộc tính

Kiểu dữ liệu

Not null/null

Khóa chính

Khóa ngoại

1

TenDN

Nchar

Not null

P

2

Matkhau

Nchar

Not null

3

Quen

Nchar

null

4

Trạng thái

Nvarchar

null

5

Hoten

Nvarchar

null

6

Loi

Int

null

  1. Phiếu xuất

STT

Tên thuộc tính

Kiểu dữ liệu

Not null/null

Khóa chính

Khóa ngoại

1

MaPX

Nchar

Not null

P

2

MaKH

Nchar

null

P

3

MaHang

Nchar

null

4

NgayBan

Datetime

null

5

SoLuongBan

Int

Null

6

GiaBan

Int

Null

  1. Phiếu nhập

STT

Tên thuộc tính

Kiểu dữ liệu

Not null/null

Khóa chính

Khóa ngoại

1

SoPN

Nchar

Not null

P

2

MaNCC

Nchar

null

P

3

MaHang

Nchar

null

4

Ngaynhap

Datetime

null

5

SoLuongNhap

Int

Null

6

GiaNhap

Int

null

  1. Nhà cung cấp

STT

Tên thuộc tính

Kiểu dữ liệu

Not null/null

Khóa chính

Khóa ngoại

1

MaNCC

Nchar

Not null

P

2

TenNCC

Nvarchar

Not null

3

DiachiNCC

Nvarchar

null

4

DienthoaiNCC

Nchar

null

  1. Khách hàng

STT

Tên thuộc tính

Kiểu dữ liệu

Not null/null

Khóa chính

Khóa ngoại

1

MaKH

Nchar

Not null

P

2

TenKH

Nvarchar

Not null

3

DiachiKH

Nvarchar

null

4

DienthoaiKH

Nchar

null

Chương III: Sản phẩm

Dựa vào yêu cầu bài toán và phân tích thiết kế ở trên, ta xây dựng chương

trình quản lý bán hàng sử dụng ngôn ngữ Microsoft Visual Studio phiên bản

2013 và dùng Microsoft SQL Server 2008 để lưu trữ dữ liệu.

Chương trình được xây dựng trên mô hình ba lớp sau:

❖ Lớp BussinessLogic: thực hiện các chức năng chính của hệ

thống như thêm, xóa, sửa, cập nhật...

❖ Lớp DataAccess: thực hiện chức năng chính là tạo kết nối

với cơ sở dữ liệu từ Microsoft SQL Server 2008.

❖ Lớp Quanlybanhang: chứa tất cả các form của chương

trình, gọi đến lớp DataAccess và BussinessLogic. Thực hiện các chức

năng, hiển thị giao diện và cập nhật vào cơ sở dữ liệu.

· Form đăng nhập

· Form nhà cung cấp

  1. Code

public static DataTable laydulieuhanghoa[]

return DALHangHoa.laydulieuhanghoa[];

public static bool themhanghoa[HangHoaETT hhe]

return DALHangHoa.themhanghoa[hhe];

public static bool suahanghoa[HangHoaETT hhe]

return DALHangHoa.suahanghoa[hhe];

public static bool xoahanghoa[HangHoaETT hhe]

return DALHangHoa.xoahanghoa[hhe];

public static DataTable timkiemhh[string timkiem]

return DALHangHoa.timkiemhh[timkiem];

public static DataTable timheomahang[string timkiem]

return DALHangHoa.timtheomahang[timkiem];

}

· DAL hàng hóa

Các DAL khác tương tự

static SqlConnection con;

//Lấy dữ liệu từ bảng hàng hóa

public static DataTable laydulieuhanghoa[]

string truyvan = "Select * From HangHoa";

con = DBConnection.KeNoi[];

DataTable dt = DBConnection.LayDuLieuBang[truyvan, con];

DBConnection.DongKetNoi[con];

public static bool themhanghoa[HangHoaETT hhe]

string truyvan = "Insert into HangHoa values['"+hhe.MaHang1+"',N'"+hhe.TenHang1+"',N'"+hhe.LoaiHang1+"',N'"+hhe.DonViTinh1+"','"+hhe.HangCon1+"']";

con = DBConnection.KeNoi[];

DBConnection.thucthitruyvan[truyvan,con];

DBConnection.DongKetNoi[con];

public static bool suahanghoa[HangHoaETT hhe]{

string truyvan = string.Format["Update HangHoa set TenHang=N'{0}',LoaiHang=N'{1}',DonViTinh=N'{2}' where MaHang='{3}'",hhe.TenHang1,hhe.LoaiHang1,hhe.DonViTinh1,hhe.MaHang1];

con = DBConnection.KeNoi[];

DBConnection.thucthitruyvan[truyvan,con];

DBConnection.DongKetNoi[con];

public static bool xoahanghoa[HangHoaETT hhe]{

string truyvan = string.Format["Delete From HangHoa where MaHang='"+hhe.MaHang1+"'"];

con = DBConnection.KeNoi[];

DBConnection.thucthitruyvan[truyvan,con];

DBConnection.DongKetNoi[con];

public static DataTable timkiemhh[string timkiem]{

string truyvan = string.Format["Select * From HangHoa where TenHang like N'%"+timkiem+"%'"];

con=DBConnection.KeNoi[];

DataTable dt = DBConnection.LayDuLieuBang[truyvan,con];

DBConnection.DongKetNoi[con];

public static DataTable timtheomahang[string timkiem]

string truyvan = string.Format["Select * From HangHoa where MaHang like '%" + timkiem + "%'"];

con = DBConnection.KeNoi[];

DataTable dt = DBConnection.LayDuLieuBang[truyvan, con];

DBConnection.DongKetNoi[con];

}

set { LoaiHang = value; }

private string DonViTinh;

get { return DonViTinh; }

set { DonViTinh = value; }

}

public partial class DangNhap : Form

public static string quyen, ten;

conn = new SqlConnection[@"Data Source=LONGLU-PC\SQLEXPRESS;InitialCatalog=BTL_QLBH;Integrated Security=True"];

private void DangNhap_Load[object sender, EventArgs e]

private void btthoat_Click[object sender, EventArgs e]

private void btdangnhap_Click[object sender, EventArgs e]

if [tbtaikhoan.Text == "" && tbmatkhau.Text == ""]

MessageBox.Show[" Chưa nhập thông tin ","Thông Báo"];

else if [tbtaikhoan.Text == "" && tbmatkhau.Text != ""]

MessageBox.Show[" Chưa nhập tên đăng nhập ","Thông Báo"];

else if [tbtaikhoan.Text != "" && tbmatkhau.Text == ""]

MessageBox.Show[" Chưa nhập mật khẩu ","Thông Báo"];

string sqlTenDangNhap = "Select TenDN from DangNhap where TenDN = '" + tbtaikhoan.Text + "'";

SqlDataAdapter ad = new SqlDataAdapter[sqlTenDangNhap, conn];

DataTable dt = new DataTable[];

//kiem tra xem tai khoan co khoa khong

int loi = Convert.ToInt16[this.exeCuteQuery[tbtaikhoan.Text]];

MessageBox.Show["Tài khoản bị khóa","Thông Báo"];

//update trang thai = khoa

string sqlkhoa = "update DangNhap set TrangThai= 'Khóa' where TenDN='" + tbtaikhoan.Text + "'";

//string sqlkhoa = "update taikhoan set trangthai=" +1+ "where tendangnhap ='" + tbtaikhoan.Text + "'";

Chủ Đề