public void datPhong(ThongTinDatPhong datphong) { SqlConnection conn = new SqlConnection(connectionString); try { conn.Open(); SqlCommand command = new SqlCommand(SP_KHACH_HANG_DAT_PHONG, conn); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@maLoaiPhong", SqlDbType.Int).Value = datphong.MaLoaiPhong; command.Parameters.Add("@maKH", SqlDbType.Int).Value = datphong.MaKH; command.Parameters.Add("@ngayBatDau", SqlDbType.Date).Value = datphong.NgayBatDau; command.Parameters.Add("@ngayTraPhong", SqlDbType.Date).Value = datphong.NgayTraPhong; command.Parameters.Add("@ngayDat", SqlDbType.Date).Value = datphong.NgayDat; command.Parameters.Add("@donGia", SqlDbType.Int).Value = datphong.DonGia; command.Parameters.Add("@moTa", SqlDbType.NVarChar).Value = datphong.MoTa; command.Parameters.Add("@tinhTrang", SqlDbType.NVarChar).Value = datphong.TinhTrang; command.ExecuteNonQuery(); } catch (SqlException ex) { Console.WriteLine("Có lỗi xảy ra khi đặt phòng"); throw ex; } finally { if (conn != null) { conn.Close(); } } }
private void btnDatPhong_Click(object sender, EventArgs e) { if (gridviewPhong.SelectedRows.Count <= 0) { MessageBox.Show("Chưa chọn loại phòng."); return; } ThongTinDatPhong datphong = new ThongTinDatPhong(); datphong.MaLoaiPhong = (int)gridviewPhong.SelectedRows[0].Cells["maLoaiPhong"].Value; datphong.NgayBatDau = dateBatDau.Value; datphong.NgayTraPhong = dateTraPhong.Value; datphong.NgayDat = dateNgayDat.Value; datphong.DonGia = (int)gridviewPhong.SelectedRows[0].Cells["donGia"].Value; datphong.MoTa = txtMoTa.Text; datphong.TinhTrang = comboboxTinhTrang.SelectedItem.ToString(); datphong.MaKH = khachHang.MaKH; if (datphong.NgayTraPhong <= datphong.NgayBatDau) { MessageBox.Show("Ngày trả phòng phải sau ngày bắt đầu"); try { gridviewPhong.Rows.Clear(); } catch (Exception ex) { Console.WriteLine(ex.Message); } return; } int maPhongTrong = datphongDAO.pickAnyAvailableRoom(datphong.MaLoaiPhong, datphong.NgayBatDau, datphong.NgayTraPhong); if (maPhongTrong == -1) { // Không còn phòng trống MessageBox.Show("Không còn phòng trống"); return; } // Đặt phòng // Update hoặc create trạng thái mới "đang sử dụng" cho phòng tương ứng trong các ngày từ ngayBatDau -> ngayTraPhong datphongDAO.datPhong(datphong); DateTime ngay = datphong.NgayBatDau; for (; ngay < datphong.NgayTraPhong; ngay = ngay.AddDays(1)) { datphongDAO.updateTrangThaiPhong(maPhongTrong, ngay, "đang sử dụng"); } MessageBox.Show(String.Format("Quý khách đã đặt phòng thành công (Mã phòng: {0})", maPhongTrong)); GetData(dataAdapter.SelectCommand.CommandText); }