Tải bản đầy đủ (.pdf) (28 trang)

đề tài xây dựng hệ thống quản lý việc ủng hộ và phân bổ hàng:tiền cứu trợ lũ lụt cho huyện hòa vang đà nẵng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 28 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

BÁO CÁO

ĐỒ ÁN PHẦN MỀM
Tên đề tài:

Xây dựng hệ thống quản lý việc ủng hộ và phân bổ
hàng/tiền cứu trợ lũ lụt cho huyện Hịa Vang - Đà Nẵng

Nhóm
Sinh viên TH

:4
: Trịnh Quang Phúc
Đỗ Ngọc Quang Huy
Nguyễn Thị Mai
Nguyễn Đình Cường

Giảng viên HD :TS. Hoàng Thị Mỹ Lệ
Ths. Nguyễn Văn Phát



MỤC LỤC
CHƯƠNG 1. KHẢO SÁT XÁC NHẬN.................................................1
1.1.

Lý do chọn đề tài..................................................................................1


1.2.

Mục đích đề tài.....................................................................................1

1.3.

Phạm vi đề tài.......................................................................................1

1.4.

Lựa chọn giải pháp cơng nghệ............................................................1

CHƯƠNG 2. PHÂN TÍCH HỆ THỐNG......................................................2
2.1.

Đặc tả u cầu phần mềm (Software Requirements)........................2
2.1.1. Nhân viên kho...............................................................................2
2.1.2. Admin...........................................................................................2
2.1.3. Người ủng hộ................................................................................2
2.1.4. Cán bộ xã......................................................................................2
2.1.5. Khách vãng lai..............................................................................2

2.2.

Phác thảo giao diện người dùng.........................................................2
2.2.1. Nhân viên kho...............................................................................2
2.2.2. Admin...........................................................................................5
2.2.3. Người ủng hộ..............................................................................13
2.2.4. Cán bộ xã....................................................................................14
2.2.5. Khách vãng lai............................................................................16


2.3.

Sơ đồ ERD..........................................................................................17

CHƯƠNG 3. CODE SQL......................................................................17
3.1.

Tạo các bảng và Insert dữ liệu..........................................................17

3.2.

Các Procedure và Function...............................................................22

CHƯƠNG 4. LINK PADLET...............................................................24
CHƯƠNG 5.

Link video họp nhóm........................................................24


CHƯƠNG 1.
1.1.

KHẢO SÁT XÁC NHẬN

Lý do chọn đề tài

Thời sinh viên, tài chính là một thứ rất quan trọng, sinh viên có những món đồ khơng sử
dụng nữa nếu vứt đi sẽ rất lãng phí đối với một số sinh viên khác cần món đồ đó
Sinh viên có đồ chưa có phương tiện nào giới thiệu thơng tin món đồ của mình để trao đổi

với món đồ khác

1.2.

Mục đích đề tài

Xây dựng một Website quản lý việc ủng hộ và phân bố hàng/ tiền cứu trợ lũ lụt cho huyện
Hòa Vang – Đà Nẵng nhằm giúp việc ủng hộ một cách rõ ràng và minh bạch, giúp truyền tải các
thông tin cứu trợ đến cho người dân , quản lý kho hàng một cách hợp lý.

1.3.

Phạm vi đề tài

Đề tài áp dụng cho địa bàn khu vực huyện Hòa Vang – thành phố Đà Nẵng.

1.4.

Lựa chọn giải pháp công nghệ

 Nền tảng: Website
 Cơ sở dữ liệu: My SQL Sever
 Ngơn ngữ: PHP, Laravel.

Nhóm 4

Đồ án phần mềm

1



CHƯƠNG 2. PHÂN TÍCH HỆ THỐNG


2.1.

Đặc tả yêu cầu phần mềm (Software Requirements)

2.1.1. Nhân viên kho - Trịnh Quang Phúc

CHƯƠNG 3.
CHƯƠNG 4.
CHƯƠNG 5.
CHƯƠNG 6.
CHƯƠNG 7.
CHƯƠNG 8.
CHƯƠNG 9.

Đăng nhập, Cập nhật thông tin
Cập nhật phiếu nhập
Cập nhật phân phối hàng cứu trợ
Xem phiếu nhập
Xem phân phối hàng cứu trợ
Xem hàng cứu trợ
Xem danh mục hàng cứu trợ

9.1.1. Admin – Nguyễn Thị Mai

CHƯƠNG 10.
CHƯƠNG 11.

CHƯƠNG 12.
CHƯƠNG 13.
CHƯƠNG 14.
CHƯƠNG 15.
CHƯƠNG 16.
CHƯƠNG 17.
CHƯƠNG 18.
CHƯƠNG 19.
CHƯƠNG 20.
CHƯƠNG 21.
CHƯƠNG 22.

