Beispiel #1
0
        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();
                }
            }
        }
Beispiel #2
0
        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);
        }