bài tập lớn hệ quản trị cơ sở dữ liệu :Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC - Pdf 13

Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
MỤC LỤC
MỤC LỤC 1
PHẦN 1 2
PHÂN TÍCH ĐỀ TÀI 2
QUẢN LÝ BÁN HÀNG CỦA CÔNG TY MÁY TÍNH TIC 2
1.Danh mục Loại Hàng (LOAIHANG) 7
2.Danh mục Hàng (HANG) 7
3.Danh mục KháchHàng (KHACHHANG) 7
4.Danh mục Nhân Viên (NHANVIEN) 8
5.Hàng Xuất (HANGXUAT) 8
6.Phiếu xuất (PHIEUXUAT) 9
DỮ LIỆU SỬ DỤNG 9
PHẦN 3. LẬP TRÌNH CƠ SỞ DỮ LIỆU 12
3.1. VIEW 12
1. vw_HangXuat 12
2. vw_HX_PX 12
3. vw_PX_SLMAX 13
4. vw_SOPX_THANG 13
3.2. STORE PROCEDURE 14
1. Bang Hang 14
2. Bang Hang 17
3. Bang HangXuat 21
4. Bang PhieuXuat 24
5. Bang KhachHang 29
6. Bang NhanVien 32
7. THU TUC BAO CAO PHIEU XUAT LOC THEO SOPX 35
Nhóm sinh viên thực hiện: Nhóm 13 Page 1
Bài tập lớn môn hệ quản trị CSDL SQL 2000
3.3. FUNCTION 36
3.4. TRIGGER 40

Thông tin về hàng bao gồm: mã hàng, tên hàng, số lượng, thời gian bảo hành,
mô tả hàng, giá bán…
2. Quản lý bán hàng
Khách hàng mua hàng trực tiếp tại công ty, bộ phận bán hàng kiểm tra và thanh
toán cho khách, và giao cho khách một phiếu lưu các thông tin: mã hàng, tên
hàng, số lượng, đơn giá, thành tiền, tổng tiền, ngày lập gọi là phiếu xuất.
Nếu khách hàng nhận hàng trực tiếp tại công ty thì hàng được giao ngay cho
khách, khách hàng thanh toán tiền với thu ngân.
Đồng thời, công ty cũng có dịch vụ giao hàng tận nơi cho khách trong trường
hợp khách có yêu cầu và đặt mua hàng với số lượng lớn hoặc có giá trị cao.
3. Quản lý nhân viên
Để theo dõi và quản lý nhân viên làm việc, công ty thực hiện thêm thông tin
nhân viên mới được tuyển vào danh sách, sửa đổi thông tin khi có những biến
đổi xảy ra và xóa bỏ nhân viên khi hết hợp đồng hoặc bị sa thải. Thông tin về
nhân viên gồm: mã nhân viên, tên nhân viên, địa chỉ, điện thoại, ngày sinh, giới
tính và các mô tả khác.
4. Báo cáo thống kê
Để tiện theo dõi việc kinh doanh của công ty, hàng tháng công ty lập báo cáo
gửi cho ban giám đốc, báo cáo về doanh thu trong tháng, mặt hàng đã bán ra và
báo cáo hàng tồn kho. Từ đó có các biện pháp điều chỉnh và đề ra chiến lược
kinh doanh.
Nhóm sinh viên thực hiện: Nhóm 13 Page 3
Bài tập lớn môn hệ quản trị CSDL SQL 2000
MÔ HÌNH PHÂN CẤP CHỨC NĂNG CỦA HỆ THỐNG
III. Chức Năng Của Hệ Thống
Hệ thống bán hàng của công ty bao gồm các chức năng sau:
1. Liệt kê thông tin chi tiết của từng phiếu xuất
2. Liệt kê thông tin chi tiết các phiếu xuất cho các khách hàng tương ứng
Giảng viên: Cô Nga Page 4
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC

