Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 59

TRƯỜNG ĐẠI HỌC TÀI CHÍNH – MARKETING

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC HÀNH NGHỀ NGHIỆP


Mã lớp HP: 2221112004105 Ngành: Hệ thống thông tin quản lý

TÊN ĐỀ TÀI: HỆ THỐNG PHẦN MỀM QUẢN LÝ NHÂN SỰ


CÔNG TY BẢO HIỂM HÙNG VƯƠNG: TÌM HIỂU MÔ
PHỎNG XÂY DỰNG CHỨC NĂNG QUẢN LÝ NHÂN SỰ

Giảng viên hướng dẫn: GVC. Võ Xuân Thể


Sinh viên thực hiện: Lê Thành Công
Mã số sinh viên: 1921006660
Lớp: 19DTH02

TP.HCM, ngày 05 tháng 9 năm 2022


TRƯỜNG ĐẠI HỌC TÀI CHÍNH – MARKETING
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC HÀNH NGHỀ NGHIỆP


Mã lớp HP: 2221112004105 Ngành: Hệ thống thông tin quản lý
TÊN ĐỀ TÀI: Hệ thống phần mềm quản lý nhân sự Công ty
bảo hiểm Hùng Vương: Tìm hiểu mô phỏng xây dựng chức
năng quản lý nhân sự
Giảng viên hướng dẫn: GVC. Võ Xuân Thể
Sinh viên thực hiện: Lê Thành Công
Mã số sinh viên: 1921006660
Lớp: 19DTH02
Tên sản phẩm đề tài (nếu có):
Đường link URL (nếu có):
Tên App trên đám mây (nếu có):
Tên đăng nhập (username) (nếu có):
Mật khẩu (password) (nếu có):
Tên máy chủ DB SQL (nếu có):
Tên đăng nhập DB SQL (nếu có): sa
Mật khẩu (password) đăng nhập SQL (nếu có): 123456789
Nhận xét của giảng viên:
………………………………………………………..
………………………………………………………..
………………………………………………………..
Điểm đánh giá:………….(…………………)
Ngày 05/09/2020
Giảng viên:
Ký tên

TP.HCM, ngày 5 tháng 9 năm 2022

2
LỜI CẢM ƠN
Để hoàn thành chuyên đề báo cáo đồ án này trước hết em xin gửi lời cảm ơn đến quý
thầy cô trong Khoa Công Nghệ Thông Tin trường Đại học Tài Chính - Marketing. Đặc biệt,
em xin gửi đến thầy ThS.GVC. Võ Xuân Thể, người đã tận tình hướng dẫn, giúp đỡ em
hoàn thành chuyên đề báo cáo đồ án này lời cảm ơn sâu sắc nhất.

Trong quá trình làm đồ án cùng thầy đã tạo cho em có cơ hội được học tập những kiến
thức bổ ích cho công việc sau này, cho em bước ra đời sống thực tế để áp dụng những kiến
thức mà thầy đã giảng dạy. Qua môn học này em nhận ra nhiều điều mới mẻ và bổ ích trong
việc bảo mật hệ thống để giúp ích cho công việc sau này của bản thân.

Vì kiến thức bản thân còn hạn chế, trong quá trình học tập, hoàn thiện đồ án này em
không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy để em
có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này.

Em xin chân thành cảm ơn!

3
DANH MỤC CÁC TỪ VIẾT TẮT
CSDL Cơ sở dữ liệu

Cty Công ty

4
DANH MỤC CÁC THUẬT NGỮ

SQL Structured Query Language

Backup Dự phòng

Restore Khôi phuc

Host Lưu trữ dữ liệu web

5
MỤC LỤC

LỜI CẢM ƠN.................................................................................................................... 3


DANH MỤC CÁC TỪ VIẾT TẮT..................................................................................4
DANH MỤC CÁC THUẬT NGỮ....................................................................................5
PHIẾU GIAO NHIỆM VỤ ĐỀ TÀI.................................................................................8
THỰC HÀNH NGHỀ NGHIỆP.......................................................................................8
Chương 1: GIỚI THIỆU VỀ ĐỀ TÀI.............................................................................10
1.1 Tổng quan về đề tài..............................................................................................10
1.2 Giới thiệu tổng quan về đơn vị thực hành nghề nghiệp........................................11
1.3 Sự cần thiết của đề tài..........................................................................................11
1.4 Mục tiêu của đề tài...............................................................................................12
1.5 Công cụ và nền tảng kỹ thuật thực hiện đề tài......................................................12
1.6 Bố cục của báo cáo...............................................................................................13
Chương 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI.............................................................14
2.1. Tổng quan về cơ sở lý thuyết............................................................................14
2.2. Công nghệ. Net Core và ngôn ngữ lập trình C#.NET.......................................14
2.3. Hệ quản trị CSDL SQL Server.........................................................................15
2.4. Tìm hiểu về lập trình ASP.NET Core có CSDL dạng SQL trên .NET..............16
2.5. Tìm hiểu nghiệp vụ quản lý nhân sự trên hệ thống quản lý Cty Cổ phần Bảo
Hiểm Hùng Vương....................................................................................................16
2.2.1 Chức năng quản lý thông tin nhân viên......................................................16
2.2.2 Chức năng quản lý thông tin phòng ban.....................................................16
2.2.3 Chức năng quản lý thông tin chức danh.....................................................16
2.2.4 Chức năng quản lý thông tin trình độ học vấn............................................16
2.2.5 Chức năng quản lý thông tin hợp đồng......................................................16
2.2.6 Chức năng quản lý thông tin hợp đồng......................................................16
2.2.7 Chức năng quản lý lương...........................................................................16
2.2.8 Chức năng quản lý tài khoản......................................................................16
Chương 3: PHÂN TÍCH, THIẾT KẾ & XÂY DỰNG HỆ THỐNG QUẢN LÝ NHÂN
SỰ 17
3.1 Yêu cầu của đề tài.....................................................................................................17
3.2 Phân tích Hệ thống....................................................................................................17

6
3.3 Phân tích và thiết kế CSDL.......................................................................................28
3.4 Giới thiệu các chức năng xử lý của hệ thống............................................................40
Chương 4: GIỚI THIỆU SẢN PHẨM MINH HỌA CỦA ĐỀ TÀI................................42
4.1. Tổng quan về sản phẩm........................................................................................42
4.2. Giới thiệu các màn hình giao diện.........................................................................42
4.3. Giới thiệu các Kết nối CSDL và vấn tin SQL.......................................................46
4.4. Giới thiệu một số mã lệnh lập trình.......................................................................48
4.5. Hướng dẫn triển khai sử dụng hệ thống trong thực tiễn........................................56
4.6. Một số lưu ý về sản phẩn......................................................................................56
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI..............................57
5.1. Kết luận................................................................................................................. 57
5.1.1. Những kết quả đạt được........................................................................................57
5.1.2. Hạn chế................................................................................................................. 57
5.2. Hướng phát triển:..................................................................................................57
5.2.1. Hướng khắc phục các hạn chế...............................................................................57
5.2.2. Hướng mở rộng đề tài...........................................................................................57
DANH MỤC TÀI LIỆU THAM KHẢO..............................................................................57
CÁC PHỤ LỤC.....................................................................Error! Bookmark not defined.

