Hotel Management System
Hotel Management System
Hotel Management System
Group 3
Fatima Al-Ghannam 200600561
Fatima Al-Tuhaifa 200700818
Advisor
Mr. Mohammad Zikaria
Prepared for:
ASSE 4311
Assessment 3
Dr.Loay Al-Zubaidi
Abstract
The project aims to build a system for managing the reservation of hotel. This system
has a front-end by using ASP.net with VB and it has a back-end of database which will be
built with Oracle by using Oracle 10g and dreamcoder for oracle. The system will be able to
add, delete and update the room, guest detail, and transaction. This system will find a
solution for recording guest detail, searching for specific guest or available room in easy
way; also it will find solution for calculating the bill automatically. The procedure of hotel
reservation has been analyzed by logging into booking web site for hotel; such as, holiday
inns web site and booking.com. Also; we installed Hotel booking system, which has been
downloaded from http://www.hotelsystems.co.uk/, for more clear understanding of
hotel reservation system. The ASP.net and VB are a new knowledge that we are going to
gain during our working in this project.
Keywords: hotel reservation system, booking, database of hotel.
Contents
Part I Introduction ... 8
1. Introduction ...................................................................................................................
.................8
2. Literature
review ............................................................................................................................
8
3. Proposed
project ...........................................................................................................................
11
a. Objective ..........................................................................................................
............ 11
b. Benefits ............................................................................................................
.............11
c. Preliminary Requirements
Analysis .............................................................................11
d. Technical RequirementsFeasibility .............................................................................12
e. Scope ...............................................................................................................
.............12
f. Visibility
Plane .............................................................................................................1
2
g. Suggested
Deliverables ................................................................................................13
h. Technical
Deliverables .................................................................................................13
Part II Use Cases ..... 16
1. Reception Use
Cases .....................................................................................................................16
a. Search Available
Room ................................................................................................16
b. Booking
Detail ..............................................................................................................
17
c. Booking
Confirmation ..................................................................................................1
8
d. Delete
Guest................................................................................................................
..18
e. Change Guest
Properties ..............................................................................................19
f. Customer
Searcher ........................................................................................................2
0
g. Reminder
Email..............................................................................................................2
1
2. Administrator Use
Cases .................................................................................................................21
a. Login
Administrator....................................................................................................
...21
b. Logout
Administrator ...................................................................................................
.21
c. Add
Room ................................................................................................................
.....22
d. Delete
Room.................................................................................................................
..23
e. Change Room
Properties................................................................................................24
f. View Financial
Report ...................................................................................................25
3. Use Cases
Diagram..........................................................................................................................
.26
Part III
17.
Logical Database
Requirement ........................................................................................................35
18.
Design
Constraint.......................................................................................................................
......36
19.
Standards
complain.........................................................................................................................
.36
20.
Reliability...............................................................................................................
..........................36
21.
Availability.............................................................................................................
..........................36
22.
Security..................................................................................................................
...........................36
23.
Maintainability.......................................................................................................
...........................36
24.
Portability...............................................................................................................
...........................37
Part IV Task Analysis ..38
1. System
Rules...............................................................................................................................
.......38
2. Subtasks.........................................................................................................................
....................38
3. Hierarchical Task
Decomposition ........................................................................................................41
5. Log
in....................................................................................................................................
...............55
Figures
Use Cases
Figure 1: Tables
Figure 2: ER
Figure 3: Reception
Figure 4: Edities
Figure 5: Payment
Figure6: Reminder Email
Figure7: Administration
Hierarchical Task Decomposition
Figure 8: Search for available room
Figure 9: Reservation
Figure 10: Paying
Figure 11: Setting
Interface
Figure 12: Search and Update Form
Figure 13: Checking inserted date
Figure 14: Checking date
Figure 15: Notifying The User That the BookinNo is Empty
Figure 16: Search Result
Tables
10
Part I
1.1- Introduction
The following proposed system aims to develop web application for facilitating
reservation process at hotel. The system provide the reception an easy way for searching
on rooms, listing off rooms, inserting the client information, getting details about specific
client, making a reservation for rooms and doing payment process. This system will be built
by two students of Prince Mohammed Bin Fahed University. They are Fatimah Al Tuhaifa
with ID 200700818 and Fatimah Al Ghannam with ID 200600561
The project consist of two main parts: building solution for data base for storing and
representing metadata in easy way, building a receptions interface that allows the
reception for inserting, deleting, updating, modifying and representing of metadata.
1.2- Literature review
11
12
This article is almost a UML designing. ASP.net is one of the suggested tools for
building this system. This system common with our system in with some of reservation
process; such as, storing the customer information and choosing the payment method.
Also, this system used ASP.net as our system but it differs in the kind of user, this system is
used online by the guest while our system is used locally by the employee of the hotel [3].
Fernandez,E& Yuan, X,(1999). An Analysis Pattern for Reservation and Use of
Reusable Entities.PloP 1999 conference, Retrieved from
http://hillside.net/plop/plop99/proceedings/Fernandez2/reservAnalysisPattern3.PDF.An
Analysis Pattern for Reservation and Use of Reusable Entities is an article that focuses on
the pattern for making a reservation for hotel. This article is written by Fernandez and Yuan.
First it goes through the problem then solution, requirements and consequences. The article
is supported with some diagrams that make the understanding more clear.
The problem occurs when the user needs to reserve a hotel room or vehicle for that
the system needs a table for hotel rooms and vehicle. In order to avoid duplicate
reservation for same room or vehicle the system needs a table for available rooms and
vehicle. Also, the user may needs to review the reservation so the system has a table for
reservation.
In the solution part the article first discussed the use case for requirements. The first
use case is making reservation, in this case the user make research for available demand
by using date. When the demand which is room or vehicle is available the user can do
reservation. The second use case is use a reserved entity. In this case when the usage of
reservation is done, the room or vehicle is recorded as available again. The third use case is
modifying the reservation. The fourth use case is cancelling the reservation.
13
This system can be used for other reservation like seats for flight. Also, this system
can record the history of reservation. This system is similar to our system in making
reservation and history but differs in environment. This system is an online system and the
guest is the one who is responsible for reservation while our system is local system and the
reception is the one who is responsible of reservation [1].
Lauesen, S, (2003),Task Descriptions as Functional Requirements, I E EE C o m p u t e
r S o c i e t y, Retrieved from http://www.itu.dk/~slauesen/Papers/IEEEtasks.pdf. The author
wrote a paper to describe the functional requirement for hotels and hospitals. Theses
functional requirements indicate what the system shall do, data requirements indicate what
it shall store, and quality requirements indicate how quickly or how easily it shall perform.
This article focuses on functional requirements, which usually describe a system's input,
output, and the relationship between the two.
The article has 3Unified Modelling Language use case diagram between the
receptionist and the hotel system. The first UML deals only with the computer system's
actions; the second a use case that specifies separate human and computer actions; and
the last is a task descriptions, which do not separate human and computer actions. These
UML diagram helps us to understand the functional requirements a hotel management
system.
Also the article include figures, each figure describe subtasks. The first figure is a task
descriptions for a hotel's reception work area. The second figure is a tasks and support
description of hotel check-in. The last figure describe high-level tasks for innovation and
business process redesign.
14
This system is similar to our system in the solutions that going to be provide to the
user. Such as finding a room for guest, and receive service [2].
http://owl.english.purdue.edu/owl/resource/560/01/.This web site provides us with the way
of writing a proposal or essay with APA style.
1.3- Proposed Project
1.3.1 Objectives
Developing hotel reservation system solution.
1.3.2 Benefits:
1.3.2.1
The system will have history about reservation and guest so that can be called
whenever they are needed which helps in checking any mistake.
1.3.2.2
Making the reservation easier.
1.3.2.3
Finding the available room in short time.
1.3.3 A Preliminary Requirements Analysis:
1.3.3.1)
Database :
15
1.3.4.2) Web: our group will develop the web application with Visual Studio 2008 using
asp.net and Visual basic.
1.3.5 Scope:
The system provide the employee who works in the reception the ability to do
reservation for the hotel guests; by searching for available rooms, inserting the guest
information, making the reservation and the payment process. This system is build using a
database that will be hosted an Oracle database and a web interface using the Visual
Studio 2008 ASP.net. In this project there are one model: The reservation model accept the
guest details, rooms details, card details and date on check in and checkout. Also, deals
with the hotel rooms by adding and removing rooms.
1.3.6 Visibility Plan :
Internal The group will meet weekly on Sunday and Tuesday morning from 8:00 am to
12:00 pm and with Mr. Mohammad Zikria on Wednesday morning from 9:00 am to 10:00
am to discuss progress and problems. Meeting minutes will be kept track of and sent to all
members of the Group for reference. Any additional communication will be done via email
or through other collaboration tools such as document sharing. In addition, the source code
will be stored at all members PCs, a repository for the project. All source code will be
documented carefully before being submitted to the repository. The progress of the
principal activities and major milestones will be closely monitored and compared with the
schedule. During the regular meetings, progress will be compared to our chart, which will
be drafted after the completion of the requirements study when the tasks are identified and
assigned.
16
17
Figure
2
18
19
Reception
System
Preconditions:
The reception must insert the check-in and check-out date.
Triggers:
The reception clicks the button " Search "
Basic Scenario :
1.
2.
3.
4.
5.
20
Reception
System
Preconditions:
The reception must be done with the room search.
Triggers: Reception click on the button " Save"
Basic Scenario:
1. Check-in date, check-out date and the first six rooms that have been chosen will
upper automatically.
2. The reception fill the Guest Details " First and last name, Address, e-mail, telephone
number and finally the guest identification number" .
3. Then the reception must fill the guest credit card information " Credit card number,
credit card holder name, and the credit card expire date".
4. Then the reception clicks on "Save" to save all the information in the database.
5. The system will check the information before saving it in case the reception forget to
insert any of the important information.
Post condition: The reception have completed the booking details.
2.1.3 Payment
Goal : Reception Confirms the room booking.
Actor:
21
Reception
System
Preconditions: Reception must be done with the room search and the booking details.
Triggers: Reception clicks button "Confirm"
Basic Scenario:
1. The booking details will upper on a table automatically.
2. There will be a booking number so the reception can do motivation for the booking on
the future.
3. The reception will specify the payment date and the mood " Cash, check, or credit
card"
4. The credit card number and the total cost will upper automatically on the page.
5. After completing all the payment details the reception clicks on confirm.
Post Condition: The room booking will be confirmed.
2.1.4 Delete Guest
Goal: Delete a guest form the system.
Actors:
Reception
System
Preconditions: Reception must be able to access the system via a web browser.
Triggers: Reception clicks button "Delete Guest"
Basic Scenario:
1. Reception clicks button to initiate the delete process.
22
2. System prompts the Administrator to select a guest by searching using the guest
identification or viewing a list of guests.
3. System display guest information.
4. System confirms deletion of selected guest.
5. System displays home page.
Post conditions: A guest has been deleted within the system.
2.1.5 Change Guest Information
Goal: Alter properties such as telephone number or email of the guest.
Actors:
Reception
System
Preconditions: Reception must be able to access the system via a web browser.
Triggers: Reception clicks button "Change Guest Properties"
Basic Scenario:
1. Reception clicks the button to initiate change guest properties process.
2. System prompts the Administrator to a guest by searching using the guest
identification or viewing a list of guest.
3. System displays the guest properties.
4. System alters the guest properties.
5. System displays the home page.
Post conditions: A room has been altered within the system.
2.1.6 Customer Search
Goal: Modify or delete a customer information.
23
24
1. The Reception clicks to view a list with the entire guest who will check in after 2 days.
2. The Reception clicks "Send" to send a remainder email to each guest.
2.2 Administrator Use Cases
2.2.1 Login Administrator
Goal: To login to an Administrator account with the system.
Actors:
Administrator
System
Administrator
System
25
Administrator
System
Preconditions: Administrator must be able to access the system via a web browser.
Triggers: Administrator clicks button to "Add Room"
Basic Scenario:
1.
2.
3.
4.
5.
26
Actors:
Administrator
System
Preconditions: Administrator must be able to access the system via a web browser.
Triggers: Administrator clicks button "Remove Room"
Basic Scenario:
1. Administrator clicks button to initiate the remove process.
2. System prompts the Administrator to select a room by searching using the room
number or viewing a list of rooms.
3. System display room information.
4. System confirms deletion of selected room.
5. System displays account home page to administrator.
Post conditions: A room has been deleted within the system.
2.2.5 Change Room Properties
Goal: Alter properties such as view or type of the room.
Actors:
Administrator
System
Preconditions: Administrator must be able to access the system via a web browser.
Triggers: Administrator clicks button "Change room Properties"
Basic Scenario:
1. Administrator clicks the button to initiate change room properties process.
27
2. System prompts the Administrator to select a room by searching using the room
number or viewing a list of rooms.
3. System displays the room properties.
4. System alters the room properties.
5. System displays the account home page to Administrator.
Post conditions: A room has been altered within the system.
Administrator
System
Preconditions: Administrator must be able to access the system via a web browser.
Triggers: Administrator clicks button " Report".
Basic Scenario:
1. System prompts the Administrator to select two dates.
2. System will display the revenue for that specific time.
Figure 3: Reception
28
Figure 5: Payment
29
Figure7: Administration
30
Part III
31
Abbreviations.
SRS Software Requirements Specification
HMS Hotel Management System
Subjective satisfaction The overall satisfaction of the system
End users The people who will be actually using the system
3.2
Overview
The SRS is organized into two main sections. The first is The Overall Description and
the second is the Specific Requirements. The Overall Description will describe the
requirements of the HMS from a general high level perspective. The Specific
Requirements section will describe in detail the requirements of the system.
32
Describes the general factors that affect the product and its requirements. This section
does not state specific requirements. Instead it provides a background for those
requirements, which are defined in section 3, and makes them easier to understand.
3.4
Product Perspective
Product Functions
33
User Characteristics
3.9
Apportioning of Requirements
The audio and visual alerts will be deferred because of low importance at this time.
34
3.10Specific Requirements
This section contains all the software requirements at a level of detail, that when combined
with the system context diagram, use cases, and use case descriptions, is sufficient to
enable designers to design a system to satisfy those requirements, and testers to test that
the system satisfies those requirements.
3.10.1
External Interfaces
The Hotel Management System will use the standard input/output devices for a personal
computer. This includes the following:
Keyboard
Mouse
3.10.2
User Interfaces
Description
Log into the system as Administration
Retrieve button, update/save reservation, cancel
reservation, modify reservation, , accept payment
Hotel Payment
Customer Record
Administer Rooms
Reports
3.10.3
type/credit card
Accept payment for room.
Delete or update customer records
Add, modify and delete rooms.
Select, view
Software Interfaces
35
Hardware Interfaces
Communication Interfaces
The system shall be a standalone product that does not require any communication
interfaces.
3.11Functional Requirements
Functional requirements define the fundamental actions that system must perform.
The functional requirements for the system are divided into two main categories,
Reservation/Booking, and Management. For further details, refer to the use cases.
1. Reservation/Booking
1.1. The system shall record reservations.
1.2. The system shall record the customers first name.
1.3. The system shall record the customers last name.
1.4. The system shall record the mobile number.
1.5. The system shall record the room number.
1.6. The system shall display the default room rate.
1.7. The system shall record the customers email.
1.8. The system shall generate a unique confirmation number for each
reservation.
1.9. The system shall automatically show the customers that have reservation
after two days and send a reminder email to them
36
check-in date.
1.11.
checkout date.
1.12.
addition of rooms.
2.2.
deletion of rooms.
2.3.
modification of rooms.
37
3.12Nonfunctional Requirements
Functional requirements define the needs in terms of performance, logical database
requirements, design constraints, standards compliance, reliability, availability, security,
maintainability, and portability.
3.12.1
Performance Requirements
The load time for user interface screens shall take no longer than two seconds.
3.12.2
The logical database requirements include the retention of the following data elements.
Booking/Reservation System
Customer address
Assigned room
Confirmation number
Payment type
3.12.3
38
Design Constraints
Standards Compliance
There shall be consistency in variable names within the system. The graphical user
interface shall have a consistent look and feel.
3.12.5
Reliability
Specify the factors required to establish the required reliability of the software system at
time of delivery.
3.12.6
Availability
Security
Maintainability
The Hotel Management System is being developed in ASP.net.Visual studio is one of the
products that are used for building the system. This product is chose because it provides
39
the user developers a compelling development environment for Windows and. NET
platforms. This product helps in building Windows application, console application, Windows
service, Windows mobile applications, ASP.NET application and ASP.NET web services with
C++, C#, VB or J#. Also, you can add additional tools that help in building interface in easy
way. For the end user, the ASP and VB is used in developing Hotel Management System.
Also, it helps in creating Crystal report and connection with the database by using ODB. The
other product that has been chosen is Oracle Database 10g Express Edition. It has been
chosen for the background of the system. As it can build the tables and quires in easy way
and connected with the end user in effective way.
3.12.9
Portability
The Hotel Management System shall run in any Microsoft Windows environment.
40
Hotel management system has two use cases. First one is the administrator and the second
one is the reception side. The administrator has the permission to use all task in the system
but for the rooms setting he/she has to log into the system with successful user and
password. The reception primarily concerned with siven tasks: searching available room,
doing reservation to the available room, doing the process for paying or canceling the
booking, doing the setting for guests and credit card, finding out information about specific
booking and sending a reminder to the guests before check-in day.
4.1 System Rules
1.
2.
3.
4.
5.
6.
7.
The
The
The
The
The
The
The
reception can use the system without authentication. But his/her use is limited.
reception cannot insert the Room setting.
admin needs to log in to use the Room setting.
check in data has to be bigger or equal to the current date.
check in data has to be smaller than the check out date.
required text box has to be filled.
Booking ID, Booking Detail ID and Payment ID will be inserted automatically by
41
4.2 Subtasks
searching is almost a small system that is used as a sub system in the hotel
management system to find available room. In order to do this, the reception
must know the check in day, check out day, may choose the type of view or the
type of room. Then the reception submits this information to the system and the
system will find out the available room according to this information. And the
system will generate a list of available room that meet these information. After
that the reception can choose the wanted room to do a new reservation or to do
update for old reservation. For the update process the reception will need the
booking number.
To do a reservation to the available rooms, the reception needs the names of the
required rooms. Fill the information about the guest and credit cards information.
Then the reception can submit the required detail for reservation or go back to
the home page without doing the reservation. After the reservation is done, the
system will show the reservation's detail.
The process for paying can be done after the reservation immediately or before
doing the checkout day. In order to do the paying, the reception needs to know
which booking he/she going to do the paying for. So this process needs the
booking number, payment information; such as, mode of payment, if it is cash or
by credit card the payment process needs the date of payment and the total cost.
42
Some times the hotel needs to know information about specific booking, for that
the system provides the user with ability to find this required information. In this
case, the reception needs the booking ID.
For sending a reminder to the guest, the system has a button called reminder.
When the reception clicks this button, the system will check all the check in days
and it will send a reminder to guests whose check in day after two or one days.
For doing the setting for hotel rooms and it is category, user needs to be admin
and needs to log into the system before doing the setting for the rooms. In this
setting the user can delete, update and add room. For deleting the user needs the
rooms ID. For updating the user needs the rooms ID and inserting the new detail.
For adding the, if the user want to add new room needs to know the ID for the
category and to insert new ID for the new room. If the user wants to add new
category, needs to insert new ID, rooms floor, rooms category, rooms price.
43
44
Figure 9: Reservation
45
46
47
48
Interface
5.1 Search
this task is needed to make finding out the available rooms easier. During the searching the
system needs to ensure that there is no conflict in the chosen room. The system has to
ensure that the wanted room in the specific time is not assigned to other guest in that time.
Because the guest may demand specific rooms features; such as, the type of the room or
the view of the room, the system provide the user with the ability of choosing the type of
view and the type of the room. After the criteria of the search are determined, the system
connects with the database to find out the rooms that concerned with these required
49
50
If the user insert a date that is past or the check out date is earlier than the check in date
the system will pop up a message box to notify the user about the mistake that has been
done.
51
52
If the search is done successfully, the system generates a list of available rooms in grid
view with check box. This check box enables the user to choose the room from the grid
view. After checking the box, the user can do a new reservation or can do an update to old
reservation. The system has a text box for inserting a booking number which is needed to
find the old reservation from the database and does the change.
53
As the system aims to make the process in hotel management easy to the end user, the
two text boxes which are used to insert the check in date and check out date are provided
with calendar extender. So, whenever the user clicks on these two text boxes, a calendar
will show up. The user can choose date from it and it will be written automatically in the
text box.
5. 2 Booking
After the submission of booking is clicked, the system willforward to booking page with
keeping the ID of the rooms and category that has been chosen by using the session. Then
the booking page will load the session in the text boxes. In addition to that, the guest detail
54
will be needed to fill other text boxes. Some of this information is mandatory; such as, first
name, last name, ID and email. The first name and last name are mandatory to help the
reception to ensure who reserve the specific room. ID helps in making the delete or the
update for the guest detail. On the other hand, the email is important for sending the
remainder to the user.
55
the exit button which will transfer the current page to the home page which is the search
page.
For preventing the user to do a reservation when there is any field of the mandatory is
empty, when the save button is clicked the system will check if any of the mandatory field
is empty or not. If one of them field is empty, the system will not do the booking and it will
pop up a message box that notifies the user about the empty field.
56
Because the user could insert Invalid e mail address, the system is provided with the
checker that going to check if the email address is written correct or not. The checker will
check if the email address has a @ character and if it has a dot (.) character. If the written
email is unveiled, a message will be written that tells the user that the email is Invalid.
5.3 Paying
after the reservation are done, the user can transfer to the home page or can transfer to
57
the paying page. In the paying page, session is used to provide the page with grid view of
the guest detail who want to do payment and his/her reservations detail. Also, this page
has a text box for booking detail, which will be field automatically by the session value,
also, it has a text boxes for total cost, payment date and credit card. In addition to that, it
has drop down list for payment mode. The total cost calculates and field automatically.
Figure 22:
Payment Form
58
the reception can get all information about specific guest. He/ she can know the guest's
first name, last name, telephone, email, address, his/her reservation room and payment
statue by inserting a booking number and clicking on detail button. Also, the web site has a
text boxes for enabling the reception to do update or delete the guests detail.
Figure 24:
Guest Setting Form
Figure 26: Finding all Guests' information by clicking the all button
59
60
When the delete button is clicked message will show up to ask the user if he/she is sure
that he/she want to delete, if he/she clicks Yes the delete will be done. But if he/she clicks
No, nothing will be happen.
5.5 Log in
the administrator who is responsible for doing rooms setting. but before doing the room
setting the administrator has to log in. the system has a authentication for the
administrator when he/she log in will be in the home page but if he/she try to use the room
setting page without log in the system will transfer him/her to the log in page.
61
If the administrator inserts wrong username or password the system will notify the user by
the mistake.
If the login is done successfully, the web page will transfer to the home page or to
application that wanted to use before login. If the page transfer to the home page, the
home page will has the name of the username and the log out.
62
The web site has two different types for financial report. One views the financial report for
one day. And the other is viewing financial report for specific period of time.
63
Reminder
The web site will send an email to the guests before there check in date by two days.
Part VI Challenges
The real difficulty was that we do not know how to start with a language that we do not
64
know anything about. We did not know if we need to write the codes or to drags things,
what are the properties and features of this language. What functions and keywords that
can help in this project; such as, in printing a table of the wanted date, taking the value
from the text box and uses it in functions, taking a single value from the data base(end
back) and uses it in the interface (end front).
The first challenge that we faced is how to deal with ASP.net and what we shall use with a
Visual Basic or a C#. we did a search for finding a solution to this, and most of the website
shows how to write a ASP codes and Visual Basic or C# codes without saying where we
have to write and because Dr.Ammar talked with us in data base theory about web
developer with Visual basic, we try to search this software and we find that we can use a
Visual Studio that has a web site developer with ASP. But until that time we do not know
where we can use the VB codes or the C# code and with keeping search and trying we find
where to put the VB or C# codes.
After that we keep searching about VB and C# to decide which support language we are
going to choose. We have tried some codes with VB and C# and the first one that worked
with us which is the VB we have depended it.
The most important step is how to connect the web with the data base (Oracle). We found
the following way:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\ MymdbFile.mdb;User
ID=Admin;JetOLEDB:Database Password=You'rePassword;
65
Most of the web site used this which is for Microsoft Access while our project is Oracle data
base. For that, we search for a compatible provider with Oracle. We have tried this
providers OraOLEDB.Oracle and SQLOLEDB but the solution was OraOLEDB.Oracle.1 but
even with this we got an error and we found the solution that we have to add a reference in
config page. YouTube showed as how to add this reference which is a
System.Data.OracleClinet.
Most big challenge is the date. We need the date for inserting check in date and check out
date to find the available room. And the problem was when we insert the date by using the
calendar extender, the date is inserted as mm/dd/yyyy, while the Oracle accepts it as
yyyy/mm/dd. the first solution came to our mind to do conversion to the text boxs value
from string to date. We have used this following code
Date.FromOADate(Val(txtStartDate.Text)
The insertion works well with this codes but when we do the comparing between the
current date and this conversion date, it does not work well. After a weeks, we find that we
got another problem which is this conversion converse the date to 1900 year not as the
current year. So we try to find another solution; such as,
Date.FromFileTimeUtc(Val(TextEndDate.Text)
and even this has same problem as the first one. After long searching, we found two
66
solutions for this problem. One is that we can change the format of the date by using the
form attribute in the calendar extender. This can be shown in the following codes
<asp:CalendarExtenderID="CalendarExtender1" TargetControlID="txtStartDate"
runat="server" Format="yyyy/MM/dd" OnClientDateSelectionChanged="checkDate" />
the other solution is putting a commend like date_to inside the insertion the following codes
clarify this commend:
In our project we have chose the first solution which is with calendar extender.
The other challenge is how to transfer form one page to another page without losing
specific value or with transfer specific value form one page to other page. After searching,
we found that Microsoft has several solutions to this problem and our chose was by using
the session.
Session("field88") = txtStartDate.Text
one of the most important challenges is how to generate data from the data base to the
interface. (in the grid view).
We did not know exactly what feature in ASB and VB can help us. With searching we found
that we can use the data set but how we can write the SQL commend. The solution was by
67
Dim c As Control
For Each c In form1.Controls
If c.Text = String.Empty Then
MsgBox("Please Enter the " &c.Name, MsgBoxStyle.Information, "Note")
c.Focus()
End If
Next
With the above code the web will check all text box even if there is no need to check.
Also, we have tried these
CheckIn.Text<>vbNullString
CheckIn.Text.Length = 0
For completing our data in data base we have to get some single value from the data base
to the inter face. Then, applies it in some function or commend to insert it a gain in
68
different field. For example, when we want to calculate the total cost we have to get the
price from the data base to the VB. First we used an ExecuteScalar (); but it does not work
with us. So, we have tried to solve the problem with the data set. The following codes is
the used solution;
price = myDataSet.Tables("R").Rows(0).Item("Rprice")
Part VII
Conclusion
The ability to search about specific information or detail before and after doing hotel
reservation or to organize hotel's room in easy way with customizing customer detail and
checking the valid credit card are some purpose to build system which makes dealing with
these requirement possible with easy and fast way. Hotel management system is built to
find suitable solution for reservation and customization of rooms, customers, payments and
credit cards. This system deal with the database as a end back which based on Oracle and
its interface based on ASP and Visual basic. The interface aims to make reservation and
using other tools easy to every one without needing to learn how to use. The Visual basic
has the responsibility of checking valid credit card, exist of customer ID , finding the
available room .
Appendix A
CODES
8.1 VB And ASP
8.1.1
<asp:TextBoxID="TextBox5"runat="server">
69
70
71
InsertCommand.Dispose()
Conn.Close()
MsgBox(" OK ", MsgBoxStyle.Information)
ElseIf Not reader.Read Then
MsgBox(" The room category not exist in Room Category table ", MsgBoxStyle.Information)
End If
8.1.4
MsgBox(" The room ID does not exist in Rooms Table ", MsgBoxStyle.Information)
End If
8.1.5
72
73
CMD.Connection = Conn
CMD.CommandType = CommandType.Text
CMD.CommandText = "SELECT RCID FROM RoomC WHERE RCID = '"& TextBox2.Text &"'"
Dim reader As OleDbDataReader
reader = CMD.ExecuteReader
If reader.Read Then
UpdateCommand.CommandType = CommandType.Text
UpdateCommand.CommandText = "UPDATE RoomS set RCID=? WHERE RID =? "
UpdateCommand.Parameters.Clear()
UpdateCommand.Parameters.AddWithValue("?", TextBox2.Text)
UpdateCommand.Parameters.AddWithValue("?", TextBox1.Text)
UpdateCommand.ExecuteNonQuery()
UpdateCommand.Dispose()
Conn.Close()
MsgBox(" OK ", MsgBoxStyle.Information)
ElseIf Not reader.Read Then
MsgBox(" The room category does not exist in Room Category table ",
MsgBoxStyle.Information)
End If
8.1.6
For Adding calendar extender, the toolkitScriptManager has to be added. Then the
colander drags from the Ajax toolbox:
<asp:ToolkitScriptManagerID="ToolkitScriptManager1" runat="server">
74
</asp:ToolkitScriptManager>
<asp:TextBoxID="txtStartDate"runat="server"></asp:TextBox>
<asp:CalendarExtenderID="CalendarExtender1" TargetControlID="txtStartDate"
runat="server" Format="yyyy/MM/dd" OnClientDateSelectionChanged="checkDate" />
8.1.7
session that is used for saving the value of the text box:
Session("field88") = txtStartDate.Text
Session("field99") = TextEndDate.Text
8.1.8
Search Code
This following code is for doing the search for the available room:
Dim Conn As New OleDbConnection("Provider=OraOLEDB.Oracle.1;Data
Source=localhost;User ID=HR;Password=amanigeama;Unicode=True")
Dim MyCmd As New OleDbCommand
Dim myDataSet As New DataSet
myDataSet.Clear()
Conn.Open()
MyCmd.Connection = Conn
MyCmd.CommandType = CommandType.Text
75
currentDate = System.DateTime.Now
If txtStartDate.Text<TextEndDate.Text Then
If System.DateTime.Now<txtStartDate.Text Or System.DateTime.Now<TextEndDate.Text
Then
If DropDownList2.Items(0).Selected = True Then
If DropDownList1.Items(0).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RS.rid NOT IN
(SELECT RS.rid FROM RoomC RC, BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <=
BD.CheckIn AND '"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(1).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.category = '"&
DropDownList1.Items(1).Value &"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC,
BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <= BD.CheckIn AND
'"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(2).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.category = '"&
DropDownList1.Items(2).Value &"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC,
BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <= BD.CheckIn AND
'"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(3).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
76
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.category = '"&
DropDownList1.Items(3).Value &"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC,
BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <= BD.CheckIn AND
'"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(4).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.category = '"&
DropDownList1.Items(4).Value &"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC,
BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <= BD.CheckIn AND
'"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(5).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.category = '"&
DropDownList1.Items(5).Value &"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC,
BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <= BD.CheckIn AND
'"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
End If
ElseIf DropDownList2.Items(1).Selected = True Then
If DropDownList1.Items(0).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.Rview = '"&
DropDownList2.Items(1).Value &"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC,
BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <= BD.CheckIn AND
'"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
77
78
End If
ElseIf DropDownList2.Items(2).Selected = True Then
If DropDownList1.Items(0).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.Rview = '"&
DropDownList2.Items(2).Value &"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC,
BOOKINGDETAIL BD WHERE ( '"&txtStartDate.Text&"' <= BD.CheckIn AND
'"&TextEndDate.Text&"' >= BD.CheckOut) AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(1).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.Rview = '"&
DropDownList2.Items(2).Value &"'AND RC.category = '"& DropDownList1.Items(1).Value &"'
79
AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC, BOOKINGDETAIL BD WHERE
( '"&txtStartDate.Text&"' <= BD.CheckIn AND '"&TextEndDate.Text&"' >= BD.CheckOut)
AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(2).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.Rview = '"&
DropDownList2.Items(2).Value &"' AND RC.category = '"& DropDownList1.Items(2).Value
&"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC, BOOKINGDETAIL BD WHERE
( '"&txtStartDate.Text&"' <= BD.CheckIn AND '"&TextEndDate.Text&"' >= BD.CheckOut)
AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(3).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.Rview = '"&
DropDownList2.Items(2).Value &"' AND RC.category = '"& DropDownList1.Items(3).Value
&"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC, BOOKINGDETAIL BD WHERE
( '"&txtStartDate.Text&"' <= BD.CheckIn AND '"&TextEndDate.Text&"' >= BD.CheckOut)
AND RS.rid = BD.rid)"
ElseIf DropDownList1.Items(4).Selected = True Then
MyCmd.CommandText = "Select RS.rid, RC.RCID, RC.Category, RC.Rprice, RC.RFloor,
RC.Rview FROM RoomC RC , RoomS RS WHERE RC.RCID = RS.RCID AND RC.Rview = '"&
DropDownList2.Items(2).Value &"' AND RC.category = '"& DropDownList1.Items(4).Value
&"' AND RS.rid NOT IN (SELECT RS.rid FROM RoomC RC, BOOKINGDETAIL BD WHERE
( '"&txtStartDate.Text&"' <= BD.CheckIn AND '"&TextEndDate.Text&"' >= BD.CheckOut)
AND RS.rid = BD.rid)"
80
End If
End If
MyCmd.Parameters.Clear()
MyCmd.Parameters.AddWithValue("?", txtStartDate.Text)
MyCmd.Parameters.AddWithValue("?", TextEndDate.Text)
Dim adapter As New OleDb.OleDbDataAdapter(MyCmd.CommandText, Conn)
adapter.Fill(myDataSet, "0")
GridView1.DataSource = myDataSet.Tables("0")
GridView1.DataBind()
Else
8.1.9
Log in code
<asp:LoginViewID="LoginView1" runat="server">
<LoggedInTemplate>
<spanclass="input">You are logged in. Welcome </span>
<asp:LoginNameID="LoginName1" runat="server" />
</LoggedInTemplate>
<AnonymousTemplate>
You are not logged in. Click the Login link to sign in.
<asp:ButtonID="button7" runat="server" onclick="button7_Click"
Text="Reminder" />
</AnonymousTemplate>
</asp:LoginView>
<br />
<asp:LoginStatusID="LoginStatus1" runat="server" />
8.1.10
81
82
Using reader to check if the customer ID is exit or not, before doing insert to the Guest
detail.
Dim CMD As New OleDbCommand
CMD.Connection = Conn
CMD.CommandType = CommandType.Text
CMD.CommandText = "SELECT CID FROM CUSTM WHERE CID = '"& TextBox7.Text &"'"
Dim reader As OleDbDataReader
reader = CMD.ExecuteReader
8.1.11
price = 0
chi = CheckIn.Text
cho = Checkout.Text
day = DateDiff(DateInterval.Day, chi, cho)
Dim RomPrice As New OleDbCommand
RomPrice.Connection = Conn
83
84
RomPrice.CommandType = CommandType.Text
RomPrice.CommandText = "SELECT Rprice from RoomC WHERE RCID = '"& TextBox19.Text
&"'"
Dim Room As New OleDb.OleDbDataAdapter(RomPrice.CommandText, Conn)
Room.Fill(myDataSet, "R1")
price = myDataSet.Tables("R1").Rows(0).Item("Rprice")
price = price * day
myDataSet.Clear()
8.2
Database codes
8.2.1
Tables
8.2.1.1CUSTOMER TALBE
CREATE TABLE CUSTM (
CID
CFirstName
CLastName
Address
GENDER
PhoneNUM
Email
VARCHAR(255),
CHAR(2),
VARCHAR(15),
VARCHAR(25) NOT NULL,
85
8.2.1.2
Category
VARCHAR(30),
Rprice
NUMBER,
RFloor
VARCHAR(15),
Rview
VARCHAR(15),
CONSTRAINT ROOM_CATE_ID_PK
PRIMARY KEY ( RCID ),
CONSTRAINT ROOM_CATE_ID_NN
CHECK ( "RCID" IS NOT NULL )
);
8.2.1.3
ROOMs TALBE
86
BOOKING TALBE
CheckOut
TotalRoom
NUMBER,
TotalPrice
CID
NUMBER,
VARCHAR(20) NOT NULL,
CONSTRAINT B_ID_PK
PRIMARY KEY (BID),
87
CONSTRAINT B_ID_NN
CHECK ( "BID" IS NOT NULL ),
CONSTRAINT B_CHECKIN_NN
CHECK ( "CheckIn" IS NOT NULL ),
CONSTRAINT B_CheckOut_NN
CHECK ( "CheckOut" IS NOT NULL ),
CONSTRAINT B_CID_NN
CHECK ( "CID" IS NOT NULL ),
CONSTRAINT B_PayStatue _NN
CHECK ( "PayStatue" IS NOT NULL )
);
8.2.1.5
BOOKINGDETAIL TALBE
BID
RID
RCID
CheckIn
CheckOut
TotalDays
TotalPrice
88
CONSTRAINT ROOM_BOOK_ID_PK
PRIMARY KEY ( RBID),
CONSTRAINT ROOM_BOOK_ID_NN
CHECK ("RBID" IS NOT NULL ),
CONSTRAINT BOOK_RooM_ID_NN
CHECK ( "BID" IS NOT NULL ),
CONSTRAINT ROOM_BOOK_RID_NN
CHECK ( "RID" IS NOT NULL ),
CONSTRAINT ROOM_CET_BOOK_ID_NN
CHECK ( "RCID" IS NOT NULL )
);
ALTER TABLE BOOKINGDETAIL ADD CONSTRAINT R_BOOING_ID_FN
FOREIGN KEY ( BID )
REFERENCES Booking( BID )
;
ALTER TABLE BOOKINGDETAIL ADD CONSTRAINT R_BOOK_ROOM_FN
FOREIGN KEY ( RID )
REFERENCES RoomS( RID )
;
ALTER TABLE BOOKINGDETAIL ADD CONSTRAINT R_CET_BOOK_ROOM_FN
FOREIGN KEY ( RCID )
REFERENCES RoomC( RCID )
89
CreditCard TALBE
CardName
CardExpir
CONSTRAINT CREADIT_CARD_ID_PK
PRIMARY KEY (CreditCardNo),
CONSTRAINT CREADIT_CARD_ID_NN
CHECK ( CreditCardNo IS NOT NULL ),
CONSTRAINT CREADIT_CardName_NN
CHECK ( CardName IS NOT NULL ),
CONSTRAINT CREADIT_CardExpir_NN
CHECK ( CardExpir IS NOT NULL )
);
8.2.1.7
Payment TALBE
NUMBER,
90
CONSTRAINT PAYMENT_ID_PK
PRIMARY KEY (PaymentID),
CONSTRAINT PAYMENT_ID_NN
CHECK ( PaymentID IS NOT NULL ),
CONSTRAINT PAYMENT_PAY_MOD_NN
CHECK ( "PMID" IS NOT NULL ),
CONSTRAINT PAY_CREADIT_CARD_NO_NN
CHECK ( CreditCardNo IS NOT NULL ),
CONSTRAINT PAY_BID_NN
CHECK ( BID IS NOT NULL ),
CONSTRAINT PAY_PaymentDate_NN
CHECK ( PaymentDate IS NOT NULL )
);
ALTER TABLE Pyment ADD CONSTRAINT PAY_BOOKINGID_FN
FOREIGN KEY ( BID )
REFERENCES Booking( BID )
;
91
92
93
94
95
8.2.3 Trigger
8.2.3.1
Creating Sequence
96
Creating Trigger
97
98
Reference
[1] Fernandez,E& Yuan, X,(1999). An Analysis Pattern for Reservation and Use of Reusable
Entities.PloP 1999 conference, Retrieved from
http://hillside.net/plop/plop99/proceedings/Fernandez2/reservAnalysisPattern3.PDF
http://owl.english.purdue.edu/owl/resource/560/01/
http://ajaxcontroltoolkit.codeplex.com/
http://ajaxcontroltoolkit.codeplex.com/releases/view/63654
http://digibib.ehb.be/storage/Sector%20Informatie/Ict%20in%20hotels/A%20study%20of
%20hotel%20information%20techno%20applications.pdf
http://forums.techguy.org/software-development/65358-dont-run-function-if-text.html
99
http://mattberseth.com/blog/2007/05/ajaxnet_example_using_an_updat.html
http://msdn.microsoft.com/en-us/library/aeez5k4f.aspx
http://msdn.microsoft.com/en-us/library/ms171898.aspx
http://www.ajaxcontroltoolkit.com/
http://www.araboug.org/ib/index.php?showtopic=7957&st=30
http://www.arabteam2000-forum.com/index.php?showtopic=115282
http://www.arabteam2000-forum.com/index.php?showtopic=115282
http://www.arabteam2000-forum.com/index.php?showtopic=228117
http://www.arabteam2000-forum.com/index.php?showtopic=240608
http://www.highoncoding.com/Articles/556_Creating_Crystal_Report_with_Multiple_Tables_in
_ASP_NET.aspx
http://www.kamath.com/tutorials/tut003_auth.asp
http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Default.aspx
http://www.asp.net/ajaxlibrary/act.ashx
http://www.asp.net/ajaxlibrary/act_Calendar_Simple.ashx
http://www.codeguru.com/csharp/csharp/cs_network/database/article.php/c8477__2/Connec
ting-to-an-Oracle-Database-Using-ASPNETmdashA-Step-by-Step-Tutorial.htm
http://www.daniweb.com/web-development/aspnet/threads/157540
http://www.dotnetfunda.com/articles/article818-filter-gridview-records-using-ajax-slidercontrol-.aspx
http://www.dotnetspider.com/forum/166962-Send-mail-using-ASP-NET.aspx
http://www.liacs.nl/assets/Bachelorscripties/2006-08JanneLouw.pdf
http://www.w3schools.com/sql/sql_autoincrement.asp
100