CHƯƠNG 3 : GIAO DIỆN VÀ MƠ TẢ CHƯƠNG TRÌNH
3.1. Giao diện phần mềm
3.1.2. Cập nhật loại phòng
- Mơ tả:
+ Người dùng lựa chọn số phịng và cập nhật lại loại phòng theo 3 loại đã được set trong combobox: standard, deluxe, superior.
+ Nút lưu sẽ cập nhật lại loại phòng dựa theo số phòng người dùng đã chọn và lưu và database.
3.1.3 Cập nhật thông tin nhân viên
- Mô tả:
+ Hiển thị thơng tin tồn bộ nhân viên làm việc trong khách sạn bao gồm: số thứ tự và tên nhân viên.
+ Các nút với các chức năng như thêm nhân viên, xóa nhân viên, cập nhật lại thơng tin nhân viên, tìm kiếm theo tên nhân viên, hủy tìm kiếm.
+ Người dùng chọn dòng trên datagridview và click vào các nút để thao tác, mỗi dòng người dùng click trên picturebox hiển thị hình theo từng nhân viên, nếu nhân viên khơng có hình hệ thống sẽ lấy hình mặc định.
3.1.4 Chi tiết phiếu phịng(Nguyễn Trường Giang)
- Mơ tả:
+ Hiển thị các thơng tin về hóa đơn của khách hàng như: loại phòng, tên booking, số khách, ngày vào,
giá phòng, số đêm, số phòng, tên khách, quốc tịch, ngày đi, thành tiền, tên dịch vụ, giá dịch vụ
số lượng,tên nhân viên, ngày của hóa đơn.
+ Bao gồm các nút với các chức năng như: thêm dịch vụ, xóa dịch vụ, lưu khi có sửa đổi, in, và xem lại hóa đơn theo ngày đến trên datetime picker. + Sau khi người dùng nhấn nút lưu thông tin sẽ được lưu vào bảng khách
sẽ chuyển về màn hình chính và hiển thị lên các label của phịng đó thơng tin đã được điền vào và trạng thái phòng sẽ thay đổi từ trống sang có khách. + Khi người dùng nhấn nút thêm, tên dịch vụ được chọn từ combobox và số lượng được điền từ textbox sẽ được insert xuống datagridview chi tiết dịch vụ bên dưới.
+ Khi người dùng nhấn chọn dòng trên datagridview và nhấn nút xóa, thì dịng dl đó sẽ được xóa đi trên datagridview đó.
+ Tên dịch vụ sẽ được load từ database đổ và combobox.
3.1.5 Lịch làm việc nhân viên
- Mơ tả:
+ Hiển thị tồn bộ lịch làm việc của nhân viên trên datagirdview đơng thời có thêm các chức năng: thêm lịch làm việc, xóa lịch làm việc, cập nhật lại lịch làm việc.
+ Người dùng sẽ chọn từ 3 combobox bên tay phải màn hình để thêm lịch làm việc cho nhân viên
3.1.6 Liên hệ
- Mô tả:
+ Hiển thị thông tin của nhà sáng lập ra phần mềm, địa chỉ, email. website liên hệ, số điện thoại, năm phát hành.
3.1.7 Màn hình chính
- Mơ tả: Hiển thị tổng quát toàn bộ các chứng năng của phần mềm bao gồm: + Hiển thị 8 phịng hiện có của khách sạn: mỗi phịng hiển các thông tin như tên booking, tên khách, số khách, quốc tịch, ngày đến, ngày đi, tiền phịng, và tính năng thay đổi trạng thái phịng, 1 button chuyển đến trang chi tiết để điền thông tin hóa đơn, 1 nút check out khi khách trả phịng.
+ Bên tay trái màn hình hiển thị lịch tiện cho người sử dụng quan sát ngày tháng năm.
+ Dưới góc trái hiển thị các màu theo trạng thái phòng như: màu đỏ - phòng đang trống, màu xanh - phịng đang có khách, màu vàng - phịng khách sẽ trả, màu xám - phịng đang dọn dẹp.
+ Góc trên của màn hình là thanh menustrip bao gồm các chức năng tương đương link tới các màn hình của chức năng đó: quản lý phịng, quản lý nhân viên, quản lý khách hàng, thống kê và liên hệ.
3.1.8 Quản lý dịch vụ
- Mơ tả:
+ Hiển thị tồn bộ dịch vụ đang có trong khách sạn như: nước suối, massage, đi tour, đưa đón taxi đi sân bay, giặt ủi....
+ Có các nút chức năng như: thêm dịch vụ, xóa dịch vụ, cập nhật lại dịch vụ dựa theo thao tác chọn dòng từ datagridview của người dùng. Mỗi thao tác sẽ được cập nhật lại xuống database.
3.1.9 Quản lý khách hàng
Hình: Form Quản lý thơng tin khách hàng
Sau khi người dùng kích vào danh mục Quản Lý Khách hàng tại form giao diện chính sẽ đến form Quản Lý Thông Tin Khách Hàng, Form hiển thị thông tin chi tiết khách hàng bao gồm : Mã KH, Tên KH, Địa Chỉ, Điện thoại, Ngày sinh, Số CMND, Giới Tính và phân loại khách hàng(VIP-Thường). Cho phép người dùng nhập dữ liệu, và thực hiện các chức năng như:
Kết quả:
Chức năng thêm khách hàng, cho phép người dùng nhập thông tin từ các Texbox, sẽ hiện thị xuống DatagridView một danh sách khách hàng, thêm khách hàng khi có khách đến khách sạn.
(Lưu ý: Mã KH từ lần thêm sau không được trùng với Mã KH đang tồn tại trong danh sách)
Xóa khách hàng
Cập nhật khách hàng
Chức năng cho phép người dùng sửa thông tin khách hàng khi gặp sự cố, sai xót, hay yêu cầu bổ sung/cung cấp thêm thông tin từ khách hàng. Thông tin khách hàng sẽ được cập nhật lại trong danh sách khách hàng.
Tìm kiếm khách hàng
Với chức năng này, người dùng chỉ cần nhập mã khách hàng cần tìm, sẽ hiện thị thơng tin chi tiết của khách hàng cần tìm kiếm.
Ngồi ra, form Quản lý khách hàng cịn có chức năng CellClick khi người dùng click vào các dịng dữ liệu trên DatagridView thì thơng tin sẽ hiển thị lên các Texbox giúp người dùng dễ dàng sửa, xóa, hay cập nhật khách hàng..
Code phần mềm Quản Lý khách hàng
using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespace PhanMemQuanLyKhachHang
{
public partial class Form1 : Form {
static String connString = @"Data Source=ADMIN\MSSQLSERVER01;Initial Catalog=QL-TTKH;Integrated Security=True";
SqlConnection conn = new SqlConnection(connString); public Form1()
{
InitializeComponent(); }
private void XoaTextBox() { txtMa.Clear(); txtTen.Clear(); txtSocmnd.Clear(); txtDC.Clear(); txtDT.Clear(); txtGT.Clear(); txtKH.Clear(); txtMa.Focus(); }
private void Form1_Load(object sender, EventArgs e) {
try {
if (conn.State == ConnectionState.Closed) conn.Open();
SqlCommand cmd = new SqlCommand("Select *from KhachHang", conn); SqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable(); dt.Load(reader);
dgvKH.DataSource = dt;
if (conn.State == ConnectionState.Open) conn.Close();
}
catch (Exception ex) {
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
private void btnThem_Click(object sender, EventArgs e) {
if (txtMa.Equals("")) {
MessageBox.Show("Không được để trống", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } try { if (conn.State == ConnectionState.Closed) conn.Open();
SqlCommand cmd = new SqlCommand(sqlINSERT, conn); cmd.Parameters.AddWithValue("MaKH", txtMa.Text); cmd.Parameters.AddWithValue("TenKh", txtTen.Text); cmd.Parameters.AddWithValue("soCMND", txtSocmnd.Text); cmd.Parameters.AddWithValue("DiaChi", txtDC.Text); cmd.Parameters.AddWithValue("DienThoai", txtDT.Text); cmd.Parameters.AddWithValue("NgaySinh", dtDate.Value.ToString("yyyy/MM/dd")); cmd.Parameters.AddWithValue("LoaiKH", txtKH.Text); cmd.Parameters.AddWithValue("GioiTinh", txtGT.Text); if (cmd.ExecuteNonQuery() > 0) MessageBox.Show("Thêm khách hàng thành công !"); if (conn.State == ConnectionState.Open) conn.Close(); Form1_Load(sender, e); }
catch (Exception el) {
MessageBox.Show(el.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
private void dgvKH_CellContentClick(object sender, DataGridViewCellEventArgs e) { int i = dgvKH.CurrentRow.Index; txtMa.Text = dgvKH.Rows[i].Cells[0].Value.ToString(); txtTen.Text = dgvKH.Rows[i].Cells[1].Value.ToString(); txtSocmnd.Text = dgvKH.Rows[i].Cells[2].Value.ToString(); txtDC.Text = dgvKH.Rows[i].Cells[3].Value.ToString(); dtDate.Text = dgvKH.Rows[i].Cells[4].Value.ToString(); txtDT.Text = dgvKH.Rows[i].Cells[5].Value.ToString(); txtGT.Text = dgvKH.Rows[i].Cells[6].Value.ToString(); txtKH.Text = dgvKH.Rows[i].Cells[7].Value.ToString(); }
private void btnCapNhat_Click_1(object sender, EventArgs e) {
try {
if (conn.State == ConnectionState.Closed) conn.Open();
string sqlUPDATE = "UPDATE KhachHang set MaKH=@MaKH, TenKh=@TenKh, soCMND=@soCMND, DiaChi=@DiaChi, NgaySinh=@NgaySinh, DienThoai=@DienThoai,
GioiTinh=@GioiTinh, LoaiKH=@LoaiKH where MaKH=@MaKH)";
SqlCommand cmd = new SqlCommand(sqlUPDATE, conn); cmd.Parameters.AddWithValue("MaKH", txtMa.Text); cmd.Parameters.AddWithValue("TenKh", txtTen.Text); cmd.Parameters.AddWithValue("soCMND", txtSocmnd.Text); cmd.Parameters.AddWithValue("DiaChi", txtDC.Text); cmd.Parameters.AddWithValue("DienThoai", txtDT.Text); cmd.Parameters.AddWithValue("NgaySinh", dtDate.Value.ToString("yyyy/MM/dd")); cmd.Parameters.AddWithValue("LoaiKH", txtKH.Text);
if (conn.State == ConnectionState.Open) conn.Close(); Form1_Load(sender, e); XoaTextBox(); }
catch (Exception el) {
MessageBox.Show(el.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
private void btnXoa_Click_1(object sender, EventArgs e) {
if (conn.State == ConnectionState.Closed) conn.Open();
string sqlDELETE = ("DELETE from KhachHang where MaKH='"+txtMa.Text+"'" );
SqlCommand cmd = new SqlCommand(sqlDELETE, conn); if (cmd.ExecuteNonQuery() > 0)
MessageBox.Show("Bạn chắc chắn muốn xóa khách hàng này?", "Xác nhận", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (conn.State == ConnectionState.Open) conn.Close(); Form1_Load(sender, e); XoaTextBox(); }
private void btnTimKiem_Click_1(object sender, EventArgs e) {
if (conn.State == ConnectionState.Closed) conn.Open();
string sqlSELECT = ("Select *from KhachHang where MaKH=@MaKH"); SqlCommand cmd = new SqlCommand(sqlSELECT, conn);
cmd.Parameters.AddWithValue("MaKH", txtMa.Text); cmd.ExecuteNonQuery();
SqlDataReader reader = cmd.ExecuteReader(); DataTable dt = new DataTable();
dt.Load(reader); dgvKH.DataSource = dt; if (conn.State == ConnectionState.Open) conn.Close(); //Form1_Load(sender, e); } } }
3.1.10 Quản lý nhân viên
- Mô tả:
+ Hiển thị toàn bộ lịch làm việc của nhân viên đang có trong khách sạn, bao gồm số thứ tự, tên nhân viên, ca trực, ngày làm trên đó,người dùng khơng được thay đổi thơng tin gì trên màn hình này. Góc trái màn hình có 2 nút là 2 chức năng: Cập nhật thông tin nhân viên, cập nhật lịch làm việc và hiển thị lịch để tiện cho việc quan sát ngày tháng.
- Mơ tả: Hiển thị tồn bộ số phịng đang có trong khách sạn, bao gồm số phịng, loại phịng và giá phịng trên đó, người dùng khơng được thay đổi thơng tin gì trên màn hình này. Góc trái màn hình có 3 nút là 3 chức năng: Cập nhật vật tư, cập nhật dịch vụ, cập nhật loại phòng.
- Mô tả:
+ hiển thị tồn bộ vật tư đang có trong khách sạn như: tivi, tủ lạnh, máy lạnh, bài ủi.....
+ có các nút chức năng như: thêm vật tư, xóa vật tư, cập nhật lại vật tư dựa theo thao tác chọn dòng từ datagridview của người dùng. Mỗi thao tác sẽ được cập nhật lại xuống database.