Dienthoaikh
Email
Sopx
Makh
Tenkh
Diachikh
Dienthoaikh
Email
Manv
Tennv
Gioitinh
Ngaysinh
Ngaylamviec
Diachinv
Dienthoainv
Ngaypx
Ngaygiaohang
Sopx
Makh
Tenkh
Diachikh
Dienthoaikh
Email
Manv
Tennv
Gioitinh
Ngaysinh
Ngaylamviec
Diachinv
Dienthoainv

Sopx
Slxuat
Giaban
Mah
Sopx
Slxuat
Giaban
Mah
Tenh
Soluong
Dvtinh
Thoigianbh
Malh
tenlh
Mah
Tenh
Soluong
Dvtinh
Thoigianbh
Malh
Malh
Tenlh
Giảng viên: Cô Nga Page 6
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
Sau khi chuyển dữ liệu về dạng 3NF, ta có các thực thể như sau:
PHIEUXUAT (Sopx, Makh, Manv, Ngaypx, Ngaygiaohang)
KHACHHANG (Makh, Tenkh, Diachikh, Dienthoaikh, Email)
NHANVIEN (Manv, Tennv, gioitinh, Ngaysinh, Ngaylamviec, Diachinv,
Dienthoainv)
HANGXUAT (Mah, Sopx, Slxuat, Giaban)

Chứa mọi thông tin về nhân viên làm việc cho công ty thực hiện công
việc lập phiếu xuất. Gồm các thuộc tính hợp thành
Tên cột Ý nghĩa Kiểu Độ
rộng
Ràng buộc
MANV Mã nhân viên CHAR 4 Primary key
TENNV Tên nhân viên NVARCHAR 50
GIOITINH Giới tính BIT
NGAYSINH Ngày sinh SMALLDATETIME
NGAYLAMVIEC Ngày làm việc SMALLDATETIME
DIACHINV Địa chỉ của nhân viên NVARCHAR 100
DIENTHOAINV Điện thoại nhân viên NVARCHAR 20
5. Hàng Xuất (HANGXUAT)
Chứa mọi thông tin về hàng đã bán được của công ty. Gồm các thuộc tính
hợp thành
Tên cột Ý nghĩa Kiểu Độ rộng Ràng buộc
MAH Mã hàng CHAR 4
Primary key
SOPX Mã phiếu xuất CHAR 4
SLXUAT Số lượng xuất INT
GIABAN Giá bán MONEY
Giảng viên: Cô Nga Page 8
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
6. Phiếu xuất (PHIEUXUAT)
Chứa mọi thông tin về phiếu xuất hàng cho công ty. Gồm các thuộc tính
hợp thành
Tên cột Ý nghĩa Kiểu Độ
rộng
Ràng buộc
SOPX Mã phiếu xuất CHAR 4 Primary

BANG HANG
MA
H
TENH MALH SOLUONG DONVITINH THOIGIANBH
H1 HP Compaq LH1 30 CAI 24 Thang
H2 Lenovo LH1 20 CAI 24 Thang
H3 Compaq Presario LH1 20 CAI 24 Thang
H4 Sony Vaio LH1 20 CAI 24 Thang
H5 May In LH3 25 CAI 24 Thang
H6 May Chieu LH3 20 CAI 24 Thang
H7 May Quet LH2 25 CAI 24 Thang
Giảng viên: Cô Nga Page 10
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
H8 May Quay LH2 25 CAI 12 Thang
H9 May Ghi Am LH2 30 CAI 12 Thang
BANG LOAIHANG
MAL
H
TENLH
LH1 May Tinh Xach Tay
LH2 THIET BI GIAI TRI
LH3 THIET BI VAN PHONG
BẢNG PHIEUXUAT
SOP
X
MAKH NGAYPX MANV NGAYGIAOHAN
G
PX01 KH01 07/15/2009 NV01 07/15/2009
PX02 KH02 07/15/2009 NV02 07/15/2009
PX03 KH03 08/15/2009 NV02 08/16/2009

