Đề tài Xây dựng Website quản lý nhân sự cho công ty INTECH

Mục đích của việc thiết kế kiểm soát là để hệ thống hoạt động đúng đắn, hiệu quả, tăng độ tin cậy của thông tin hệ thống, phòng tránh hay hạn chế tối đa các nguy cơ gây mất mát, hư hỏng thông tin gây đe dọa sự hoạt động của hệ thống do ngẫu nhiên hay cố ý. Mục đích của hệ thống cũng là đề xuất các biện pháp nhằm làm cho hệ thống đảm bảo được. Các khía cạnh cần quan tâm của thiết kế kiểm soát là: tính chính xác, tính an toàn, tính bảo mật, tính riêng tư.

doc104 trang | Chia sẻ: aloso | Lượt xem: 1729 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng Website quản lý nhân sự cho công ty INTECH, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ẽ tìm hàm có cùng tên với giá trị biến đó và thực hiện. 2.4.2.9. Các toán tử PHP có các toán tử cho các phép số học: + - * / % Các toán tử logic: And, Or, Xor ! && || Toán tử thao tác với bit: & | ^ ~ > Toán tử so sánh: = =,!=, , =,= = = = (bằng và cùng kiểu - Chỉ có trong PHP4), != = (khác hoặc khác kiểu - Chỉ có trong PHP 4). Toán tử điều khiển lỗi: @ - Khi đứng trước 1 biểu thức thì các lỗi của biểu thức sẽ bị bỏ qua và lưu trong $php_errormsg. 2.4.2.10. Lớp và đối tượng Lớp có thể được mở rộng bằng những lớp khác. Lớp mới thu được có tất cả những biến và hàm của các lớp thành phần. Tuy nhiên, các hàm khởi tạo của lớp cha sẽ không được gọi khi hàm khởi tạo của lớp con được gọi. Hàm khởi tạo có thể có đối số hoặc không. 2.4.2.11. Tham chiếu Tham chiếu trong PHP có nghĩa là lấy cùng một giá trị bằng nhiều tên biến khác nhau. Khác với con trỏ C, tham chiếu là một bảng các bí danh. 2.4.2.12. Thao tác với ảnh Có thể dùng PHP để tạo và thao tác với các file ảnh có định dạng khác nhau, bao gồm: .gif,.jpg,.bmp...PHP có thể đưa các file ảnh trực tiếp đến các trình duyệt. 2.4.3. MySQL 2.4.3.1 My SQL là gì? MySQL là một database server, là hệ thống quản lý cơ sở dữ liệu quan hệ. Trong việc lưu trữ, tìm kiếm, sắp xếp và truy vấn dữ liệu, nó tỏ ra rất nhanh và mạnh mẽ. MySQL thường được sử dụng chung với PHP trong những trang Web cần sử dụng tới CSDL. 2.4.3.2. Cài đặt MySQL Download MySQL từ địa chỉ Sau khi download xong, giải nén và tiến hành cài đặt. Phải thiết lập Username (admin) và database server (localhost). 2.4.3.3. Sơ lược MySQL Các lệnh trong SQL được kết thúc bởi dấu chấm phảy (;). Trừ một số trường hợp như lệnh quit là trường hợp đặc biệt. MySQL đưa ra kết quả dưới dạng một bảng (table) gồm các cột (columns) và các hàng (rows). 2.4.3.4. Các lệnh cơ bản trong MySQL * SHOW DATABASE; // Liệt kê tất cả các database có trên server. * USE tên database ; // Lựa chọn sử dụng database có trên server, nếu có máy sẽ báo là database changed. * CREATE DATABASE tên database; // Tạo database mới. * SHOW TABLE; // Liệt kê các bảng trong database. * CREATE TABLE tên table; // tạo bảng cho database. * DESCRIBE tên table;// mô tả bảng đã tạo. * INSERT INTO tên table [COLUMN 1, COLUMN 2,...] VALUES (VALUES 1, VALUES 2,..); // Đưa dữ liệu vào bảng. * SELECT items FROM table [WHERE điều kiện] [GROUP BY group_type] [HAVING where_ definition] [ORDER BY order_type] [LIMIT limit_criteria] // Truy vấn CSDL trong các bảng * LOAD DATA INFILE “tenfile.exception” INTO TABLE tên table; //Nhập dữ liệu vào bảng từ trình soạn thảo văn bản khác * DELETE FROM table [WHERE condition] [LIMIT number] // Xoá dữ liệu trong bảng. *. UPDATE table name SET column1= expression 1, column 2= expression 2,... [WHERE condition] [LIMIT number] * ALTER TABLE tên table RENAME tên table mới; // Thay đổi tên bảng. m. ALTER TABLE table_name ADD COLUMN column_name, column attribute // Thêm cột vào bảng. * ALTER TABLE table_name DROP COLUMN column_name // Xoá cột trong bảng. 2.4.3.5. Các kiểu dữ liệu trong MySQL * Kiểu ký tự Kiểu char Kiểu text Kiểu Enum * Kiểu số Kiểu int/integer Kiểu Tinyint Kiểu Mediumint Kiểu bigint * Kiểu Date/ Time Kiểu Date Kiểu datetime Kiểu timestamp Kiểu time Kiểu year 2.4.4. Giới thiệu công cụ Crystal Report 2.4.4.1. Tổng quan về Crystal Report Reports là các báo cáo có thể truy xuất và định dạng thông tin hiển thị của dữ liệu từ các nguồn dữ liệu khác nhau như cơ sở dữ liệu hoặc file … Điểm khác nhau cơ bản nhất của report và form đó là: form dùng để hiển thị và cập nhật thông tin, report dùng để hiển thị và định dạng thông tin và có chức năng in ra giấy. Phiên bản mới nhất là Crystal Report XI – Release 2. Phiên bản đi kèm với Visual Studio .NET 2003 là Crytal Report 9 Phiên bản đi kèm với Visual Studio .NET 2005 là Crystal Report 10 Có thể vào site để tham khảo thêm. 2.4.4.2. Giới thiệu về Crystal Report 9 Crystal Reports 9 đã tích hợp sẵn Report Designer trong bộ Visual Studio .NET để có thể thiết kế report (có phần mở rộng là *. rpt). Có thể tích hợp file có phần mở rộng là *. rpt vào ứng dụng Windows hoặc ứng dụng trên Web (Web application) để hiển thị các mẫu biểu báo cáo. Việc chạy các ứng dụng có tích hợp Crystal Report đòi hỏi phải có Crystal Report Engine được cài đặt trên máy. Làm việc dễ dàng với Unicode. Ưu điểm: Tích hợp chung với Visual Studio .NET. Tạo báo cáo có thể hiển thị trên cả hai môi trường Winform và Webform. Dễ dàng triển khai, có thể sử dụng các mođun tích hợp để tạo file cài đặt. Sử dụng kiến trúc ADO.NET để kết nối CSDL nhanh hơn. Có khả năng tạo các báo cáo dịch vụ Web Cài đặt: Có thể cài đặt chung với bộ Visual Stdio.NET. Có thể cài riêng bản Developer. CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 3.1. BIỂU ĐỒ PHÂN CẤP CHỨC NĂNG Hệ thống được phân cấp thành các chức năng như hình dưới đây. Mục tiêu của biểu đồ là cung cấp cách nhìn tổng quan về hệ thống. 3.1.1. Biểu đồ phân cấp chức năng của hệ thống Hình 3.1: Biểu đồ phân cấp chức năng của hệ thống 3.1.2. Mô tả các chức năng Chức năng Hệ thống: bao gồm chức năng đổi mật khẩu, quản trị người dùng, cập nhật danh mục từ điển (chức vụ, phòng ban, chuyên ngành, loại hợp đồng). Người dùng có một tài khoản để truy nhập vào hệ thống. Sau khi đăng nhập thì họ có thể thay đổi mật khẩu của mình. Tuy nhiên, để có thể thực hiện các chức năng khác của chương trình thì cần có sự phân quyền từ phía ban quản trị. Cụ thể là mỗi một nhân viên sẽ có một mã, ứng với mỗi nhân viên sẽ có một mã chức vụ, mỗi chức vụ sẽ có các quyền khác nhau. Dựa vào quyền này sẽ áp dụng vào cụ thể cho từng chức năng của hệ thống. Chức năng Nhân sự: bao gồm việc cập nhật hồ sơ nhân sự (cập nhật các thông tin chung như tên, tuổi, quê quán... và các thông tin khác như: hợp đồng lao động, quá trình công tác, khen thưởng- kỷ luật, bằng cấp của nhân viên), tìm kiếm nhân viên theo một hay nhiều tiêu chí nào đó, quản lý nhân viên theo phòng ban (số lượng nhân viên trong từng phòng ban) để từ đó giúp các nhà quản lý có các biện pháp điều chỉnh cho phù hợp theo yêu cầu thực tế. Chức năng Báo cáo: bao gồm các chức năng lập báo cáo theo chức vụ, phòng ban, hợp đồng, bằng cấp, khen thưởng/ kỷ luật, nhân viên nào thay đổi công tác để từ đó có các chiến lược đúng đắn. 3.2. BIỂU ĐỒ LUỒNG DỮ LIỆU 3.2.1. Các ký hiệu quy ước sử dụng trong biểu đồ luồng dữ liệu Chức năng Luồng dữ liệu Kho dữ liệu Tác nhân ngoài Tác nhân trong Định nghĩa Nhiệm vụ xử lý thông tin Thông tin vào / ra một chức năng xử lý Nơi lưu trữ thông tin trong một thời gian Người hay tổ chức ngoài hệ thống có giao tiếp với hệ thống Một chức năng hay một hệ con của hệ thống nhưng được mô tả ở trang khác Tên đi kèm Động từ (+ bổ ngữ) Danh từ (+ tính từ) Danh từ (+ tính từ) Danh từ Động từ Tên Tên Tên Tên Tên Biểu đồ Thanh toán Hoá đơn đã xác nhận chi Ví dụ Làm đơn đặt hàng Đơn hàng Nhà cung cấp Bảng 3.1: Các ký hiệu quy ước sử dụng trong biểu đồ luồng dữ liệu Dựa vào biểu đồ phân cấp chức năng ở trên, ta có các biểu đồ luồng dữ liệu mức khung cảnh, mức đỉnh, mức dưới đỉnh như sau: 3.2.2. Biểu đồ luồng dữ liệu mức khung cảnh Hình 3.2: Biểu đồ luồng dữ liệu mức khung cảnh Đặc tả chức năng “Hệ thống quản lý nhân sự” Đầu đề: Tên chức năng: Hệ thống quản lý nhân sự. Đầu vào: danh sách báo cáo, mật khẩu thay đổi, tìm kiếm/ cập nhật nhân sự, thông tin nhân viên, mật khẩu thay đổi. Đầu ra: thông tin đổi mật khẩu, thông tin nhân viên, kết quả tìm kiếm/ cập nhật nhân sự, các báo cáo theo yêu cầu. Thân: Khi nhân viên đăng nhập vào hệ thống thì có thể đổi mật khẩu. Hệ thống sẽ gửi lại cho nhân viên các thông tin để có thể tiến hành đổi được mật khẩu. Các nhà quản lý khi đăng nhập vào hệ thống cũng có thể đổi mật khẩu. Hệ thống sẽ gửi các thông tin mà nhà quản lý cần cung cấp để đổi được mật khẩu. Khi các nhà quản lý có yêu cầu xem danh sách các báo cáo thì hệ thống cũng sẽ gửi lại các báo cáo theo đúng yêu cầu. Nhà quản lý có nhu cầu tìm kiếm hoặc cập nhật thông tin nhân viên thì hệ thống sẽ đưa ra kết quả tương ứng phù hợp với yêu cầu đó của nhà quản lý. 3.2.3. Biểu đồ luồng dữ liệu mức đỉnh Từ những phân tích trên, ta có thể xây dựng biểu đồ luồng dữ liệu mức đỉnh của hệ thống như sau: Hình 3.3: Biểu đồ luồng dữ liệu mức đỉnh của hệ thống Đặc tả chức năng “Hệ thống” Đầu đề: Tên chức năng: Hệ thống. Đầu vào: mật khẩu thay đổi. Đầu ra: thông tin đổi mật khẩu. Thân: Khi nhân viên đăng nhập vào hệ thống có thể tiến hành đổi mật khẩu. Hệ thống sẽ gửi lại các thông tin đổi mật khẩu mà nhân viên cần cung cấp cho hệ thống. Nhà quản lý khi đăng nhập vào hệ thống thì cũng có thể tiến hành đổi mật khẩu. Hệ thống sẽ gửi lại các thông tin đổi mật khẩu mà nhà quản lý cần cung cấp cho hệ thống. Đặc tả chức năng “Nhân sự” Đầu đề: Tên chức năng: Nhân sự. Đầu vào: tìm kiếm/ cập nhật nhân sự, thông tin cần xem về nhân viên. Đầu ra: kết quả tìm kiếm/ cập nhật nhân sự, thông tin nhân viên. Thân: Khi nhà quản lý có yêu cầu tìm kiếm hoặc cập nhật nhân sự thì chức năng nhân sự sẽ tìm kiếm trong kho nhân sự hoặc lưu các thông tin cập nhật vào kho nhân viên và chuyển cho nhà quản lý kết quả mà họ yêu cầu. Nhân viên khi đưa yêu cầu các thông tin cần xem về nhân viên đó thì chức năng nhân sự sẽ lấy dữ liệu từ kho nhân viên gửi cho nhân viên các thông tin nhân viên liên quan tới nhân viên đó. Đặc tả chức năng “Báo cáo” Đầu đề: Tên chức năng: Báo cáo. Đầu vào: danh sách báo cáo. Đầu ra: các báo cáo theo yêu cầu. Thân: Khi nhà quản lý gửi yêu cầu tới chức năng này muốn xem danh sách các báo cáo liên quan tới nhân viên trong công ty thì chức năng này sẽ gửi lại cho nhà quản lý danh sách nhân viên theo yêu cầu. 3.2.4. Biểu đồ luồng dữ liệu mức dưới đỉnh 3.2.3.1. Biểu đồ dữ liệu mức dưới đỉnh chức năng “Hệ thống” Hình 3.4: Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “ Hệ thống” Đặc tả chức năng “Đổi mật khẩu” Đầu đề: Tên chức năng: Đổi mật khẩu. Đầu vào: yêu cầu đổi mật khẩu, đổi mật khẩu cũ. Đầu ra: thông tin đổi mật khẩu, thông tin thay đổi mật khẩu. Thân: Khi người dùng hoặc nhà quản lý có nhu cầu đổi mật khẩu thì sẽ gửi yêu cầu cho hệ thống. Hệ thống với chức năng đổi mật khẩu sẽ gửi lại cho người dùng thông tin đổi mật khẩu. Các thông tin này sau khi hoàn chỉnh sẽ được lưu vào kho người dùng. Đặc tả chức năng “Quản trị người sử dụng” Đầu đề: Tên chức năng: Quản trị người sử dụng. Đầu vào: đăng nhập, đăng ký người sử dụng mới, người sử dụng mới. Đầu ra: thông tin đăng ký, thông tin người sử dụng. Thân: Nhân viên và nhà quản lý cần đăng nhập vào hệ thống quản trị để có thể thực hiện một số chức năng khác của chương trình. Nếu chưa đăng ký thì có thể đăng ký. Hệ thống sẽ gửi tới nhà quản lý hoặc nhân viên thông tin cần đăng ký. Trong quá trình đăng nhập/ đăng ký đều có sự kiểm tra xem các thông tin cung cấp đã chính xác hoặc đã tồn tại hay chưa. Nếu chưa đúng hoặc chưa chính xác sẽ đưa ra thông báo cho người dùng biết để điều chỉnh. Đặc tả chức năng “Cập nhật danh mục từ điển” Đầu đề: Tên chức năng: Cập nhật danh mục từ điển. Đầu vào: cập nhật dữ liệu. Đầu ra: các thông tin cập nhật. Thân : Khi nhà quản lý có nhu cầu cập nhật danh mục từ điển thì sẽ gửi yêu cầu cập nhật dữ liệu tới chức năng cập nhật danh mục từ điển. Chức năng này sẽ yêu cầu nhà quản lý cung cấp các thông tin cập nhật. Các thông tin này sau khi được cập nhật sẽ được lưu vào các kho dữ liệu khác nhau. 3.2.3.2. Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “Nhân sự” Hình 3.5: Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “ Nhân sự” Đặc tả chức năng “Cập nhật hồ sơ” Đầu đề: Tên chức năng: Cập nhật hồ sơ. Đầu vào: cập nhật hồ sơ nhân viên, xem thông tin nhân viên. Đầu ra: thông tin nhân viên cần cập nhật, thông tin nhân viên. Thân: Nhà quản lý gửi yêu cầu cập nhật hồ sơ nhân viên tới chức năng cập nhật hồ sơ. Chức năng này sẽ yêu cầu nhà quản lý cung cấp các thông tin theo yêu cầu. Sau khi các thông tin được cung cấp đầy đủ thì sẽ được lưu vào kho là thông tin nhân viên. Nhân viên khi có yêu cầu xem thông tin thì chức năng này sẽ lấy các thông tin từ kho thông tin nhân viên và gửi lại cho nhân viên các thông tin liên quan tới nhân viên đó. Đặc tả chức năng “ Tìm kiếm nhân sự” Đầu đề: Tên chức năng: Tìm kiếm nhân sự. Đầu vào: yêu cầu tìm kiếm nhân sự. Đầu ra: kết quả tìm kiếm. Thân: Nhà quản lý gửi yêu cầu tìm kiếm nhân sự tới chức năng tìm kiếm nhân sự. Chức năng này sẽ dựa vào các thông tin từ kho thông tin nhân viên đưa ra kết quả tìm kiếm cho các nhà quản lý . Đặc tả chức năng “ Quản lý theo phòng ban” Đầu đề: Tên chức năng: Quản lý theo phòng ban. Đầu vào: quản lý theo phòng ban. Đầu ra: danh sách nhân viên theo phòng ban. Thân: Nhà quản lý gửi yêu cầu quản lý nhân viên theo phòng ban tới chức năng quản lý theo phòng ban. Chức năng dựa vào kho thông tin nhân viên đưa ra danh sách nhân viên theo phòng ban cho nhà quản lý . 3.2.3.3. Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “Báo cáo” Hình 3.6: Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “ Báo cáo” Đặc tả chức năng “ Báo cáo chức vụ” Đầu đề: Tên chức năng: Chức vụ. Đầu vào: hồ sơ nhân viên theo chức vụ. Đầu ra: DSNV chức vụ. Thân: Nhà quản lý gửi yêu cầu xem hồ sơ nhân viên theo chức vụ tới chức năng báo cáo chức vụ. Chức năng này sẽ dựa vào các thông tin lấy từ kho thông tin nhân viên đưa ra danh sách nhân viên theo chức vụ cho nhà quản lý . Đặc tả chức năng “Báo cáo phòng ban” Đầu đề: Tên chức năng: Phòng ban. Đầu vào: yêu cầu DSNV theo phòng ban. Đầu ra: danh sách nhân viên phòng ban. Thân: Nhà quản lý gửi yêu cầu xem hồ sơ nhân viên theo phòng ban tới chức năng báo cáo phòng ban. Chức năng này sẽ dựa vào các thông tin lấy từ kho thông tin nhân viên đưa ra danh sách nhân viên theo phòng ban cho nhà quản lý . Đặc tả chức năng “ Báo cáo bằng cấp” Đầu đề: Tên chức năng: bằng cấp. Đầu vào: yêu DSNV theo bằng cấp. Đầu ra: DSNV bằng cấp. Thân: Nhà quản lý gửi yêu cầu xem danh sách nhân viên theo bằng cấp tới chức năng báo cáo bằng cấp. Chức năng này sẽ dựa vào các thông tin lấy từ kho thông tin nhân viên đưa ra danh sách nhân viên theo bằng cấp cho nhà quản lý . Đặc tả chức năng “Báo cáo khen thưởng - kỷ luật” Đầu đề: Tên chức năng: khen thưởng- kỷ luật. Đầu vào: yêu cầu DSNV KT-KL. Đầu ra: DSNV khen thưởng. Thân: Nhà quản lý gửi yêu cầu xem danh sách nhân viên được khen thưởng/ kỷ luật tới chức năng báo cáo khen thưởng – kỷ luật. Chức năng này sẽ dựa vào các thông tin lấy từ kho thông tin nhân viên đưa ra danh sách nhân viên được khen thưởng / kỷ luật cho nhà quản lý . Đặc tả chức năng “ Báo cáo hợp đồng” Đầu đề: Tên chức năng: Hợp đồng. Đầu vào: y/c DSNV hợp đồng. Đầu ra: DSNV hợp đồng. Thân: Nhà quản lý gửi yêu cầu xem danh sách nhân viên theo hợp đồng tới chức năng báo cáo hợp đồng. Chức năng này sẽ dựa vào các thông tin lấy từ kho thông tin nhân viên đưa ra danh sách nhân viên theo từng loại hợp đồng cho nhà quản lý . Đặc tả chức năng “ Báo cáo thay đổi công tác” Đầu đề: Tên chức năng: Thay đổi công tác. Đầu vào: yêu cầu DSNV thay đổi công tác. Đầu ra: DSNV thay đổi công tác. Thân: Nhà quản lý gửi yêu cầu xem danh sách nhân viên thay đổi công tác tới chức năng báo cáo thay đổi công tác. Chức năng này sẽ dựa vào các thông tin lấy từ kho thông tin nhân viên đưa ra danh sách nhân viên thay đổi công tác cho nhà quản lý . 3.2.3.4. Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “Cập nhật danh mục từ điển” Hình 3.7: Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “ Cập nhật danh mục từ điển” Đặc tả chức năng “Cập nhật chức vụ” Đầu đề: Tên chức năng: Chức vụ. Đầu vào: cập nhật chức vụ. Đầu ra: thông tin chức vụ cần cập nhật. Thân: Nhà quản lý muốn cập nhật chức vụ, chức năng chức vụ sẽ gửi các thông tin chức vụ cần cập nhật tới nhà quản lý. Các thông tin khi được cập nhật sẽ được kiểm tra và lưu vào kho chức vụ. Đặc tả chức năng “Cập nhật phòng ban” Đầu đề: Tên chức năng: Phòng ban. Đầu vào: cập nhật phòng ban. Đầu ra: thông tin phòng ban cập nhật. Thân: Nhà quản lý muốn cập nhật phòng ban, chức năng phòng ban sẽ gửi các thông tin phòng ban cần cập nhật tới nhà quản lý. Các thông tin khi được cập nhật sẽ được kiểm tra và lưu vào kho phòng ban. Đặc tả chức năng “Cập nhật chuyên ngành” Đầu đề: Tên chức năng: Chuyên ngành. Đầu vào: cập nhật chuyên ngành. Đầu ra: thông tin chuyên ngành cập nhật. Thân: Nhà quản lý muốn cập nhật chuyên ngành, chức năng chuyên ngành sẽ gửi các thông tin chuyên ngành cần cập nhật tới nhà quản lý. Các thông tin khi được cập nhật sẽ được kiểm tra và lưu vào kho chuyên ngành. Đặc tả chức năng “ Cập nhật loại hợp đồng” Đầu đề: Tên chức năng: Loại hợp đồng. Đầu vào: cập nhật loại hợp đồng. Đầu ra: thông tin loại hợp đồng cập nhật. Thân: Nhà quản lý muốn cập nhật loại hợp đồng, chức năng loại hợp đồng sẽ gửi các thông tin loại hợp đồng cần cập nhật tới nhà quản lý. Các thông tin khi được cập nhật sẽ được kiểm tra và lưu vào kho hợp đồng. 3.3. SƠ ĐỒ THỰC THỂ - LIÊN KẾT (E – R) 3.2.1. Xác định các thực thể Dựa vào khảo sát thực tế và phân tích trên, ta có thể xác định được các thực thể và các thuộc tính tương ứng của hệ thống như sau: Nhân viên (mã nhân viên, họ tên nhân viên, ngày sinh, quê quán, hộ khẩu, địa chỉ, quốc tịch, dân tộc, tôn giáo, giới tính, trình độ văn hóa, điện thoại, Email, ngày vào công ty, thâm niên công tác, số chứng minh nhân dân): Lưu trữ các thông tin về nhân viên trong công ty. Hợp đồng (mã hợp đồng, loại hợp đồng): Lưu trữ các thông tin về hợp đồng. Chuyên ngành (mã chuyên ngành, tên chuyên ngành): Lưu trữ các thông tin về chuyên ngành đào tạo. Phòng ban (mã phòng ban, tên phòng ban, số điện thoại ): Lưu trữ các thông tin về các phòng ban trong công ty. Chức vụ (mã chức vụ, tên chức vụ, mã quyền): Lưu trữ các thông tin về chức vụ. Khen thưởng/kỷ luật (mã lí do, tên lí do): Lưu trữ các thông tin về lí do khen thưởng hoặc bị kỷ luật. Nhân viên công tác (mã nhân viên, mã chức vụ, ngày bắt đầu công tác, ngày kết thúc công tác, tên công ty, ghi chú): Lưu trữ các thông tin về quá trình công tác của từng nhân viên. Thay đổi (mã nhân viên, mã phòng ban, mã chức vụ, ngày chuyển, nơi đến, lí do chuyển): Lưu trữ các thông tin về thay đổi của từng nhân viên. Quyền truy cập (mã quyền, tên quyền, mã chức năng): Lưu trữ các thông tin về quyền truy cập của từng nhân viên. Chức năng (mã chức năng, tên chức năng): Lưu trữ các thông tin về từng chức năng của hệ thống. 3.2.2. Xác định các liên kết Dựa vào việc xác định các thực thể và các thuộc tính như trên ta có thể xác định được liên kết giữa các thực thể đó như sau: * Liên kết giữa thực thể Hợp đồng và thực thể Nhân viên là liên kết nhiều - nhiều. Liên kết nhiều – nhiều này sẽ được tách thành hai liên kết 1 - nhiều và có thêm thực thể Hợp đồng nhân viên  * Liên kết giữa thực thể Phòng ban và thực thể Nhân viên là liên kết 1 – nhiều. Mỗi phòng ban có nhiều nhân viên và mỗi nhân viên chỉ có thể thuộc một phòng ban. * Liên kết giữa thực thể Nhân viên và thực thể Thay đổi là liên kết 1- nhiều. * Liên kết giữa thực thể Khen thưởng/ kỷ luật và thực thể Nhân viên là liên kết nhiều - nhiều. Liên kết nhiều – nhiều này sẽ được tách thành hai liên kết 1 - nhiều và có thêm thực thể Nhân viên khen thưởng  * Liên kết giữa thực thể Chuyên ngành và thực thể Nhân viên là liên kết nhiều - nhiều. Liên kết nhiều – nhiều này sẽ được tách thành hai liên kết 1 - nhiều và có thêm thực thể Bằng cấp nhân viên  * Liên kết giữa thực thể Chức năng và thực thể Quyền truy cập là liên kết 1- nhiều. * Liên kết giữa thực thể Quyền truy cập và thực thể Chức vụ là liên kết 1- nhiều. * Liên kết giữa thực thể Chức vụ và thực thể Nhân viên là liên kết 1- nhiều. * Liên kết giữa thực thể Nhân viên với thực thể Nhân viên công tác là liên kết 1- nhiều: Như vậy, sau khi tiến hành tách các liên kết nhiều – nhiều thành các liên kết 1 – nhiều, hệ thống bao gồm các thực thế với các thuộc tính tương ứng: Nhân viên (mã nhân viên, họ tên nhân viên, ngày sinh, quê quán, hộ khẩu, địa chỉ, quốc tịch, dân tộc, tôn giáo, giới tính, trình độ văn hóa, điện thoại, Email, ngày vào công ty, mã phòng ban, mã chức vụ, thâm niên công tác, số chứng minh nhân dân): Lưu trữ các thông tin về nhân viên trong công ty. Hợp đồng (mã hợp đồng, loại hợp đồng): Lưu trữ các thông tin về hợp đồng. Chuyên ngành (mã chuyên ngành, tên chuyên ngành): Lưu trữ các thông tin về chuyên ngành đào tạo. Phòng ban (mã phòng ban, tên phòng ban, số điện thoại ): Lưu trữ các thông tin về các phòng ban trong công ty. Chức vụ (mã chức vụ, tên chức vụ, mã quyền): Lưu trữ các thông tin về chức vụ. Khen thưởng/kỷ luật (mã lí do, tên lí do): Lưu trữ các thông tin về lí do khen thưởng hoặc bị kỷ luật. Hợp đồng nhân viên (mã nhân viên, mã hợp đồng, ngày kí hợp đồng, ngày kết thúc hợp đồng, tình trạng hợp đồng, ghi chú): Lưu trữ các thông tin liên quan tới hợp đồng của từng nhân viên trong công ty. Nhân viên công tác (mã nhân viên, mã chức vụ, ngày bắt đầu công tác, ngày kết thúc công tác, tên công ty, ghi chú): Lưu trữ các thông tin về quá trình công tác của từng nhân viên. Nhân viên khen thưởng (mã nhân viên, mã lí do, ngày khen thưởng kỷ luật, ghi chú): Lưu trữ các thông tin về khen thưởng hoặc kỷ luật của từng nhân viên. Bằng cấp nhân viên (mã nhân viên, mã chuyên ngành, mã bằng cấp, tên trường, hình thức đào tạo, loại bằng): Lưu trữ các thông tin về bằng cấp của từng nhân viên. Thay đổi (mã nhân viên, mã phòng ban, mã chức vụ, ngày chuyển, nơi đến, lí do chuyển): Lưu trữ các thông tin về thay đổi của từng nhân viên. Quyền truy cập (mã quyền, tên quyền, mã chức năng): Lưu trữ các thông tin về quyền truy cập của từng nhân viên. Chức năng (mã chức năng, tên chức năng): Lưu trữ các thông tin về từng chức năng của hệ thống. 3.2.3. Xây dựng sơ đồ thực thể - liên kết (E-R) Hình 3.8 : Sơ đồ thực thể liên kết (E-R) CHƯƠNG 4:THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG 4.1. THIẾT KẾ CƠ SỞ DỮ LIỆU 4.1.1. Thiết kế các bảng dữ liệu * Bảng nhanvien Mục đích: Lưu trữ các thông tin liên quan tới nhân viên trong công ty. Mỗi nhân viên có một mã riêng. Dựa vào bảng này cũng cho biết nhân viên thuộc phòng ban nào, chức vụ gì. Khoá chính: maNV. Khoá ngoại: maPB, maCV. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maNV Varchar 5 Not null Mã nhân viên Khoá chính 2 hotenNV Varchar 50 Họ tên nhân viên 3 Ngaysinh Date Ngày sinh của nhân viên 4 Quequan Varchar 50 Quê quán 5 Hokhau Varchar 50 Hộ khẩu 6 Diachi Varchar 50 Địa chỉ 7 Quoctich Varchar 50 Quốc tịch 8 Dantoc Varchar 20 Dân tộc 9 Tongiao Int 1 Tôn giáo 10 TDVH Varchar 10 Trình độ văn hoá 11 Dienthoai Int 11 điện thoại 12 Email Varchar 40 Điạ chỉ email 13 Ngayvaoct Date Ngày vào công ty 14 maPB Varchar 5 Not null Mã phòng ban Khóa ngoại Lookup từ bảng phongban 15 maCV Varchar 5 Not null Mã chức vụ Khóa ngoại Lookup từ bảng chucvu 16 Thamnienct Int 3 Thâm niên công tác (năm) 17 soCMND Int 11 Số chứng minh nhân dân 18 Gioitinh Int 1 Giới tính *Bảng phongban Mục đích: Lưu trữ thông tin về các phòng ban trong công ty. Mỗi phòng ban có một mã để phân biệt. Mỗi mã ứng với tên phòng ban khác nhau, số điện thoại khác nhau. Khóa chính: maPB. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maPB Varchar 5 Not null Mã phòng ban Khoá chính 2 tenPB Varchar 100 Tên phòng ban 3 soDT Int 11 Số điện thoại *Bảng chucvu Mục đích: Lưu trữ các loại chức vụ trong công ty. Mỗi chức vụ có một mã riêng, một tên chức vụ riêng. Mỗi mã chức vụ lại có một mã quyền riêng. Mã quyền này sẽ cho biết chức vụ đó được phép sử dụng những chức năng nào trong hệ thống. Khóa chính: maCV. Khóa ngoại: maquyen. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maCV Varchar 5 Not null Mã chức vụ Khoá chính 2 tenCV Varchar 50 Tên chức vụ 3 Maquyen Varchar 5 Not null Mã quyền Khóa ngoại Lookup từ bảng quyentruycap * Bảng hdld Mục đích: Bảng lưu trữ thông tin về tên các loại hợp đồng. Mỗi loại hợp đồng có một mã riêng để phân biệt. Khóa chính: maHD. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maHD Varchar 5 Not null Mã hợp đồng Khoá chính 2 tenHD Varchar 100 Tên hợp đồng * Bảng chuyennganh Mục đích: Lưu trữ các chuyên ngành mà nhân viên được đào tạo. Mỗi chuyên ngành được phân biệt với nhau bởi một mã chuyên ngành. Khóa chính: maCN. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maCN Varchar 5 Not null Mã chuyên ngành Khoá chính 2 tenCN Varchar 100 Tên chuyên ngành * Bảng kt_kl Mục đích: Lưu trữ các loại hình thức khen thưởng hoặc kỷ luật. Mỗi loại được phân biệt với nhau bởi một mã lí do riêng. Khóa chính: maLD. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maLD Varchar 5 Not null Mã lí do Khoá chính 2 tenLD Varchar 100 Tên lí do * Bảng nv_hdld Mục đích: Lưu trữ thông tin về hợp đồng lao động của nhân viên với công ty. Khóa ngoại: maNV, maHD. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maNV Varchar 5 Not null Mã nhân viên Khóa ngoại Lookup từ bảng nhanvien 2 maHD Varchar 5 Not null Mã hợp đồng Khóa ngoại Lookup từ bảng hopdong 3 ngaykiHD Date Ngày kí hợp đồng 4 ngayketthucHD Date Ngày kết thúc hợp đồng 5 tinhtrangHD Varchar 50 Tình trạng hợp đồng * Bảng nv_ct Mục đích: Lưu trữ thông tin về quá trình công tác của một nhân viên trước khi vào công ty. Khóa ngoại: maNV, maCV. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maNV Varchar 5 Not null Mã nhân viên Khóa ngoại Lookup từ bảng nhanvien 2 maCV Varchar 5 Not null Mã chức vụ Khóa ngoại Lookup từ bảng chucvu 3 ngayBDCT Date Ngày bắt đầu công tác 4 ngayKTCT Date Ngày kết thúc công tác 5 Ghichu Varchar 300 Ghi chú * Bảng nv_bangcap Mục đích: Lưu trữ thông tin về bằng cấp của một nhân viên trong công ty. Khóa chính: maBC. Khóa ngoại: maNV, maCN. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maNV Varchar 5 Not null Mã nhân viên Khóa ngoại Lookup từ bảng nhanvien 2 maCN Varchar 5 Not null Mã chuyên ngành Khóa ngoại Lookup từ bảng chuyennganh 3 maBC Varchar 5 Not null Mã bằng cấp Khóa chính 4 Tentruong Varchar 50 Tên trường đào tạo 5 hinhthucDT Varchar 50 Hình thức đào tạo 6 Loaibang Varchar 20 Loại bằng được cấp * Bảng nv_ktkl Mục đích: Lưu trữ thông tin những nhân viên nào được khen thưởng hoặc bị kỷ luật. Khóa ngoại: maNV, maLD. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maNV Varchar 5 Not null Mã nhân viên Khóa ngoại Lookup từ bảng nhanvien 2 maLD Varchar 5 Not null Mã lí do Khóa ngoại Lookup từ bảng KT-KL 3 ngayKTKL Date Ngày khen thưởng/ kỷ luật 4 Ghichu Varchar 300 Ghi chú *Bảng thaydoi Mục đích: Lưu trữ thông tin của những nhân viên rời khỏi công ty với những lí do chuyển đivà công ty sẽ chuyển tới. Khóa ngoại: maNV, maPB, maCV. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maNV Varchar 5 Not null Mã nhân viên Khóa ngoại Lookup từ bảng nhanvien 2 maPB Varchar 5 Not null Mã phòng ban Khóa ngoại Lookup từ bảng phongban 3 maCV Varchar 5 Not null Mã chức vụ Khóa ngoại Lookup từ bảng chucvu 4 Ngaychuyen Date Ngày chuyển đi 5 Noiden Varchar 200 Nơi nhân viên chuyển đến 6 Lidochuyen Varchar 50 Lí do chuyển đi * Bảng quyentruycap Mục đích: Lưu trữ các quyền được sử dụng của người dùng đối với từng chức năng. Khóa chính: maquyen. Khóa ngoại: machucnang. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 maquyen Varchar 5 Not null Mã quyền Khóa chính 2 tenquyen Varchar 50 Tên quyền 3 machucnang Varchar 5 Not null Mã chức năng Khóa ngoại Lookup từ bảng chucnang * Bảng chucnang Mục đích: Lưu trữ các chức năng của hệ thống. Ứng với mỗi chức năng sẽ có một mã riêng để phân biệt. Khóa chính: machucnang. Cấu trúc bảng: STT Tên trường Kiểu DL Độ dài Ràng buộc Diễn giải Ghi chú 1 machucnang Varchar 5 Not null Mã chức năng Khóa chính 2 tenchucnang Varchar 200 Tên chức năng 4.1.2. Mối quan hệ giữa các bảng dữ liệu Hình 4.1: Mối quan hệ giữa các bảng dữ liệu 4.2. THIẾT KẾ GIAO DIỆN MÀN HÌNH Từ những phân tích, thiết kế hệ thống đã trình bày ở trên, đòi hỏi thiết kế giao diện thỏa mãn được các yêu cầu đặt ra và thiết kế môi trường giao tiếp giữa người sử dụng và máy tính thỏa mãn điều kiện: dễ sử dụng, dễ học, dễ nhớ, tốc độ thao tác nhanh, kiểm soát tốt, dễ phát triển. Hệ thống được thiết kế với giao diện dễ sử dụng, người dùng có thể dễ dàng thích ứng được với các chức năng chính của chương trình. Để có thể truy nhập vào chương trình thì người dùng cần có tài khoản. Nếu chưa có thì có thể đăng ký một tài khoản. Sau đây là một số giao diện và mẫu báo cáo khi thực hiện chương trình. 4.2.1 Một số giao diện khi thực hiện chương trình 4.2.1.1. Màn hình giao diện đăng nhập vào chương trình Hình 4.2: Giao diện màn hình đăng nhập vào chương trình * Hoạt động của giao diện màn hình “ Đăng nhập” vào chương trình Người dùng nhập tên truy nhập và password vào. Khi nhấn nút Đăng nhập thì các thông tin mà người dùng cung cấp sẽ được kiểm tra. Nếu thông tin không đầy đủ, thông tin sai hoặc là chưa có người dùng này thì hệ thống sẽ đưa ra thông báo và yêu cầu người dùng truy nhập lại. Nếu thông tin cung cấp đúng thì hệ thống sẽ chuyển tới trang đăng nhập thành công. Nếu người dùng chưa có tài khoản có thể đăng ký tạo mới một tài khoản bằng cách tích vào chữ Đăng ký 4.2.1.2. Màn hình giao diện của chương trình Khi đăng nhập thành công thì hệ thống sẽ chuyển tới chương trình chính có giao diện như sau: Hinh 4.3: Giao diện màn hình của chương trình 4.2.1.3. Giao diện màn hình “Đổi mật khẩu” Hinh 4.4: Giao diện màn hình “Đổi mật khẩu” * Hoạt động của giao diện màn hình “ Đổi mật khẩu” Muốn đổi mật khẩu, người dùng cần nhập lại mật khẩu cũ, mật khẩu mới, và xác nhận mật khẩu. Khi kích vào nút Chấp nhận thì hệ thống sẽ tiến hành kiểm tra các thông tin mà người dùng vừa nhập vào. Nếu chưa có thông tin nào, mật khẩu cũ sai hoặc mật khẩu mới và việc xác nhận lại mật khẩu không giống nhau thì hệ thống sẽ đưa ra thông báo và yêu cầu người dùng nhập lại các thông tin đó. Nếu các thông tin đầy đủ và chính xác thì hệ thống sẽ thực hiện thao tác đổi mật khẩu và đưa ra thông báo đổi thành công mật khẩu. Nếu không muốn đổi mật khẩu nữa thì người dùng có thể nhấn vào nút Hủy bỏ. 4.2.1.4. Giao diện màn hình “Cập nhật chức vụ” Hình 4.5: Giao diện màn hình “ Cập nhật chức vụ” * Hoạt động của giao diện màn hình “ Cập nhật chức vụ ” Khi nhấn vào nút Sửa thì hệ thống sẽ đưa ra một form sửa tương ứng với mã chức vụ đó. Hình 4.6: Giao diện màn hình “Sửa chức vụ” Tại màn hình giao diện này bạn chỉ được phép sửa các thông tin khác mà không được phép sửa mã chức vụ. Sau khi sửa xong, nhấn vào nút Cập nhật thì hệ thống sẽ đưa lại danh sách chức vụ mà trong đó chức vụ bạn chọn đã được sửa. Nếu không muốn sửa thì có thể nhấn vào nút Hủy bỏ. Khi nhấn vào nút Xóa thì hệ thống sẽ xóa bỏ chức vụ đó ra khỏi danh sách chức vụ. Khi nhấn vào thêm mới: Hình 4.7: Giao diện màn hình “Thêm mới chức vụ” 4.2.1.5. Giao diện màn hình “Quản lý theo phòng ban” Hình 4.8: Giao diện màn hình “Quản lý theo phòng ban” * Hoạt động của giao diện màn hình “Quản lý theo phòng ban” Muốn xem thông tin về phòng ban nào thì chỉ cần nhấn vào tên phòng ban đó. Hình 4.9: Giao diện màn hình danh sách theo phòng ban “Phòng nhân sự” 4.2.2. Một số mẫu báo cáo khi thực hiện chương trình 4.2.2.1. Báo cáo danh sách nhân viên theo chức vụ Hình 4.10: Báo cáo danh sách nhân viên theo “Chức vụ” 4.2.2.2. Báo cáo nhân viên theo phòng ban Hình 4.11: Báo cáo danh sách nhân viên theo “Phòng ban” 4.2.2.3. Báo cáo danh sách nhân viên theo hợp đồng Hình 4.12: Báo cáo danh sách nhân viên theo “ Loại hợp đồng” 4.2.2.4. Báo cáo danh sách nhân viên thay đổi công tác Hình 4.13: Báo cáo danh sách nhân viên “Thay đổi công tác” 4.2.2.5. Báo cáo danh sách nhân viên theo bằng cấp Hình 4.14: Báo cáo danh sách nhân viên theo “Bằng cấp” 4.2.2.6. Báo cáo danh sách nhân viên khen thưởng/ kỷ luật Hình 4.15: Báo cáo danh sách nhân viên “Khen thưởng/ kỷ luật” 4.3. THIẾT KẾ KIỂM SOÁT Mục đích của việc thiết kế kiểm soát là để hệ thống hoạt động đúng đắn, hiệu quả, tăng độ tin cậy của thông tin hệ thống, phòng tránh hay hạn chế tối đa các nguy cơ gây mất mát, hư hỏng thông tin gây đe dọa sự hoạt động của hệ thống do ngẫu nhiên hay cố ý. Mục đích của hệ thống cũng là đề xuất các biện pháp nhằm làm cho hệ thống đảm bảo được. Các khía cạnh cần quan tâm của thiết kế kiểm soát là: tính chính xác, tính an toàn, tính bảo mật, tính riêng tư. 4.3.1. Xác định nhu cầu bảo mật của hệ thống Hệ thống cho phép phân quyền sử dụng, từ đó chống được những truy nhập bất hợp pháp vào hệ thống dữ liệu, đồng thời định rõ được trách nhiệm trong trường hợp có sự cố. 4.3.2. Chế độ sao lưu, phục hồi dữ liệu Để đảm bảo tính an toàn của hệ thống trong bất cứ trường hợp bất trắc nào có thể xảy ra cho hệ thống, thì công việc sao lưu và phục hồi trong trường hợp cần thiết là công việc được thực hiện một cách có chu kỳ đối với hệ thống này của công ty. Công việc sao lưu phải thực hiện theo chu kỳ mỗi tuần một lần để tránh gặp các trường hợp xấu xảy ra. Các bảng dữ liệu cần phải sao lưu đó là: nhân viên, nv_hdld (nhân viên – hợp đồng lao động), nv-ct (nhân viên – công tác), nv-ktkl (nhân viên – khen thưởng kỷ luật), nv_bangcap (nhân viên – bằng cấp), thay đổi, quyền truy cập, chức vụ. Bảng dữ liệu Mức thấp Mức trung bình Mức cao Nhân viên Nv_hdld Nv_ct Nv_ktkl Nv_bằng cấp Thay đổi Quyền truy cập Chức vụ Bảng 4.1: Sao lưu dữ liệu 4.3.3. Phân định các nhóm người dùng Trong hệ thống này có 5 nhóm người sử dụng đó là: Giám đốc. Phó giám đốc. Trưởng phòng. Phó phòng. Nhân viên. 4.3.4. Quy định quyền hạn cho các nhóm người dùng Xây dựng quyền hạn cho mỗi nhóm theo từng chức năng của hệ thống. Được sử dụng = Yes (Y). Không được sử dụng = No (N). Giám đốc Phó giám đốc Trưởng phòng Phó phòng Nhân viên 1. Hệ thống Đổi mật khẩu Y Y Y Y Y Quản trị người dùng Y N N N Y Cập nhật danh mục từ điển Chức vụ Y Y N N N Phòng ban Y Y Y Y N Chuyên ngành Y Y Y N N Loại hợp đồng Y Y N N N 2. Nhân sự Cập nhật hồ sơ nhân sự Y Y Y N Y Tìm kiếm nhân sự Y Y Y Y N Quản lý theo phòng ban Y Y Y N N 3. Báo cáo Chức vụ Y Y N N N Phòng ban Y Y Y Y N Loại hợp đồng Y Y N N N Bằng cấp Y Y Y N N Khen thưởng - Kỷ luật Y Y Y N N Thay đổi công tác Y Y Y N N Bảng 4.2: Phân định quyền hạn người dùng 4.4. HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG CHƯƠNG TRÌNH 4.4.1. Hướng dẫn cài đặt chương trình 4.4.1.1. Yêu cầu về phần cứng Ram 256 MB là yêu cầu tối thiểu nếu chạy trên Windows XP, còn nếu chạy trên Windows Server 2003 thì yêu cầu tối thiểu ram 512 MB, tốc độ chip tối thiểu 2.4 GHz, pentium IV. 4.4.1.2. Yêu cầu về phần mềm Windows XP hoặc Windows Server 2003 có cài Apache, MySQL, PHP. Cài đặt Crystal report_ công cụ tạo báo cáo Cài đặt Macromedia Dreamweaver 8 _ công cụ soạn thảo và thiết kế. 4.4.1.3. Cài đặt chương trình Sau khi cài đặt XAMP SERVER (Bộ cài bao gồm Apache, MySQL, PHP), tiến hành cóp toàn bộ các file và thư mục trong thư mục QLNS vào thư mục C:\wamp\www. Khởi động Wamp server. Chọn phpMyadmin Tạo một CSDL có tên là “quanlynhansu”. Import file quanlynhansu.sql từ thư mục cơ sở dữ liệu. Vào trình duyệt IE gõ: Nếu màn hình hiện lên form đăng nhập vào chương trình thì đã cài đặt thành công. 4.4.2. Hướng dẫn sử dụng chương trình Để đăng nhập vào chương trình bạn có thể tạo mới một username hoặc sử dụng user trang với mật khẩu là: 123. Với từng form bạn có thể thực hiện các thao tác đã có trên form đó: thêm, sửa, xóa, tìm kiếm. Muốn xem một báo cáo thì bạn có thể xem trực tiếp hoặc tải về máy. Hàng tuần bạn cần tiến hành sao lưu các bảng cũng như các dữ liệu liên quan như đã nói ở phần thiết kế kiểm soát. KẾT LUẬN I. ĐÁNH GIÁ KẾT QUẢ THU ĐƯỢC Tích lũy được kinh nghiệm trong việc phân tích và thiết kế hệ thống. Biết được quy trình quản lý nhân sự trong công ty. Quản lý tốt việc đăng nhập/đăng ký thành viên. Cho phép nhân viên hoặc nhà quản lý có thể truy nhập vào và thực hiện đổi mật khẩu.. Cho phép người dùng truy nhập với mã nhân viên và mã chức vụ, mã quyền được quy định trước.. Thêm mới, sửa thông tin, xóa thành công các loại danh mục từ điển: chức vụ, phòng ban, chuyên ngành đào tạo, loại hợp đồng. Cập nhật hồ sơ nhân sự tốt. Việc tìm kiếm được thực hiện theo nhiều tiêu chí cho kết quả tốt. Việc quản lý theo phòng ban tốt. Mỗi phòng ban cho phép xem đầy đủ thông tin về các nhân viên trong phòng ban đó Thực hiện được các báo cáo tùy theo nhu cầu của nhà quản lý . Web site hỗ trợ tốt tiếng Việt Unicode. II. NHỮNG TỒN TẠI CỦA HỆ THỐNG Giao diện chương trình chưa thân thiện lắm với người dùng. Chương trình chưa kiểm tra được hết tất cả các trường hợp có thể xảy ra. Chưa thực hiện được phân quyền cho từng đối tượng sử dụng ứng với từng chức năng của hệ thống. Việc cập nhật hồ sơ nhân sự còn phải cập nhật đơn lẻ, chưa có sự cập nhật tự động liên kết nhiều bảng với nhau nên dễ gặp phải sai sót. Việc tạo báo cáo chưa thực hiện tự động được. Muốn xem báo cáo khi mà các thông tin đã được bổ sung thì nhà quản lý cần có một số thao tác trước khi xem được (chạy lại một số file và upload lại). Chương trình chưa tạo thành module nên việc nâng cấp phần mềm sẽ khó khăn. III. HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI Xây dựng giao diện thân thiện hơn với người dùng. Kiểm tra các trường hợp còn thiếu sót. Thực hiện phân quyền với từng đối tượng sử dụng đã nêu trong phần thiết kế tổng thể Tận dụng thế mạnh của ngôn ngữ lập trình PHP và các tính năng của ngôn ngữ MySQL để tạo được việc cập nhật hồ sơ nhân viên nhanh nhạy, chính xác hơn. Tìm hiểu thêm về cách tạo báo cáo để các báo cáo được tự động thay đổi sau mỗi lần sửa đổi, thêm mới thông tin. TÀI LIỆU THAM KHẢO [1] Công ty INTECH. Tài liệu hướng dẫn nghiệp vụ quản lý nhân sự tại Công ty INTECH, 2007. [2] Đặng Minh Ất. Bài giảng phân tích và thiết kế hệ thống (Lưu hành nội bộ). Trường Đại học Kinh tế Quốc dân (Bộ môn CNTT), 2006. [3] Nguyễn Thúc Hải. Mạng máy tính và các hệ thống mở. NXB Giáo Dục, 1999. [4] Nguyễn Trung Tuấn, Lưu Minh Tuấn, Tống Minh Ngọc. Cơ sở dữ liệu (Lưu hành nội bộ). Trường Đại học Kinh tế Quốc dân (Bộ môn CNTT), 2006. [5] Nguyễn Văn Ba. Phân tích và thiết kế hệ thống thông tin. NXB Đại Học Quốc Gia Hà Nội, 2006. [6] Phạm Hữu Khang. Xây dựng ứng dụng Web bằng PHP & MySQL. NXB Mũi Cà Mau, 2004. [7] Trung tâm tin học - Đại học khoa học tự nhiên TP.HCM. Tài liệu giảng dạy SQL Server, 2004. [8] John.Wiley.and. Sons. Visio 2003, Bible.Apr.2004.ebook. [9] Wrox Press. Profesional PHP Programming, 1999. [10] Một số Website: Php_manual.chm PHỤ LỤC MỘT SỐ MODULE CHÍNH CỦA CHƯƠNG TRÌNH * Module đổi mật khẩu <?php session_start(); include('config.php'); $act=$_GET['act']; if($act=='view') { include('doimk.htm'); } if ( $act == 'do' ) { $ten=$_SESSION['ten']; $pass1=md5(addslashes($_POST['txtmk'])); $pass2=md5(addslashes($_POST['txtmkm'])); $pass3=md5(addslashes($_POST['txtxnmk'])); //echo $pass1; $sql= "select*from members where username='$ten'"; $result= mysql_query($sql,$conn); $member= mysql_fetch_array($result); if (! $pass1||! $pass2||! $pass3) { print "Bạn hãy điền đầy đủ thông tin .Nhấp vào đây để quay trở lại"; exit(); } elseif($pass1!=$member["password"]) { print " Mật khẩu của bạn chưa đúng. Nhấp vào đây để quay trở lại"; exit(); } elseif($pass2!=$pass3) { print "Mật khẩu mới và xác nhận mật khẩu không giống nhau. Nhấp vào đây để quay trở lại"; exit(); } else { $sql=mysql_query("update members set password='$pass2' where username='$ten' "); print " Chúc mừng bạn!.Mật khẩu đã được thay đổi. "; exit(); } } ?> * Module thêm mới chức vụ <?php include('config.php'); $act=$_GET['act']; $id=$_GET['id']; if($act=='view') { $sql=mysql_query("select macv,tencv,maquyen from chucvu"); include('dscv.htm'); } elseif($act=='sua') { $sql=mysql_query("select macv,tencv,maquyen from chucvu where macv='$id'"); $row=mysql_fetch_row($sql); include('suachucvu.htm'); } elseif($act=='update') { $macv=$_POST['txtmcv']; $tencv=$_POST['txttencv']; $quyen=$_POST['quyen']; $sql=mysql_query("update chucvu set tencv='$tencv',maquyen='$quyen' where macv='$macv' "); if($sql) { $sql=mysql_query("select macv,tencv,maquyen from chucvu"); include('dscv.htm'); } } elseif($act=='delete') {$sql=mysql_query("delete from chucvu where macv='".$id."' "); if($sql) { $sql=mysql_query("select macv,tencv,maquyen from chucvu"); include('dscv.htm'); } } elseif($act=='add') { include('themmoicv.htm'); } elseif($act=='in') { $macv=$_POST['txtmcv']; $tencv=$_POST['txttencv']; $quyen=$_POST['quyen']; $sql= "select*from chucvu where macv='$macv'"; $result= mysql_query($sql,$conn); $member= mysql_fetch_array($result); if ($macv==$member['macv']) { print "Mã chức vụ trùng nhau.Nhấp vào đây để quay trở lại"; exit(); } else { $sql=mysql_query("insert into chucvu(macv,tencv,maquyen) values('$macv','$tencv','$quyen')"); if($sql) { $sql=mysql_query("select macv,tencv,maquyen from chucvu"); include('dscv.htm'); } } } ?> * Module tìm kiếm nhân sự <?php include('config.php'); $act=$_GET['act']; $id=$_GET['id']; if($act=='view') { include('timkiem.htm'); } elseif($act=='timkiem') { $hoten=$_POST['txttnv']; $manv=$_POST['txtmnv']; $phongban=$_POST['phongban']; $chucvu=$_POST['chucvu']; $thamnienct=$_POST['txttnct']; $hopdong=$_POST['hopdong']; $chuyennganh=$_POST['chuyennganh']; if (!$hoten&& !$manv&& !$phongban&& !$chucvu&& !$thamnienct && !$hopdong && !$chuyennganh) {echo " alert('Bạn phải điền ít nhất một thông tin!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } elseif ( $hoten ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where hotennv like '%$hoten%'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ( $manv ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where manv='$manv'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\"";} else { include ("ketquatk.htm"); } } elseif ( $phongban ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where mapb='$phongban'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ( $chucvu ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where macv ='$chucvu' "; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ( $thamnienct ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where thamnienct='$thamnienct'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ($hopdong ) { $sql="select nv_hdld.manv,nhanvien.hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),nhanvien.diachi,nhanvien.dienthoai,nhanvien.mapb,nhanvien.macv from nhanvien,nv_hdld,hopdong where nv_hdld.mahd='$hopdong' and nhanvien.manv=nv_hdld.manv and nv_hdld.mahd=hopdong.mahd"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\"";} else { include ("ketquatk.htm"); } } elseif ( $manv && $chuyennganh ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien,nv_bangcap where nhanvien.manv=nv_bangcap.manv and nv_bangcap.macn='$chuyennganh' and nhanvien.manv='$manv' group by nhanvien.manv"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif($hoten && $manv) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where manv = '".$manv."' and hotennv ='".$hoten."'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ($hoten && $phongban) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where hotennv like '%$hoten%' and mapb='$phongban'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ($hoten && $chucvu) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where hotennv ='$hoten' and macv='$chucvu' "; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ( $manv && $chucvu ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where manv='".$manv."' and macv='".$chucvu."'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\"";} else { include ("ketquatk.htm"); } } elseif ( $phongban && $chucvu ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where mapb='".$phongban."' and macv='".$chucvu."'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ( $manv && $thamnienct ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where manv='$manv' and thamnienct='$thamnienct'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\"";} else { include ("ketquatk.htm"); } } elseif ( $chuyennganh ) { $sql="select nv_bangcap.manv,nhanvien.hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),nhanvien.diachi,nhanvien.dienthoai,nhanvien.mapb,nhanvien.macv from nhanvien,nv_bangcap,chuyennganh where nv_bangcap.macn='$chuyennganh' and nhanvien.manv=nv_bangcap.manv and nv_bangcap.macn=chuyennganh.macn"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\""; } else { include ("ketquatk.htm"); } } elseif ( $manv ) { $sql="select manv,hotennv,DATE_FORMAT(ngaysinh,'%d/%m/%Y'),diachi,dienthoai,mapb,macv from nhanvien where manv='".$manv."'"; $result=mysql_query($sql,$conn); $num=mysql_num_rows($result); if ($num==0) { echo " alert('Không tìm thấy kết quả như bạn yêu cầu. Hãy thử lại!');"; echo " location.href=\"QLNS.php?page=timkiem&&act=view\"";} else { include ("ketquatk.htm"); } } }?> MỤC LỤC Trang DANH MỤC CÁC CHỮ VIẾT TẮT Error! Bookmark not defined. DANH MỤC CÁC HÌNH Error! Bookmark not defined. DANH MỤC CÁC BẢNG BIỂU Error! Bookmark not defined.i DANH MỤC CÁC CHỮ VIẾT TẮT STT Từ viết tắt Ý nghĩa 1 AT&T American Telephone and Telegraph 2 IBM International Business Machines Coporation 3 WAN Wide Area Network 4 LAN Local Area Network 5 MCI Media Control Interface 6 HDI Human Developement Index 7 ARPANET Advanced Research Projects Agency Network 8 TCP/IP Transmission Control Protocol/ Internet Protocol 9 DoD Denial of Service 10 ISP Internet Service Provider 11 FTP File Transfer Protocol 12 IRC Internet Relay Chat 13 WWW World Wide Web 14 CCNA Cisco Certified Network Administrator 15 MCSA Microsoft Certified Systems Administrator 16 KT- KL Khen thưởng- kỷ kuật 17 DSNV Danh sách nhân viên 18 PHP Persional Home Page 19 CSDL Cơ sở dữ liệu 20 HTML HyperText Markup Language

Các file đính kèm theo tài liệu này:

  • doc10292.doc