Đăng nhập, Cập nhật thông tin
Duyệt đăng ký ủng hộ
Tạo phân phối hàng cứu trợ
Cập nhật danh mục hàng cứu trợ
Cập nhật hàng cứu trợ
Cập nhật bài viết
Cập nhật đợt phân bố
Cập nhật đợt cứu trợ
Cập nhật chức vụ
Tạo tài khoản nhân viên
Xem danh mục hàng cứu trợ
Xem hàng cứu trợ
Xem phiếu nhập


CHƯƠNG 23.
CHƯƠNG 24.
24.1.1.


Xem các hộ gia đình cần được cứu trợ
Người ủng hộ - Nguyễn Đình Cường

CHƯƠNG 25.
CHƯƠNG 26.
CHƯƠNG 27.
CHƯƠNG 28.
28.1.1.

Đăng nhập, Cập nhật thông tin
Xem lịch sử ủng hộ
Đăng ký ủng hộ

Xem số lượng hàng cứu trợ tồn kho
Cán bộ xã – Đỗ Ngọc Quang Huy

CHƯƠNG 29.
CHƯƠNG 30.
CHƯƠNG 31.
31.1.1.

Xem phiếu xuất

Đăng nhập, Cập nhật thông tin tài khoản
Gửi danh sách các hộ gia đình cần được cứu trợ

Xác nhận phân phối hàng cứu trợ
Khách vãng lai - Nguyễn Đình Cường


CHƯƠNG 32.
CHƯƠNG 33.
CHƯƠNG 34.

Xem bảng tin
Xem danh sách ủng hộ
Đăng ký

34.1. Phác thảo giao diện người dùng
34.1.1.

Nhân viên kho - Trịnh Quang Phúc
Cập nhật phiếu nhập

Bảng lưu trữ: PhieuNhap, ChiTietPhieuNhap
Bảng truy xuất: PhieuNhap, ChiTietPhieuNhap, NguoiUngHo, HangCuuTro, NhanVien
Bảng: PhieuNhap


Tên trường
idPhieuNhap
idNguoiUngHo
idDotCuuTro
ngayNhap
idNhanVien

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)

date
Varchar(5)

Ràng buộc

Tên trường
idCTPhieuNhap
idPhieuNhap
idHangCuuTro
soLuong

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)
date

Ràng buộc

Primary Key
Foreign Key
Foreign Key
default getdate()
Foreign Key

Primary Key
Foreign Key
Foreign Key
check (soLuong > 0)


Mô tả
Id của phiếu nhập
Id người ủng hộ
Id đợt cứu trợ
Ngày nhập phiếu
Id nhân viên
Bảng: ChiTietPhieuNhap
Mô tả
Id chi tiết phiếu nhập
Id phiếu nhập
Id hàng cứu trợ
Số lượng

Cập nhật phiếu phân phối hàng cứu trợ

Bảng lưu trữ: PhieuXuat
Bảng truy xuất: PhieuXuat, DotCuuTro, NhanVien, CanBo, ChiTietPhieuXuat,
HangCuuTro
Bảng: PhieuXuat
Tên trường
idPhieuXuat
idDotCuuTro
idNhanVien
ngayXuat
idCanBo
trangThai

Kiểu dữ liệu
Vachar(5)
Varchar(5)

Varchar(5)
date
Varchar(5)
Nvarchar(255)

Ràng buộc
Primary Key
Foreign Key
Foreign Key
default getdate()
Foreign Key
default N'Chưa xuất' check

Mô ta
Id phiếu xuất
Id đợt cứu trợ
Id nhân viên
Ngày xuất phiếu
Id cán bộ
Trạng thái