CREATE VIEW vw_HANGXUAT
AS
SELECT sopx, a.mah, tenh, slxuat, giaban,
slxuat*giaban as thanhtien
FROM HANGXUAT a INNER JOIN HANG b ON a.mah = b.mah
GO
drop view vw_HANGXUAT
Su dung bang ao
SELECT * FROM vw_HANGXUAT
2. vw_HX_PX
Tao view vw_HX_PX de liet ke cac chi tiet xuat hang cho khach hang
CREATE VIEW vw_HX_PX
AS
SELECT b.mah, b.sopx, tenh, c.makh, tenkh, slxuat, giaban,
slxuat*giaban as thanhtien
FROM HANG a INNER JOIN HANGXUAT b ON a.mah=b.mah
Giảng viên: Cô Nga Page 12
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
INNER JOIN PHIEUXUAT c ON b.sopx=c.sopx
INNER JOIN KHACHHANG d ON c.makh=d.makh
GO
DROP VIEW vw_HX_PX
Su dung bang ao
SELECT *
FROM vw_HX_PX
3. vw_PX_SLMAX
Tao view vw_PX_SLMAX de liet ke cac phieu xuat hang co nhieu mat hang
nhat
CREATE VIEW vw_PX_SLMAX
AS

IF EXISTS (SELECT * FROM LoaiHang WHERE malh = @malh)
BEGIN
PRINT 'Ma loai hang ' +@malh+ ' da co! Nhap ma loai hang khac'
RETURN
END
IF EXISTS (SELECT * FROM LoaiHang WHERE tenlh = @tenlh)
BEGIN
PRINT 'Ten loai hang ' +@tenlh+ ' da co! Nhap ten loai hang khac'
RETURN
END
Giảng viên: Cô Nga Page 14
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
ELSE
xu ly them mau tin
BEGIN
INSERT INTO LoaiHang VALUES(@malh, @tenlh)
PRINT 'Loai Hang da duoc them'
END
GO
EXEC spud_LoaiHang_them 'LH1','MAY TINH XACH TAY'
EXEC spud_LoaiHang_them 'LH4','THIET BI KY THUAT SO'
b. Sua thong tin LoaiHang
DROP PROC spud_LoaiHang_sua
CREATE PROC spud_LoaiHang_sua
@malh CHAR(4),
@tenlh VARCHAR(50)
AS
DECLARE @ErrMsg VARCHAR(100)
IF NOT EXISTS (SELECT malh FROM LoaiHang WHERE malh =
@malh)

RAISERROR(@ErrMsg, 16, 1)
RETURN
END
ELSE
BEGIN
Giảng viên: Cô Nga Page 16
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
Thuc hien xoa mau tin
DELETE LoaiHang WHERE malh = @malh
PRINT 'Loai hang' +@malh+ ' da duoc xoa'
END
GO
EXEC spud_LoaiHang_xoa 'LH4'
SELECT * FROM LoaiHang
2. Bang Hang
a. Them hang moi
DROP PROC spud_Hang_them
CREATE PROC spud_Hang_them
@mah CHAR(4),
@tenh VARCHAR(50),
@malh CHAR(4),
@soluong SMALLINT,
@dvtinh VARCHAR(20),
@thoigianbh VARCHAR(20)
AS
kiem tra ma hang chua co
IF EXISTS (SELECT * FROM Hang WHERE mah = @mah)
BEGIN
PRINT 'Ma hang ' +@mah+ ' da ton tai! NHAP MA HANG
KHAC'

