Sie sind auf Seite 1von 124

The Restaurant Management

Submitted for six weeks Industrial Training

OBJECTIVE
If we are trying to cope with QuickBooks or a series of Excel Spreadsheets, we a
re undoubtedly spending countless hours making crucial decisions with questionab
le data. If we are struggling with some other very expensive and complicated for
m of software, Restaurant Management System will give us something that desperat
ely needs MORE TIME TO GROW YOUR BUSINESS! It is designed to avoid paper work. It
is designed to increase operational efficiency, saving our money and time, maxim
izing profit and provide more security. This software is developed to manage the
restaurant more effectively and efficiently by computerizing Meal Ordering, Bil
ling, and Stock Maintenance & Accounting. This application is also designed for
inventory control, menu, recipe and liquor costing, sales management.
SCOPE
Our software can be used in any kind of restaurant like Bar, Sandwich Shop, Pizz
eria, Steak House, and Cafe Shop, Deli, Buffet, and Catering business, Doughnut
or Pastry Shop, Hotel restaurant/kitchen and more. It is not Web Based Applicati
on, it is standby Application.
10

What is Restaurant Management?


Restaurant management is the profession of managing a restaurant. It includes th
e
major function of planning, organizing, staffing, directing, developing an attit
ude in food and beverage control systems and to efficiently and effectively plan
menus at profitable prices, taking into consideration constraints, preparation
and other variables affecting food and beverage outlets.
Restaurant Management System Software
If you are in food service management or restaurant management and looking for r
estaurant software to control profitability of your business, you know that now,
more than ever, it is critical to understand all your costs and how they relate
to your restaurants management of sales. Management in restaurants is one of th
e most daunting jobs in the restaurant industry. If you are trying to cope with
QuickBooks or a series of Excel Spreadsheets, you are undoubtedly spending count
less hours making crucial decisions with questionable data. If you are strugglin
g with some other very expensive and complicated form of software, Restaurant Ma
nagement System will give you something you desperately need MORE TIME TO GROW Y
OUR BUSINESS! The Restaurant Professional Software program is a comprehensive re
staurant management tool designed for foodservice management of all types. It is
simple to learn and easy to use. This system processes transaction and stores t
he resulting data. Reports will be generated from these data which help the mana
ger to make appropriate business decisions for the restaurant. For example, know
ing the number of customers for a particular time interval, the manager can deci
de whether more waiters and chefs are required. Restaurant Software Systems are
essential to the successful operation of most foodservice establishments because
they allow the business to track transactions in real-time.
11

This software can be called in any of the following names:


Restaurant kitchen management system Hotel management system Restaurant manag
nt system Restaurant inventory management system Restaurant production managemen
t system Restaurant inventory and production cost control management system Rest
aurant chain management system Hotel chain management system
Various Advantages
It increases operational efficiency.
It is designed to help you cost your recipe
s and track inventory saving your Money and Time and maximizing profit.
It helps
the restaurant manager to manage the restaurant more effectively and efficientl
y by computerizing Meal Ordering, Billing, and Sales Management. Accounting. It
is also designed for inventory control, menu, recipe and liquor costing, nutriti
on. It increases the security.
It avoids paper work.
It is Simple to learn and e
asy to use.
It is portable.
12

MODULES
The Restaurant Management Software is a Powerful Database Application which help
s the restaurant manager to manage the restaurant more effectively and efficient
ly by computerizing Meal Ordering, Billing, and Stock Maintenance & Accounting.
This application is also designed for inventory control, menu, recipe and liquor
costing, sales management. It includes the following Modules as:
User Management
Menu Management
Customer Management
Reservation Management
ng and Printing
Accountancy and Sales
Integration and Testing
13

Billi

USERS ACCESS CONTROL


USER MANAGEMENT
FORMS Create User Users Outlook Edit User Delete User Change Password Sign Out Q
uit ADMINISTRATOR
MANAGER
SERVICE MANAGER
MENU MANAGEMENT
FORMS Add Menu Items View Full Menu Search Item Edit Item Delete Item ADMINISTRA
TOR
MANAGER
SERVICE MANAGER
CUSTOMER MANAGEMENT
FORMS Add Customer View All Customers Edit Customer Search Customer Delete Custo
mer ADMINISTRATOR
MANAGER
SERVICE MANAGER
RESERVATION MANAGEMENT
FORMS Add Reservation Search Reservation ADMINISTRATOR
14

MANAGER

SERVICE MANAGER

BILLING MANAGEMENT
FORMS Billing ADMINISTRATOR

MANAGER

SERVICE MANAGER

ACCOUNTANCY & SALES


FORMS View Home Delivery View Sales View Sales Graph View Tax Collection ADMINIS
TRATOR
MANAGER
SERVICE MANAGER
15

HARDWARE & SOFTWARE REQUIREMENTS


16

Software Requirements
Software Requirement during Development

C# 2010 on Visual Studio 2010 Express Edition. SQL Server 2008 Express Edition.
Windows XP (Service Pack 3), Window 7, Window Vista (Service Pack 1). .NET Frame
work 4.0
Software Requirement after Development
SQL Server 2008 Express Edition.
Windows XP (Service Pack 3), Window 7, Window V
ista (Service Pack 1). .NET Framework 4.0
17

Hardware Requirements
Hardware Requirement during Development

Colored Monitor. Keyboard. RAM (1GB). Hard disk (20 GB). CD ROM. Intel Core 2 DU
O 1.6 GHZ Processor. Mouse.
Hardware Requirement after Development

Colored Monitor. Keyboard. RAM (1GB). Hard disk (20 GB). CD ROM. Intel Core 2 DU
O 1.6 GHZ Processor. Mouse. Printer.
18

TOOLS USED FOR DEVELOPMENT


19

Tools Used For Development


Visual Studio 2010
The Visual Studio 2010 IDE has been redesigned which, according to Microsoft, cl
ears the UI organization and "reduces clutter and complexity. The new IDE better
supports multiple document windows and floating tool windows, while offering be
tter multimonitor support. The IDE shell has been rewritten using the Windows Pr
esentation Foundation (WPF), whereas the internals have been redesigned using Ma
naged Extensibility Framework (MEF) that offers more extensibility points than p
revious versions of the IDE that enabled add-ins to modify the behavior of the I
DE. However, the ability to customize the layout, content and position of toolba
rs and menus is limited in Visual Studio 2010.
Languages
Title
Description Editor. The features include implicit line continuation, autoimpleme
nted properties, collection initializes, and more.
Visual Basic 2010 Describes new features in the Visual Basic language and Code
Visual C# 2010
Describes new features in the C# language and Code Editor. The features include
the dynamic type, named and optional arguments, enhanced Office programmability,
and variance.
Visual C++ 2010
Describes new and revised features in Visual C++. The features include lambda ex
pressions, the rvalue reference declarator, and the auto, decltype, and static_a
ssert keywords.
Visual F# 2010
Describes the F# language, which is a language that supports functional programm
ing for the .NET Framework.
20

.NET Framework
The Microsoft .NET Framework is a software framework that can be installed on co
mputers running Microsoft Windows operating systems. It includes a large library
of coded solutions to common programming problems and a virtual machine that ma
nages the execution of programs written specifically for the framework. The .NET
framework supports multiple programming languages in a manner that allows langu
age interoperability, whereby each language can utilize code written in other la
nguages; in particular, the .NET library is available to all the programming lan
guages that .NET encompasses. The .NET Framework is a Microsoft offering and is
intended to be used by most new applications created for the Windows platform. T
he framework s Base Class Library provides a large range of features including u
ser interface, data access, database connectivity, cryptography, web application
development, numeric algorithms, and network communications. The class library
is used by programmers, who combine it with their own code to produce applicatio
ns.
.NET Framework version 4.0
The latest version of the .NET Framework which was released with Visual Studio 2
010. The .NET Framework is an integral Windows component that supports building
and running the next generation of applications and Web services. The key compon
ents of the .NET Framework are the common language runtime (CLR) and the .NET Fr
amework class library, which includes ADO.NET, ASP.NET, Windows Forms, and Windo
ws Presentation Foundation (WPF). The .NET Framework provides a managed executio
n environment, simplified development and deployment, and integration with a wid
e variety of programming languages.
21

Architecture of .NET Framework


22

Introduction to the C#.NET Language


C# is an elegant and type-safe object-oriented language that enables developers
to build a variety of secure and robust applications that run on the .NET Framew
ork. You can use C# to create traditional Windows client applications, XML Web s
ervices, distributed components, client-server applications, database applicatio
ns, and much, much more. Visual C# 2010 provides an advanced code editor, conven
ient user interface designers, integrated debugger, and many other tools to make
it easier to develop applications based on version 4.0 of the C# language and v
ersion 4.0 of the .NET Framework. As an object-oriented language, C# supports th
e concepts of encapsulation, inheritance, and polymorphism. All variables and me
thods, including the Main method, the application s entry point, are encapsulate
d within class definitions. In addition to these basic object-oriented principle
s, C# makes it easy to develop software components through several innovative la
nguage constructs, including the following:
Encapsulated method signatures calle
d delegates, which enable type-safe event notifications. Properties, which serve
as assessors for private member variables.
Attributes, which provide declarativ
e metadata about types at run time. Inline XML documentation comments. LanguageIntegrated Query (LINQ) which provides built-in query capabilities across a vari
ety of data sources. C# has a rich set of predefined data types which you can us
e in your programs. The following figure illustrates the hierarchy of the predef
ined data types found in C#:
23

Type bool sbyte byte short ushort int uint long ulong char float double decimal
object string
Size in Bytes 1 1 1 2 2 4 4 8 8 2 4
Description Boolean value. The only valid literals are true and false. Signed by
te integer. Unsigned byte integer. Signed short integer. Unsigned short integer.
Signed integer. Literals may be in decimal (default) or hexadecimal notation (w
ith a 0x prefix). Examples: 26, 0x1A Unsigned integer. Examples: 26U, 0x1AU (man
datory U suffix) Signed long integer. Examples: 26L, 0x1AL (mandatory L suffix)
Unsigned long integer. Examples: 26UL, 0x1AUL (mandatory UL suffix) Unicode char
acter. Example: A (contained within single quotes) IEEE 754 single precision f
loating point number. Examples: 1.2F, 1E10F (mandatory F suffix) IEEE 754 double
precision floating point number. Examples: 1.2, 1E10, 1D (optional D suffix) Nu
meric data type suitable for financial and monetary calculations, exact to the 2
8th decimal place. Example: 123.45M (mandatory M suffix) Ultimate base type for
both value and reference types. Has no literal representation. Immutable sequenc
e of Unicode characters. Example: "hello world!\n" (contained within double quot
es)
8
16
8+
20+
24

SQL Server 2008


The current version of SQL Server, SQL Server 2008, was released (RTM) on August
6, 2008 and aims to make data management self-tuning, self organizing, and self
maintaining with the development of SQL Server Always On technologies, to provi
de near-zero downtime. SQL Server 2008 also includes support for structured and
semistructured data, including digital media formats for pictures, audio, video
and other multimedia data. In current versions, such multimedia data can be stor
ed as BLOBs (binary large objects), but they are generic bit streams. Intrinsic
awareness of multimedia data will allow specialized functions to be performed on
them. SQL Server 2008 can be a data storage backend for different varieties of
data: XML, email, time/calendar, file, document, spatial, etc as well as perform
search, query, analysis, sharing, and synchronization across all data types. Ot
her new data types include specialized date and time types and a spatial data ty
pe for location-dependent data. The Full-Text Search functionality has been inte
grated with the database engine, which simplifies management and improves perfor
mance. SQL Server includes better compression features, which also helps in impr
oving scalability.
25

SOFTWARE DEVELOPMENT LIFE CYCLE


26

Software Development Life Cycle (SDLC)


The Systems Development Life Cycle (SDLC) is a conceptual model used in project
management that describes the stages involved in an information system developme
nt project from an initial feasibility study through maintenance of the complete
d application. Some methods work better for specific types of projects, but in t
he final analysis, the most important factor for the success of a project may be
how closely particular plan was followed. The image below is the classic Waterf
all model methodology, which is the first SDLC method and it describes the vario
us phases involved in development.
The SDLC Waterfall Model
The relationship of each stage to the others can be roughly described as a water
fall, where the outputs from a specific stage serve as the initial inputs for th
e following stage. During each stage, additional information is gathered or deve
loped, combined with the inputs, and used to produce the stage deliverables.
27