7
TRƯỜNG ĐẠI HỌC TÀI CHÍNH - MARKETING
KHOA CÔNG NGHỆ THÔNG TIN

PHIẾU GIAO NHIỆM VỤ ĐỀ TÀI


THỰC HÀNH NGHỀ NGHIỆP
Tên Đề Tài: Hệ thống phần mềm quản lý nhân sự Công ty bảo hiểm Hùng Vương: Tìm
hiểu mô phỏng xây dựng chức năng quản lý nhân sự
Giảng viên hướng dẫn: GVC. VÕ XUÂN THỂ

Thời gian thực hiện: 14/7/2022 đến 05/9/2022

Sinh viên thực hiện: Lê Thành Công - 1921006660

Nội Dung Đề Tài: Xây dựng mô phỏng các chức năng cơ bản của quản lý nhân sự như:
quản lý thông tin nhân viên, phòng ban, chấm công, lương, báo cáo lương report, và một
số chức năng khác. Kết quả đạt được giúp cho quá trình quản lý nhân sự
Lý thuyết:
Tìm hiểu chức năng quản lý nhân sự trên hệ thống quản lý nhân sự của Công ty bảo hiểm Hùng
Vương.  
+ Quản lý nhân viên. 
+ Quản lý phòng ban. 
+ Quản lý chức danh 
+ Quản lý chấm công. 
+ Quản lý lương. 
+ Quản lý công việc 
+ Quản lý quyền truy cập. 
+ Chức năng thêm-sửa-xóa-cập nhật thông tin nhân viên, hồ sơ, phòng ban
+ Chức năng tìm kiếm, xem thông tin nhân viên, phòng ban, lương 
+ Lập báo cáo thống kê nhân viên được khen thưởng và nhân viên bị kỷ luật. 
+ Tự động tính lương theo ngày công, lương làm thêm giờ căn cứ vào bảng chấm công
+ Tìm hiểu về lập trình ASP.NET Core có CSDL dạng SQL trên .NET. 
Thực hành: Phân tích, thiết kế và xây dựng mô phỏng dạng ASP.NET Core mvc:
 Dùng CSDL SQL SERVER
 Công cụ Visual Studio
 Ngôn ngữ lập trình C#.NET 
 Công cụ thiết kế: Diagram.net
 Nội dung:  
+ Thiết kế giao diện đăng nhập/ đăng ký
+ Thiết kế Chức năng quản lý cập nhật thông tin của nhân viên, hồ sơ nhân viên, phòng
ban, cấp bậc, công việc, lương, chấm công, nhân viên nghỉ phép, khen thưởng và kỷ
luật. 
+ Lập báo cáo thông kê nhân viên được khen thưởng và kỷ luật theo từng tháng của từng

8
phòng ban. 
+ Lập báo cáo thông kê tính lương theo từng tháng, năm. 
+ Xuất phiếu lương cho nhân viên
Kế Hoạch Thực Hiện: (mô tả chi tiết thời gian của các giai đoạn thực hiện)
15/7/ 2022 – 20/7/2022: Xác định yều cầu đề tài và lập đề cương
20/7/2022 – 30/7/2022: Tìm hiểu các nghiệp vụ quản lý nhân sự
31/7/2022 – 20/8/2022: Tìm hiểu kỹ thuật ASP.NET Core 5.0 MVC, CSDL SQL Server
20/8/2022 – 28/8/2022: Phát triển sản phẩm đề tài + viết báo cáo
29/8/2022 – 05/9/2022: Tìm hiểu và thực hiện triển khai webapp lên Host + viết báo cáo
05/9/2022: Hoàn tất và nộp sản phẩm đề tài

Xác nhận của GVHD Ngày 20 tháng 07 năm 2021


SV Thực hiện
Công
Lê Thành Công

9
Chương 1: GIỚI THIỆU VỀ ĐỀ TÀI
2.2.1 Tổng quan về đề tài

Ngày nay Công nghệ thông tin đã trở thành một phần tất yếu của cuộc sống con nguời,
có ngƣời đã nói rằng nuớc Mỹ hùng mạnh một phần là nhờ vào Công nghệ thông tin. Nếu
lúc trƣớc Công nghệ thông tin là một điều viễn tƣởng thì giờ đây nó đã trở thành một phần
rất không thể thiếu trong tất cả các lĩnh vực từ y học, kinh doanh đến cả giáo dục…

Đất nuớc ta đang ngày một phát triển, đang cố gắng hòa nhập và rút ngắn khoảng
cách với thế giới, việc nƣớc ta trở thành thành viên của WTO đã đƣợc các nhà kinh doanh
chú ý đến và đầu tư ngày càng nhiều vào Việt Nam. Vì vậy để không bị quá lạc hậu, để rút
ngắn khoảng cách với các nƣớc, để đáp ứng yêu cầu tất yếu của các nhà đầu tƣ vào Việt
Nam và để các nhà kinh doanh trong nƣớc có đủ sức cạnh tranh với nuớc ngoài… thì bắt
buộc phải đầu tƣ cho Công nghệ thông tin mà ở đây chính xác là các phần mềm tin học
dùng cho các công ty, bệnh viện v.v… Việc áp dụng các phần mềm tin học vào các lĩnh vực
giúp nâng cao tính hiệu quả và chính xác của công việc, ngoài ra còn tiết kiệm thời gian và
giảm bớt mệt nhọc cho con ngƣời khiến hệ thống công việc hoạt động nhịp nhàng hơn.

Hôm nay em chọn đề tài tốt nghiệp là “phần mềm quản lý nhân sự”. Ai cũng biết công ty
nào cũng vậy muốn tồn tại và phát triển thì phải có nhân tố con người; Cùng với tốc độ phát
triển mạnh mẽ của Công nghệ thông tin các lập trình viên đã phát minh ra nhiều phần mềm
hữu ích nhằm phục vụ cho công việc của con nguời và phần mềm quản lý nhân sự cũng là
một trong những vấn đề con nguời quan tâm nhiều nhất, nó giúp cho công tác nghiệp vụ của
các công ty giảm thiểu tối đa những vất vả trong công việc giúp cho việc lưu trữ hồ sơ dễ
dàng hơn giảm thiểu diện tích các kho và thậm chí là không cần.

Đề tài quản lý nhân sự là một đề tài không phải là mới, hiện tại trên thị truờng cũng có
rất nhiều các phần mềm của các Công ty phần mềm có chức năng tƣơng tự và chuyên
nghiệp, nhưng vì mong muốn có thể tìm hiểu một phần kiến thức nhỏ nhoi trong một sa mạc
Công nghệ thông tin nên em đã đi vào tìm hiểu về cơ cấu tổ chức và phát triển công ty để có
thể viết ra một phần mềm quản lý nhân sự nhằm phục vụ cho lợi ích của công ty. Ứng dụng
phần mềm của em có thể chƣa hoàn chỉnh và còn nhiều thiếu sót nhƣng đó là sự cố gắng
của em trong bƣớc đầu hòa nhập vào môi trƣờng làm việc bên ngoài và tiếp xúc chập chững