(trangThai in (N'Chưa xuất',N'Đã

idDotPhanBo

Varchar(5)

xuất','Đã xác nhận'))
Foreign key


Id đợt phân bố


34.1.2.

Admin - Nguyễn Thị Mai
Duyệt đăng ký ủng hộ

Bảng lưu trữ: DangKyUngHo
Bảng truy xuất: DangKyUngHo, NguoiUngHo, ChiTietDangKy
Bảng: DangKyUngHo
Tên trường
idDangKyUngHo
idNguoiUngHo
idDotCuuTro
trangThai

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)
Nvarchar(255)

Ràng buộc
Primary Key
Foreign Key
Foreign Key
default N'Chưa duyệt' check

Mô ta

Id đăng ký ủng hộ
Id người ủng hộ
Id đợt cứu trợ
Trạng thái

(trangThai in(N'Chưa

ghiChu

Nvarchar(255)

duyệt',N'Đã duyệt'))
Null

Ghi chú


Tạo phân phối hàng cứu trợ

Bảng lưu trữ: PhieuXuat, ChiTietPhieuXuat
Bảng truy xuất: PhieuXuat, DotCuuTro, NhanVien, CanBo, ChiTietPhieuXuat,
HangCuuTro
Bảng: PhieuXuat
Tên trường
idPhieuXuat
idDotCuuTro
idNhanVien
ngayXuat
idCanBo
trangThai


Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)
date
Varchar(5)
Nvarchar(255)

Ràng buộc
Primary Key
Foreign Key
Foreign Key
default getdate()
Foreign Key
default N'Chưa xuất' check

Mô ta
Id phiếu xuất
Id đợt cứu trợ
Id nhân viên
Ngày xuất phiếu
Id cán bộ
Trạng thái

(trangThai in (N'Chưa xuất',N'Đã

idDotPhanBo

Varchar(5)


Tên trường
idCTPhieuXuat
idPhieuXuat
idHangCuuTro
soLuong

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)
date

xuất','Đã xác nhận'))
Foreign key

Ràng buộc
Primary Key
Foreign Key
Foreign Key
check (soLuong > 0)

Id đợt phân bố
Bảng: ChiTietPhieuXuat
Mô tả
Id chi tiết phiếu xuất
Id phiếu xuất
Id hàng cứu trợ
Số lượng



Cập nhật danh mục hàng cứu trợ

Bảng lưu trữ: DanhMuc
Bảng truy xuất: DanhMuc
Bảng: DanhMuc
Tên trường
idDanhMuc
tenDanhMuc

Kiểu dữ liệu
Vachar(5)
Nvarchar(255)

Cập nhật hàng cứu trợ

Ràng buộc
Primary Key
Not null

Mô ta
Id danh mục hàng cứu trợ
Tên danh mục


Bảng lưu trữ: HangCuuTro
Bảng truy xuất: HangCuuTro, DanhMuc
Bảng: HangCuuTro
Tên trường
idHangCuuTro

idDanhMuc
tenHangCuuTro
donViTinh

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Nvarchar(255)
Nvarchar(255)

Ràng buộc
Primary Key
Foreign Key
Not null
Not null

Mô ta
Id hàng cứu trợ
idDanhMuc
Tên hàng cứu trợ
Đơn vị tính

Cập nhật bài viết

Bảng lưu trữ: BaiViet
Bảng truy xuất: BaiViet, DotCuuTro
Bảng: BaiViet
Tên trường
idBaiViet
idDotCuuTro

tieuDe
noiDung
thoiGian
idNhanVien

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Nvarchar(255)
Nvarchar(255)
Date
Varchar(5)

Ràng buộc
Primary Key
Foreign Key
Not null
Not null
default getdate()
Foreign Key

Mô ta
Id Bài viết
Id Đợt cứu trợ
Tiều đề
Nội dung bài viết
Thời gian đăng
Id nhân viên



Tạo đợt phân bố

Bảng lưu trữ: DotPhanBo
Bảng truy xuất: DotPhanBo, DotCuuTro
Bảng: DotPhanBo
Tên trường
idDotPhanBo
idDotCuuTro
ngayTao
ngayPhanBo
noiPhanBo

Tạo đợt cứu trợ

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Date
Date
Nvarchar(255)

Ràng buộc
Primary Key
Foreign Key
default getdate()
ngayPhanBo >= ngayTao)
Not null

Mô ta
Id Đợt phân bố

Id Đợt cứu trợ
Ngày tạo
Ngày phân bố
Nơi phân bố


Bảng lưu trữ: DotCuuTro
Bảng truy xuất: DotCuuTro, DotCuuTro
Bảng: DotCuuTro
Tên trường
idDotCuuTro
ngayBatDau
ngayKetThuc
ngayTao
idNhanVien

Kiểu dữ liệu
Varchar(5)
Date
Date
Date
Varchar(5)

Ràng buộc
Primary Key
ngayBatDau >= ngayTao
ngayKetThuc >= ngayBatDau
default getdate()
Foreign Key


Mô ta
Id Đợt cứu trợ
Ngày bắt đầu
Ngày kết thúc
Ngày tạo
Id nhân viên

Cập nhật chức vụ

Bảng lưu trữ: ChucVu
Bảng truy xuất: ChucVu
Bảng: ChucVu
Tên trường
idChucVu
tenChucVu

Kiểu dữ liệu
Varchar(5)
Nvarchar(255)

Ràng buộc
Primary Key
Not null

Mô ta
Id chức vụ
Tên chức vụ


Tạo tài khoản nhân viên


Bảng lưu trữ: NhanVien
Bảng truy xuất: NhanVien, ChucVu
Bảng: NhanVien
Tên trường
idNhanVien
idChucVu
tenNhanVien
Email
soDT
diaChi
gioiTinh
ngaySinh
tenTaiKhoan
matKhau
trangThai

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Nvarchar(255)
Varchar(255)
Varchar(10)
Nvarchar(255)
bit
Date
Varchar(50)
Varchar(50)
Nvarchar(255)


Ràng buộc

Unique check(email like '[A-Za-z0-

Mô ta
Id Nhân viên
Id Chức vụ
Tên nhân viên
Email

9]%@gmail.com')
Unique check(soDT like'[0-9][0-9][0-9][0-9][0-

Số điện thoại

Primary Key
Foreign Key
Not null

9][0-9][0-9][0-9][0-9][0-9]')
Not null
default 0 check(gioiTinh in (0,1))
check(DATEDIFF(day,ngaySinh,getdate())/365>=18)
Not null
Not null
default N'Bình thường' check(trangThai in
(N'Bình thường',N'Khóa'))

Địa chỉ
Giới tính

Ngày sinh
Tên tài khoản
Mật khẩu
Trạng thái


34.1.3.

Người ủng hộ - Nguyễn Đình Cường
Đăng ký ủng hộ

Bảng lưu trữ: DangKyUngHo, ChiTietDangKy
Bảng truy xuất: PhieuDangKyUngHo, NguoiUngHo, HangCuuTro, DanhMuc,
ChiTietDangKy
Bảng: DangKyUngHo
Tên trường
idDangKy
idNguoiUngHo
idDotCuuTro
trangThai

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)
Nvarchar(255)

Ràng buộc
Primary Key
Foreign Key

Foreign Key
default N'Bình thường' check

Mô ta
Id Đăng ký
Id người ủng hộ
Id đợt cứu trợ
Trạng thái

(trangThai in (N'Bình thường',

ghiChu
hinhThuc
noiNhan

Nvarchar(255)
Nvarchar(255)
Nvarchar(255)

Tên trường
idCTDKUH
idDangKy
idHangCuuTro
soLuong

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)
Int


N'Khóa'))
Not null
Not null
Not null