Different Phases
System planning
The system planning is used to determine if the project should get the go-ahead.
If the project is to proceed, the system plan will produce a project plan and b
udget estimates for the future stages of development.
Requirement Analysis and Design
Analysis gathers the requirements for the system. Design focuses on high level d
esign like, what programs are needed and how are they going to interact. During
these phases, the software s overall structure is defined. Analysis and Design a
re very crucial in the whole development cycle. The logical system of the produc
t is developed in this phase.
Development and Coding
In this phase the designs are translated into code. Computer programs are writte
n using a conventional programming language. Various Programming tools are used
to generate the code. Different high level programming languages like PHP, Java
are used for coding.
Integration and Testing
In this phase the system is tested. Normally programs are written as a series of
individual modules, this subject to separate and detailed test. The system is t
hen tested as a whole. The separate modules are brought together and tested as a
complete system. The system is tested to ensure that interfaces between modules
work together.
Maintenance
Inevitably the system will need maintenance. Software will definitely undergo ch
ange once it is delivered to the customer. Change could happen because of some u
nexpected input values into the system. In addition, the changes in the system c
ould directly affect the software operations. The software should be developed t
o accommodate changes that could happen during the post implementation period.
28

PROJECT PLANNING
29

Project Planning
The planning stage establishes a bird s eye view of the intended software product
, and uses this to establish the basic project structure, evaluate feasibility a
nd risks associated with the project, and describe appropriate management and te
chnical approaches Project planning is part of Project Management. It is a well-e
stablished approach to managing and controlling the introduction of new initiati
ves or organizational changes. Projects are finite in length, usually one-time p
ieces of work involving a number of activities that must be completed within a g
iven time frame, and often on a fixed budget. While the very simplest projects c
an be managed easily by applying common sense and just getting on with things, p
rojects that are more complex need a great deal of planning, and benefit from a
formal, disciplined management approach. From making sure that activities will a
ctually meet the specified need, to devising a workable schedule, developing sys
tems for reporting progress, and managing requests for changes all of these issu
es require thoughtful consideration. Managing projects well requires a great dea
l of time, skill, and finesse. There are many sides to project management and th
is is what makes it so interesting and demanding
Application Goals
Profile Management of three categories of users(Administrator, Manager, Service
Manager)
Providing different access to different categories of user.
Creating ac
counts of Customer by using unique Customer ID.
Giving Facility of Home Delivery
to Customers. Giving Facility of Discount.
30

Software Configuration Management


When you build computer software, change happens. And because it happens, you nee
d to control it effectively. Software Configuration Management Software (SCM) is
a set of activities that are designed to control change by identifying the work
products that are likely to change, establishing relationships among them, defi
ning mechanisms for managing different versions of work products, controlling ch
anges that are imposed, and auditing and reporting on the changes that are made.
SCM is a best tool to manage change to our software systems. However, even with
the best of intentions, software projects continue to fail because of problems t
hat could have been avoided through the use of an SCM tool and appropriate proce
sses. These failures are reflected in poor quality, late delivery, cost overruns
, and the incapability to meet customer demands. All these flaws are removed by
Software Configuration Management (SCM). This Software was developed by four dev
elopers (Gagandeep, Navdeep, Manmeen, and Navdeep).We make this project together
by putting our full efforts and hard work. We completed this project in two mon
ths. We have worked for at least 5 hours in a day. We also have VB classes daily
. While making project we follow the stages like Project Planning, Design and Co
ding, Integration and Testing.
31

32

Requirements Analysis
Requirements Analysis in systems engineering and software engineering, encompass
es those tasks that go into determining the needs or conditions to meet for a ne
w or altered product, taking account of the possibly conflicting requirements of
the various stakeholders, such as beneficiaries or users. Requirements analysis
is critical to the success of a development project. Requirements must be docum
ented, actionable, measurable, testable, related to identified business needs or
opportunities, and defined to a level of detail sufficient for system design. R
equirements can be functional and non-functional.
Conceptually, requirements analysis includes three types of activity:

Eliciting requirements: the task of communicating with customers and users to de


termine what their requirements are. This is sometimes also called requirements
gathering. Analyzing requirements: determining whether the stated requirements a
re unclear, incomplete, ambiguous, or contradictory, and then resolving these is
sues. Recording requirements: Requirements might be documented in various forms,
such as natural-language documents, use cases, user stories, or process specifi
cations.
33

MODULES IN RESTAURANT MANAGEMENT SYSTEM


USER MANAGEMENT User management is a critical part of maintaining a secure syste
m. Ineffective user and privilege management often lead many systems into being
compromised. Therefore, it is important that you understand how you can protect
your system through simple and effective user account management techniques. Thi
s User Management encloses three categories of users i.e. Administrator, Manager
and Service Manager. Each of them had given different User Access Control facil
ity. This Module will manage all the information about a user i.e. basically In
this we create a New User Account by assigning a unique User Name and Password t
o the user along with the User Type. It also comprises user s Biodata which incl
udes his Full Name, Address, Phone no, E-mail ID, etc. The access of creating a
new user is given to both Administrator and Manager. User Outlook Users Outlook
includes the display of the full information of all the users. It is a read-only
operation, no editing can be performed. In this we can Edit an existing user ac
count if any of the information regarding the user is changed or incorrect. The
task of editing the user can only be performed by the Administrator. We can Dele
te the user account by using this option whose access is only given to the Admin
istrator.
Change Password If any of the user wants to Change his Password then b
y using this feature, User can change his password. This access is given to all
type of users. MENU MANAGEMENT
34
Create User
Edit User
Delete User

In a restaurant, a Menu is a printed brochure or public display on a poster or c


halkboard that shows the list of options for a diner to select. A good restauran
t menu design is key to any restaurant s marketing plan. It expresses your eater
ys personality, focuses your overall operations, promotes profitability, establis
hes your budget and keeps your brand fresh in your customers mind. Menu managemen
t is done by using following features Add Menu Items In this we Add Items in a Me
nu by assigning a unique Item Code to each item. When we add any item; we give f
ull description (ingredients), type, price, category for each item. The access o
f adding the items is given to both Administrator and Manager.
View Full Menu As
the name indicates, in this we display the full information of all the items in
a menu. Only outlook of all the items is displayed, no editing is performed.
Se
arch Item When we want to find a single item from a number of items this feature
is very useful. Here searching is performed through item name, when we enter na
me of any item the full information of that item is displayed. This saves our lo
ts of time. Searching is performed for editing or deletion also. Edit Item If an
y information about the menu items is changed or incorrect then editing can be p
erformed. After editing we can save the item again, the new changes are updated
automatically. Editing is also performed by search also. Delete Item By using th
is feature, we can delete any item from the menu. Deletion is performed by searc
hing also. If we have large number of items and want to delete some item firstly
we search that item from menu, item is displayed then we delete that item.
CUST
OMER MANAGEMENT The Customer Management System is an application, which allows t
he users to store,
35

manage, and exchange customer information for efficient and effective management
. It is a broadly recognized, widely-implemented strategy for managing and nurtu
ring a companys interactions with customers, clients and sales prospects. Custome
r Management is done by using following features Add Customer In this we can make
a New Customer Account which provides full information about the customer like
Customer Name, Address, Customer Type, Phone no, etc. We also allot a unique Cus
tomer ID to each customer for future use. This customer ID is useful in the case
of home delivery. View all Customers It includes the display of the full inform
ation of all the Customers. It is a read-only operation, no editing can be perfo
rmed. Only outlook of all the customers is displayed, no changes are performed.
Edit Customer If any information about the customer has been changed or incorrec
t then editing can be performed. If we have large number of customers then we ca
n find the customer by using search operation. Then editing will be performed. T
his saves our lots of time. Search Customer Here searching is performed either b
y customer name or phone number. When we enter customer name or phone number ful
l information of the customer is displayed. Only customers outlook is there, no c
hanges can be performed in the displayed information.
Delete Customer We can del
ete the customer account by using this option. Deletion is also performed by sea
rching, In case we have large number of customer. RESERVATION MANAGEMENT
36

A reservation Management is an arrangement made in advance to have a table avail


able at a restaurant. The software automates the process of taking restaurant re
servations and manages guest seating. It manages the coordination of servers, ta
bles, walk-ins, and arriving parties, while providing information to support cus
tomer service initiatives. This leads to dramatically improve table management
im
prove your customer care improve planning, flexibility, efficiency Reservation m
anagement includes following features Add Reservation By using this feature we ca
n Add New Reservation by providing unique Reservation ID to each customer. This
reservation account includes the information like Occasion, Gathering, Date of R
eservation, Occasion Spot etc. Search Reservation Here Searching is performed th
rough Date of Reservation. When we enter the date of reservation, the full infor
mation is displayed about that reservation.
Edit Reservation If we want to perfo
rm any changes in the existing information of any reservation than editing can b
e done. The Edit Reservation Form is the Child Form of the Search Reservation.
BILL MANAGEMENT
37

The process of sending a bill to customers for goods or services is called billi
ng. Restaurant Billing System is a new generation of restaurant management softw
are for Windows. It is a complete solution starting from taking orders from clie
nts in producing bills, bookings and closing bills with different payment option
s. User interface is carefully optimized for high speed entering of client order
s. The system represents rich set of reports that shows whole picture about rest
aurant operations and life cycles. In this module we can create a bill by assign
ing a unique bill number to each and every bill. In this we prepare bill for two
type of customers they are Walk in
Home delivery We also provide a facility of d
iscount to our customer. Our bill includes Total Price, Total VAT and Payable Am
ount. At last bill is raised and we can print out a bill.
ACCOUNTANCY & SALES Accounting is called "the language of business". Accountancy
is a branch of mathematical science that is useful in discovering the causes of
success and failure in business. Sales is defined as a amount a company receive
s from the sale of its products, after deducting discounts, returns of products
by customers, and damaged, missing, or stolen products. Value added tax (VAT) is
similar to a sales tax. It is a tax on the estimated market value added to a pr
oduct or material at each stage of its manufacture or distribution, ultimately p
assed on to the consumer. VAT was invented because very high sales taxes and tar
iffs encourage cheating and smuggling.
This module contains following features38

View Home Delivery This feature provides us full information about all the Home
Deliveries. The information includes Address of Customer, Phone Number, Customer
Name, Home Delivery ID, Total Amount etc. It only provides outlook of home deli
very, no editing can be performed. We can also find information by using searchi
ng operation. When we enter date of home delivery then the full information is d
isplayed.
View Sales We can view Total Sales of restaurant by using this feature
. Sales can be viewed in three ways-per day, per month, per year. It only provid
es outlook of sales according to day. When we enter date of sales then full info
rmation of sales of that particular day is displayed.
View Sales Graph In this w
e have the Graphical View of Sales. When we enter the starting and the last date
to View Sales then the Total Sales of per day is displayed, according to that a
Graph is prepared. This graph tells us on which day sales were maximum and mini
mum. View Tax Collection By using this feature we can View the Tax Collection. W
e can view tax collection in two ways- according to Month and Year. When we ente
r a particular month or year, then Total Tax of that particular month or year is
displayed.
39

DESIGN
40

DESIGN PHASE
In systems, design functions and operations are described in detail, including s
creen layouts, business rules, process diagrams and other documentation. The out
put of this stage will describe the new system as a collection of modules or sub
systems. The design stage takes as its initial input the requirements identified
in the approved requirements document. For each requirement, a set of one or mo
re design elements will be produced as a result of interviews, workshops, and/or
prototype efforts. Design elements describe the desired software features in de
tail, and generally include functional hierarchy diagrams, screen layout diagram
s, tables of business rules, business process diagrams, pseudo code, and a compl
ete entity-relationship diagram with a full data dictionary. These design elemen
ts are intended to describe the software in sufficient detail that skilled progr
ammers may develop the software with minimal additional input.
Requirements Document
DESIGN STAGE
Design Document
Updated Project Plan & Schedule
Updated Requirements Traceability Matrix
41

ER Diagram Data Flow Diagrams


42

ER Diagram
43

Data Flow Diagrams (DFD)


DFD Level-0
Administrator
Users Outlook, View Full Menu and Customers, View Accountancy and Sales.
Create, Edit & Delete User, Change Password, Add, Search, Edit & Delete Items an
d Customers, Add & Search Reservation, Bill.
Manager
View Full Menu and Customers, View Accountancy & Sales.
Service Manager
Change Password, Search Item, Bill. View Full Menu and Customers, View Home Deli
very.
Create User, Change Password, Add, Search & Edit Items, Add, Search, Edit and De
lete Customers, Add & Search Reservation, Bill.
Restaurant Management
Billing
Printer
Store
Retrieve
RESTDATABASE
44

DFD Level-1
LOGIN
Login Not Successful
Administrator/ Manager/ Service Manager
UserName Password UserType
All Fields Matched
Login Successful
SECURITY
User Access Control
Close Window
45

DFD Level-1
CREATE USER
UserName Cannot Contain Space & Must Starts With An Alphabet Invalid Email ID In
valid Password
Fields Marked * Are Mandatory
Administrator/ Manager
UserName, Password, Confirm Password, LastName, FirstName, DateofBirth, Location
, Contact No, Email ID, UserType.
Check All Fields Are Mandatory
Check Password
Check Email ID
Check UserName
Add Code Follows
Create User
SECURITY
New User Created Successfully
SECURITY
46

