Độ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
- 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
- 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ế
- Phân tích thiết kế
- 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.
- 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.
- 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:
- 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.
- 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..
- 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
- 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.
- 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.
- 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ý.
- 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.
- 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:
- 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
- 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
- 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
- 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
- Đă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
- 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
- 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
- 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
- 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
- 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 + "'";