10
với Công nghệ thông tin. Em mong quý thầy cô trong khoa có thể tạo điều kiện giúp đỡ em
hoàn thành đề tài tốt hơn. Chƣơng trình phần mềm quản lý nhân sự của em đuợc lập trình
bằng ngôn ngữ lập trình C#, chạy trên nền Net Core và kết nối bằng cơ sở SQL, Phần mềm
này giúp công ty quản lý hồ sơ, luơng, trình độ học vấn, chế độ của nhân viên giúp giảm tải
bớt việc tìm kiếm mất thời gian mà hiệu quả và tính chính xác vẫn cao.

2.2.2 Giới thiệu tổng quan về đơn vị thực hành nghề nghiệp

Kinh doanh bảo hiểm gốc: - Bảo hiểm sức khỏe và bảo hiểm tai nạn con người - Bảo hiểm
tài sản và bảo hiểm thiệt hại - Bảo hiểm hàng hóa vận chuyển đường bộ, đường biển, đường
sông, đường sắt và đường hàng không - Bảo hiểm xe xơ giới - Bảo hiểm cháy nổ - Bảo hiểm
thân tàu và trách nhiệm dân sự của thân tầu - Bảo hiểm trách nhiệm chung - Bảo hiểm tín
dụng và rủi ro tài chính - Bảo hiểm thiệt hại kinh doanh.

Vì vậy để quản lý con người là điều hết sức cần thết của mỗi công ty ,để cho vệc quản lý nhân viên
một cách dễ dàng hơn vì vậy người ta mới tiến hành bắt đầu xây dựng một hệ thống dùng để quản
ly nhân viên.

2.2.3 Sự cần thiết của đề tài

1. Giúp bạn đạt được mục tiêu của mình


Vai trò cơ bản của quản lý nhân sự là giúp công ty đạt được mục tiêu một cách
thường xuyên bằng các phương tiện của việc phát triển thái độ tích cực giữa các nhân viên.
Họ trợ giúp tiết giảm lãng phí và tận dụng việc tối đa hoá thu nhập ròng từ các nguồn lực.
2. Đánh giá năng lực
Hệ thống quản lý nhân sự thúc đẩy hiệu quả làm việc của nhân viên thông qua quá
trình đánh giá năng lực. Ví dụ như đánh giá và phát triển năng lực lãnh đạo cho cấp quản lý
hoặc đánh giá hành vi.
Những việc này hướng nhân viên hành động theo năng lực của họ và cũng cung cấp
các dự tính để đạt được tiến bộ. Năng lực của nhân viên theo vai trò của họ sẽ được giám sát
thường xuyên. Với khái niệm này, các nhân viên có thể cho ra một phác thảo về mục tiêu và
cách tiến đến mục tiêu cuối cùng nhằm giúp phát triển bản thân. Bằng cách này, nhân viên
được thúc đẩy và thực hiện công việc tốt hơn.
3. Duy trì môi trường làm việc tốt
Một khía cạnh quan trọng cần được nhìn nhận là môi trường nơi làm việc và văn hóa
làm việc đóng vai trò trung tâm trong các hoạt động của một nhân viên. Phòng nhân sự cung
cấp điều kiện làm việc tốt cho nhân viên.

11
Một nhân viên đáng tin cậy trong một môi trường làm việc tốt có khả năng có hiệu
suất tốt hơn. Ngoài ra, một môi trường làm việc tốt sẽ dễ dạng tạo ra sự hài lòng trong công
việc hơn.
4. Lựa chọn đúng nhân viên
Tuyển dụng là một trong các công việc quan trọng của bộ phận Nhân Sự. Họ tuyển
chọn và cung cấp các ứng viên phù hợp nhất cho các bộ phận dựa vào kiến thức chuyên
môn.
Việc này tác động trực tiếp đến sự hài lòng công việc của nhân viên khi họ được làm
việc trong cấp bậc thích hợp, góp phần làm giảm tỷ lệ nghỉ việc.
5. Xử lý hệ thống tính lương
Trong các doanh nghiệp lớn và nhỏ, hệ thống quản lý nhân sự giúp duy trì hệ thống
tính lương hoặc xử lý các đợt tuyển dụng nhân viên mỗi năm. Bộ phận nhân sự phụ trách và
thực hiện đầy đủ những thông tin liên quan đến lương bổng của nhân viên.
6.Duy trì chi phí quản lý
Hệ thống quản lý nhân sự giúp cắt giảm chi phí quản lý bằng các phương pháp khác
nhau nhưng vẫn đảm bảo lợi ích tốt nhất cho nhân viên, ví dụ như bảo hiểm chăm sóc sức
khỏe.
Thông qua việc phân tích và so sánh giữa mức lương và công việc tương đương, quản lý
nhân sự thực hiện các nghiên cứu chi tiết về tình trạng lương bổng. Việc này góp phần trong
mục tiêu duy trì chi phí của doanh nghiệp, tránh bộ máy bị phình ra, nhưng vẫn đảm bảo
hiệu quả. Việc này rất quan trọng đối với các công ty nhỏ có ngân sách bị giới hạn.
2.2.4 Mục tiêu của đề tài

- Nghiên cứu công tác quản lý nhân sự tại Công ty Cổ Phần Bảo Hiểm Hùng Vương.
- Phát triển ứng dụng công nghệ thông tin vào các công tác quản lý trong công
Mục tiêu cụ thể:
Nghiên cứu bài toán quản lý nhân sự nói chung và bài toán quản lý nhân sự của công ty
cổ phần Bảo Hiểm Hùng Vương nói riêng để thiết kế và lập trình phần mềm nhằm hỗ trợ
công tác quản lý của công ty. Dự kiến lập trình phần mềm quản lý nhân sự công ty cổ phần
Bảo Hiểm Hùng Vương. đạt được các mục tiêu chính sau: cập nhật hồ sơ nhân viên, cập
nhật phòng ban hoặc bộ phận khi công ty phát sinh thêm các bộ phận hoặc phòng ban mới,
quản lý danh mục cho chi nhánh như trình độ, chức danh, quản lý lương nhân viên của công
ty.

12
2.2.5 Công cụ và nền tảng kỹ thuật thực hiện đề tài

Sử dụng công cụ Visual Studio dùng để xây dựng web site kết hợp với SQL SERVER
được sử làm cơ sở dữ liệu cho hệ thống, sử dụng Diagram.net dùng để vẽ các sơ đồ UML
cho đề tài.
2.2.6 Bố cục của báo cáo

- Giới thiệu sơ lược bố cục báo cáo.

Chương 1: Giới thiệu về đề tài


Chương 2: Cơ sở lý thuyết của đề tài
Chương 3: Phân tích thiết và xây dựng hệ thống quản lý nhân sự
Chương 4: Giới thiệu sản phẩm minh họa đề tài
Chương 5: Kết luận và hướng phát triển