DROP PROC spud_Hang_sua
CREATE PROC spud_Hang_sua
Giảng viên: Cô Nga Page 18
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
@mah CHAR(4),
@tenh VARCHAR(50),
@malh CHAR(4),
@soluong SMALLINT,
@dvtinh VARCHAR(20),
@thoigianbh CHAR(20)
AS
IF NOT EXISTS (SELECT mah FROM Hang WHERE mah = @mah)
BEGIN
PRINT 'Khong ton tai ma hang '+@mah+ ' nen khong the sua'
RETURN
END
IF NOT EXISTS (SELECT malh FROM LoaiHang WHERE malh =
@malh)
BEGIN
PRINT 'Khong ton tai ma loai hang '+@malh+ ' trong bang
LoaiHang, nen khong the sua'
RETURN
END
Thuc hien update
UPDATE hang
SET tenh = @tenh, malh = @malh, soluong = @soluong, dvtinh =
@dvtinh, thoigianbh = @thoigianbh
WHERE mah = @mah
PRINT 'sua hang thanh cong'
GO

a. Them moi HangXuat
DROP PROCEDURE spud_HangXuat_them
CREATE PROCEDURE spud_HangXuat_them
@mah CHAR(4),
@sopx CHAR(4),
@giaban MONEY,
@slxuat SMALLINT
AS
DECLARE @ErrMsg VARCHAR(100)
IF NOT EXISTS (SELECT sopx FROM PhieuXuat WHERE sopx =
@sopx)
BEGIN
SET @ErrMsg = 'sopx '+@sopx+'chua co trong bang PhieuXuat.
KHONG THE XUAT HANG'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF NOT EXISTS (SELECT mah FROM hang WHERE mah = @mah)
BEGIN
SET @ErrMsg = 'mah '+@mah+ ' nay khong co trong hang. KHONG
THE XUAT HANG'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF EXISTS (SELECT mah FROM hangxuat WHERE mah = @mah and
sopx = @sopx)
BEGIN
Nhóm sinh viên thực hiện: Nhóm 13 Page 21
Bài tập lớn môn hệ quản trị CSDL SQL 2000
SET @ErrMsg = 'mah '+@mah+ ' nay da co trong sopx '+@sopx+'.

@mah CHAR(4),
@sopx CHAR(4),
@slxuat INT,
@giaban MONEY
AS
IF NOT EXISTS (SELECT sopx, mah FROM HangXuat WHERE (sopx
= @sopx) and (mah = @mah))
BEGIN
PRINT 'So phieu xuat '+@sopx+ 'va ma hang' +@mah+ 'khong ton tai
trong bang HangXuat, ban khong the sua'
RETURN
END
IF (@giaban<0)
BEGIN
PRINT 'Don gia Xuat khong hop le, xin nhap lai'
RETURN
END
IF (@slxuat<0)
BEGIN
PRINT 'So luong khong hop le, xin nhap lai'
RETURN
END
Nhóm sinh viên thực hiện: Nhóm 13 Page 23
Bài tập lớn môn hệ quản trị CSDL SQL 2000
UPDATE HangXuat
SET giaban = @giaban, slxuat = @slxuat
WHERE(sopx = @sopx) and (mah = @mah)
PRINT 'sua HangXuat thanh cong'
GO
EXEC spud_HangXuat_sua 'H1','PX01', 2, 15000000

@ngaygiaohang SMALLDATETIME
AS
DECLARE @ErrMsg VARCHAR(100)
IF EXISTS (SELECT sopx FROM phieuxuat WHERE sopx = @sopx)
BEGIN
SET @ErrMsg = 'So Phieu xuat '+@sopx+ ' da ton tai trong bang
Phieuxuat. Nhap sopx khac de them'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF NOT EXISTS (SELECT makh FROM KhachHang WHERE makh =
@makh)
BEGIN
SET @ErrMsg = 'Ma khach hang '+@makh+ ' khong ton tai trong
bang KhachHang. Xin nhap KhachHang truoc'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF NOT EXISTS (SELECT manv FROM NhanVien WHERE manv =
@manv)
Nhóm sinh viên thực hiện: Nhóm 13 Page 25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status