Ràng buộc
Primary Key
Foreign Key
Foreign Key
check (soLuong > 0)

Ghi chú
Hình thức
Nơi nhận
Bảng: ChiTietDangKy
Mô ta
Id chi tiết đăng ký ủng hộ
Id đăng ký
Id đợt cứu trợ
Số lượng


34.1.4.

Cán bộ xã – Đỗ Ngọc Quang Huy
Cập nhật danh sách hộ gia đình cần cứu trợ

Bảng lưu trữ: HoGiaDinh
Bảng truy xuất: HoGiaDinh, Xa, HoanCanh,

Bảng: HoGiaDinh
Tên trường
idHoGiaDinh
tenChuHo
idXa
soNhanKhau
hoanCanh

Kiểu dữ liệu
Vachar(5)
Nvarchar(255)
Varchar(5)
Int
Nvarchar(255)

Ràng buộc
Primary Key
Not null
Foreign Key
check (soNhanKhau > 0)
Not null

Mô ta
Id Hộ gia đình
Tên chủ hộ
Id Xã
Số nhân khẩu của hộ
Hồn cảnh



Xác nhận phân phối hàng cứu trợ

Bảng lưu trữ: PhieuXuat
Bảng truy xuất: PhieuXuat, DotCuuTro, NhanVien, CanBo
Bảng: PhieuXuat
Tên trường
idPhieuXuat
idDotCuuTro
idNhanVien
ngayXuat
idCanBo
trangThai

Kiểu dữ liệu
Vachar(5)
Varchar(5)
Varchar(5)
date
Varchar(5)
Nvarchar(255)

Ràng buộc
Primary Key
Foreign Key
Foreign Key
default getdate()
Foreign Key
default N'Chưa xuất' check

Mô ta

Id phiếu xuất
Id đợt cứu trợ
Id nhân viên
Ngày xuất phiếu
Id cán bộ
Trạng thái