13
Chương 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI
2.2.7 Tổng quan về cơ sở lý thuyết
MVC là viết tắt của 3 từ M - Model, V - View, C - Controller. Mô hình MVC là một
kiến trúc phần mềm hay mô hình thiết kế phần mềm giúp chúng ta tách ứng dụng của chúng
ta thành những phần độc lập có những nhiệm vụ riêng biệt.
a. Model
- Model là thành phần chứa các phương thức xử lý logic, kết nối và truy xuất database, mô
tả dữ liệu,
b. View
- View là thành phần hiển thị thông tin, tương tác với người dùng.
c. Controller
- Controller là thành phần điều hướng, là chất kết dính giữa model và view, có nhiệm vụ
nhận những request từ người dùng, tương tác với model để lấy thông tin và gửi cho view để
hiển thị lại cho người dùng.
Mô hình MVC giúp bạn tạo được các ứng dụng phân tách rạch ròi các khía cạnh
(logic về nhập liệu, logic xử lý tác vụ và logic về giao diện). Mô hình MVC chỉ ra mỗi loại
logic kể trên nên được thiếp lập ở đâu trên ứng dụng. Logic giao diện (UI logic) thuộc về
views. Logic nhập liệu (input logic) thuộc về controller. Và logic tác vụ (Business logic – là
logic xử lý thông tin, mục đích chính của ứng dụng) thuộc về model. Sự phân chia này giúp
bạn giảm bớt được sự phức tạp của ứng dụng và chỉ tập trung vào mỗi khía cạnh cần được
cài đặt ở mỗi thời điểm.
Mô hình MVC giúp thực hiện dự án một cách dể dàng và nhanh chóng, trong lúc HTML
designer thiết kế giao diện ở tần view thì hai lập trình viên còn lại sẻ đảm nhận logic ở tầng
controller và các tác vụ ở tầng model.
2.2.8 Công nghệ. Net Core và ngôn ngữ lập trình C#.NET
ASP.NET Core là g? Nó là một open-source mới và framework đa nền tảng (cross-
platform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống như
web apps, IoT và backend cho mobile.
Ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên phiên bản đầy đủ
của .NET Framework. Nó được thiết kế để cung cấp và tối ưu development framework cho
những dụng cái mà được triển khai trên đám mây (clound) hoặc chạy on-promise.
Nó bao gồm các thành phần theo hướng module nhằm tối thiểu tài nguyên và chi phí
phát triển, như vậy bạn giữ lại được sự mềm giẻo trong việc xây dựng giải pháp của bạn.
Bạn có thể phát triển và chạy những ứng dụng ASP.NET Core đa nền tảng trên Windows,
Mac và Linux.

14
Đồng thời nó đã trở thành một mã nguồn mở. Đây là một thay đổi rất lớn và theo mình là
quan trọng nhất của ASP.NET Core. Điều mà trước đây khó có một lập trình viên nào có thể
nghĩ đến. Có lẽ đó cũng là một xu thế mà các ngôn ngữ lập trình hiện nay đang hướng tới.
2.2.9 Hệ quản trị CSDL SQL Server
SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large
Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user.
SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information
Server (IIS), E-Commerce Server, Proxy Server…
Các thành phần cơ bản trong SQL Server
Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine,
Integration Services, Notification Services, Full Text Search Service,… Tất cả kết hợp với
nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc phân tích và lưu trữ dữ liệu trở nên
dễ dàng hơn.
+ Database Engine: Đây là một engine có khả năng chứa dữ liệu ở các quy mô dưới dạng
support và table. Ngoài ra, nó còn có khả năng tự điều chỉnh ví dụ: trả lại tài nguyên cho hệ
điều hành khi một user log off và sử dụng thêm các tài nguyên của máy khi cần.
+ Integration Services: là tập hợp các đối tượng lập trình và các công cụ đồ họa cho việc
sao chép, di chuyển và chuyển đổi dữ liệu. Khi bạn làm việc trong một công ty lớn thì dữ
liệu được lưu trữ ở nhiều nơi khác nhau như được chứa trong: Oracle, SQL Server, DB2,
Microsoft Access,… và bạn chắc chắn sẽ có nhu cầu di chuyển dữ liệu giữa các server này.
Ngoài ra, bạn còn muốn định dạng dữ liệu trước khi lưu vào database. Chắc chắn Integration
Services sẽ giúp bạn giải quyết được công việc này dễ dàng.
+ Analysis Services: Đây là một dịch vụ phân tích dữ liệu rất hay của Microsoft. Dữ liệu
khi được lưu trữ vào trong database mà bạn không thể lấy được những thông tin bổ ích thì
coi như không có ý nghĩa gì. Chính vì thế, công cụ này ra đời giúp bạn trong việc phân tích
dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu –
datamining và khái niệm hình khối nhiều chiều – multi dimendion cubes.
+ Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và triển khai
các ứng dụng soạn và gửi thông báo. Ngoài ra, dịch vụ này còn có chức năng gửi thông báo
theo dịch thời đến hàng ngàn người dăng ký sử dụng trên nhiều loại thiết bị khác nhau.
+ Reporting Services: là một công cụ tạo, quản lý và triển khai báo cáo bao gồm: server
và client. Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo
cáo.
+ Full Text Search Service: là một thành phần đặc biệt trong việc truy vấn và đánh chỉ
mục dữ liệu văn bản không cấu trúc được lưu trữ trong các cơ sở dữ liệu SQL Server.
+ Service Broker: là một môi trường lập trình cho việc tạo ra các ứng dụng trong việc
nhảy qua các Instance.

15
2.2.10 Tìm hiểu về lập trình ASP.NET Core có CSDL dạng SQL
trên .NET.

2.2.11 Tìm hiểu nghiệp vụ quản lý nhân sự trên hệ thống quản lý Cty Cổ
phần Bảo Hiểm Hùng Vương
2.2.12 Chức năng quản lý thông tin nhân viên
2.2.13 Chức năng quản lý thông tin phòng ban
2.2.14 Chức năng quản lý thông tin chức danh
2.2.15 Chức năng quản lý thông tin trình độ học vấn
2.2.16 Chức năng quản lý thông tin hợp đồng
2.2.17 Chức năng quản lý thông tin hợp đồng
2.2.18 Chức năng quản lý lương
2.2.19 Chức năng quản lý tài khoản

16
Chương 3: PHÂN TÍCH, THIẾT KẾ & XÂY DỰNG HỆ THỐNG
QUẢN LÝ NHÂN SỰ
Hệ thống phần mềm quản lý nhân sự Công ty bảo hiểm Hùng Vương: Tìm hiểu mô phỏng
xây dựng các chức năng quản lý nhân sự

2.2.20 Yêu cầu của đề tài

Phân tích, thiết kế và xây dựng mô phỏng dạng ASP.NET Core: chức năng đăng nhập,
thêm, sửa, xóa, tìm kiếm. Quản lý các thông tin của hệ thống, tính tiền lương cho nhân
viên
- Dùng CSDL SQL SERVER 2014
- Công cụ Visual Studio 2019, Diagram.net
- Ngôn ngữ lập trình C#.NET
- Nội dung: Quản lý thông tin cơ bản nhân viên và lương.
• Đầu vào: danh mục các thông tin nhân viên liên quan đến nhân viên: thông tin đơn
hàng, phòng ban + danh mục các mục liên quan như trình độ học vấn với lương của
nhân viên (từ CSDL).
- Lập: các bản thống kê lương trực truyến.
- Tra cứu: thông tin của nhân viên từ cơ sở dữ liệu.
- Thêm: thông tin của nhân viên vào cơ sở dữ liệu.
- Sử dụng tài khoản cá nhân của mỗi nhân viên được cấp để có thể đăng nhập vào
hệ thống với quyền tương ứng.
- Kiểm soát người dùng phân quyền cho người dùng hệ thống

2.2.21 Phân tích Hệ thống

Mô tả (sơ lược): dữ liệu bao gồm:


Xây dựng phần mềm quản lý nhân sự sử dụng chức năng quản lý các thông tin nhân viên
cơ bản như: Họ tên, Email, địa chỉ, hệ số lương… của mỗi nhân viên yêu cầu có tài
khoản cho nhân viên đăng nhập vào hệ thống phân quyền cho mỗi nhân viên. Phòng ban
cần quản lý phòng ban các chức năng cơ bản kiểm tra phòng ban còn trống hay không,
cho biết số lượng nhân viên ở mỗi phòng, phòng đó có còn trống hay không và còn trống
bao nhiêu chỗ, tình trạng hiện tại của phòng.Ở mỗi phòng ban cần phân ra các chức vụ
của mỗi nhân viên trưởng, phó bộ phận ở mỗi chức vụ sẽ có quyền sử dụng các chức

17
năng khác nhau .Lương yêu cầu tính lương hàng tháng cho mỗi nhân viên cho biết từng
hạng mục tiền thưởng, phụ cấp, chuyên cần tăng ca, số ngày nhân viên nghỉ , xuất báo
cáo ra file excel.
Dữ liệu đầu vào, xem như có sẵn từ các Hệ thống quản lý nhân sự
+ Quản lý nhân viên.
- ID (Tự động tăng)
- Họ & tên
- Email
- SDT
- Giới tính
- Địa chỉ
- Ngày sinh
- CMND
- Tài khoản
- Mật khẩu
- Số giờ tăng ca
- Ngày vào làm
- Ngày nghỉ việc
- Còn làm viêc
- Đã xóa hay chưa
- Người xóa nhân viên
- Người sửa nhân viên
- Mô tả nhân viên
- Ngày tạo
- Ngày sửa
+ Quản lý phòng ban.
- ID (Tự động tăng)
- Tên phòng
- SDT phòng ban
- Còn sử dụng
- Đã xóa
- Còn trống
- Mô tả

18
- Ngày tạo
- Ngày sửa
+ Quản lý chức danh
- ID (Tự động tăng)
- Tên chức danh
- Đã xóa
- Ngày tạo
- Ngày sửa
+ Quản lý hợp đồng
- ID (Tự động tăng)
- Tên hợp đồng
- Ngày kí
- Thời hạn
- Đã xóa
- Nội dung
- Ngày tạo
- Ngày sửa
+ Quản lý lương.
- ID (Tự động tăng)
- Bậc lương
- Phụ cấp xăng
- Phụ cấp khác
- Phụ cấp ăn trưa
- Phụ cấp điện thoại
- Thời điểm nhận
- Loại bảo hiểm
- Thuế thu nhập cá nhân
- Phí bảo hiểm
- Ngày tạo
- Ngày sửa
+ Quản lý trình độ học vấn.
- ID (Tự động tăng)
- Loại học vấn
- Đã xóa
- Ngày tạo
19
- Ngày sửa
+Use case

Sơ đồ lớp

20
Sơ đồ hoạt động
+ đăng ký

21
Đăng nhập

22
Đổi mật khẩu

23
24
Quản lý nhân viên

Phòng ban

25
Lương

26
27
2.2.22 Phân tích và thiết kế CSDL

+ Mô tả sơ bộ DB
Nhân viên
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 HoTen Nvarchar (50) Allow null
3 Email Nvarchar (50) Allow null
4 SDT Nvarchar (50) Allow null
5 Diachi Nvarchar (50) Allow null
6 NgaySinh Datetime Allow null
7 CMND Nvarchar (50) Unique
8 TaiKhoan Nchar (50) Unique
9 MatKhau Nchar (50) Allow null
10 NgayVaoLam Datetime Allow null
11 NgayNghiViec Datetime Allow null
12 ConLamViec Int Allow null
13 DaXoa int Allow null
14 NguoiXoaNv Nvarchar (50) Allow null
15 NguoiTaoNv Nvarchar (50) Allow null
16 NguoiSuaNv Nvarchar (50) Allow null
17 Mota Nvarchar (250) Allow null
18 FK_PhongBan_ID Int Allow null, FK
19 NgayTao Datetime Allow null
20 NgaySua Datetime Allow null

Phòng ban
28
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 TenPhongban Nvarchar (50) Allow null
3 SDTPhongBan Nchar (15) Allow null
4 ConSuDung Int Allow null
5 DaXoa Int Allow null
6 ConTrong Int Allow null
7 Mota Nvarchar (250) Allow null
8 NgayTao Datetime Allow null
9 NgaySua Datetime Allow null

Trinh độ học vấn


STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 LoaiHocVan Nvarchar (50) Allow null
3 DaXoa Int Allow null
4 NgayTao Datetime Allow null
5 NgaySua Datetime Allow null

Nhân viên - TDHV


STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 FK_NhanVien_ID Int Allow null, FK
3 FK_HocVan_ID Int Allow null, FK
4 NgayNhanBang Datetime Allow null

29
Chức danh
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 TenChucDanh Nvarchar (50) Allow null
3 DaXoa Int Allow null
4 NgayTao Datetime Allow null
5 NgaySua Datetime Allow null

Nhân viên - Chức


danh
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 FK_NhanVien_ID Int Allow null, FK
3 FK_ChucDanh_ID Int Allow null, FK
4 NgayNhanChuc Datetime Allow null

Hợp đồng
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 TenHopDong Nvarchar (50) Allow null
3 NgayKi Datetime Allow null
4 ThoiHan Int(năm) Allow null
5 DaXoa Int Allow null
6 NoiDung Nvarchar (250) Allow null
7 FK_NhanVien_ID Int Allow null, FK
8 NgayTao Datetime Allow null

30
9 NgaySua Datetime Allow null

Quyền truy cập


STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 Quyen Int Allow null
3 DaXoa Int Allow null
4 NgayTao Datetime Allow null
5 NgaySua Datetime Allow null

Chi tiết - Quyền


truy cập
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment
2 FK_NhanVien_ID Int Allow null
3 FK_Quyen_ID Int Allow null

Lương
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 BacLuong Int Allow null
3 PhuCapXang Decimal (18, 0) Allow null
4 PhuCapKhac Decimal (18, 0) Allow null
5 PhuCapDT Decimal (18, 0) Allow null
6 ThoiDiemNhan Datetime Allow null
7 LoaiBaoHiem Nvarchar (50) Allow null

31
8 ThueThuNhapCN Decimal (18, 0) Allow null
9 PhiBaoHiem Decimal (18, 0) Allow null
10 NgayTao Datetime Allow null
11 NgaySua Datetime Allow null

Bảng lương
STT Thuộc tính Kiểu dữ liệu Ghi chú
1 ID Int AutoIncerment, PK
2 FK_Luong_ID Int Allow null
3 FK_NhanVien_ID Int Allow null
4 NgayNhanLuong Datetime Allow null
5 SoGioTangCa Int Allow null
6 TienThuong Decimal (18, 0) Allow null
7 SoNgayLam Int Allow null
8 ThucLanh Decimal (18, 0) Allow null

+ ERD

32
*Mô hình dữ liệu quan hệ
 NhanVien (ID, Hoten, Email, GioiTinh, SDT, Diachi, NgaySinh, CMND,
TaiKhoan, MatKhau, SoGioTangCa, NgayVaoLam, NgayNghiViec,
ConLamViec, DaXoa, NguoiXoaNv, NguoiSuaNv, Mota, FK_PhongBan_ID,
NgayTao, NgaySua)
 Phong (ID, Tenphong, SDTPhongBan, ConSuDung, DaXoa, ConTrong, Mota,
NgayTao, NgaySua)
 HopDong (ID, TenHopDong, NgayKi, ThoiHan, DaXoa, NoiDung,
FK_NhanVien_ID, NgayTao, NgaySua)
 Luong (ID, BacLuong, PhuCapXang, PhuCapKhac, PhuCapDT, ThoiDiemNhan,
LoaiBaoHiem, ThueThuNhapCN, PhiBaoHiem, NgayTao, NgaySua)
 BangLuong (ID, FK_NhanVien_ID, FK_Luong_ID, NgayNhanLuong,
SoGioTangCa, TienThuong, SoNgayLam, ThucLanh)
 Quyentruycap (ID, Quyen, DaXoa, NgayTao, NgaySua)
 ChiTietQuyenTruyCap (ID, FK_NhanVien_ID, FK_Quyen_ID)
 TrinhDoHocVan (ID, LoaiHocVan, DaXoa, NgayTao, NgaySua)

33
 NhanVien_TrinhDoHocVan (ID, FK_NhanVien_ID, FK_TDHV_ID,
NgayNhanBang)
 ChucDanh (ID, TenChucDanh, DaXoa, NgayTao, NgaySua)
 NhanVien_ChucDanh (ID, FK_NhanVien_ID, FK_ChucDanh_ID,
NgayNhanChuc)
+ Sơ đồ vật lý CSDL
Diagram của SQL chụp => vào đây (Sắp xếp rõ hạn chế chéo dây relation).

+ Mô tả các quản hệ (Table)


Quyền truy cập

Chi tiết quyền truy cập

Phòng ban

34
Trình độ học vấn

Nhân viên_trình độ học vấn

Lương

35
Bảng lương

Nhân viên

36
Hợp đồng

Chức danh

37
Nhân viên_Chức danh

+ Giới thiệu các dữ liệu thực nghiệm (thứ tự nên dựa vào Diagram)
Quyền truy cập

1= quyền giám đốc


2= quyền trưởng phòng
3= quyền nhân viên
Chi tiết quyền truy cập

Phòng ban

38
Trình độ học vấn

Lương

Bảng lương

Nhân viên

Hợp đồng

39
Chức danh

Nhân viên_Chức danh

2.2.23 Giới thiệu các chức năng xử lý của hệ thống

Bao gồm các chức năng chính của hệ thống:


- Đăng nhập
- Quản lý thông tin nhân viên
+ Thêm nhân viên
+ Sửa nhân viên
+ Xem chi tiết nhân viên
+ Xóa nhân viên
+ Tìm kiếm nhân viên
- Quản lý phòng ban
+ Thêm phòng ban
+ Sửa phòng ban
+ Xem chi tiết phòng ban
+ Xóa phòng ban
+ Tìm phòng ban
- Quản lý chức danh

40
+ Thêm chức danh
+ Sửa chức danh
+ Xem chi tiết chức danh
+ Xóa chức danh
+ Tìm chức danh
- Quản lý trình độ học vấn
+ Thêm trình độ học vấn
+ Sửa trình độ học vấn
+ Xem trình độ học vấn
+ Xóa trình độ học vấn
+ Tìm trình độ học vấn
- Quản lý hợp đồng
+ Thêm hợp đồng
+ Sửa hợp đồng
+ Xem hợp đồng
+ Xóa hợp đồng
+ Tìm hợp đồng
- Quản lý lương
+ Xem lương nhân viên
+ Tính lương cho nhân viên
- Quản lý tài khoản
+ Đổi mật khẩu
+ Phân quyền
+ Thêm tài khoản mới
+ Sửa tài khoản mới
+ Xóa tài khoản

41
Chương 4: GIỚI THIỆU SẢN PHẨM MINH HỌA CỦA ĐỀ TÀI
4.1. Tổng quan về sản phẩm

- Hệ thống quản lý nhân sự tại Cty Cổ phần Bảo Hiểm Hùng Vương
-Yêu cầu kỹ thuật: phiên bản. Net Core 5.0, phiên bản SQL SERVER 2014, sử dụng Entity
Framework Core kết nối CSDL.
- Truy vấn LinQ C#
- Giao diện sử dụng thư viện bootstrap 4
4.2. Giới thiệu các màn hình giao diện

+ Màn hình đăng nhập

+ Màn hình trang chủ sau khi đăng nhập

42
+ Màn hình quản lý thông tin nhân viên

+ Màn hình thêm nhân viên

43
+ Sửa thông tin nhân viên

+ Xóa thông tin nhân viên

44
 Quản lý phòng ban
+ Màn hình quản lý thông tin phòng ban

+ Màn hình thêm phòng ban

45
Màn hình sửa phòng ban

4.3. Giới thiệu các Kết nối CSDL và vấn tin SQL

+ Quản lý nhân viên


- Lấy danh sách nhân viên
public List<NhanVienEntity> ListNhanVien()
{
using var db = new DBConnect();
46
var listnhanvien = db.NhanViens.Where(x=>x.DaXoa!=0).ToList();
return listnhanvien;
}
- Thêm nhân viên
public void ThemNhanVien(NhanVienEntity nhanVienEntity)
{
try
{
using var db = new DBConnect();
db.NhanViens.Add(nhanVienEntity);
db.SaveChanges();
}
catch { }}
- Sửa nhân viên
public void SuaNhanVien(NhanVienEntity nv)
{
using var db = new DBConnect();
db.NhanViens.Update(nv);
db.SaveChanges();
}
- Xóa nhân viên
public void XoaNhanVien(int id)
{
using var db = new DBConnect();
db.NhanViens.Where(x => x.ID == id).ToList().ForEach(x => x.DaXoa = 0);
db.SaveChanges();
}
- Lấy một nhân viên
public NhanVienEntity FindOne(int nv)
{
using var db = new DBConnect();
var data = db.NhanViens.Find(nv);

47
return data;

}
- Tìm kiêm nhân viên
public List<NhanVienEntity> Search(string nv)
{
using var db = new DBConnect();
var data = db.NhanViens.Where(x=>x.HoTen.Contains(nv) &&
x.DaXoa==1).ToList();
return data;

}
- Lấy danh phòng

4.4. Giới thiệu một số mã lệnh lập trình

*Kết nối Database


using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
using QLNS_02_LeThanhCong_THNN1.Entity;

namespace QLNS_02_LeThanhCong_THNN1.Database
{
public class DBConnect: DbContext
{
public DbSet<BangLuongEntity> BangLuongs { get; set; }
public DbSet<ChucDanhEntity> ChucDanhs { get; set; }
public DbSet<HopDongEntity> HopDongs { get; set; }
public DbSet<LuongEntity> Luongs { get; set; }
public DbSet<NhanVienEntity> NhanViens { get; set; }
public DbSet<PhongBanEntity> PhongBans { get; set; }
public DbSet<QuyenEntity> Quyens { get; set; }
public DbSet<TrinhDoHocVanEntity> TrinhDoHocVans { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)


{
optionsBuilder.UseSqlServer(
@"Server=.\sqlexpress;Database=QLNhanSu;User Id=sa;Password=123456789");
}
}
}

Quản lý nhân viên


 Trong file Controller
48
public IActionResult Index()
{
NhanVien nhanVien = new NhanVien();
var data_nv = new List<NhanVienEntity>();
if(Request.Method == "POST") // nhận reqquest để lấy dữ liệu từ ô nhập thông tin của
nhân viên
{
string data = Request.Form["search"].ToString();
ViewData["data"] = data; // Gán vào view data để bên view có thể nhận được dữ liệu
data_nv = nhanVien.Search(data);
}
else
{
data_nv = nhanVien.ListNhanVien();
}
ViewData["listnhanvien"] = data_nv;
ViewData["T1"] = HttpContext.Session.GetString("_Name"); // Gán tên tào khoản vào
session đăng nhập để biết tài khoản nào
return View();
}
*Thêm
[Route("AddNhanVien")] // để xác định màn hình đó thuộc dường dẫn nào
public IActionResult Them()
{
PhongBan PhongBan = new PhongBan();
var ls = PhongBan.ListPhongBan();
ViewData["listphongban"] = ls;
NhanVien nhanVien = new NhanVien();
NhanVienEntity nv = new NhanVienEntity();
if(Request.Method == "POST")
{
nv.HoTen = Request.Form["full_name"].ToString();
nv.Email = Request.Form["email"].ToString();
nv.SDT = Request.Form["sdt"].ToString();
nv.GioiTinh = Convert.ToInt32(Request.Form["gioitinh"]);

nv.DiaChi = Request.Form["diachi"].ToString();
nv.NgaySinh = DateTime.Parse(Request.Form["ngaysinh"]);
nv.CMND = Request.Form["cmnd"].ToString();
nv.DaXoa = 1;
nv.NgayVaoLam = DateTime.Now;
nv.NgayNghiViec = DateTime.Now;
49
nv.FK_PhongBan_ID = Convert.ToInt32(Request.Form["phongban"]);
nv.NgayTao = DateTime.Now;
nhanVien.ThemNhanVien(nv); // Gán tất cả vào đối tượng nhân viên
}

ViewData["T1"] = HttpContext.Session.GetString("_Name");
return View();
}
*Sửa
[Route("UpdateNhanVien/{id}")] // {id} này chính là id của nhân viên trên
public IActionResult Sua(int id)
{
PhongBan PhongBan = new PhongBan();
var ls = PhongBan.ListPhongBan();
ViewData["listphongban"] = ls; // lấy danh sách phòng ban để hiển thị ra combobox
NhanVien nhanVien = new NhanVien();
var data= nhanVien.FindOne(id);
ViewData["OneNhanVien"] = data;
if(data==null){
return NotFound(); // nếu không có dữ liệu sẽ hiện r khong tìm thấy
}
NhanVienEntity nv = new NhanVienEntity();
if (Request.Method == "POST")
{
data.HoTen = Request.Form["full_name"].ToString();
data.Email = Request.Form["email"].ToString();
data.SDT = Request.Form["sdt"].ToString();
data.GioiTinh = Convert.ToInt32(Request.Form["gioitinh"]);
data.DiaChi = Request.Form["diachi"].ToString();
data.NgaySinh = DateTime.Parse(Request.Form["ngaysinh"]);
data.CMND = Request.Form["cmnd"].ToString();
data.NgayVaoLam = DateTime.Now;
data.NgayNghiViec = DateTime.Now;
data.FK_PhongBan_ID = Convert.ToInt32(Request.Form["phongban"]);
data.NgaySua = DateTime.Now;
nhanVien.SuaNhanVien(data);
}
ViewData["T1"] = HttpContext.Session.GetString("_Name");
return View();
}
* Xóa
[Route("DetailNhanVien/{id}")]
50
public IActionResult ChiTiet(int id)
{
NhanVien nhanVien = new NhanVien();
var data = nhanVien.FindOne(id);
ViewData["OneNhanVien"] = data;
ViewData["T1"] = HttpContext.Session.GetString("_Name");
return View();
}

 Trong file model


using Microsoft.EntityFrameworkCore;
using QLNS_02_LeThanhCong_THNN1.Database;
using QLNS_02_LeThanhCong_THNN1.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace QLNS_02_LeThanhCong_THNN1.Models
{
public class NhanVien
{

public List<NhanVienEntity> ListNhanVien()


{
using var db = new DBConnect();
var listnhanvien = db.NhanViens.Where(x=>x.DaXoa!=0).ToList();
return listnhanvien;
}
public List<NhanVienEntity> PhanTrangNV()
{
using var db = new DBConnect();
var listnhanvien = db.NhanViens.Where(x => x.DaXoa != 0).ToList();
return listnhanvien;
}

public void ThemNhanVien(NhanVienEntity nhanVienEntity)


{
try
{
using var db = new DBConnect();
db.NhanViens.Add(nhanVienEntity);
db.SaveChanges();

51
}
catch { }
}
public void SuaNhanVien(NhanVienEntity nv)
{
using var db = new DBConnect();
db.NhanViens.Update(nv);
db.SaveChanges();
}
public NhanVienEntity FindOne(int nv)
{
using var db = new DBConnect();
var data = db.NhanViens.Find(nv);
return data;
}
public List<NhanVienEntity> Search(string nv)
{
using var db = new DBConnect();
var data = db.NhanViens.Where(x=>x.HoTen.Contains(nv) && x.DaXoa==1).ToList();
return data;
}
public void XoaNhanVien(int id)
{
using var db = new DBConnect();
db.NhanViens.Where(x => x.ID == id).ToList().ForEach(x => x.DaXoa = 0);
db.SaveChanges();
}
}
}

 Trong file Entity


using System;
using System.ComponentModel.DataAnnotations.Schema;
namespace QLNS_02_LeThanhCong_THNN1.Entity
{
[Table("ThongTinNhanVien")]
public class NhanVienEntity
{
public int ID { get; set; }
public string HoTen { get; set; }
public string Email { get; set; }
public string SDT { get; set; }

52
public string DiaChi { get; set; }
public int GioiTinh { get; set; }
public DateTime? NgaySinh { get; set; }
public string CMND { get; set; }
public string TaiKhoan { get; set; }
public string MatKhau { get; set; }
public int? SoGioTangCa { get; set; }
public DateTime? NgayVaoLam { get; set; }
public DateTime? NgayNghiViec { get; set; }
public int ConLamViec { get; set; }
public int DaXoa { get; set; }
public string NguoiXoaNv { get; set; }
public string NguoiTaoNv { get; set; }
public string NguoiSuaNv { get; set; }
public string Mota { get; set; }
public DateTime? NgayTao { get; set; }
public DateTime? NgaySua { get; set; }
public int FK_PhongBan_ID { get; set; }
}
}

 Quản lý phòng ban


- Trong file Controller
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using QLNS_02_LeThanhCong_THNN1.Entity;
using QLNS_02_LeThanhCong_THNN1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace QLNS_02_LeThanhCong_THNN1.Controllers
{
public class PhongBanController : Controller
{
public IActionResult Index()
{
PhongBan PhongBan = new PhongBan();
var data_nv = new List<PhongBanEntity>();
if (Request.Method == "POST")
53
{
string data = Request.Form["search"].ToString();
ViewData["data"] = data;
data_nv = PhongBan.Search(data);
}
else
{
data_nv =PhongBan.ListPhongBan();
}
ViewData["listphongban"] = data_nv;
ViewData["T1"] = HttpContext.Session.GetString("_Name");
return View();
}
[Route("AddPhongBan")]
public IActionResult Them()
{

PhongBan phongBan = new PhongBan();


PhongBanEntity pb = new PhongBanEntity();
if (Request.Method == "POST")
{
pb.TenPhong = Request.Form["tenphongban"].ToString();
pb.SDTPhongBan = Request.Form["sdtphongban"].ToString();
pb.ConSuDung = Convert.ToInt32(Request.Form["consudung"]);
pb.Mota = Request.Form["mota"].ToString();
pb.DaXoa = 1;
pb.NgayTao = DateTime.Now;
phongBan.ThemPhongBan(pb);
}

ViewData["T1"] = HttpContext.Session.GetString("_Name");
return View();
}

[Route("UpdatePhongBan/{id}")]
public IActionResult Sua(int id)
{
PhongBan phongBan = new PhongBan();
var data = phongBan.FindOne(id);
ViewData["OnePhongBan"] = data;
if (data == null)

54
{
return NotFound();
}
// PhongBanEntity pb = new PhongBanEntity();
if (Request.Method == "POST")
{
data.TenPhong = Request.Form["tenphongban"].ToString();
data.SDTPhongBan = Request.Form["sdtphongban"].ToString();
data.ConSuDung = Convert.ToInt32(Request.Form["consudung"]);
data.Mota = Request.Form["mota"].ToString();
data.DaXoa = 1;
data.NgaySua = DateTime.Now;
phongBan.SuaPhongBan(data);
}
ViewData["T1"] = HttpContext.Session.GetString("_Name");
return View();
}

[Route("PhongBan/{id}")]
public IActionResult Delete(int id)
{
PhongBan pb = new PhongBan();
var data = pb.FindOne(id);
if (data == null)
{
return NotFound();
}
PhongBanEntity nhanVien = new PhongBanEntity();

PhongBan xoanv = new PhongBan();


xoanv.XoaPhongBan(id);

return RedirectToAction("Index", "PhongBan");


}
[Route("DetailPhongBan/{id}")]
public IActionResult ChiTiet(int id)
{
PhongBan phongBan = new PhongBan();
var data = phongBan.FindOne(id);
ViewData["OnePhongBan"] = data;
ViewData["T1"] = HttpContext.Session.GetString("_Name");
return View();
55
}
}
}

4.5. Hướng dẫn triển khai sử dụng hệ thống trong thực tiễn

Sau khi tải về


B1: Giải nén file
B2: Lấy file .bak từ file giải nén restore vào DB
B3: Sau có DB vào file DBConnect thay đổi tài khoản sa của DB
B4: Khởi động
4.6. Một số lưu ý về sản phẩn

Trước khi sử dụng cần lưu ý:


+ Tài khoản sẽ do người quản trị cấp nên hệ thống sẽ không cho phép người dùng tự tạo
+ Trước khi vào hệ thống bắt buộc người dùng phải đăng nhập mới có thể vào được hệ
thống

56
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
5.1. Kết luận

5.1.1. Những kết quả đạt được

- Xây dựng các chức năng quản lý nhân viên cơ bản


+ Quản lý thông tin nhân viên
+ Quản lý thông tin phòng ban
+ Quản lý thông tin về hợp đồng
+ Quản lý thông tin về lương
+ Quản lý thông tin về trình độ học vấn
+ Quản lý thông tin về chức danh
5.1.2. Hạn chế

Do thời gian không cho phép nên chỉ xây dựng một sô chức năng quản lý cơ bản của hệ
thống quản lý nhân sự ở mức cơ bản còn một số chức năng chưa hoàn thiện kịp
+ Phân quyền cho người dùng
+ Phân trang cho danh sách thông tin nhân viên
5.2. Hướng phát triển:

5.2.1. Hướng khắc phục các hạn chế

Sẽ tiếp tục hoàn thiện các chức năng còn lại của sản phẩm
+ + Phân quyền cho người dùng
+ Phân trang cho danh sách thông tin nhân viên
Mở rộng thêm các tính năng mới nhằm đáp ứng nhu cầu thực tế mà một doanh nghiệp
cần
5.2.2. Hướng mở rộng đề tài

+ Hướng mở rộng để nghiên cứu thêm cho đề tài.


Tiếp tục nghiên cứu và tìm hiểu những hướng phát triển mới về hệ thống quản lý nhân sự và
chấm công với hệ thống thông tin.

+ Có thể tham khảo các tài liệu liên quan về nghiệp vụ quản lý nhân sự và tiền lương từ đó
để hiểu thêm về các nghiệp vụ quản lý
57
58
DANH MỤC TÀI LIỆU THAM KHẢO
[1]. Võ Xuân Thể (2020), Bài giảng học phần Lập trình kế toán 1, 2, Trường Đại học
Tài chính – Marketing (lưu hành nội bộ).
[2]. Võ Xuân Thể (2020), Bài giảng học phần Lập trình ASP.NET 1, 2, Trường Đại học
Tài chính – Marketing (lưu hành nội bộ).

59

You might also like