DFD Level-1
ADD MENU ITEMS
Price Must Be In Numerics Item Name Must Contain Alphabets Fields Marked * Are M
andatory
Administrator/ Manager
ItemCode, ItemName, Category, Description, Price, Tax, Type
Check All Fields Are Mandatory
Check Item Name
Item Added
Check Price
Add Menu Items
LISTOFITEMS
47

DFD Level-1
BILLING
Item Code & Quantity Should Be Numeric Invalid Item Code OR Quantity
Administrator/ Manager/ Service Manager
ADD/ CHECKOUT/ REMOVE
Add Item
Select Type of Customer
Choose Type of Customer
Check Item Code & Quantity Mandatory
Select The Item First
Remove Item
Check Out
Fetch
Check Item Code & Quantity Numeric
Add Items To Cart
Check Item Is Selected
Bill Raised
Add to/ Remove from Cart
BILL TABLE BILL DETAIL HOME DELIVERY
Print Bill
Printer
Remove Items From Cart
48

CODING, DEVELOPMENT AND TESTING


49

MAIN SCREEN
50

Coding
public partial class Main_Screen : Form { public Main_Screen() { InitializeCompo
nent(); } private void Main_Screen_Load(object sender, EventArgs e) { Form1 f1 =
new Form1(); f1.ShowDialog(); Login log=new Login(); log.receive(this); log.Sho
wDialog();
}
private void createUserToolStripMenuItem_Click(object sender, EventArgs e) { Cre
ate_User cu = new Create_User(); cu.MdiParent = this; cu.Show(); } private void
alterUserToolStripMenuItem_Click(object sender, EventArgs e) { Edit_User ed = ne
w Edit_User(); ed.MdiParent = this; ed.Show(); } private void changePasswordTool
StripMenuItem_Click(object sender, EventArgs e) { Change cp = new Change(); cp.M
diParent = this; cp.Show(); } private void quitToolStripMenuItem_Click(object se
nder, EventArgs e) { Environment.Exit(0); } private void addToolStripMenuItem_Cl
ick(object sender, EventArgs e) { Add_menu_items ami = new Add_menu_items(); ami
.MdiParent = this; ami.Show(); } private void deleteUserToolStripMenuItem_Click(
object sender, EventArgs e) { Edit_User ed = new Edit_User(); ed.MdiParent = thi
s; ed.Show();
51

} private void searchItemToolStripMenuItem_Click(object sender, EventArgs e) { s


earch_item si = new search_item(); si.MdiParent = this; si.Show(); } private voi
d deleteItemToolStripMenuItem_Click(object sender, EventArgs e) { Edit ei = new
Edit(); ei.MdiParent = this; ei.Show(); } private void addCustomerToolStripMenuI
tem_Click(object sender, EventArgs e) { Add_Customer ac = new Add_Customer(); ac
.MdiParent = this; ac.Show(); } private void editCustomerToolStripMenuItem_Click
(object sender, EventArgs e) { Edit_Customer ec = new Edit_Customer(); ec.MdiPar
ent = this; ec.Show(); } private void searchCustumerToolStripMenuItem_Click(obje
ct sender, EventArgs e) { Search_Customer sc = new Search_Customer(); sc.MdiPare
nt = this; sc.Show(); } private void deleteCustomerToolStripMenuItem_Click(objec
t sender, EventArgs e) { Edit_Customer ec = new Edit_Customer(); ec.MdiParent =
this; ec.Show(); } private void viewToolStripMenuItem_Click(object sender, Event
Args e) { User_Outlook uo = new User_Outlook(); uo.MdiParent = this; uo.Show();
} private void viewAllCustomerToolStripMenuItem_Click(object sender, EventArgs e
) { View_Customer vc = new View_Customer(); vc.MdiParent = this; vc.Show(); }
52

private void addReservationToolStripMenuItem_Click(object sender, EventArgs e) {


Table_Reservation tr = new Table_Reservation(); tr.MdiParent = this; tr.Show();
} private void viewReservationToolStripMenuItem_Click(object sender, EventArgs
e) { search_reservations sr = new search_reservations(); sr.MdiParent = this; sr
.Show(); } private void billingToolStripMenuItem_Click(object sender, EventArgs
e) { Billing b = new Billing(); b.MdiParent = this; b.Show(); } private void tim
er1_Tick(object sender, EventArgs e) { toolStripStatusLabel1.Text = DateTime.Now
.ToString(); } private void viewFullMenuToolStripMenuItem_Click(object sender, E
ventArgs e) { View_Menu vm = new View_Menu(); vm.MdiParent = this; vm.Show(); }
private void editToolStripMenuItem_Click(object sender, EventArgs e) { Edit ei =
new Edit(); ei.MdiParent = this; ei.Show(); } private void viewHomeDeliveryTool
StripMenuItem1_Click(object sender, EventArgs e) { Form3 f3 = new Form3(); f3.Md
iParent = this; f3.Show(); } private void viewSalesToolStripMenuItem1_Click(obje
ct sender, EventArgs e) { Sales s = new Sales(); s.MdiParent = this; s.Show(); }
private void viewSalesGraphToolStripMenuItem_Click(object sender, EventArgs e)
{ sales_graph sg= new sales_graph(); sg.MdiParent = this;
53

}
sg.Show();
private void viewTaxCollectionToolStripMenuItem_Click(object sender, EventArgs e
) { tax tx = new tax(); tx.MdiParent = this; tx.Show(); } private void signOutTo
olStripMenuItem_Click(object sender, EventArgs e) { Login log = new Login(); log
.receive(this); log.ShowDialog(); }
}
54

LOGIN
55

Coding
public partial class Login : Form { Main_Screen obj; public void receive(Main_Sc
reen o1) { obj = o1; } public Login() { InitializeComponent(); } private void bu
tton1_Click(object sender, EventArgs e) { try { restdatabaseDataSetTableAdapters
.SecurityTableAdapter ta = new restdatabaseDataSetTableAdapters.SecurityTableAda
pter(); restdatabaseDataSet ds = new restdatabaseDataSet(); ta.Fill(ds.Security)
; int flag = 0; int i = 0; string p, q; for (i = 0; i <= ds.Security.Rows.Count
- 1; i++) { p = Convert.ToString(ds.Security.Rows[i]["UserName"]); q = Convert.T
oString(ds.Security.Rows[i]["Password"]); if ((textBox1.Text == p) && (textBox2.
Text == q) && (comboBox1.SelectedItem.ToString() == ds.Security.Rows[i]["UserTyp
e"].ToString())) { flag = 1; break; } } if (flag == 1) { MessageBox.Show("Login
Successful"); if (comboBox1.SelectedItem.ToString() == "Manager") { obj.createUs
erToolStripMenuItem.Visible = true; obj.viewToolStripMenuItem.Visible = false; o
bj.alterUserToolStripMenuItem.Visible = false; obj.deleteUserToolStripMenuItem.V
isible = false; obj.changePasswordToolStripMenuItem.Visible = true; obj.signOutT
oolStripMenuItem.Visible = true; obj.quitToolStripMenuItem.Visible = true; obj.a
ddToolStripMenuItem.Visible = true; obj.viewFullMenuToolStripMenuItem.Visible =
true; obj.searchItemToolStripMenuItem.Visible = true; obj.editToolStripMenuItem.
Visible = true;
56

obj.deleteItemToolStripMenuItem.Visible = false; obj.addCustomerToolStripMenuIte


m.Visible = true; obj.viewAllCustomerToolStripMenuItem.Visible = true; obj.editC
ustomerToolStripMenuItem.Visible = true; obj.searchCustumerToolStripMenuItem.Vis
ible = true; obj.deleteCustomerToolStripMenuItem.Visible = true; obj.addReservat
ionToolStripMenuItem.Visible = true; obj.viewReservationToolStripMenuItem.Visibl
e = true; obj.billingToolStripMenuItem.Visible = true; obj.viewHomeDeliveryToolS
tripMenuItem1.Visible = true; obj.viewSalesToolStripMenuItem1.Visible = true; ob
j.viewSalesGraphToolStripMenuItem.Visible = true; obj.viewTaxCollectionToolStrip
MenuItem.Visible = true;
} else if (comboBox1.SelectedItem.ToString() == "Service Manager") { obj.createU
serToolStripMenuItem.Visible = false; obj.viewToolStripMenuItem.Visible = false;
obj.alterUserToolStripMenuItem.Visible = false; obj.deleteUserToolStripMenuItem
.Visible = false; obj.changePasswordToolStripMenuItem.Visible = true; obj.signOu
tToolStripMenuItem.Visible = true; obj.quitToolStripMenuItem.Visible = true; obj
.addToolStripMenuItem.Visible = false; obj.viewFullMenuToolStripMenuItem.Visible
= true; obj.searchItemToolStripMenuItem.Visible = true; obj.editToolStripMenuIt
em.Visible = false; obj.deleteItemToolStripMenuItem.Visible = false; obj.addCust
omerToolStripMenuItem.Visible = false; obj.viewAllCustomerToolStripMenuItem.Visi
ble = true; obj.editCustomerToolStripMenuItem.Visible = false; obj.searchCustume
rToolStripMenuItem.Visible = false; obj.deleteCustomerToolStripMenuItem.Visible
= false; obj.addReservationToolStripMenuItem.Visible = false; obj.viewReservatio
nToolStripMenuItem.Visible = false; obj.billingToolStripMenuItem.Visible = true;
obj.viewHomeDeliveryToolStripMenuItem1.Visible = true; obj.viewSalesToolStripMe
nuItem1.Visible = false; obj.viewSalesGraphToolStripMenuItem.Visible = false; ob
j.viewTaxCollectionToolStripMenuItem.Visible = false;
} else if (comboBox1.SelectedItem.ToString() == "Administrator") { obj.createUse
rToolStripMenuItem.Visible = true; obj.viewToolStripMenuItem.Visible = true; obj
.alterUserToolStripMenuItem.Visible = true; obj.deleteUserToolStripMenuItem.Visi
ble = true; obj.changePasswordToolStripMenuItem.Visible = true; obj.signOutToolS
tripMenuItem.Visible = true;
57

obj.quitToolStripMenuItem.Visible = true; obj.addToolStripMenuItem.Visible = tru


e; obj.viewFullMenuToolStripMenuItem.Visible = true; obj.searchItemToolStripMenu
Item.Visible = true; obj.editToolStripMenuItem.Visible = true; obj.deleteItemToo
lStripMenuItem.Visible = true; obj.addCustomerToolStripMenuItem.Visible = true;
obj.viewAllCustomerToolStripMenuItem.Visible = true; obj.editCustomerToolStripMe
nuItem.Visible = true; obj.searchCustumerToolStripMenuItem.Visible = true; obj.d
eleteCustomerToolStripMenuItem.Visible = true; obj.addReservationToolStripMenuIt
em.Visible = true; obj.viewReservationToolStripMenuItem.Visible = true; obj.bill
ingToolStripMenuItem.Visible = true; obj.viewHomeDeliveryToolStripMenuItem1.Visi
ble = true; obj.viewSalesToolStripMenuItem1.Visible = true; obj.viewSalesGraphTo
olStripMenuItem.Visible = true; obj.viewTaxCollectionToolStripMenuItem.Visible =
true;
}
} catch (Exception ex) { MessageBox.Show(ex.Message ); }
} else { MessageBox.Show("Login Not Successful"); textBox1.Text = ""; textBox2.T
ext = ""; comboBox1.SelectedIndex = -1; textBox1.Focus(); }
} this.Dispose();
private void on_close(object sender, FormClosingEventArgs e) { e.Cancel = true;
} private void button2_Click(object sender, EventArgs e) { Environment.Exit(0);
}
}
58

Logged In Screen
59

CREATE USER
60

Coding
public partial class Create_User : Form { public Create_User() { InitializeCompo
nent(); } private void button1_Click_1(object sender, EventArgs e) { try { char
ch =
; if (textBoxusername.Text != "") { ch = textBoxusername.Text[0]; } if (
(textBoxusername.Text == "") || (textBoxpassword.Text == "") || (textBoxconfirmp
assword.Text == "") || (textBoxfirstname.Text == "") || (textBoxlocation.Text ==
"") || (comboBoxusertype.SelectedIndex == -1)||(textBoxemailid.Text=="")) { Mes
sageBox.Show("Fields Marked * are Mandatory"); } else if ((textBoxconfirmpasswor
d.Text != textBoxpassword.Text)) { MessageBox.Show("Invalid Password"); } else i
f (!((textBoxemailid.Text.Contains("@")) && (textBoxemailid.Text.Contains(".")))
) { MessageBox.Show("Invalid E-mail ID"); } else if ((textBoxemailid.Text.IndexO
f("@")) > (textBoxemailid.Text.LastIndexOf("."))) { MessageBox.Show("Invalid E-m
ail ID"); } else if (textBoxusername.Text.Contains(" ")) { MessageBox.Show("User
name Cannot Contain Space"); } else if (!(((Convert.ToInt16(ch) >= 65) && (Conve
rt.ToInt16(ch) <= 90)) || ((Convert.ToInt16(ch) >= 97) && (Convert.ToInt16(ch) <
= 122)))) { MessageBox.Show("Username Must starts with an Alphabet"); } else { r
estdatabaseDataSetTableAdapters.SecurityTableAdapter ta = new restdatabaseDataSe
tTableAdapters.SecurityTableAdapter(); restdatabaseDataSet ds = new restdatabase
DataSet(); ta.Fill(ds.Security); DataTable dt; DataRow dr; dt = ds.Security; dr
= dt.NewRow(); dr["UserName"] = textBoxusername.Text; dr["Password"] = textBoxpa
ssword.Text; dr["Last_Name"] = textBoxlastname.Text;
61

}
}
} } catch(Exception ex) { MessageBox.Show(ex.Message); }
dr["First_Name"] = textBoxfirstname.Text; dr["DateofBirth"] = dateTimePickerdate
ofbirth.Value.ToShortDateString(); dr["Location"] = textBoxlocation.Text; dr["Co
ntact_No"] = textBoxcontactno.Text; dr["Email_ID"] = textBoxemailid.Text; dr["Us
erType"] = comboBoxusertype.SelectedItem; dt.Rows.Add(dr); ta.Update(ds.Security
); MessageBox.Show("New User Created Successfully"); ta.Fill(ds.Security); textB
oxusername.Text = ""; textBoxpassword.Text = ""; textBoxconfirmpassword.Text = "
"; textBoxlastname.Text = ""; textBoxfirstname.Text = ""; dateTimePickerdateofbi
rth.Value = DateTime.Now; textBoxlocation.Text = ""; textBoxcontactno.Text = "";
textBoxemailid.Text = ""; comboBoxusertype.SelectedIndex = -1; textBoxusername.
Focus();
62