(trangThai in (N'Chưa xuất',N'Đã

idDotPhanBo

Varchar(5)

xuất','Đã xác nhận'))
Foreign key

Id đợt phân bố


34.1.5.

Khách vãng lai – Nguyễn Đình Cường
Đăng ký người ủng hộ

Bảng lưu trữ: NguoiUngHo
Bảng truy xuất: NguoiUngHo
Bảng: NguoiUngHo
Tên trường
idNguoiUngHo
tenNguoiUngHo

Email
soDT

Kiểu dữ liệu
Vachar(5)
Nvarchar(255)
Varchar(255)
Varchar(10)

Ràng buộc

unique check (email like '[A-

Mô ta
Id của phiếu nhập
Tên người ủng hộ
Email

Za-z0-9]%@gmail.com')
unique check (soDT like'[0-9]

Số điện thoại

Primary Key
Not null

[0-9][0-9][0-9][0-9][0-9][0-9]

diaChi
donVi

tenTaiKhoan
matKhau
gioiTinh
ngaySinh
trangThai

Nvarchar(255)
Nvarchar(255)
Varchar(50)
Varchar(50)
Bit

[0-9][0-9][0-9]')
Null

default 0 check (gioiTinh in

Địa chỉ
Đơn vị của người ủng hộ
Tên tài khoản
Mật khẩu
Giới tính

Date

(0,1))
check (DATEDIFF(day,ngaySinh,

Ngày sinh


Nvarchar(255)

getdate())/365>=18),
default N'Bình thường' check

Trạng thái

Null
Not null
Not null

(trangThai in (N'Bình thường',
N'Khóa'))


34.2. Sơ đồ ERD

34.3. Sơ đồ Diagram

CHƯƠNG 35. CODE SQL
35.1. Tạo các bảng và Insert dữ liệu
use master
drop database QuanLyLuLut
create database QuanLyLuLut


go
use QuanLyLuLut
go
create table ChucVu (

idChucVu varchar(5) not null primary key ,
tenChucVu nvarchar(255) not null,
)
insert into ChucVu
values ('CV001',N'Quản lý'),
('CV002',N'Nhân viên kho');
select * from ChucVu
go
create table DanhMuc (
idDanhMuc varchar(5) not null primary key ,
tenDanhMuc nvarchar(255) not null
)
insert into DanhMuc
values ('DM001',N'Lương thực'),
('DM002',N'Tiền'),
('DM003',N'Quần áo');
select * from DanhMuc
go
create table NhanVien (
idNhanVien varchar(5) not null primary key ,
idChucVu varchar(5) not null,
tenNhanVien nvarchar(255) not null,
email varchar (255) unique check(email like '[A-Za-z0-9]%@gmail.com'),
soDT varchar(10) unique check(soDT like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][09]'),
diaChi nvarchar(255) not null,
gioiTinh bit default 0 check(gioiTinh in (0,1)),
ngaySinh date not null check(DATEDIFF(day,ngaySinh,getdate())/365>=18),
tenTaiKhoan varchar(255) not null,
matKhau varchar(255) not null,
trangThai nvarchar(255) null default N'Bình thường' check(trangThai in (N'Bình

thường',N'Khóa')),
foreign key (idChucVu) references ChucVu(idChucVu)
)
SET DATEFORMAT DMY
insert into NhanVien
values ('NV001','CV001',N'Nguyễn Thị Mai','','0795599636',N'Đà
Nẵng',1,'01/01/2000','Maimotok','012345',null),
('NV002','CV002',N'Trịnh Quang Phúc','','0745678911',N'Đà
Nẵng',0,'06/11/2000','phuckho','012345',null),
('NV003','CV002',N'Đỗ Ngọc Quang Huy','','0328495068',N'Đà
Nẵng',0,'01/10/2000','huykho','012345',null),
('NV004','CV002',N'Nguyễn Đình Cường','','0889189911',N'Đà
Nẵng',0,'22/09/2000','cuongkho','012345',null);
select * from NhanVien
go
create table NguoiUngHo (
idNguoiUngHo varchar(5) not null primary key,
tenNguoiUngHo nvarchar(255),
email varchar (255) unique check (email like '[A-Za-z0-9]%@gmail.com'),
soDT varchar(10) unique check (soDT like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][09]'),
diaChi nvarchar (255),
donVi nvarchar(255),
gioiTinh bit default 0 check (gioiTinh in (0,1)),
ngaySinh date not null check (DATEDIFF(day,ngaySinh,getdate())/365>=18),
tenTaiKhoan varchar(255) NOT NULL,
matKhau varchar(255) NOT NULL,
trangThai nvarchar(255) null default N'Bình thường' check (trangThai in (N'Bình thường',
N'Khóa'))
)
SET DATEFORMAT DMY

insert into NguoiUngHo


values ('NUH01',N'Nguyễn Văn
A','','0231456521',null,null,0,'01/01/1990','nva01','12345',N'Bình thường'),
('NUH02',N'Nguyễn Văn
B','','0231456522',null,null,0,'01/01/1990','nvb02','12345',N'Bình thường'),
('NUH03',N'Nguyễn Văn
C','','0231456523',null,null,1,'01/01/1990','nvc03','12345',N'Bình thường');
go
create table DotCuuTro (
idDotCuuTro varchar(5) not null primary key,
tenDotCuuTro nvarchar(255),
ngayTao datetime null default getdate(),
ngayBatDau datetime not null,
ngayKetThuc datetime not null,
idNhanVien varchar(5),
foreign key (idNhanVien) references NhanVien(idNhanVien)
)
alter table DotCuuTro
add constraint ngayBatDau_check
check(ngayBatDau >= ngayTao),
constraint ngayKetThuc_check
check(ngayKetThuc >= ngayBatDau);
SET DATEFORMAT dmy
insert into DotCuuTro
values ('DCT01',N'Đợt cứu trợ lũ lụt số 1','20/07/2021','25/07/2021','04/08/2021','NV001'),
('DCT02',N'Đợt cứu trợ lũ lụt số
2','20/07/2021','26/07/2021','04/08/2021','NV002'),
('DCT03',N'Đợt cứu trợ lũ lụt số

3','20/07/2021','26/07/2021','04/08/2021','NV003');
select * from DotCuuTro
go
create table DotPhanBo (
idDotPhanBo varchar(5) primary key not null,
idDotCuuTro varchar(5) not null,
ngayTao date null default getdate(),
ngayPhanBo date not null,
noiPhanBo nvarchar(255) not null,
foreign key (idDotCuuTro) references DotCuuTro(idDotCuuTro)
)
alter table DotPhanBo
add constraint ngayPhanBo_check
check(ngayPhanBo >= ngayTao);
SET DATEFORMAT dmy
insert into DotPhanBo
values ('PB101','DCT01','20/07/2021','30/07/2021',N'Sân vận động xã Hòa Sơn'),
('PB201','DCT01','20/07/2021','30/07/2021',N'Khu thể thao xã Hòa Liên'),
('PB301','DCT02','20/07/2021','30/07/2021',N'Sân vận động xã Hòa Châu');
select * from DotPhanBo
go
create table HangCuuTro (
idHangCuuTro varchar(5) not null primary key,
tenHangCuuTro nvarchar(255) not null,
donViTinh nvarchar(255) not null,
idDanhMuc varchar(5) not null,
foreign key (idDanhMuc) references DanhMuc(idDanhMuc)
)
insert into HangCuuTro
values ('HCT01',N'Gạo',N'Bao','DM001'),

('HCT02',N'Tiền',N'VNĐ','DM002'),
('HCT03',N'Mỳ tôm',N'Thùng','DM001'),
('HCT04',N'Phở',N'Thùng','DM001');
select * from HangCuuTro
go
create table DangKyUngHo (
idDangKyUngHo varchar(5) not null primary key,
trangThai nvarchar(255) null default N'Chưa duyệt' check (trangThai in(N'Chưa duyệt',N'Đã
duyệt')),
ghiChu nvarchar(255),
idNguoiUngHo varchar(5) not null,


idDotCuuTro varchar(5) not null,
foreign key (idNguoiUngHo) references NguoiUngHo(idNguoiUngHo),
foreign key (idDotCuuTro) references DotCuuTro(idDotCuuTro)
)
insert into DangKyUngHo
values ('DKU01',N'Chưa duyệt',null,'NUH01','DCT01'),
('DKU02',N'Đã duyệt',null,'NUH02','DCT01'),
('DKU03',N'Đã duyệt',null,'NUH03','DCT02'),
('DKU04',N'Đã duyệt',null,'NUH01','DCT02');
go
create table ChiTietDangKyUngHo (
idCTDKUH varchar(5) not null primary key,
idDangKyUngHo varchar(5) not null,
idHangCuuTro varchar(5) not null ,
soLuong int not null check (soLuong > 0),
hinhThuc nvarchar(255) null default N'Tự chuyển' check (hinhThuc in(N'Tự chuyển',N'Đến
nhận')),

noiNhan nvarchar(255),
foreign key (idDangKyUngHo) references DangKyUngHo(idDangKyUngHo),
foreign key (idHangCuuTro) references HangCuuTro(idHangCuuTro)
)
insert into ChiTietDangKyUngHo
values ('CTU01','DKU01','HCT01',20,N'Tự chuyển',N'Kho A'),
('CTU02','DKU01','HCT02',20000000,N'Tự chuyển',N'Kho A'),
('CTU03','DKU02','HCT03',50,N'Tự chuyển',N'Kho A'),
('CTU04','DKU03','HCT01',50,N'Tự chuyển',N'Kho A');
Go
create table PhieuNhap (
idPhieuNhap varchar(5) not null primary key,
idDangKyUngHo varchar(5) not null,
idNhanVien varchar(5) not null,
idDotCuuTro varchar(5) not null,
ngayNhap date null default getdate(),
foreign key (idDangKyUngHo) references DangKyUngHo(idDangKyUngHo),
foreign key (idNhanVien) references NhanVien(idNhanVien),
foreign key (idDotCuuTro) references DotCuuTro(idDotCuuTro)
)
SET DATEFORMAT dmy
insert into PhieuNhap
values ('PN001','DKU01','NV001','DCT01','20/07/2021'),
('PN002','DKU02','NV001','DCT02','20/07/2021'),
('PN003','DKU03','NV003','DCT01','20/07/2021'),
('PN004','DKU04','NV002','DCT02','20/07/2021');
go
select * from PhieuNhap
create table ChiTietPhieuNhap (
idCTPhieuNhap varchar(5) not null primary key,

idPhieuNhap varchar(5) not null,
idHangCuuTro varchar(5) not null,
soLuong int not null check (soLuong > 0),
foreign key (idPhieuNhap) references PhieuNhap(idPhieuNhap),
foreign key (idHangCuuTro) references HangCuuTro(idHangCuuTro)
)
insert into ChiTietPhieuNhap
values ('CTN01','PN001','HCT01',20),
('CTN02','PN001','HCT02',20000000),
('CTN03','PN002','HCT03',50),
('CTN04','PN003','HCT01',50);
go
create table Xa (
idXa varchar(5) not null primary key,
tenXa nvarchar(255) not null
)
insert into Xa
values ('Xa001',N'Xã Hòa Sơn'),
('Xa002',N'Xã Hòa Liên'),
('Xa003',N'Xã Hòa Châu'),
('Xa004',N'Xã Hòa Tiến'),


('Xa005',N'Xã Hòa Phong');
go
CREATE TABLE CanBo (
idCanBo varchar(5) not null primary key,
tenCanBo nvarchar(255) not null,
email varchar (255) not null check(email like '[A-Za-z0-9]%@gmail.com'),
soDT varchar(10) not null check(soDT like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]

[0-9]'),
gioiTinh bit not null default 0 check(gioiTinh in (0,1)),
ngaySinh date null check(DATEDIFF(day,ngaySinh,getdate())/365>=18),
diaChi nvarchar(50),
tenTaiKhoan varchar(50) not null,
matKhau varchar(50) not null,
trangThai nvarchar(255) null default N'Bình thường' check(trangThai in (N'Bình
thường',N'Khóa')),
idXa varchar(5) not null,
foreign key (idXa) references Xa(idXa)
)
SET DATEFORMAT dmy
insert into CanBo
values ('CB001',N'Trần Văn A','','0256231524',0,'20/02/1970',N'Hịa
Sơn','tvana01','12345',N'Bình thường','Xa001'),
('CB002',N'Trần Thị A','','0256231523',1,'20/02/1970',N'Hịa
Liên','tthia01','12345',N'Bình thường','Xa002'),
('CB003',N'Hồ Quang A','','0256231514',0,'20/02/1970',N'Hịa
Châu','hqua01','12345',N'Bình thường','Xa003'),
('CB004',N'Võ Văn A','','0256234524',0,'20/02/1970',N'Hịa
Tiến','vovana01','12345',N'Khóa','Xa004'),
('CB005',N'Hồng Thị Lệ','','0116231524',1,'20/02/1970',N'Hịa
Phong','htle01','12345',N'Bình thường','Xa005');
go
CREATE TABLE PhieuXuat (
idPhieuXuat varchar(5) not null primary key,
idDotCuuTro varchar(5) not null,
idDotPhanBo varchar(5) not null,
idNhanVien varchar(5) not null,
idCanBo varchar(5) not null,

ngayXuat date default getdate(),
trangThai nvarchar(255) null default N'Chưa xuất' check (trangThai in (N'Chưa xuất',N'Đã
xuất','Đã xác nhận')),
foreign key (idDotCuuTro) references DotCuuTro(idDotCuuTro),
foreign key (idNhanVien) references NhanVien(idNhanVien),
foreign key (idCanBo) references CanBo(idCanBo),
foreign key (idDotPhanBo) references DotPhanBo(idDotPhanBo)
)
set dateformat dmy
insert into PhieuXuat
values('PX001','DCT01','PB101','NV002','CB001','30/06/2020',N'Đã xuất'),
('PX002','DCT01','PB201','NV003','CB002','10/07/2020',N'Đã xuất'),
('PX003','DCT02','PB301','NV002','CB001','20/09/2020',N'Đã xuất');
go
select * from PhieuXuat
CREATE TABLE ChiTietPhieuXuat (
idCTPhieuXuat varchar(50) not null primary key,
idPhieuXuat varchar(5) not null,
idHangCuuTro varchar(5) not null,
soLuong int not null check (soLuong > 0),
foreign key (idPhieuXuat) references PhieuXuat(idPhieuXuat),
foreign key (idHangCuuTro) references HangCuuTro(idHangCuuTro)
)
insert into ChiTietPhieuXuat
values('CTX01','PX001','HCT01',30,N'1 năm'),
('CTX02','PX001','HCT02',1000000),
('CTX03','PX001','HCT03',20 ),
('CTX04','PX002','HCT01',10),
('CTX05','PX002','HCT03',10),
('CTX06','PX003','HCT02',10000000);

go


create table HoGiaDinh (
idHoGiaDinh varchar(5) not null primary key,
tenChuHo nvarchar(50) not null,
soNhanKhau int not null check (soNhanKhau > 0),
idXa varchar(5) not null,
hoanCanh nvarchar(255) not null,
foreign key (idXa) references Xa(idXa)
)
insert into HoGiaDinh
values ('HGD01',N'Trần Văn B',5,'Xa001',N'Hộ nghèo'),
('HGD02',N'Trần Thị B',3,'Xa002',N'Hộ nghèo'),
('HGD03',N'Hồ Quang B',2,'Xa003',N'Hộ nghèo'),
('HGD04',N'Võ Văn B',1,'Xa004',N'Khó khăn'),
('HGD05',N'Hồng Thị Lê',4,'Xa005',N'Neo đơn');
go
create table DanhSachThietHai (
idDSThietHai varchar(5) not null primary key,
idDotPhanBo varchar(5) not null,
idDotCuuTro varchar(5) not null,
idHoGiaDinh varchar(5) not null,
idXa varchar(5) not null,
foreign key (idDotPhanBo) references DotPhanBo(idDotPhanBo),
foreign key (idDotCuuTro) references DotCuuTro(idDotCuuTro),
foreign key (idHoGiaDinh) references HoGiaDinh(idHoGiaDinh),
foreign key (idXa) references Xa(idXa)
)
insert into DanhSachThietHai

values ('DST01','PB101','DCT01','HGD01','Xa001'),
('DST02','PB201','DCT02','HGD01','Xa001'),
('DST03','PB301','DCT01','HGD03','Xa003'),
('DST04','PB301','DCT01','HGD04','Xa004');
go
create table BaiViet (
idBaiViet varchar(5) not null primary key,
idDotCuuTro varchar(5) not null,
tieuDe nvarchar(255) not null,
noiDung nvarchar(255) not null,
thoiGian date null default getdate(),
idNhanVien varchar(5) not null,
foreign key (idDotCuuTro) references DotCuuTro(idDotCuuTro),
foreign key (idNhanVien) references NhanVien(idNhanVien)
)
insert into BaiViet
values ('BV001','DCT01',N'Ủng hộ người nghèo',N'Ủng hộ người nghèo','20/07/2020',’NV001’),
('BV002','DCT01',N'Ủng hộ lũ lụt',N'Ủng hộ người nghèo','20/07/2020',’NV001’),
('BV003','DCT02',N'Ủng hộ người nghèo',N'Ủng hộ người nghèo','20/07/2020',
’NV001’),
('BV004','DCT03',N'Ủng hộ người nghèo',N'Ủng hộ người nghèo','20/07/2020',
’NV001’);Các Procedure và Function
--- DANH SÁCH VÀ TỔNG SỐ LƯỢNG CÁC MẶT HÀNG ĐÃ QUYÊN GÓP ĐƯỢC TRONG MỘT ĐỢT CỨU TRỢ
--------------Mai
GO
CREATE PROCEDURE proc_DanhSachQuyenGopDuoc_DotCuuTro
@p_IdDotCuuTro CHAR(5)
AS
SELECT DCT.idDotCuuTro as N'Id đợt cứu trợ',DCT.tenDotCuuTro as N'Id đợt cứu
trợ',HCT.idHangCuuTro as N'Id hàng cứu trợ',

HCT.tenHangCuuTro as N'Tên hàng cứu trợ',SUM(CTPX.soLuong) as 'Tổng
số lượng'
FROM HangCuuTro AS HCT
JOIN ChiTietPhieuXuat AS CTPX ON HCT.idHangCuuTro = CTPX.idHangCuuTro
JOIN PhieuXuat AS PX ON PX.idPhieuXuat = CTPX.idPhieuXuat
JOIN DotCuuTro AS DCT ON DCT.idDotCuuTro = PX.idDotCuuTro
WHERE PX.idDotCuuTro = @p_IdDotCuuTro
GROUP BY DCT.idDotCuuTro,DCT.tenDotCuuTro,HCT.idHangCuuTro,HCT.tenHangCuuTro
GO
---------exec proc_DanhSachQuyenGopDuoc_DotCuuTro DCT01;


×