The Restaurant Management System Using Net
The Restaurant Management System Using Net
SCOPE
Our software can be used in any kind of restaurant like Bar, Sandwich Shop, Pizzeria,
Steak House, and Cafe Shop, Deli, Buffet, and Catering business, Doughnut or Pastry
Shop, Hotel restaurant/kitchen and more.
Various Advantages
It increases operational efficiency.
It is designed to help you cost your recipes and track inventory saving your Money
and Time and maximizing profit.
It helps the restaurant manager to manage the restaurant more effectively and
efficiently by computerizing Meal Ordering, Billing, and Sales Management.
Accounting.
It is also designed for inventory control, menu, recipe and liquor costing,
nutrition.
It increases the security.
It avoids paper work.
It is Simple to learn and easy to use.
It is portable.
MODULES
The Restaurant Management Software is a Powerful Database Application which helps
the restaurant manager to manage the restaurant more effectively and efficiently 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
Billing and Printing
Accountancy and Sales
Integration and Testing
USER’S ACCESS CONTROL
USER MANAGEMENT
MENU MANAGEMENT
CUSTOMER MANAGEMENT
RESERVATION MANAGEMENT
Colored Monitor.
Keyboard.
RAM (1GB).
Hard disk (20 GB).
CD ROM.
Intel Core 2 DUO 1.6 GHZ Processor.
Mouse.
Colored Monitor.
Keyboard.
RAM (1GB).
Hard disk (20 GB).
CD ROM.
Intel Core 2 DUO 1.6 GHZ Processor.
Mouse.
Printer.
TOOLS USED FOR
DEVELOPMENT
Tools Used For Development
Languages
Title Description
Visual Basic 2010 Describes new features in the Visual Basic language and Code
C# has a rich set of predefined data types which you can use in your programs. The
following figure illustrates the hierarchy of the predefined data types found in C#:
Size
Type in Description
Bytes
bool 1 Boolean value. The only valid literals are true and false.
IEEE 754 single precision floating point number. Examples: 1.2F, 1E10F
float 4
(mandatory F suffix)
IEEE 754 double precision floating point number. Examples: 1.2, 1E10, 1D
double 8
(optional D suffix)
Numeric data type suitable for financial and monetary calculations, exact to
decimal 16
the 28th decimal place. Example: 123.45M (mandatory M suffix)
Ultimate base type for both value and reference types. Has no literal
object 8+
representation.
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 provide
near-zero downtime. SQL Server 2008 also includes support for structured and semi-
structured data, including digital media formats for pictures, audio, video and other
multimedia data. In current versions, such multimedia data can be stored 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. Other new data types
include specialized date and time types and a spatial data type for location-dependent
data. The Full-Text Search functionality has been integrated with the database engine,
which simplifies management and improves performance. SQL Server includes better
compression features, which also helps in improving scalability.
SOFTWARE DEVELOPMENT
LIFE CYCLE
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 development
project from an initial feasibility study through maintenance of the completed
application. Some methods work better for specific types of projects, but in the 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 Waterfall model methodology, which is the first SDLC
method and it describes the various phases involved in development.
The relationship of each stage to the others can be roughly described as a waterfall,
where the outputs from a specific stage serve as the initial inputs for the following
stage. During each stage, additional information is gathered or developed, combined
with the inputs, and used to produce the stage deliverables.
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 budget estimates
for the future stages of development.
Analysis gathers the requirements for the system. Design focuses on high level design
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 are very crucial
in the whole development cycle. The logical system of the product is developed in this
phase.
In this phase the designs are translated into code. Computer programs are written 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.
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 then 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 change
once it is delivered to the customer. Change could happen because of some unexpected
input values into the system. In addition, the changes in the system could directly affect
the software operations. The software should be developed to accommodate changes
that could happen during the post implementation period.
PROJECT PLANNING
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 and
risks associated with the project, and describe appropriate management and technical
approaches”
While the very simplest projects can be managed easily by applying common sense and
just getting on with things, projects that are more complex need a great deal of
planning, and benefit from a formal, disciplined management approach. From making
sure that activities will actually meet the specified need, to devising a workable
schedule, developing systems for reporting progress, and managing requests for
changes – all of these issues require thoughtful consideration. Managing projects well
requires a great deal of time, skill, and finesse. There are many sides to project
management and this 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 accounts of Customer by using unique Customer ID.
Giving Facility of Home Delivery to Customers.
Giving Facility of Discount.
Software Configuration Management
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 that could
have been avoided through the use of an SCM tool and appropriate processes. 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 developers (Gagandeep, Navdeep, Manmeen, and
Navdeep).We make this project together by putting our full efforts and hard work. We
completed this project in two months. 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 Coding, Integration and Testing.
Requirements Analysis
USER MANAGEMENT
User management is a critical part of maintaining a secure system. 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.
This User Management encloses three categories of users i.e. Administrator, Manager
and Service Manager. Each of them had given different User Access Control facility. This
Module will manage all the information about a user i.e. basically
Create User
In this we create a New User Account by assigning a unique User
Name and Password to the user along with the User Type. It also comprises user's Bio-
data which includes 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.
Edit User
In this we can Edit an existing user account 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.
Delete User
We can Delete the user account by using this option whose access is
only given to the Administrator.
Change Password
If any of the user wants to Change his Password then by using
this feature, User can change his password. This access is given to all type of users.
MENU MANAGEMENT
In a restaurant, a Menu is a printed brochure or public display on a poster or chalkboard
that shows the list of options for a diner to select. A good restaurant menu design is key
to any restaurant's marketing plan. It expresses your eatery’s personality, focuses your
overall operations, promotes profitability, establishes your budget and keeps your brand
fresh in your customer’s mind.
CUSTOMER MANAGEMENT
The Customer Management System is an application, which allows the users to store,
manage, and exchange customer information for efficient and effective management.
It is a broadly recognized, widely-implemented strategy for managing and nurturing a
company’s interactions with customers, clients and sales prospects.
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 Customer ID to each customer for future use. This
customer ID is useful in the case of home delivery.
Delete Customer
We can delete the customer account by using this option. Deletion
is also performed by searching, In case we have large number of customer.
RESERVATION MANAGEMENT
A reservation Management is an arrangement made in advance to have a table available
at a restaurant. The software automates the process of taking restaurant reservations
and manages guest seating. It manages the coordination of servers, tables, walk-ins, and
arriving parties, while providing information to support customer service initiatives. This
leads to-
dramatically improve table management
improve your customer care
improve planning, flexibility, efficiency
Add Reservation
By using this feature we can Add New Reservation by providing
unique Reservation ID to each customer. This reservation account includes the
information like Occasion, Gathering, Date of Reservation, Occasion Spot etc.
Search Reservation
Here Searching is performed through Date of Reservation.
When we enter the date of reservation, the full information is displayed about that
reservation.
Edit Reservation
If we want to perform any changes in the existing information of
any reservation than editing can be done. The Edit Reservation Form is the Child Form of
the Search Reservation.
BILL MANAGEMENT
The process of sending a bill to customers for goods or services is called billing.
Restaurant Billing System is a new generation of restaurant management software for
Windows. It is a complete solution starting from taking orders from clients in producing
bills, bookings and closing bills with different payment options. User interface is
carefully optimized for high speed entering of client orders. The system represents rich
set of reports that shows whole picture about restaurant operations and life cycles.
In this module we can create a bill by assigning 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 discount to our customer. Our bill includes Total Price, Total
VAT and Payable Amount. At last bill is raised and we can print out a bill.
Sales is defined as a amount a company receives 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 product or material at each stage of its manufacture or distribution,
ultimately passed on to the consumer. VAT was invented because very high sales taxes
and tariffs encourage cheating and smuggling.
In systems, design functions and operations are described in detail, including screen
layouts, business rules, process diagrams and other documentation. The output of this
stage will describe the new system as a collection of modules or subsystems.
The design stage takes as its initial input the requirements identified in the approved
requirements document. For each requirement, a set of one or more design elements
will be produced as a result of interviews, workshops, and/or prototype efforts. Design
elements describe the desired software features in detail, and generally include
functional hierarchy diagrams, screen layout diagrams, tables of business rules, business
process diagrams, pseudo code, and a complete entity-relationship diagram with a full
data dictionary. These design elements are intended to describe the software in
sufficient detail that skilled programmers may develop the software with minimal
additional input.
Requirements Document
DESIGN STAGE
Updated Updated
Design
Project Plan & Requirements
Document
Schedule Traceability Matrix
ER Diagram
Data Flow Diagrams
ER Diagram
Data Flow Diagrams (DFD)
DFD Level-0
Administrator
Service Manager
Manager
Store Retrieve
RESTDATABASE
DFD Level-1
LOGIN
User
Access
SECURITY Control
Close
Window
DFD Level-1
CREATE USER
Invalid Email ID
Invalid Password
Check
Password
Check
Email ID
Check Create
UserName User
Add
Code
Follow
s
SECURITY SECURITY
New User Created Successfully
DFD Level-1
ItemCode, ItemName,
Administrator/ Manager Category, Description, Check All
Fields Are Mandatory
Price, Tax, Type
Check
Item Name
Check
Item Price
Added
Add Menu
Items
LISTOFITEMS
DFD Level-1
BILLING
Item Code & Quantity Should Be Numeric
Check
Select Type Item Code
of Customer & Quantity
Mandatory
Choose
Type
of
Customer
Check
Item Code
Select
The
Item First & Quantity
Remove Check Fetch Numeric
Item Out
BILL TABLE
BILL DETAIL HOME DELIVERY
Print Printer
Bill
if (flag == 1)
{
MessageBox.Show("Login Successful");
if (comboBox1.SelectedItem.ToString() == "Manager")
{
obj.createUserToolStripMenuItem.Visible = true;
obj.viewToolStripMenuItem.Visible = false;
obj.alterUserToolStripMenuItem.Visible = false;
obj.deleteUserToolStripMenuItem.Visible = false;
obj.changePasswordToolStripMenuItem.Visible = true;
obj.signOutToolStripMenuItem.Visible = true;
obj.quitToolStripMenuItem.Visible = true;
obj.addToolStripMenuItem.Visible = true;
obj.viewFullMenuToolStripMenuItem.Visible = true;
obj.searchItemToolStripMenuItem.Visible = true;
obj.editToolStripMenuItem.Visible = true;
obj.deleteItemToolStripMenuItem.Visible = false;
obj.addCustomerToolStripMenuItem.Visible = true;
obj.viewAllCustomerToolStripMenuItem.Visible = true;
obj.editCustomerToolStripMenuItem.Visible = true;
obj.searchCustumerToolStripMenuItem.Visible = true;
obj.deleteCustomerToolStripMenuItem.Visible = true;
obj.addReservationToolStripMenuItem.Visible = true;
obj.viewReservationToolStripMenuItem.Visible = true;
obj.billingToolStripMenuItem.Visible = true;
obj.viewHomeDeliveryToolStripMenuItem1.Visible = true;
obj.viewSalesToolStripMenuItem1.Visible = true;
obj.viewSalesGraphToolStripMenuItem.Visible = true;
obj.viewTaxCollectionToolStripMenuItem.Visible = true;
}
else if (comboBox1.SelectedItem.ToString() == "Service Manager")
{
obj.createUserToolStripMenuItem.Visible = false;
obj.viewToolStripMenuItem.Visible = false;
obj.alterUserToolStripMenuItem.Visible = false;
obj.deleteUserToolStripMenuItem.Visible = false;
obj.changePasswordToolStripMenuItem.Visible = true;
obj.signOutToolStripMenuItem.Visible = true;
obj.quitToolStripMenuItem.Visible = true;
obj.addToolStripMenuItem.Visible = false;
obj.viewFullMenuToolStripMenuItem.Visible = true;
obj.searchItemToolStripMenuItem.Visible = true;
obj.editToolStripMenuItem.Visible = false;
obj.deleteItemToolStripMenuItem.Visible = false;
obj.addCustomerToolStripMenuItem.Visible = false;
obj.viewAllCustomerToolStripMenuItem.Visible = true;
obj.editCustomerToolStripMenuItem.Visible = false;
obj.searchCustumerToolStripMenuItem.Visible = false;
obj.deleteCustomerToolStripMenuItem.Visible = false;
obj.addReservationToolStripMenuItem.Visible = false;
obj.viewReservationToolStripMenuItem.Visible = false;
obj.billingToolStripMenuItem.Visible = true;
obj.viewHomeDeliveryToolStripMenuItem1.Visible = true;
obj.viewSalesToolStripMenuItem1.Visible = false;
obj.viewSalesGraphToolStripMenuItem.Visible = false;
obj.viewTaxCollectionToolStripMenuItem.Visible = false;
}
else if (comboBox1.SelectedItem.ToString() == "Administrator")
{
obj.createUserToolStripMenuItem.Visible = true;
obj.viewToolStripMenuItem.Visible = true;
obj.alterUserToolStripMenuItem.Visible = true;
obj.deleteUserToolStripMenuItem.Visible = true;
obj.changePasswordToolStripMenuItem.Visible = true;
obj.signOutToolStripMenuItem.Visible = true;
obj.quitToolStripMenuItem.Visible = true;
obj.addToolStripMenuItem.Visible = true;
obj.viewFullMenuToolStripMenuItem.Visible = true;
obj.searchItemToolStripMenuItem.Visible = true;
obj.editToolStripMenuItem.Visible = true;
obj.deleteItemToolStripMenuItem.Visible = true;
obj.addCustomerToolStripMenuItem.Visible = true;
obj.viewAllCustomerToolStripMenuItem.Visible = true;
obj.editCustomerToolStripMenuItem.Visible = true;
obj.searchCustumerToolStripMenuItem.Visible = true;
obj.deleteCustomerToolStripMenuItem.Visible = true;
obj.addReservationToolStripMenuItem.Visible = true;
obj.viewReservationToolStripMenuItem.Visible = true;
obj.billingToolStripMenuItem.Visible = true;
obj.viewHomeDeliveryToolStripMenuItem1.Visible = true;
obj.viewSalesToolStripMenuItem1.Visible = true;
obj.viewSalesGraphToolStripMenuItem.Visible = true;
obj.viewTaxCollectionToolStripMenuItem.Visible = true;
}
this.Dispose();
}
else
{
MessageBox.Show("Login Not Successful");
textBox1.Text = "";
textBox2.Text = "";
comboBox1.SelectedIndex = -1;
textBox1.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message );
}
}
}
}
EDIT/DELETE USER
Coding
public partial class Edit_User : Form
{
DataRow dr;
restdatabaseDataSetTableAdapters.SecurityTableAdapter ta = new
restdatabaseDataSetTableAdapters.SecurityTableAdapter();
restdatabaseDataSet ds = new restdatabaseDataSet();
public Edit_User()
{
InitializeComponent();
}
buttonfirst.Enabled = false;
buttonprevious.Enabled = false;
buttonnext.Enabled = false;
buttonlast.Enabled = false;
}
textBoxusername.ReadOnly = true;
textBoxpassword.ReadOnly = true;
textboxlastname.ReadOnly = true;
textBoxfirstname.ReadOnly = true;
dateTimePickerdateofbirth.Enabled = false;
textBoxlocation.ReadOnly = true;
textBoxcontactno.ReadOnly = true;
textBoxemailid.ReadOnly = true;
comboBoxusertype.Enabled = false;
buttonfirst.Enabled = true;
buttonprevious.Enabled = true;
buttonnext.Enabled = true;
buttonlast.Enabled = true;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
else if (textBoxnewpassword.Text != textBoxconfirmpassword.Text)
{
MessageBox.Show("New Password and Confirm new Password does not match");
}
else if (flag == 0)
{
MessageBox.Show("Username and Old Password does not match");
}
else
{
DataRow dr;
dr = ds.Security.Rows[pos];
dr.BeginEdit();
dr["Password"] = textBoxnewpassword.Text;
dr.EndEdit();
ta.Update(ds.Security);
ta.Fill(ds.Security);
MessageBox.Show("Password changed successfully");
textBoxusername.Text = "";
textBoxoldpassword.Text = "";
textBoxnewpassword.Text = "";
textBoxconfirmpassword.Text = "";
textBoxusername.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
ADD MENU ITEMS
Coding
public partial class Add_menu_items : Form
{
int temp = 0;
restdatabaseDataSetTableAdapters.listofitemsTableAdapter ta =
new
restdatabaseDataSetTableAdapters.listofitemsTableAdapter();
restdatabaseDataSet ds = new
restdatabaseDataSet(); public Add_menu_items()
{
InitializeComponent();
}
if (ds.listofitems.Rows.Count == 0)
{
textBoxitemcode.Text = Convert.ToString(100);
}
else
{
int x;
x = Convert.ToInt32(ta.ScalarQuery());
textBoxitemcode.Text = Convert.ToString(x + 1);
}
textBoxitemname.Text = "";
comboBoxcategory.SelectedIndex = -1;
textBoxdescription.Text = "";
textBoxprice.Text = "";
comboBoxtax.SelectedIndex = -1;
comboBoxtype.SelectedIndex = -1;
textBoxitemname.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
if (ds.listofitems.Rows.Count == 0)
{
textBoxitemcode.Text = Convert.ToString(100);
}
else
{
int x;
x = Convert.ToInt32(ta.ScalarQuery());
textBoxitemcode.Text = Convert.ToString(x + 1);
}
}
}
VIEW FULL MENU
Coding
public partial class View_Menu : Form
{
public View_Menu()
{
InitializeComponent();
}
private void View_Menu_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.Fill(this.restdatabaseDataSet.listofitems);
}
}
SEARCH MENU ITEM
Coding
public partial class search_item : Form
{
public search_item()
{
InitializeComponent();
}
private void search_item_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.Fill(this.restdatabaseDataSet.listofitems);
}
private void buttongo_Click(object sender, EventArgs e)
{
try
{
listofitemsTableAdapter.FillBy(restdatabaseDataSet.listofitems,
textBoxsearch.Text);
dataGridView1.DataSource = restdatabaseDataSet.listofitems;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
EDIT/DELETE MENU ITEM
Coding
public partial class Edit : Form
{
int temp = 0;
restdatabaseDataSetTableAdapters.listofitemsTableAdapter ta =
new
restdatabaseDataSetTableAdapters.listofitemsTableAdapter();
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.Fill(this.restdatabaseDataSet.listofitems);
}
private void buttonfirst_Click(object sender, EventArgs e)
{
listofitemsBindingSource. MoveFirst();
}
private void buttonprevious_Click(object sender, EventArgs e)
{
listofitemsBindingSource.MovePrevious();
}
private void buttonnext_Click(object sender, EventArgs e)
{
listofitemsBindingSource.MoveNext();
}
private void buttonlast_Click(object sender, EventArgs e)
{
listofitemsBindingSource.MoveLast();
}
private void buttonedit_Click(object sender, EventArgs e)
{
textBoxitemname.ReadOnly = false;
comboBoxcategory.Enabled = true;
textBoxdescription.ReadOnly = false;
textBoxprice.ReadOnly = false;
comboBoxtax.Enabled = true;
comboBoxtype.Enabled = true;
buttonfirst.Enabled = false;
buttonprevious.Enabled = false;
buttonnext.Enabled = false;
buttonlast.Enabled = false;
}
private void buttonsave_Click(object sender, EventArgs e)
{
try
{
char ch = ' ';
if (textBoxitemname.Text != "")
{
ch = textBoxitemname.Text[0];
}
if ((textBoxitemname.Text == "") || (comboBoxcategory.SelectedIndex == -1) ||
(textBoxdescription.Text == "") || (textBoxprice.Text == "") || (comboBoxtax.SelectedIndex == -
1) || (comboBoxtype.SelectedIndex == -1))
{
MessageBox.Show("All Fields Are Mandatory");
}
else if (!(((Convert.ToInt16(ch) >= 65) && (Convert.ToInt16(ch) <= 90)) ||
((Convert.ToInt16(ch) >= 97) && (Convert.ToInt16(ch) <= 122))))
{
MessageBox.Show("Item Name Must Contain Alphabets");
}
else
{
restdatabaseDataSetTableAdapters.listofitemsTableAdapter ta = new
restdatabaseDataSetTableAdapters.listofitemsTableAdapter();
restdatabaseDataSet ds = new restdatabaseDataSet();
DataRow dr;
dr =
restdatabaseDataSet.listofitems.Rows[listofitemsBindingSource.Position];
dr.BeginEdit();
dr["Item_Name"] = textBoxitemname.Text;
dr["Category"] = comboBoxcategory.SelectedItem;
dr["Description"] = textBoxdescription.Text;
dr["Price"] = textBoxprice.Text;
dr["Tax"] = comboBoxtax.SelectedItem;
dr["Type"] = comboBoxtype.SelectedItem;
dr.EndEdit();
ta.Update(this.restdatabaseDataSet.listofitems);
MessageBox.Show("Item Updated");
ta.Fill(this.restdatabaseDataSet.listofitems);
textBoxitemname.ReadOnly = true;
comboBoxcategory.Enabled = false;
textBoxdescription.ReadOnly = true;
textBoxprice.ReadOnly = true;
comboBoxtax.Enabled = false;
comboBoxtype.Enabled = false;
buttonfirst.Enabled = true;
buttonprevious.Enabled = true;
buttonnext.Enabled = true;
buttonlast.Enabled = true;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
if (textBoxcustomername.Text != "")
{
ch = textBoxcustomername.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 ((textBoxcustomername.Text == "") || (textBoxaddress.Text == "") ||
(textBoxphoneno.Text == "") || (comboBoxcustomertype.SelectedIndex == -1))
{
MessageBox.Show("Fields 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 = "";
textBoxphoneno.Focus();
}
else if ((textBoxemailid.Text.IndexOf("@")) >
(textBoxemailid.Text.LastIndexOf(".")))
{
MessageBox.Show("Invalid E-mail ID");
}
else if (!(((Convert.ToInt16(ch) >= 65) && (Convert.ToInt16(ch) <= 90)) ||
((Convert.ToInt16(ch) >= 97) && (Convert.ToInt16(ch) <= 122))))
{
MessageBox.Show("Customer Name Must starts with an Alphabet");
}
else
{
dr = ds.Customer.NewRow();
dr["Cust_name"] = textBoxcustomername.Text;
dr["address"] = textBoxaddress.Text;
dr["phone"] = textBoxphoneno.Text;
dr["email_id"] = textBoxemailid.Text;
dr["cust_type"] = comboBoxcustomertype.SelectedItem;
dr["DOB"] = dateTimePickerdob.Value.ToShortDateString();
dr["maritalstatus"] = comboBoxmaritalstatus.SelectedItem;
ds.Customer.Rows.Add(dr);
ta.Update(ds.Customer);
MessageBox.Show("New Customer Added Successfully");
ta.Fill(ds.Customer);
textBoxcustomername.Text = "";
textBoxaddress.Text = "";
textBoxphoneno.Text = "";
textBoxemailid.Text = "";
comboBoxcustomertype.SelectedIndex = -1;
dateTimePickerdob.Value = DateTime.Now;
comboBoxmaritalstatus.SelectedIndex = -1;
textBoxcustomername.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
VIEW ALL CUSTOMERS
Coding
public partial class View_Customer : Form
{
public View_Customer()
{
InitializeComponent();
}
buttonfirst.Enabled = false;
buttonprevious.Enabled = false;
buttonnext.Enabled = false;
buttonlast.Enabled = false;
}
if (textBoxcustomername.Text != "")
{
ch = textBoxcustomername.Text[0];
}
textBoxcustomername.ReadOnly = true;
textBoxaddress.ReadOnly = true;
textBoxphoneno.ReadOnly = true;
textBoxemailid.ReadOnly = true;
comboBoxcustomertype.Enabled = false;
dateTimePickerdob.Enabled = false;
comboBoxmaritalstatus.Enabled = false;
buttonfirst.Enabled = true;
buttonprevious.Enabled = true;
buttonnext.Enabled = true;
buttonlast.Enabled = true;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
DialogResult ans;
ans = MessageBox.Show("Are You Sure You Want To Delete The Item?", "Delete
Confirmation", MessageBoxButtons.YesNo);
if (ans == DialogResult.Yes)
{
dr =
this.restdatabaseDataSet.Customer.Rows[this.customerBindingSource.Position];
dr.Delete();
this.customerTableAdapter.Update(this.restdatabaseDataSet.Customer);
MessageBox.Show("Item Deleted");
this.customerTableAdapter.Fill(this.restdatabaseDataSet.Customer);
}
}
catch (Exception)
{
MessageBox.Show("Deletion of This Particular Customer Cannot be Possible, Unless
You Delete its Reservation Record");
this.customerTableAdapter.Fill(this.restdatabaseDataSet.Customer);
}
}
}
if (pos == -1)
{
MessageBox.Show("No such Record Found");
}
else
{
textBoxcustomername.Text = ds.Customer.Rows[pos]["cust_name"].ToString();
textBoxaddress.Text = ds.Customer.Rows[pos]["address"].ToString();
textBoxphoneno.Text = ds.Customer.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.Customer.Rows[pos]["dob"]);
comboBoxmaritalstatus.SelectedItem =
ds.Customer.Rows[pos]["maritalstatus"].ToString();
textBoxsearch.Text = "";
textBoxsearch.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
SEARCH CUSTOMER
Coding
public partial class Search_Customer : Form
{
public Search_Customer()
{
InitializeComponent();
}
}
}
ADD RESERVATION
Coding
public partial class Table_Reservation : Form
{
int temp = 0;
public Table_Reservation()
{
InitializeComponent();
}
MessageBox.Show("Reservation Done");
this.reservationTableAdapter.Update(dr);
this.reservationTableAdapter.Fill(this.restdatabaseDataSet.Reservation);
comboBoxoccasion.SelectedIndex = -1;
textBoxgathering.Text = "";
comboBoxcustid.Text = "";
dateTimePickerdob.Value = DateTime.Now;
textBoxadvance.Text = "";
textBoxsplinst.Text = "";
comboBoxspot.SelectedIndex = -1;
comboBoxoccasion.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
SEARCH RESERVATION
Coding
public partial class search_reservations : Form
{
public search_reservations()
{
InitializeComponent();
}
100
EDIT RESERVATION
Coding
public partial class Edit_Reservation : Form
{
int temp = 0;
restdatabaseDataSet ds = new restdatabaseDataSet();
restdatabaseDataSetTableAdapters.ReservationTableAdapter ta = new
restdatabaseDataSetTableAdapters.ReservationTableAdapter();
int pos;
public Edit_Reservation()
{
InitializeComponent();
}
dr.BeginEdit();
//dr["reservationid"]=textBoxreservationid.Text;
dr["type"] = comboBoxoccasion.SelectedItem;
dr["noofpeople"] = textBoxgathering.Text;
//dr["customer_id"] = comboBoxcustid.SelectedItem;
dr["dateofbooking"] = dateTimePickerdob.Value.ToShortDateString();
dr["advance"] = textBoxadvance.Text;
dr["splinstruction"] = textBoxsplinst.Text;
dr["status"] = comboBoxstatus.SelectedItem;
dr["location"] = comboBoxspot.SelectedItem;
dr.EndEdit();
this.reservationTableAdapter.Update(this.restdatabaseDataSet.Reservation);
MessageBox.Show("Reservation Updated");
this.reservationTableAdapter.Fill(this.restdatabaseDataSet.Reservation);
textBoxreservationid.ReadOnly = true;
comboBoxoccasion.Enabled = false;
textBoxgathering.ReadOnly = true;
comboBoxcustid.Enabled = false;
dateTimePickerdob.Enabled = false;
textBoxadvance.ReadOnly = true;
textBoxsplinst.ReadOnly = true;
comboBoxstatus.Enabled = false;
comboBoxspot.Enabled = false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
BILLING
Coding
public partial class Billing : Form
{
double totalprice, totalvat, amountpayable,discount;
int srno = 1;
restdatabaseDataSet ds = new restdatabaseDataSet();
restdatabaseDataSetTableAdapters.listofitemsTableAdapter ta = new
restdatabaseDataSetTableAdapters.listofitemsTableAdapter();
int pos = -1;
int temp1 = 0, temp2 = 0;
restdatabaseDataSetTableAdapters.bill_tableTableAdapter ta1 = new
restdatabaseDataSetTableAdapters.bill_tableTableAdapter();
restdatabaseDataSetTableAdapters.bill_detailTableAdapter ta2 = new
restdatabaseDataSetTableAdapters.bill_detailTableAdapter();
restdatabaseDataSetTableAdapters.CustomerTableAdapter ta3 = new
restdatabaseDataSetTableAdapters.CustomerTableAdapter();
restdatabaseDataSet dsc = new restdatabaseDataSet();
restdatabaseDataSetTableAdapters.homedeliveryTableAdapter ta4 =
new
restdatabaseDataSetTableAdapters.homedeliveryTableAdapter();
public Billing()
{
InitializeComponent();
}
textBoxtotalprice.Text = totalprice.ToString();
textBoxtotalvat.Text = totalvat.ToString();
textBoxpayableamount.Text = amountpayable.ToString();
}
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);
}
}
ds.bill_table.Rows.Add(drbill_table);
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.Document = printDocument1;
printPreviewDialog1.ShowDialog();
listViewbilling.Items.Clear();
textBoxitemcode.Text = "";
textBoxquantity.Text = "";
textBoxtotalprice.Text = "";
textBoxtotalvat.Text = "";
textBoxpayableamount.Text = "";
textBoxitemcode.Focus();
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);
}
}
}
else if (rbhomedelivery.Checked == true )
{
if ((radioButtoncustid.Checked == true || radioButtonphoneno.Checked == true
) && textBoxsearch.Text == "")
{
MessageBox.Show("Enter Search Criteria");
}
else
{
DataRow drbill_table;
DataRow drbill_detail;
if (listViewbilling.Items.Count == 0)
{
MessageBox.Show("Empty Bill");
}
else
{
drbill_table = ds.bill_table.NewRow();
drbill_table["billno"] = textBoxbillno.Text;
drbill_table["dateofbilling"] = textBoxdateofbilling.Text;
drbill_table["totalprice"] = textBoxtotalprice.Text;
drbill_table["totalvat"] = textBoxtotalvat.Text;
drbill_table["discount"] = textBoxdiscount.Text;
drbill_table["amt_payable"] = textBoxpayableamount.Text;
ds.bill_table.Rows.Add(drbill_table);
ds.bill_detail.Rows.Add(drbill_detail);
}
DataRow drhd;
drhd = ds.homedelivery.NewRow();
drhd["cust_name"] = textBoxcustname.Text;
drhd["address"] = textBoxaddress.Text;
drhd["phone"] = textBoxphoneno.Text;
drhd["billno"] = textBoxbillno.Text;
ds.homedelivery.Rows.Add(drhd);
ta1.Update(ds.bill_table);
ta2.Update(ds.bill_detail);
ta4.Update(ds.homedelivery);
ta1.Fill(ds.bill_table);
ta2.Fill(ds.bill_detail);
ta4.Fill(ds.homedelivery);
MessageBox.Show("Bill Raised");
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
listViewbilling.Items.Clear();
textBoxitemcode.Text = "";
textBoxquantity.Text = "";
textBoxtotalprice.Text = "";
textBoxtotalvat.Text = "";
textBoxpayableamount.Text = "";
textBoxsearch.Text = "";
textBoxcustname.Text = "";
textBoxaddress.Text = "";
textBoxphoneno.Text = "";
textBoxitemcode.Focus();
textBoxdateofbilling.Text = DateTime.Now.ToShortDateString();
ta1.Fill(ds.bill_table);
ta2.Fill(ds.bill_detail);
ta4.Fill(ds.homedelivery);
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);
}
}
}
}
else
{
MessageBox.Show("Select Type of Customer");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
110
private void rbhomedelivery_CheckedChanged(object sender, EventArgs e)
{
if (rbhomedelivery.Checked == true)
{
panel1.Visible = true;
}
}
111
}
else
{
textBoxcustname.Text = dsc.Customer.Rows[pos1]["cust_name"].ToString();
textBoxaddress.Text = dsc.Customer.Rows[pos1]["address"].ToString();
textBoxphoneno.Text = dsc.Customer.Rows[pos1]["phone"].ToString();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
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,
p);
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);
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.Graphics.DrawString(textBoxtotalprice.Text, letter, Brushes.Black, 700, p);
i = i + 1;
p = q + i * 25;
e.Graphics.DrawString("Total VAT :", letter1, Brushes.Black, 470, p);
e.Graphics.DrawString(textBoxtotalvat.Text, letter, Brushes.Black, 700, p);
i = i + 1;
p = q + i * 25;
e.Graphics.DrawString("Discount :", letter1, Brushes.Black, 470, p);
e.Graphics.DrawString(textBoxdiscount.Text+"%", letter, Brushes.Black, 700, p);
i = i + 1;
p = q + i * 25;
e.Graphics.DrawString("Payable Amount :", letter1, Brushes.Black, 470, p);
e.Graphics.DrawString(textBoxpayableamount.Text, letter, Brushes.Black, 700, p);
i = i + 1;
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, Brushes.Black, 375, 1025);
e.Graphics.DrawString("Phone no: 0183-2509876,98765-43210", letter1,
Brushes.Black, 260, 1050);
}
120
VIEW GRAPH
121
Coding
public partial class graph : Form
{
string start, enddate;
chart1.DataSource = ds.bill_table1;
chart1.Series[0].XValueMember = "dateofbilling";
chart1.Series[0].YValueMembers = "total_sales";
}
}
VIEW TAX COLLECTION
Coding
public partial class tax : Form
{
public tax()
{
InitializeComponent();
}
private void radioButtonmonth_CheckedChanged(object sender, EventArgs e)
{
if (radioButtonmonth.Checked == true)
{
label3.Text = "Enter Month :";
label3.Visible = true;
}
else
{
label3.Text = "Enter Year :";
label3.Visible = true;
}
}
private void buttongo_Click(object sender, EventArgs e)
{
try
{ if (radioButtonmonth.Checked == true)
{ long p;
p =
Convert.ToInt64(bill_tableTableAdapter.ScalarQuery2(dateTimePicker1.Value.Month,
dateTimePicker1.Value.Year));
bill_tableTableAdapter.FillBy1(restdatabaseDataSet.bill_table,
dateTimePicker1.Value.Month, dateTimePicker1.Value.Year);
textBoxtotalvat.Text = Convert.ToString(p);
dataGridView1.DataSource = restdatabaseDataSet.bill_table;
}
else
{
long q;
q =
Convert.ToInt64(bill_tableTableAdapter.ScalarQuery3(dateTimePicker1.Value.Year));
bill_tableTableAdapter.FillBy2(restdatabaseDataSet.bill_table,
dateTimePicker1.Value.Year);
textBoxtotalvat.Text = Convert.ToString(q);
dataGridView1.DataSource = restdatabaseDataSet.bill_table;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void tax_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'restdatabaseDataSet.bill_table'
table. You can move, or remove it, as needed.
this.bill_tableTableAdapter.Fill(this.restdatabaseDataSet.bill_table);
}
}
Future of Restaurant Management Software
Although the restaurant industry is very competitive, the lifestyle changes created by
modern living continue to fuel its steady growth. More and more people have less time,
resources, and ability to cook for themselves. Trends are very important 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 that there is no software that is perfect, which would
also mean there is no perfect restaurant software, we put in an endless effort to
improve our restaurant management software.
There are abundant features that are not included in this project, so we are mentioning
those features that can be added in our project in future. Those features are listed
below-
The Restaurant Management System helps the restaurant manager to manage the
restaurant more effectively and efficiently by computerizing meal ordering, billing and
inventory control. The system processes transaction and stores the resulting data.
Reports will be generated from these data which help the manager to make appropriate
business decisions for the restaurant. For example, knowing the number of customers
for a particular time interval, the manager 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 customer
from the database on subsequent visits.
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 Newsome
Websites
www.wikipedia.org
www.ebooks.com
130
(O_0)Abee(0_O)