USERS OUTLOOK
63

Coding
public partial class User_Outlook : Form { public User_Outlook() { InitializeCom
ponent(); } private void User_Outlook_Load(object sender, EventArgs e) { // TODO
: This line of code loads data into the restdatabaseDataSet.Security table. Yo
u can move, or remove it, as needed. this.securityTableAdapter.Fill(this.restdat
abaseDataSet.Security); } }
64

EDIT/DELETE USER
65

Coding
public partial class Edit_User : Form { DataRow dr; restdatabaseDataSetTableAdap
ters.SecurityTableAdapter ta = new restdatabaseDataSetTableAdapters.SecurityTabl
eAdapter(); restdatabaseDataSet ds = new restdatabaseDataSet(); public Edit_User
() { InitializeComponent(); } private void Edit_User_Load(object sender, EventAr
gs e) { // TODO: This line of code loads data into the restdatabaseDataSet.Secu
rity table. You can move, or remove it, as needed. this.securityTableAdapter.Fi
ll(this.restdatabaseDataSet.Security); ta.Fill(ds.Security); } private void butt
onfirst_Click_1(object sender, EventArgs e) { securityBindingSource.MoveFirst();
} private void buttonprevious_Click_1(object sender, EventArgs e) { securityBin
dingSource.MovePrevious(); } private void buttonnext_Click_1(object sender, Even
tArgs e) { securityBindingSource.MoveNext(); } private void buttonlast_Click_1(o
bject sender, EventArgs e) { securityBindingSource.MoveLast(); } private void bu
ttonedit_Click_1(object sender, EventArgs e) { textBoxusername.ReadOnly = true;
textBoxpassword.ReadOnly = true; textboxlastname.ReadOnly = false; textBoxfirstn
ame.ReadOnly = false; dateTimePickerdateofbirth.Enabled = true; textBoxlocation.
ReadOnly = false; textBoxcontactno.ReadOnly = false; textBoxemailid.ReadOnly = f
alse; comboBoxusertype.Enabled = true; buttonfirst.Enabled = false; buttonprevio
us.Enabled = false; buttonnext.Enabled = false;
66

}
buttonlast.Enabled = false;
private void buttonsave_Click(object sender, EventArgs e) { try { if ((textBoxus
ername.Text == "") || (textBoxpassword.Text == "") || (textBoxfirstname.Text ==
"") || (textBoxlocation.Text == "") || (comboBoxusertype.SelectedIndex == -1)||(
textBoxemailid.Text=="")) { MessageBox.Show("Fields Marked * are Mandatory"); }
else if (!((textBoxemailid.Text.Contains("@")) && (textBoxemailid.Text.Contains(
".")))) { MessageBox.Show("Invalid E-mail ID"); } else if ((textBoxemailid.Text.
IndexOf("@")) > (textBoxemailid.Text.LastIndexOf("."))) { MessageBox.Show("Inval
id E-mail ID"); } else { dr = restdatabaseDataSet.Security.Rows[securityBindingS
ource.Position]; dr.BeginEdit(); dr["UserName"] = textBoxusername.Text; dr["Pass
word"] = textBoxpassword.Text; dr["Last_Name"] = textboxlastname.Text; dr["First
_Name"] = textBoxfirstname.Text; dr["DateofBirth"] = dateTimePickerdateofbirth.V
alue.ToShortDateString(); dr["Location"] = textBoxlocation.Text; dr["Contact_No"
] = textBoxcontactno.Text; dr["Email_ID"] = textBoxemailid.Text; dr["UserType"]
= comboBoxusertype.SelectedItem; dr.EndEdit(); securityTableAdapter.Update(restd
atabaseDataSet.Security); MessageBox.Show("Record Updated"); securityTableAdapte
r.Fill(restdatabaseDataSet.Security); textBoxusername.ReadOnly = true; textBoxpa
ssword.ReadOnly = true; textboxlastname.ReadOnly = true; textBoxfirstname.ReadOn
ly = true; dateTimePickerdateofbirth.Enabled = false; textBoxlocation.ReadOnly =
true; textBoxcontactno.ReadOnly = true; textBoxemailid.ReadOnly = true; comboBo
xusertype.Enabled = false; buttonfirst.Enabled = true; buttonprevious.Enabled =
true; buttonnext.Enabled = true; buttonlast.Enabled = true;
} } catch (Exception ex) {
67

}
}
MessageBox.Show(ex.Message);
private void buttondelete_Click(object sender, EventArgs e) { try { DialogResult
ans; ans = MessageBox.Show("Are you sure you want to delete the User s account?
", "Delete Confirmation", MessageBoxButtons.YesNo); if (ans == DialogResult.Yes)
{ dr = this.restdatabaseDataSet.Security.Rows[securityBindingSource.Position];
dr.Delete(); this.securityTableAdapter.Update(this.restdatabaseDataSet.Security)
; MessageBox.Show("User Deleted"); this.securityTableAdapter.Fill(this.restdatab
aseDataSet.Security); } } catch (Exception ex) { MessageBox.Show(ex.Message); }
} }
68

CHANGE PASSWORD
69

Coding
public partial class Change : Form { public Change() { InitializeComponent(); }
private void changepassword_Click(object sender, EventArgs e) { try { restdataba
seDataSetTableAdapters.SecurityTableAdapter ta = new restdatabaseDataSetTableAda
pters.SecurityTableAdapter(); restdatabaseDataSet ds = new restdatabaseDataSet()
; ta.Fill(ds.Security); int flag = 0, pos = 0, i; string p, q; for (i = 0; i <=
(ds.Security.Rows.Count - 1); i++) { p = Convert.ToString(ds.Security.Rows[i]["U
serName"]); q = Convert.ToString(ds.Security.Rows[i]["Password"]); if ((textBoxu
sername.Text == p) && (textBoxoldpassword.Text == q)) { flag = 1; pos = i; break
; } } if ((textBoxusername.Text == "") || (textBoxoldpassword.Text == "") || (te
xtBoxnewpassword.Text == "") || (textBoxconfirmpassword.Text == "")) { MessageBo
x.Show("All fields are Mandatory"); } else if (textBoxnewpassword.Text != textBo
xconfirmpassword.Text) { MessageBox.Show("New Password and Confirm new Password
does not match"); } else if (flag == 0) { MessageBox.Show("Username and Old Pass
word does not match"); } else { DataRow dr; dr = ds.Security.Rows[pos]; dr.Begin
Edit(); dr["Password"] = textBoxnewpassword.Text; dr.EndEdit(); ta.Update(ds.Sec
urity); ta.Fill(ds.Security); MessageBox.Show("Password changed successfully");
textBoxusername.Text = ""; textBoxoldpassword.Text = "";
70

}
}
} } catch (Exception ex) { MessageBox.Show(ex.Message); }
textBoxnewpassword.Text = ""; textBoxconfirmpassword.Text = ""; textBoxusername.
Focus();
71

ADD MENU ITEMS


72

Coding
public partial class Add_menu_items : Form { int temp = 0; restdatabaseDataSetTa
bleAdapters.listofitemsTableAdapter ta = new restdatabaseDataSetTableAdapters.li
stofitemsTableAdapter(); restdatabaseDataSet ds = new restdatabaseDataSet(); pub
lic Add_menu_items() { InitializeComponent(); } private void buttonadditem_Click
(object sender, EventArgs e) { try { char ch =
; if (textBoxitemname.Text !=
"") { ch = textBoxitemname.Text[0]; } if ((textBoxitemname.Text == "") || (combo
Boxcategory.SelectedIndex == -1) || (textBoxdescription.Text == "") || (textBoxp
rice.Text == "") || (comboBoxtax.SelectedIndex == 1) || (comboBoxtype.SelectedIn
dex == -1)) { MessageBox.Show("Fields Marked * Are Mandatory"); } else if (!(((C
onvert.ToInt16(ch) >= 65) && (Convert.ToInt16(ch) <= 90)) || ((Convert.ToInt16(c
h) >= 97) && (Convert.ToInt16(ch) <= 122)))) { MessageBox.Show("Item Name Must C
ontain Alphabets"); } else if (!int.TryParse(textBoxprice.Text, out temp) == tru
e) { MessageBox.Show("Price Must Be In Numerics"); } else { DataRow dr; dr = ds.
listofitems.NewRow(); //ta.Fill(ds.listofitems); dr["item_code"] = Convert.ToInt
32(textBoxitemcode.Text); dr["item_name"] = textBoxitemname.Text; dr["category"]
= comboBoxcategory.SelectedItem; dr["description"] = textBoxdescription.Text; d
r["price"] = textBoxprice.Text; dr["tax"] = comboBoxtax.SelectedItem; dr["type"]
= comboBoxtype.SelectedItem; ds.listofitems.Rows.Add(dr); ta.Update(ds.listofit
ems); MessageBox.Show("Item Added"); ta.Fill(ds.listofitems); if (ds.listofitems
.Rows.Count == 0) { textBoxitemcode.Text = Convert.ToString(100);
73

} else { int x; x = Convert.ToInt32(ta.ScalarQuery()); textBoxitemcode.Text = Co


nvert.ToString(x + 1); } textBoxitemname.Text = ""; comboBoxcategory.SelectedInd
ex = -1; textBoxdescription.Text = ""; textBoxprice.Text = ""; comboBoxtax.Selec
tedIndex = -1; comboBoxtype.SelectedIndex = -1; textBoxitemname.Focus();
}
} } catch (Exception ex) { MessageBox.Show(ex.Message); }
private void Add_menu_items_Load(object sender, EventArgs e) { ta.Fill(ds.listof
items); if (ds.listofitems.Rows.Count == 0) { textBoxitemcode.Text = Convert.ToS
tring(100); } else { int x; x = Convert.ToInt32(ta.ScalarQuery()); textBoxitemco
de.Text = Convert.ToString(x + 1); }
}
}
74

VIEW FULL MENU


75

Coding
public partial class View_Menu : Form { public View_Menu() { InitializeComponent
(); } private void View_Menu_Load(object sender, EventArgs e) { // TODO: This li
ne of code loads data into the restdatabaseDataSet.listofitems table. You can
move, or remove it, as needed. this.listofitemsTableAdapter.Fill(this.restdataba
seDataSet.listofitems); } }
76

SEARCH MENU ITEM


77

Coding
public partial class search_item : Form { public search_item() { InitializeCompo
nent(); } private void search_item_Load(object sender, EventArgs e) { // TODO: T
his line of code loads data into the restdatabaseDataSet.listofitems table. Yo
u can move, or remove it, as needed. this.listofitemsTableAdapter.Fill(this.rest
databaseDataSet.listofitems); } private void buttongo_Click(object sender, Event
Args e) { try { listofitemsTableAdapter.FillBy(restdatabaseDataSet.listofitems,
textBoxsearch.Text); dataGridView1.DataSource = restdatabaseDataSet.listofitems;
} catch (Exception ex) { MessageBox.Show(ex.Message); } } }
78

EDIT/DELETE MENU ITEM


79

Coding
public partial class Edit : Form { int temp = 0; restdatabaseDataSetTableAdapter
s.listofitemsTableAdapter ta = new restdatabaseDataSetTableAdapters.listofitemsT
ableAdapter(); restdatabaseDataSet ds = new restdatabaseDataSet(); public Edit()
{ InitializeComponent(); } private void Edit_Load(object sender, EventArgs e) {
// TODO: This line of code loads data into the restdatabaseDataSet.listofitems
table. You can move, or remove it, as needed. this.listofitemsTableAdapter.Fil
l(this.restdatabaseDataSet.listofitems); } private void buttonfirst_Click(object
sender, EventArgs e) { listofitemsBindingSource. MoveFirst(); } private void bu
ttonprevious_Click(object sender, EventArgs e) { listofitemsBindingSource.MovePr
evious(); } private void buttonnext_Click(object sender, EventArgs e) { listofit
emsBindingSource.MoveNext(); } private void buttonlast_Click(object sender, Even
tArgs e) { listofitemsBindingSource.MoveLast(); } private void buttonedit_Click(
object sender, EventArgs e) { textBoxitemname.ReadOnly = false; comboBoxcategory
.Enabled = true; textBoxdescription.ReadOnly = false; textBoxprice.ReadOnly = fa
lse; comboBoxtax.Enabled = true; comboBoxtype.Enabled = true; buttonfirst.Enable
d = false; buttonprevious.Enabled = false; buttonnext.Enabled = false; buttonlas
t.Enabled = false;
} private void buttonsave_Click(object sender, EventArgs e) { try { char ch =
; if (textBoxitemname.Text != "") { ch = textBoxitemname.Text[0]; }
80

if ((textBoxitemname.Text == "") || (comboBoxcategory.SelectedIndex == -1) || (t


extBoxdescription.Text == "") || (textBoxprice.Text == "") || (comboBoxtax.Selec
tedIndex == 1) || (comboBoxtype.SelectedIndex == -1)) { MessageBox.Show("All Fie
lds Are Mandatory"); } else if (!(((Convert.ToInt16(ch) >= 65) && (Convert.ToInt
16(ch) <= 90)) || ((Convert.ToInt16(ch) >= 97) && (Convert.ToInt16(ch) <= 122)))
) { MessageBox.Show("Item Name Must Contain Alphabets"); } else { restdatabaseDa
taSetTableAdapters.listofitemsTableAdapter ta = new restdatabaseDataSetTableAdap
ters.listofitemsTableAdapter(); restdatabaseDataSet ds = new restdatabaseDataSet
(); DataRow dr; dr = restdatabaseDataSet.listofitems.Rows[listofitemsBindingSour
ce.Position]; dr.BeginEdit(); dr["Item_Name"] = textBoxitemname.Text; dr["Catego
ry"] = comboBoxcategory.SelectedItem; dr["Description"] = textBoxdescription.Tex
t; dr["Price"] = textBoxprice.Text; dr["Tax"] = comboBoxtax.SelectedItem; dr["Ty
pe"] = comboBoxtype.SelectedItem; dr.EndEdit(); ta.Update(this.restdatabaseDataS
et.listofitems); MessageBox.Show("Item Updated"); ta.Fill(this.restdatabaseDataS
et.listofitems); textBoxitemname.ReadOnly = true; comboBoxcategory.Enabled = fal
se; textBoxdescription.ReadOnly = true; textBoxprice.ReadOnly = true; comboBoxta
x.Enabled = false; comboBoxtype.Enabled = false; buttonfirst.Enabled = true; but
tonprevious.Enabled = true; buttonnext.Enabled = true; buttonlast.Enabled = true
;
}
} } catch(Exception ex) { MessageBox.Show(ex.Message); }
private void buttonsearch_Click(object sender, EventArgs e) { try { string n, p;
n = textBoxsearch.Text; restdatabaseDataSetTableAdapters.listofitemsTableAdapte
r ta = new restdatabaseDataSetTableAdapters.listofitemsTableAdapter();
81

restdatabaseDataSet ds = new restdatabaseDataSet(); ta.Fill(ds.listofitems); int


i, count, pos = -1; count = ds.listofitems.Rows.Count; for (i = 0; i <= count 1; i++) { p = Convert.ToString(ds.listofitems.Rows[i]["Item_Name"]); if (p == n
) { pos = i; break; } } if (pos == -1) { MessageBox.Show("No Such Item Found");
} else { textBoxitemname.Text = ds.listofitems.Rows[pos]["Item_Name"].ToString()
; comboBoxcategory.SelectedItem = ds.listofitems.Rows[pos]["Category"].ToString(
); textBoxdescription.Text = ds.listofitems.Rows[pos]["Description"].ToString();
textBoxprice.Text = ds.listofitems.Rows[pos]["Price"].ToString(); comboBoxtax.S
electedItem = ds.listofitems.Rows[pos]["Tax"].ToString(); comboBoxtype.SelectedI
tem = ds.listofitems.Rows[pos]["Type"].ToString(); } } catch (Exception ex) { Me
ssageBox.Show(ex.Message); } } private void buttondelete_Click(object sender, Ev
entArgs e) { try { DataRow dr; DialogResult ans; ans = MessageBox.Show("Are You
Sure You Want To Delete The Item?", "Delete Confirmation", MessageBoxButtons.Yes
No); if (ans == DialogResult.Yes) { dr = this.restdatabaseDataSet.listofitems.Ro
ws[this.listofitemsBindingSource.Position]; dr.Delete(); this.listofitemsTableAd
apter.Update(dr); MessageBox.Show("Item Deleted"); this.listofitemsTableAdapter.
Fill(this.restdatabaseDataSet.listofitems); } } catch (Exception ex) { MessageBo
x.Show(ex.Message); } }
82

ADD CUSTOMER
83

Coding
public partial class Add_Customer : Form { restdatabaseDataSetTableAdapters.Cust
omerTableAdapter ta = new restdatabaseDataSetTableAdapters.CustomerTableAdapter(
); restdatabaseDataSet ds = new restdatabaseDataSet(); DataRow dr; long temp = 0
; public Add_Customer() { InitializeComponent(); } private void buttonaddcust_Cl
ick(object sender, EventArgs e) { try { ta.Fill(ds.Customer); char ch =
; int
flag = 0; if (textBoxcustomername.Text != "") { ch = textBoxcustomername.Text[0
]; } for (int i = 0; i <= ds.Customer.Rows.Count - 1; i++) { if (ds.Customer.Row
s[i]["Phone"].ToString() == textBoxphoneno.Text) { flag = 1; break; } } if ((tex
tBoxcustomername.Text == "") || (textBoxaddress.Text == "") || (textBoxphoneno.T
ext == "") || (comboBoxcustomertype.SelectedIndex == -1)) { MessageBox.Show("Fie
lds Marked * Are Mandatory"); } else if (!long.TryParse(textBoxphoneno.Text, out
temp) == true) { MessageBox.Show("Invalid Phone Number"); } else if (flag == 1)
{ MessageBox.Show("Phone Number Already Exist"); textBoxphoneno.Text = ""; text
Boxphoneno.Focus(); } else if ((textBoxemailid.Text.IndexOf("@")) > (textBoxemai
lid.Text.LastIndexOf("."))) { MessageBox.Show("Invalid E-mail ID"); } else if (!
(((Convert.ToInt16(ch) >= 65) && (Convert.ToInt16(ch) <= 90)) || ((Convert.ToInt
16(ch) >= 97) && (Convert.ToInt16(ch) <= 122)))) { MessageBox.Show("Customer Nam
e Must starts with an Alphabet");
84

}
}
} catch (Exception ex) { MessageBox.Show(ex.Message); }
} else { dr = ds.Customer.NewRow(); dr["Cust_name"] = textBoxcustomername.Text;
dr["address"] = textBoxaddress.Text; dr["phone"] = textBoxphoneno.Text; dr["emai
l_id"] = textBoxemailid.Text; dr["cust_type"] = comboBoxcustomertype.SelectedIte
m; dr["DOB"] = dateTimePickerdob.Value.ToShortDateString(); dr["maritalstatus"]
= comboBoxmaritalstatus.SelectedItem; ds.Customer.Rows.Add(dr); ta.Update(ds.Cus
tomer); MessageBox.Show("New Customer Added Successfully"); ta.Fill(ds.Customer)
; textBoxcustomername.Text = ""; textBoxaddress.Text = ""; textBoxphoneno.Text =
""; textBoxemailid.Text = ""; comboBoxcustomertype.SelectedIndex = -1; dateTime
Pickerdob.Value = DateTime.Now; comboBoxmaritalstatus.SelectedIndex = -1; textBo
xcustomername.Focus(); }
85

VIEW ALL CUSTOMERS


86

Coding
public partial class View_Customer : Form { public View_Customer() { InitializeC
omponent(); } private void View_Customer_Load(object sender, EventArgs e) { // T
ODO: This line of code loads data into the restdatabaseDataSet.Customer table.
You can move, or remove it, as needed. this.customerTableAdapter.Fill(this.rest
databaseDataSet.Customer); } }
87

EDIT/DELETE CUSTOMER
88

Coding
public partial class Edit_Customer : Form { long temp=0; restdatabaseDataSetTabl
eAdapters.CustomerTableAdapter ta = new restdatabaseDataSetTableAdapters.Custome
rTableAdapter(); restdatabaseDataSet ds = new restdatabaseDataSet(); public Edit
_Customer() { InitializeComponent(); } private void Edit_Customer_Load(object se
nder, EventArgs e) { // TODO: This line of code loads data into the restdatabas
eDataSet.Customer table. You can move, or remove it, as needed. this.customerTa
bleAdapter.Fill(this.restdatabaseDataSet.Customer); } private void buttonfirst_C
lick(object sender, EventArgs e) { customerBindingSource.MoveFirst(); } private
void buttonprevious_Click(object sender, EventArgs e) { customerBindingSource.Mo
vePrevious(); } private void buttonnext_Click(object sender, EventArgs e) { cust
omerBindingSource.MoveNext(); } private void buttonlast_Click(object sender, Eve
ntArgs e) { customerBindingSource.MoveLast(); } private void buttonedit_Click(ob
ject sender, EventArgs e) { textBoxcustomername.ReadOnly = false; textBoxaddress
.ReadOnly = false; textBoxphoneno.ReadOnly = false; textBoxemailid.ReadOnly = fa
lse; comboBoxcustomertype.Enabled = true; dateTimePickerdob.Enabled = true; comb
oBoxmaritalstatus.Enabled = true; buttonfirst.Enabled = false; buttonprevious.En
abled = false; buttonnext.Enabled = false; buttonlast.Enabled = false;
}
private void buttonsave_Click(object sender, EventArgs e) { try
89

{
char ch =
; int flag = 0; if (textBoxcustomername.Text != "") { ch = textBoxc
ustomername.Text[0]; }
for (int i = 0; i <= ds.Customer.Rows.Count - 1; i++) { if (ds.Customer.Rows[i][
"Phone"].ToString() == textBoxphoneno.Text) { flag = 1; break; } } if ((textBoxc
ustomername.Text == "") || (textBoxaddress.Text == "") || (textBoxphoneno.Text =
= "") || (comboBoxcustomertype.SelectedIndex == -1)) { MessageBox.Show("Fields M
arked * Are Mandatory"); } else if (!long.TryParse(textBoxphoneno.Text, out temp
) == true) { MessageBox.Show("Invalid Phone Number"); } else if (flag == 1) { Me
ssageBox.Show("Phone Number Already Exist"); textBoxphoneno.Text = ""; textBoxph
oneno.Focus(); } else if ((textBoxemailid.Text.IndexOf("@")) > (textBoxemailid.T
ext.LastIndexOf("."))) { MessageBox.Show("Invalid E-mail ID"); } else if (!(((Co
nvert.ToInt16(ch) >= 65) && (Convert.ToInt16(ch) <= 90)) || ((Convert.ToInt16(ch
) >= 97) && (Convert.ToInt16(ch) <= 122)))) { MessageBox.Show("Customer Name Mus
t starts with an Alphabet"); } else { restdatabaseDataSetTableAdapters.CustomerT
ableAdapter ta = new restdatabaseDataSetTableAdapters.CustomerTableAdapter(); re
stdatabaseDataSet ds = new restdatabaseDataSet(); DataRow dr; dr = restdatabaseD
ataSet.Customer.Rows[customerBindingSource.Position]; dr.BeginEdit(); dr["cust_n
ame"] = textBoxcustomername.Text; dr["address"] = textBoxaddress.Text; dr["phone
"] = textBoxphoneno.Text; dr["email_id"] = textBoxemailid.Text; dr["cust_type"]
= comboBoxcustomertype.SelectedItem; dr["DOB"] = dateTimePickerdob.Value.ToShort
DateString(); dr["maritalstatus"] = comboBoxmaritalstatus.SelectedItem; dr.EndEd
it();
90

ta.Update(this.restdatabaseDataSet.Customer); MessageBox.Show("Customer Record U


pdated"); ta.Fill(this.restdatabaseDataSet.Customer); textBoxcustomername.ReadOn
ly = true; textBoxaddress.ReadOnly = true; textBoxphoneno.ReadOnly = true; textB
oxemailid.ReadOnly = true; comboBoxcustomertype.Enabled = false; dateTimePickerd
ob.Enabled = false; comboBoxmaritalstatus.Enabled = false; buttonfirst.Enabled =
true; buttonprevious.Enabled = true; buttonnext.Enabled = true; buttonlast.Enab
led = true;
}
} } catch (Exception ex) { MessageBox.Show(ex.Message); }
private void buttondelete_Click(object sender, EventArgs e) { try { DataRow dr;
DialogResult ans; ans = MessageBox.Show("Are You Sure You Want To Delete The Ite
m?", "Delete Confirmation", MessageBoxButtons.YesNo); if (ans == DialogResult.Ye
s) { dr = this.restdatabaseDataSet.Customer.Rows[this.customerBindingSource.Posi
tion]; dr.Delete(); this.customerTableAdapter.Update(this.restdatabaseDataSet.Cu
stomer); MessageBox.Show("Item Deleted"); this.customerTableAdapter.Fill(this.re
stdatabaseDataSet.Customer); } } catch (Exception) { MessageBox.Show("Deletion o
f This Particular Customer Cannot be Possible, Unless You Delete its Reservation
Record"); this.customerTableAdapter.Fill(this.restdatabaseDataSet.Customer); }
} private void buttonsearch_Click(object sender, EventArgs e) { try { string n;
n = Convert.ToString(textBoxsearch.Text); ta.Fill(ds.Customer);
91

int i, count, pos = -1; count = ds.Customer.Rows.Count; for (i = 0; i <= count 1; i++) { if (ds.Customer.Rows[i]["phone"].ToString() == n) { pos = i; break; }
} if (pos == -1) { MessageBox.Show("No such Record Found"); } else { textBoxcus
tomername.Text = ds.Customer.Rows[pos]["cust_name"].ToString(); textBoxaddress.T
ext = ds.Customer.Rows[pos]["address"].ToString(); textBoxphoneno.Text = ds.Cust
omer.Rows[pos]["phone"].ToString(); textBoxemailid.Text = ds.Customer.Rows[pos][
"email_id"].ToString(); comboBoxcustomertype.SelectedItem = ds.Customer.Rows[pos
]["cust_type"].ToString(); dateTimePickerdob.Value = Convert.ToDateTime(ds.Custo
mer.Rows[pos]["dob"]); comboBoxmaritalstatus.SelectedItem = ds.Customer.Rows[pos
]["maritalstatus"].ToString(); textBoxsearch.Text = ""; textBoxsearch.Focus(); }
} catch (Exception ex) { MessageBox.Show(ex.Message); } } }
92

SEARCH CUSTOMER
93

Coding
public partial class Search_Customer : Form { public Search_Customer() { Initial
izeComponent(); } private void Search_Customer_Load(object sender, EventArgs e)
{ // TODO: This line of code loads data into the restdatabaseDataSet.Customer
table. You can move, or remove it, as needed. this.customerTableAdapter.Fill(thi
s.restdatabaseDataSet.Customer); } private void fillByToolStripButton_Click(obje
ct sender, EventArgs e) { try { // this.customerTableAdapter.FillBy(this.restdat
abaseDataSet.Customer); } catch (System.Exception ex) { System.Windows.Forms.Mes
sageBox.Show(ex.Message); } } private void button1_Click(object sender, EventArg
s e) { try { if (radioButton1.Checked == true) { customerTableAdapter.FillBy(res
tdatabaseDataSet.Customer, textBox1.Text); dataGridView1.DataSource = restdataba
seDataSet.Customer; textBox1.Text = ""; textBox1.Focus(); } else { customerTable
Adapter.FillBy1(restdatabaseDataSet.Customer, Convert.ToInt64(textBox1.Text)); d
ataGridView1.DataSource = restdatabaseDataSet.Customer; textBox1.Text = ""; text
Box1.Focus(); } } catch (Exception) { MessageBox.Show("First Select the Type of
Search & then Enter it in the Text Box"); } } private void radioButton1_CheckedC
hanged(object sender, EventArgs e)
94

{
if (radioButton1.Checked == true) { label3.Text = "Enter Customer Name :"; label
3.Visible = true; } else { label3.Text = "Enter Phone No :"; label3.Visible = tr
ue; }
}
}
95

ADD RESERVATION
96

Coding
public partial class Table_Reservation : Form { int temp = 0; public Table_Reser
vation() { InitializeComponent(); } private void Table_Reservation_Load(object s
ender, EventArgs e) { // TODO: This line of code loads data into the restdataba
seDataSet.Reservation table. You can move, or remove it, as needed. this.reserv
ationTableAdapter.Fill(this.restdatabaseDataSet.Reservation); // TODO: This line
of code loads data into the restdatabaseDataSet.Customer table. You can move,
or remove it, as needed. this.customerTableAdapter.Fill(this.restdatabaseDataSe
t.Customer); } private void buttonbook_Click(object sender, EventArgs e) { try {
if ((comboBoxoccasion.SelectedIndex == -1) || (textBoxgathering.Text == "") ||
(comboBoxcustid.SelectedIndex == -1) || (comboBoxspot.SelectedIndex == -1)) { Me
ssageBox.Show(" Fields Marked * Are Mandatory"); } else if (!int.TryParse(textBo
xadvance.Text, out temp) == true) { MessageBox.Show("Invalid Advance Amount"); }
else { DataRow dr; dr = this.restdatabaseDataSet.Reservation.NewRow(); dr["type
"] = comboBoxoccasion.SelectedItem; dr["noofpeople"] = textBoxgathering.Text; dr
["customer_id"] = comboBoxcustid.SelectedValue.ToString(); dr["dateofbooking"] =
dateTimePickerdob.Value.ToShortDateString(); dr["advance"] = textBoxadvance.Tex
t; dr["splinstruction"] = textBoxsplinst.Text; dr["location"] = comboBoxspot.Sel
ectedItem; dr["status"] = "ACTIVE"; this.restdatabaseDataSet.Reservation.Rows.Ad
d(dr); MessageBox.Show("Reservation Done"); this.reservationTableAdapter.Update(
dr); this.reservationTableAdapter.Fill(this.restdatabaseDataSet.Reservation); co
mboBoxoccasion.SelectedIndex = -1; textBoxgathering.Text = ""; comboBoxcustid.Te
xt = ""; dateTimePickerdob.Value = DateTime.Now; textBoxadvance.Text = ""; textB
oxsplinst.Text = "";
97

}
} } catch (Exception ex) { MessageBox.Show(ex.Message); }
comboBoxspot.SelectedIndex = -1; comboBoxoccasion.Focus();
private void button1_Click(object sender, EventArgs e) { } }
98

SEARCH RESERVATION
99

Coding
public partial class search_reservations : Form { public search_reservations() {
InitializeComponent(); } private void search_reservations_Load(object sender, E
ventArgs e) { // TODO: This line of code loads data into the restdatabaseDataSe
t.Reservation table. You can move, or remove it, as needed. this.reservationTab
leAdapter.Fill(this.restdatabaseDataSet.Reservation); } private void on_doublecl
ick(object sender, EventArgs e) { Edit_Reservation er = new Edit_Reservation();
er.Show(); er.receive(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
} private void button1_Click(object sender, EventArgs e) { try { reservationTabl
eAdapter.FillBy(restdatabaseDataSet.Reservation, dateTimePicker1.Value.ToShortDa
teString()); dataGridView1.DataSource = restdatabaseDataSet.Reservation; } catch
(Exception ex) { MessageBox.Show(ex.Message); } } }
100

EDIT RESERVATION
101

Coding
public partial class Edit_Reservation : Form { int temp = 0; restdatabaseDataSet
ds = new restdatabaseDataSet(); restdatabaseDataSetTableAdapters.ReservationTab
leAdapter ta = new restdatabaseDataSetTableAdapters.ReservationTableAdapter(); i
nt pos; public Edit_Reservation() { InitializeComponent(); } private void Edit_R
eservation_Load(object sender, EventArgs e) { // TODO: This line of code loads d
ata into the restdatabaseDataSet.Reservation table. You can move, or remove it
, as needed. this.reservationTableAdapter.Fill(this.restdatabaseDataSet.Reservat
ion); // TODO: This line of code loads data into the restdatabaseDataSet.Custom
er table. You can move, or remove it, as needed. this.customerTableAdapter.Fill
(this.restdatabaseDataSet.Customer); } public void receive(string rid) { ta.Fill
(ds.Reservation); for (int i = 0; i <= ds.Reservation.Rows.Count - 1; i++) { if
(rid == ds.Reservation.Rows[i]["reservationID"].ToString()) { textBoxreservation
id.Text = ds.Reservation.Rows[i]["reservationid"].ToString(); comboBoxoccasion.S
electedItem = ds.Reservation.Rows[i]["type"].ToString(); textBoxgathering.Text =
ds.Reservation.Rows[i]["noofpeople"].ToString(); comboBoxcustid.SelectedItem =
ds.Reservation.Rows[i]["customer_id"].ToString(); dateTimePickerdob.Value = Conv
ert.ToDateTime(ds.Reservation.Rows[i]["dateofbooking"]); textBoxadvance.Text = d
s.Reservation.Rows[i]["advance"].ToString(); textBoxsplinst.Text = ds.Reservatio
n.Rows[i]["splinstruction"].ToString(); comboBoxstatus.SelectedItem = ds.Reserva
tion.Rows[i]["status"].ToString(); comboBoxspot.SelectedItem = ds.Reservation.Ro
ws[i]["location"].ToString(); pos = i; break; } } } private void buttonedit_Clic
k(object sender, EventArgs e) { textBoxreservationid.ReadOnly = true; comboBoxoc
casion.Enabled = true; textBoxgathering.ReadOnly = false; comboBoxcustid.Enabled
= false; dateTimePickerdob.Enabled = true; textBoxadvance.ReadOnly = false; tex
tBoxsplinst.ReadOnly = false;
102

}
comboBoxstatus.Enabled = true; comboBoxspot.Enabled = true;
private void buttonsave_Click(object sender, EventArgs e) { try { if ((comboBoxo
ccasion.SelectedIndex == -1) || (textBoxgathering.Text == "") || (comboBoxcustid
.SelectedIndex == -1) || (comboBoxspot.SelectedIndex == -1)) { MessageBox.Show("
Fields Marked * Are Mandatory"); } else if (!int.TryParse(textBoxadvance.Text,
out temp) == true) { MessageBox.Show("Invalid Advance Amount"); } else { DataRow
dr; dr = this.restdatabaseDataSet.Reservation.Rows[pos]; dr.BeginEdit(); //dr["
reservationid"]=textBoxreservationid.Text; dr["type"] = comboBoxoccasion.Selecte
dItem; dr["noofpeople"] = textBoxgathering.Text; //dr["customer_id"] = comboBoxc
ustid.SelectedItem; dr["dateofbooking"] = dateTimePickerdob.Value.ToShortDateStr
ing(); dr["advance"] = textBoxadvance.Text; dr["splinstruction"] = textBoxsplins
t.Text; dr["status"] = comboBoxstatus.SelectedItem; dr["location"] = comboBoxspo
t.SelectedItem; dr.EndEdit(); this.reservationTableAdapter.Update(this.restdatab
aseDataSet.Reservation); MessageBox.Show("Reservation Updated"); this.reservatio
nTableAdapter.Fill(this.restdatabaseDataSet.Reservation); textBoxreservationid.R
eadOnly = true; comboBoxoccasion.Enabled = false; textBoxgathering.ReadOnly = tr
ue; comboBoxcustid.Enabled = false; dateTimePickerdob.Enabled = false; textBoxad
vance.ReadOnly = true; textBoxsplinst.ReadOnly = true; comboBoxstatus.Enabled =
false; comboBoxspot.Enabled = false;
}
}
} } catch (Exception ex) { MessageBox.Show(ex.Message); }
103

BILLING
104

Coding
public partial class Billing : Form { double totalprice, totalvat, amountpayable
,discount; int srno = 1; restdatabaseDataSet ds = new restdatabaseDataSet(); res
tdatabaseDataSetTableAdapters.listofitemsTableAdapter ta = new restdatabaseDataS
etTableAdapters.listofitemsTableAdapter(); int pos = -1; int temp1 = 0, temp2 =
0; restdatabaseDataSetTableAdapters.bill_tableTableAdapter ta1 = new restdatabas
eDataSetTableAdapters.bill_tableTableAdapter(); restdatabaseDataSetTableAdapters
.bill_detailTableAdapter ta2 = new restdatabaseDataSetTableAdapters.bill_detailT
ableAdapter(); restdatabaseDataSetTableAdapters.CustomerTableAdapter ta3 = new r
estdatabaseDataSetTableAdapters.CustomerTableAdapter(); restdatabaseDataSet dsc
= new restdatabaseDataSet(); restdatabaseDataSetTableAdapters.homedeliveryTableA
dapter ta4 = new restdatabaseDataSetTableAdapters.homedeliveryTableAdapter(); pu
blic Billing() { InitializeComponent(); } private void buttonadd_Click(object se
nder, EventArgs e) { try { ta.Fill(ds.listofitems); int flag = 0; for (int i = 0
; i <= ds.listofitems.Rows.Count - 1; i++) { if (textBoxitemcode.Text == ds.list
ofitems.Rows[i]["item_code"].ToString()) { flag = 1; pos = i; break; } } if ((te
xtBoxitemcode.Text == "") || (textBoxquantity.Text == "")) { MessageBox.Show("In
valid Item Code or Quantity"); } else if ((!int.TryParse(textBoxitemcode.Text, o
ut temp1) == true) || (!int.TryParse(textBoxquantity.Text, out temp2) == true))
{ MessageBox.Show("Item Code and Quantity should be Numeric"); } else if (flag =
= 0) { MessageBox.Show("Invalid Item Code"); } else { ListViewItem lt = new List
ViewItem(srno.ToString()); lt.SubItems.Add(ds.listofitems.Rows[pos]["item_code"]
.ToString());
105

lt.SubItems.Add(ds.listofitems.Rows[pos]["item_name"].ToString()); lt.SubItems.A
dd(ds.listofitems.Rows[pos]["price"].ToString()); lt.SubItems.Add(textBoxquantit
y.Text); double vat, p; vat = Convert.ToDouble(ds.listofitems.Rows[pos]["price"]
) * Convert.ToDouble(ds.listofitems.Rows[pos]["tax"]) / 100; lt.SubItems.Add(vat
.ToString()); p = (Convert.ToDouble(ds.listofitems.Rows[pos]["price"]) + Convert
.ToDouble(vat)) * Convert.ToDouble(textBoxquantity.Text); lt.SubItems.Add(p.ToSt
ring()); listViewbilling.Items.Add(lt); updatebill(); srno = srno + 1; } } catch
(Exception ex) { MessageBox.Show(ex.Message); } } private void buttonremove_Cli
ck(object sender, EventArgs e) { try { if (listViewbilling.Items.Count > 0) { if
(listViewbilling.SelectedItems.Count > 0) { listViewbilling.Items.RemoveAt(list
Viewbilling.SelectedIndices[0]); serialgen(); updatebill(); } } } catch (Excepti
on ex) { MessageBox.Show(ex.Message); } } public void serialgen() { for (int i =
0; i <= listViewbilling.Items.Count - 1; i++) { listViewbilling.Items[i].Text =
Convert.ToString(i + 1); } srno = listViewbilling.Items.Count + 1; } public voi
d updatebill() { totalprice = 0; totalvat = 0; amountpayable = 0; for (int i = 0
; i <= listViewbilling.Items.Count - 1; i++) {
106

totalprice = totalprice + (Convert.ToDouble(listViewbilling.Items[i].SubItems[3]


.Text) * Convert.ToDouble(listViewbilling.Items[i].SubItems[4].Text)); totalvat
= totalvat + (Convert.ToDouble(listViewbilling.Items[i].SubItems[5].Text) * Conv
ert.ToDouble(listViewbilling.Items[i].SubItems[4].Text)); amountpayable = amount
payable + Convert.ToDouble(listViewbilling.Items[i].SubItems[6].Text); } textBox
totalprice.Text = totalprice.ToString(); textBoxtotalvat.Text = totalvat.ToStrin
g(); textBoxpayableamount.Text = amountpayable.ToString();
}
private void Billing_Load(object sender, EventArgs e) { // TODO: This line of co
de loads data into the restdatabaseDataSet.Customer table. You can move, or re
move it, as needed. // this.customerTableAdapter.Fill(this.restdatabaseDataSet.C
ustomer); textBoxdateofbilling.Text = DateTime.Now.ToShortDateString(); ta1.Fill
(ds.bill_table); ta2.Fill(ds.bill_detail); if (ds.bill_table.Rows.Count == 0) {
textBoxbillno.Text = Convert.ToString(1000); } else { int x; x = Convert.ToInt32
(ta1.ScalarQuery()); textBoxbillno.Text = Convert.ToString(x + 1); }
}
private void buttoncheckout_Click(object sender, EventArgs e) { try { if (radioB
uttonwalkin.Checked == true ) { buttoncheckout.Enabled = true; DataRow drbill_ta
ble; DataRow drbill_detail; if (listViewbilling.Items.Count == 0) { MessageBox.S
how("Empty Bill"); } else { drbill_table = ds.bill_table.NewRow(); drbill_table[
"billno"] = textBoxbillno.Text; drbill_table["dateofbilling"] = textBoxdateofbil
ling.Text; drbill_table["totalprice"] = textBoxtotalprice.Text; drbill_table["to
talvat"] = textBoxtotalvat.Text; drbill_table["discount"] = textBoxdiscount.Text
;
107

drbill_table["amt_payable"] = textBoxpayableamount.Text; ds.bill_table.Rows.Add(


drbill_table); for (int i = 0; i <= listViewbilling.Items.Count - 1; i++) { drbi
ll_detail = ds.bill_detail.NewRow(); drbill_detail["srno"] = listViewbilling.Ite
ms[i].Text; drbill_detail["billno"] = textBoxbillno.Text; drbill_detail["item_co
de"] = listViewbilling.Items[i].SubItems[1].Text; drbill_detail["item_name"] = l
istViewbilling.Items[i].SubItems[2].Text; drbill_detail["price"] = listViewbilli
ng.Items[i].SubItems[3].Text; drbill_detail["quantity"] = listViewbilling.Items[
i].SubItems[4].Text; drbill_detail["vat"] = listViewbilling.Items[i].SubItems[5]
.Text; drbill_detail["total"] = listViewbilling.Items[i].SubItems[6].Text; } ds.
bill_detail.Rows.Add(drbill_detail);
ta1.Update(ds.bill_table); ta2.Update(ds.bill_detail); ta1.Fill(ds.bill_table);
ta2.Fill(ds.bill_detail); MessageBox.Show("Bill Raised"); printPreviewDialog1.Do
cument = printDocument1; printPreviewDialog1.ShowDialog(); listViewbilling.Items
.Clear(); textBoxitemcode.Text = ""; textBoxquantity.Text = ""; textBoxtotalpric
e.Text = ""; textBoxtotalvat.Text = ""; textBoxpayableamount.Text = ""; textBoxi
temcode.Focus(); textBoxdateofbilling.Text = DateTime.Now.ToShortDateString(); t
a1.Fill(ds.bill_table); ta2.Fill(ds.bill_detail); if (ds.bill_table.Rows.Count =
= 0) { textBoxbillno.Text = Convert.ToString(1000); } else { int x; x = Convert.
ToInt32(ta1.ScalarQuery()); textBoxbillno.Text = Convert.ToString(x + 1); }
}
}
108

else if (rbhomedelivery.Checked == true ) { if ((radioButtoncustid.Checked == tr


ue || radioButtonphoneno.Checked == true ) && textBoxsearch.Text == "") { Messag
eBox.Show("Enter Search Criteria"); } else { DataRow drbill_table; DataRow drbil
l_detail; if (listViewbilling.Items.Count == 0) { MessageBox.Show("Empty Bill");
} else { drbill_table = ds.bill_table.NewRow(); drbill_table["billno"] = textBo
xbillno.Text; drbill_table["dateofbilling"] = textBoxdateofbilling.Text; drbill_
table["totalprice"] = textBoxtotalprice.Text; drbill_table["totalvat"] = textBox
totalvat.Text; drbill_table["discount"] = textBoxdiscount.Text; drbill_table["am
t_payable"] = textBoxpayableamount.Text; ds.bill_table.Rows.Add(drbill_table); f
or (int i = 0; i <= listViewbilling.Items.Count - 1; i++) { drbill_detail = ds.b
ill_detail.NewRow(); drbill_detail["srno"] = listViewbilling.Items[i].Text; drbi
ll_detail["billno"] = textBoxbillno.Text; drbill_detail["item_code"] = listViewb
illing.Items[i].SubItems[1].Text; drbill_detail["item_name"] = listViewbilling.I
tems[i].SubItems[2].Text; drbill_detail["price"] = listViewbilling.Items[i].SubI
tems[3].Text; drbill_detail["quantity"] = listViewbilling.Items[i].SubItems[4].T
ext; drbill_detail["vat"] = listViewbilling.Items[i].SubItems[5].Text; drbill_de
tail["total"] = listViewbilling.Items[i].SubItems[6].Text; } ds.bill_detail.Rows
.Add(drbill_detail);
DataRow drhd; drhd = ds.homedelivery.NewRow(); drhd["cust_name"] = textBoxcustna
me.Text; drhd["address"] = textBoxaddress.Text; drhd["phone"] = textBoxphoneno.T
ext; drhd["billno"] = textBoxbillno.Text; ds.homedelivery.Rows.Add(drhd); ta1.Up
date(ds.bill_table); ta2.Update(ds.bill_detail); ta4.Update(ds.homedelivery);
109

ta1.Fill(ds.bill_table); ta2.Fill(ds.bill_detail); ta4.Fill(ds.homedelivery); Me


ssageBox.Show("Bill Raised"); printPreviewDialog1.Document = printDocument1; pri
ntPreviewDialog1.ShowDialog(); listViewbilling.Items.Clear(); textBoxitemcode.Te
xt = ""; textBoxquantity.Text = ""; textBoxtotalprice.Text = ""; textBoxtotalvat
.Text = ""; textBoxpayableamount.Text = ""; textBoxsearch.Text = ""; textBoxcust
name.Text = ""; textBoxaddress.Text = ""; textBoxphoneno.Text = ""; textBoxitemc
ode.Focus(); textBoxdateofbilling.Text = DateTime.Now.ToShortDateString(); ta1.F
ill(ds.bill_table); ta2.Fill(ds.bill_detail); ta4.Fill(ds.homedelivery); if (ds.
bill_table.Rows.Count == 0) { textBoxbillno.Text = Convert.ToString(1000); } els
e { int x; x = Convert.ToInt32(ta1.ScalarQuery()); textBoxbillno.Text = Convert.
ToString(x + 1); }
}
} catch (Exception ex) { MessageBox.Show(ex.Message); }
} else { MessageBox.Show("Select Type of Customer"); }
}
}
private void radioButtonwalkin_CheckedChanged(object sender, EventArgs e) { if (
radioButtonwalkin.Checked == true) { panel1.Visible = false; } }
110

private void rbhomedelivery_CheckedChanged(object sender, EventArgs e) { if (rbh


omedelivery.Checked == true) { panel1.Visible = true; } } private void buttonsea
rch_Click(object sender, EventArgs e) { try { //DataRow drcust; if (radioButtonc
ustid.Checked == true) { string n; n = Convert.ToString(textBoxsearch.Text); ta3
.Fill(dsc.Customer); int i, count, pos = -1; count = dsc.Customer.Rows.Count; fo
r (i = 0; i <= count - 1; i++) { if (dsc.Customer.Rows[i]["customer_id"].ToStrin
g() == n) { pos = i; break; } } if (pos == -1) { MessageBox.Show("No Customer Re
cord Found"); } else { textBoxcustname.Text = dsc.Customer.Rows[pos]["cust_name"
].ToString(); textBoxaddress.Text = dsc.Customer.Rows[pos]["address"].ToString()
; textBoxphoneno.Text = dsc.Customer.Rows[pos]["phone"].ToString(); } } if (radi
oButtonphoneno.Checked == true) { string n1; n1 = Convert.ToString(textBoxsearch
.Text); ta3.Fill(dsc.Customer); int j, count1, pos1 = -1; count1 = dsc.Customer.
Rows.Count; for (j = 0; j <= count1 - 1; j++) { if (dsc.Customer.Rows[j]["phone"
].ToString() == n1) { pos1 = j; break; } } if (pos1 == -1) { MessageBox.Show("No
Customer Record Found");
111

}
} } catch (Exception ex) { MessageBox.Show(ex.Message); }
} else { textBoxcustname.Text = dsc.Customer.Rows[pos1]["cust_name"].ToString();
textBoxaddress.Text = dsc.Customer.Rows[pos1]["address"].ToString(); textBoxpho
neno.Text = dsc.Customer.Rows[pos1]["phone"].ToString(); }
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.Pri
ntPageEventArgs e) { Font heading = new Font("lucida handwriting", 22); Font hea
ding1 = new Font("Bradley Hand ITC", 28,FontStyle.Bold); Font letter = new Font(
"times new roman", 14); Font letter1 =new Font ("times new roman",14, FontStyle.
Bold); e.Graphics.DrawString("WELCOME", heading, Brushes.DarkGreen,330, 70); e.G
raphics.DrawString("THE SPICY HUT", heading1, Brushes.Firebrick, 280, 120); e.Gr
aphics.DrawImage(Image.FromFile("C:\\Documents and Settings\\Administrator\\Desk
top\\FOODVILLA\\restaurant pic\\spice1.jpg"),70,60); e.Graphics.DrawImage(Image.
FromFile("C:\\Documents and Settings\\Administrator\\Desktop\\FOODVILLA\\restaur
ant pic\\spinach1.jpg"), 650, 50); e.Graphics.DrawString("Bill No :", letter1, B
rushes.Black, 100, 250); e.Graphics.DrawString(textBoxbillno.Text,letter , Brush
es.Black, 180, 250); e.Graphics.DrawString("Dated :", letter1, Brushes.Black, 60
0, 250); e.Graphics.DrawString(textBoxdateofbilling.Text, letter, Brushes.Black,
670, 250); e.Graphics.DrawString("Sr No.", letter1, Brushes.Black, 60, 350); e.
Graphics.DrawString("Item Code", letter1, Brushes.Black, 140, 350); e.Graphics.D
rawString("Item Name", letter1, Brushes.Black, 250, 350); e.Graphics.DrawString(
"Price", letter1, Brushes.Black, 460, 350); e.Graphics.DrawString("Qauntity", le
tter1, Brushes.Black, 550, 350); e.Graphics.DrawString("VAT", letter1, Brushes.B
lack, 650, 350); e.Graphics.DrawString("Total", letter1, Brushes.Black, 740, 350
); int q=400; int p; int i; for (i = 0; i <= listViewbilling.Items.Count - 1; i+
+) { p = q + i * 25; e.Graphics.DrawString(listViewbilling.Items[i].Text, letter
, Brushes.Black, 80,
e.Graphics.DrawString(listViewbilling.Items[i].SubItems[1].Text, letter, Brushes
.Black, 150, p); e.Graphics.DrawString(listViewbilling.Items[i].SubItems[2].Text
, letter, Brushes.Black, 250, p); e.Graphics.DrawString(listViewbilling.Items[i]
.SubItems[3].Text, letter, Brushes.Black, 460, p);
p);
112

e.Graphics.DrawString(listViewbilling.Items[i].SubItems[4].Text, letter, Brushes


.Black, 575, p); e.Graphics.DrawString(listViewbilling.Items[i].SubItems[5].Text
, letter, Brushes.Black, 655, p); e.Graphics.DrawString(listViewbilling.Items[i]
.SubItems[6].Text, letter, Brushes.Black, 740, p); } i = i + 1; p = q + i * 25;
e.Graphics.DrawString("Total Price :", letter1, Brushes.Black, 470, p); e.Graphi
cs.DrawString(textBoxtotalprice.Text, letter, Brushes.Black, 700, p); i = i + 1;
p = q + i * 25; e.Graphics.DrawString("Total VAT :", letter1, Brushes.Black, 47
0, p); e.Graphics.DrawString(textBoxtotalvat.Text, letter, Brushes.Black, 700, p
); i = i + 1; p = q + i * 25; e.Graphics.DrawString("Discount :", letter1, Brush
es.Black, 470, p); e.Graphics.DrawString(textBoxdiscount.Text+"%", letter, Brush
es.Black, 700, p); i = i + 1; p = q + i * 25; e.Graphics.DrawString("Payable Amo
unt :", letter1, Brushes.Black, 470, p); e.Graphics.DrawString(textBoxpayableamo
unt.Text, letter, Brushes.Black, 700, p); i = i + 1; 920); e.Graphics.DrawString
("THANKS FOR VISITING", heading, Brushes.DarkGreen, 230,
e.Graphics.DrawString("=========================================================
", letter1, Brushes.Black, 100, 955); e.Graphics.DrawString("7, Block-B",letter1
,Brushes.Black,365,980); e.Graphics.DrawString("The District Shopping Complex",
letter1, Brushes.Black, 275, 1000); e.Graphics.DrawString("Amritsar", letter1, B
rushes.Black, 375, 1025); e.Graphics.DrawString("Phone no: 0183-2509876,98765-43
210", letter1, Brushes.Black, 260, 1050); } private void textBoxdiscount_TextCha
nged(object sender, EventArgs e) { if (textBoxdiscount.Text != "") { discount =
Convert.ToDouble(textBoxdiscount.Text); discount = (discount * amountpayable) /
100; amountpayable = amountpayable - discount; textBoxpayableamount.Text = amoun
tpayable.ToString(); } }
}
113

BILL PRINTING
114

VIEW HOME DELIVERY


115

Coding
public partial class Form3 : Form { public Form3() { InitializeComponent(); } pr
ivate void Form3_Load(object sender, EventArgs e) { // TODO: This line of code l
oads data into the restdatabaseDataSet.DataTable1 table. You can move, or remo
ve it, as needed. this.dataTable1TableAdapter.Fill(this.restdatabaseDataSet.Data
Table1); } private void buttongo_Click(object sender, EventArgs e) { try { dataT
able1TableAdapter.FillBy(restdatabaseDataSet.DataTable1, dateTimePicker1.Value.D
ay, dateTimePicker1.Value.Month, dateTimePicker1.Value.Year); dataGridView1.Data
Source = restdatabaseDataSet.DataTable1; } catch (Exception ex) { MessageBox.Sho
w(ex.Message); } } }
116

VIEW SALES
117

Coding
public partial class Sales : Form { public Sales() { InitializeComponent(); } pr
ivate void Sales_Load(object sender, EventArgs e) { // TODO: This line of code l
oads data into the restdatabaseDataSet.bill_table table. You can move, or remo
ve it, as needed. this.bill_tableTableAdapter.Fill(this.restdatabaseDataSet.bill
_table); } private void buttongo_Click(object sender, EventArgs e) { try { long
p; p = Convert.ToInt64(bill_tableTableAdapter.ScalarQuery1(dateTimePicker1.Value
.Day, dateTimePicker1.Value.Month, dateTimePicker1.Value.Year)); bill_tableTable
Adapter.FillBy(restdatabaseDataSet.bill_table, dateTimePicker1.Value.Day, dateTi
mePicker1.Value.Month, dateTimePicker1.Value.Year); textBoxsales.Text = Convert.
ToString(p); dataGridView1.DataSource = restdatabaseDataSet.bill_table; } catch
(Exception ex) { MessageBox.Show(ex.Message); } } }
118

VIEW SALES GRAPH


119

Coding
public partial class sales_graph : Form { public sales_graph() { InitializeCompo
nent(); } private void buttongraph_Click(object sender, EventArgs e) { graph gr;
gr = new graph(dateTimePicker1.Value.ToShortDateString(), dateTimePicker2.Value
.ToShortDateString()); gr.Show(); } private void buttongo_Click(object sender, E
ventArgs e) { try { bill_table1TableAdapter.Fill(restdatabaseDataSet.bill_table1
, dateTimePicker1.Value.ToShortDateString(), dateTimePicker2.Value.ToShortDateSt
ring()); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
120

VIEW GRAPH
121

Coding
public partial class graph : Form { string start, enddate; public graph(string a
, string b) { start = a; enddate = b; InitializeComponent(); } private void grap
h_Load(object sender, EventArgs e) { restdatabaseDataSet ds = new restdatabaseDa
taSet(); restdatabaseDataSetTableAdapters.bill_table1TableAdapter ta = new restd
atabaseDataSetTableAdapters.bill_table1TableAdapter(); ta.Fill(ds.bill_table1, s
tart, enddate); chart1.DataSource = ds.bill_table1; chart1.Series[0].XValueMembe
r = "dateofbilling"; chart1.Series[0].YValueMembers = "total_sales";
}
}
122

VIEW TAX COLLECTION


123

Coding
public partial class tax : Form { public tax() { InitializeComponent(); } privat
e void radioButtonmonth_CheckedChanged(object sender, EventArgs e) { if (radioBu
ttonmonth.Checked == true) { label3.Text = "Enter Month :"; label3.Visible = tru
e; } else { label3.Text = "Enter Year :"; label3.Visible = true; } } private voi
d buttongo_Click(object sender, EventArgs e) { try { if (radioButtonmonth.Checke
d == true) { long p; p = Convert.ToInt64(bill_tableTableAdapter.ScalarQuery2(dat
eTimePicker1.Value.Month, dateTimePicker1.Value.Year)); bill_tableTableAdapter.F
illBy1(restdatabaseDataSet.bill_table, dateTimePicker1.Value.Month, dateTimePick
er1.Value.Year); textBoxtotalvat.Text = Convert.ToString(p); dataGridView1.DataS
ource = restdatabaseDataSet.bill_table; } else { long q; q = Convert.ToInt64(bil
l_tableTableAdapter.ScalarQuery3(dateTimePicker1.Value.Year)); bill_tableTableAd
apter.FillBy2(restdatabaseDataSet.bill_table, dateTimePicker1.Value.Year); textB
oxtotalvat.Text = Convert.ToString(q); dataGridView1.DataSource = restdatabaseDa
taSet.bill_table; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } pr
ivate void tax_Load(object sender, EventArgs e) { // TODO: This line of code loa
ds data into the restdatabaseDataSet.bill_table table. You can move, or remove
it, as needed. this.bill_tableTableAdapter.Fill(this.restdatabaseDataSet.bill_t
able); } }
124

125

Future of Restaurant Management Software


Although the restaurant industry is very competitive, the lifestyle changes crea
ted by modern living continue to fuel its steady growth. More and more people ha
ve less time, resources, and ability to cook for themselves. Trends are very imp
ortant and our software is well positioned for the current interest in lighter,
healthier foods at moderate to low prices. So while we keep in mind the fact tha
t there is no software that is perfect, which would also mean there is no perfec
t restaurant software, we put in an endless effort to improve our restaurant man
agement software. There are abundant features that are not included in this proj
ect, so we are mentioning those features that can be added in our project in fut
ure. Those features are listed below The Software can be used with a Web Based In
terface. We offer flexible tax (VAT) for every item separately; our restaurant s
oftware can also supports multiple sales taxes in future which have the need to
tender more than just one tax with their restaurant software. Speaking of taxes,
this restaurant system can accommodates multiple sales tax systems (i.e. USA, V
AT, PST, ST, HST and much more).
In future, when speaking of international featu
res, our restaurant software can accommodates all world currencies. And if by an
y chance, your currency is not readily available in this restaurant software, yo
u can simply add it yourself, by using our restaurant softwares add currency featur
e. In future, our restaurant software can be multilingual and self translating as we
ll.
126

127

Conclusion
In our Project entitled RESTAURANT MANAGEMENT SYSTEM we have tried our best to ful
fill all the requirements of restaurant. The project being simple and flexible i
s running successfully. The main advantage of our project is that its simplicity
attracts a lot of users. It can be easily run by a novice user. Our software ca
n be used in any kind of restaurant (Bar, Sandwich Shop, Pizzeria, Steak House,
Caf Shop, Deli, Buffet, and Catering business, Doughnut or Pastry Shop, Hotel res
taurant/kitchen and more). The Restaurant Management System helps the restaurant
manager to manage the restaurant more effectively and efficiently by computeriz
ing meal ordering, billing and inventory control. The system processes transacti
on and stores the resulting data. Reports will be generated from these data whic
h help the manager to make appropriate business decisions for the restaurant. Fo
r example, knowing the number of customers for a particular time interval, the m
anager can decide whether more waiters and chefs are required. This project when
implemented it will remove all the security issues. Also, there will be speedy
and secured authentication procedure for the maintenance of records. Data entry
is fast and simple because it automatically picks up information about a custome
r from the database on subsequent visits. Therefore, our software will definitel
y prove to be a successful stepping stone in replacing the outdated manual metho
d of maintaining secure records. The work plan also includes the detailed featur
es of the technology used in the project defining the front end and back end. Th
e objectives and scope of the project in future have been elaborated.
128

BIBLIOGRAPHY
129

Bibliography
Books
SQL Notes .NET Notes Visual Basic 2010 Black Book By Steven Holzner Teach
Yourself T-SQL 21 days Beginning Visual Basic 2010 By Thearon Willis, Bryan News
ome
Websites

www.wikipedia.org

130
(O_0)Abee(0_O)

www.ebooks.com

Das könnte Ihnen auch gefallen