You are on page 1of 210

Contents

1.

2.

3.

Inception
1.1 Vision & Scope
1.1.1 Introduction
1.1.2 Purpose
1.1.3 Scope
1.1.4 Definitions, Acronyms and Abbreviations
1.1.5 References
1.1.6 Books
1.1.7 Overview
1.1.8 Positioning
1.1.9 Stakeholder and User Descriptions
1.1.10 Product Overview
1.1.11 Cost and Pricing
1.1.12 Licensing and Installation
1.1.13 Product Features and Priorities
1.1.14 Constraints
1.1.15 Quality Ranges
1.1.16 Other Product Requirements
Elaboration
2.1 Software Requirements Specification
2.1.1 Introduction
2.1.2 Purpose
2.1.3 Scope
2.1.4 Definitions, Acronyms and Abbreviations
2.1.5 Overview
2.1.6 Functional Requirements
2.1.7 Non Functional Requirements
2.2 Use case Diagrams
2.3 Fully Dressed Use cases
2.4 System sequence diagrams
2.5 Entity Relationship Diagram
2.6 Normalization
2.7 Domain Model
2.8 Relational Modal
CONSTRUCTION
3.1 Class Diagram
3.2 Implenentation Code
3.2.1 User Management
3.2.2 Employee Management
3.2.3 Plant Management
3.2.4 Pot Management
3.2.5 Supplier Management
3.2.6 Supplier Payment
3.2.7 Order Management

5
5
5
6
6
6
6
6
7
9
10
10
10
13
13
14

17
18
18
18
19
19
23

109
113
121
127
133
139
143
1

3.2.8 Order Payment


3.2.9 Receipt Generation
3.2.10 Client Management
3.3 Sample Queries
3.3.1 User Related Queries
3.3.2 Employee Related Queries
3.3.3 Plant Related Queries
3.3.4 Pot Related Queries
3.3.5 Supplier Queries
3.3.6 Order Queries
3.3.7 Receipt Queries
3.3.8 Client Related Queries
3.3.9 Order Payment Queries
3.3.10 Supplier Payment Queries
3.4 Test Cases
4.

5.

152
157
158
162
162
163
163
163
164
164
164
164
164

Transition
4.1 Snap Shots
4.2 User Manual
4.2.1 Computer Requirements
4.2.2 Login Screen
4.2.3 Home Page
4.2.4 User Management
4.2.5 Employee Management
4.2.6 Client Management
4.2.7 Supplier Management
4.2.8 Receipt Generation
4.2.9 Plants Management
4.2.10 Pot Management
4.2.11 Supplier Payment
4.2.12 Order Management

201
201
201
203
203
204
205
206
207
208
209
210

Project Management
5.1 Gantt chart

1. Inception

Vision & Scope


For
Green House City Management System
Version 1.0
Prepared by: Azra Yaqoob
Revised by: Anam Saghir
Muhammad Haris Zahoor
November 20, 2015

1.1 Vision & Scope


1.1.1 Introduction
Green house city is an organization which deals with plants, pots and other activities related to
nursery. The current system of the Green House City is manual and paper based which
have
many problems and ambiguities. It is time consuming likely organizing the hard copy of paper
4

for the old record usage in GHCMS. There is no proper record for employees details, clients
details, purchase details, sale details, stock details, payment details, supply details and Product
detail.
We are developing this system for Green House City, currently they are using manual system for
information management thats why they wants to have an automated system so that it can
produce ease, correctness, less man power and fastness in their general routine works such as
Plants detail, supplier details, employee, receipt management, payment etc. This system is use to
manage information efficiently, it is desktop based application which provide reliability and
usability.
Green House City management system (GHCMS) is used to manage your business by
improving efficiencies of the nursery. GHCMS is user friendly and takes the hard work out of
running your nursery by setting up facilities to remember all the things that are important to your
business.

1.1.2 Purpose
We are developing this system for Green House City which has manual system and facing the
following problems.
Time consuming
Consumes more men power
It is producing errors such as data duplication, robustness, too much paper work and slow
retrieval of data
Space consuming for files and folders
No proper record maintenance.
So our purpose is to provide ease to daily routine operations and management.

1.1.3 Scope
In this system we maintain all the information of GHC Management System e.g. Employee
information, client information, Pots and Plants detail. This system also deals with order, receipt
and payment management system received payment from client and paid pay to supplier and
employee. This system also deals with Product information. Add Plant, update Plant, search
Plant, reports generate. It also deals with administration management which includes user
registration, add user/employee, update employee.

1.1.4 Definitions, Acronyms and Abbreviations


Term/
Abbreviation
GHCMS
RUP
DB
SQL

Description
Green House City Management System
Rational Unified Process
Database
Structured Query Language
5

C#
GUI
UI

C Sharp
Graphical User Interface
User Interface

1.1.5 References
Web Sites
www.functionx.com/csharp
www.programmersheaven.com
www.Rational.org

1.1.6 Books
Applying UML and Patterns 2nd Edition Craig Larman
Programming in C# The Black Book
How to Program C# by Dietel and Dietel

1.1.7 Overview
This document contains the requirements of Green House City to automate their system, all the
requirements are firstly gather from Green House City and then functionalities of system are
concluded. The requirements are also gathered from Miss Rabia Bashir (Lecturer at FUUAST).
This document is written by following the standards of RUP

1.1.8 Positioning
1.1.8.1 Problem Statement
The problem of

The problem is that the organization Green House City


has not any automated system. It has full manual system.
The manual system is too much time consuming and
space consuming. The manual system also takes too
much effort .The current system in use is a paper-based
system. It consumes more time and manpower .It is also
space consuming for files and folders etc.

Affects
The impact of which is

Administrator, User
The currently system is too much time consuming,
erroneous and hectic job for the stakeholders.
A successful solution would Proposed system is error free and contains complete
be
information about each and every user, clients,
employee, Plants, Pots, suppliers, payments and order.

Product Position Statement


The proposed system is very efficient and implementable on Green House City. It may require
few changes later. Nowadays the record of any Nursery is very huge so manually maintenance is
very difficult. By using this system, routine work will be managed efficiently.
1.1.8.2

1.1.9 Stakeholder and User Descriptions


1.1.9.1 Stakeholder Summary
Name

Represents

User i.e. User(Primary Main contribution in


Actor)
requirement giving and
acceptance
of
the
prototype and final look
and feel of the project
thus a primary actor and
user.
Administrator
i.e. Main contributor in
Program
Coordinator requirement giving and
(Primary Actor)
final acceptance of the
system, without his
approval project will be
failed.
Client(Secondary Actor) No contribution in the
development,
but
provides necessary feed
back about the problems
which they are facing
right now regarding the
current system.

Role
After deployment of the
system he will use it to enter
data of the client and employee
and generate general reports
etc.
After deployment of the
system he will use it to view
data and maintain the System
of client, supplier, Plants, Pots
orders, etc.
After deployment of system
he/she will only get the
benefits from it as they will get
the
required
reports
in
minimum time period and with
maximum accuracy.

1.1.9.2 User Summary


Name

Description

User

User is actor who will directly interact with the system


maintain the database of the employee, clients, supplier,
order, Plants, Pots etc.
Administrator is the actor who will indirectly interacts with
the system, view and maintains different type of records
regarding client and employee from the database.

Administrator

1.1.9.3 Stakeholder Profiles


User

Representative
Description
Type

Not Defined
Primary
User is the graduated person with the experience of operating in
different organization.
Responsibilities
The main responsibility of this stakeholder is to manage all the
records of the client, suppliers, Plants, Pots, payment, orders and
employee information. His main interest is that their erroneous
system will be replaced by an efficient Green House City
Management System.
Success Criteria
This stakeholder will define the success if his/her manual based
system is totally computerized and user friendly so that he/she
feels comfort and joy to perform their job.
Involvement
The user is the stakeholder who is deeply involved in the project
by describing the manual procedure to our development team.
Deliverables
As such he doesnt provide any project deliverables but to get the
key information for system he plays the main role. By directly
involved in the system.
Comments
/ Making him speaks more so that maximum information can be
Issues
gathered from it which is required in the future for getting required
output.

Administrator

Representative
Description
Type
Responsibilities

Success Criteria
Involvement

Not Defined
Primary
Administrator is the Person who will help us in developing our
required project.
The main responsibility of this stakeholder is that he only have to
authenticate and generate final transcript of each user, he can also
see the overall report of the clients, payments, suppliers,
employees and orders. His main interest is that their erroneous
system will be replaced by an efficient Green House City
Management System.
The Administrator is the stakeholder who will define the success if
he will totally satisfy with the system.
This system administrator is the stakeholder who is deeply
involved in the project by describing the manual admission
procedure and helping us in contacting different employee to
gather requirements to our development team.
8

Deliverables
Comments
Issues

As such he doesnt provide any project artifact but to get the key
information for system, to get help and approval he plays the main
role.
/ Continuous meeting with him will definitely assist and support us
in properly developing and deploying our system.

1.1.9.4 Key Stakeholder / User Needs


The current manual system is not providing fast and reliable information about Green House
City. When the information is needed. The stakeholders want that there should be an automatic,
efficient, reliable, and secure system that will provide all the necessary details that are stored in
the DB.

1.1.10

Product Overview

Product Perspective
Green House City Management System is a management system that will be used to get the
information and maintain the all the record of employee, Client, order details, pots and Plants
details etc. The system will maintain all the records and records can be searched, updated when it
is needed.
1.1.10.1

1.1.10.2

Summary of Capabilities

Benefit Support System


Benefit
Supporting Features
Time saving for both user and User is able to generate lists from entered data by
customer.
defined criteria and also in searching the data of
the employee and client. The user can easily get
all the record related to customer by simple
operating the Green House City Management
System.

Assumptions and Dependencies:


Since every management system has its own rules and regulations.
There may be some features in which some problems may occur relating understandability as the
system will be new to user.
Our system will be totally GUI base, USER FRIENDLY.
1.1.10.3

1.1.11 Cost and Pricing


Free of cost.

1.1.12Licensing and Installation


The License of the Green House City is issued by the Green House City Management System
alone! The only company or organization that can use this software is one with License. Other
company or organization using this software without the License issued by the GHCMS will be
9

held responsible for the facing legal operations. The development team will not responsible for
the maintenance and service of the system after two weeks of deployment.

1.1.13

Product Features and Priorities

PF-1. User Login

High

User can easily enter the system by entering login name and password into the
system.
PF-2. Change Password

High

User can change the password if he thinks that the present password is not safe or
secure.
PF-3. Add User

High

Administrators have the exclusive rights to add users by allocating a Login ID and user
name along with users choice of password and storing respective password details in the
system.
PF-4.

Search User

High

An Administrators can easily search a respective users record by entering Login ID.
PF-5.

Activate User

Low

User accounts can be activated as required by administrator by providing the respective


Login ID
PF-6.

Deactivate User

Low

User accounts can also be deactivated as required by administrator by providing the


respective Login ID
PF-7.

Update User

Low

. User accounts can be updated as required by administrator or operator by providing the


respective Login ID
PF-8. Add Employee

High

Administrator/User can add new Employee, his/her information includes his /her
name, contact number, permanent address, CNIC number & Employee salary.
PF-9. Update Employee

High

Administrator can only update existing Employee; his/her information includes


his /her name, contact number, permanent address, CNIC number & Employee
salary.
10

PF-10. Search Employee

High

The employee record can be searched by name and ID to check his/her status.
PF-11. Add New Client

High

User and Administrator enters the name, address and cell number, the client id
will be generated automatically and allocated to that client.
PF-12. Search Client Record

High

User and administrator can search the old client records by entering the client id
or name.
PF-13.

Update Client Record

High

The Client record can be easily updated by entering the Client id and Client name
PF-14 Add Supplier

High

Users enters the supplier information such as name, Plants or Pots supplied,
Quantity, prices, Supplied date and contact information, id will be generated
automatically and allocated to that client
PF-15 Search Supplier

High

User/Administrator can search the supplier records by entering the supplier id or


name...
PF-16 Update Supplier Record

Low

User can modify the supplier information such as name, Plants or pots supplied,
Quantity, prices, Supplied date and contact information, by entering the supplier
id or name.
PF-17 Add Plant

High

User enters the details of the Plant like Plant id, Plant name, quantity and price.
PF-18

Search Plant

High

User can easily search the details of the Plant by entering Plant id or name.
PF-19

Update Plant

High

User can easily modify the details of the Plant by entering Plant id or name.
PF-20 Activate Plant

PF-21

High

Administrator can easily activate the details of the plant by entering Plant id
Or name.
Deactivate Plant
Low
11

Administrator can easily activate the details of the plant by entering Plant id
Or name.
PF-22

Add pot

High

User enters the details of the flowerpots like pot id, pot name, pot quantity, pot
size and pot price.
PF-23

Update pot

High

User can easily modify the details of the Flowerpots by entering pot id or pot
name.
PF-24

Search pot

High

User can easily search the details of the Flowerpot by entering pot id or name.
PF-25

Activate pot /Deactivate

Low

Administrator can easily activate/deactivate the details of the flowerpot by


entering pot id or name.
PF-26

Add Order

High

User enters the details of the order like order id, order date
PF-27

Search Order

High

User can easily search the details of the order by entering order id.
PF-28

Update Order

High

If any change is required in order then user can easily modify the order by
entering order id.
PF-29

Cancel Order

Low

Administrator can easily cancel the order if it is not required by entering the order
id.
PF-30 Generate Receipt

High

User enters the receipt id, receipt date, details of the order like Client name,
Product name, Product quantity etc.
PF-31 Search Receipt

High

User can easily search the details of receipt by entering the receipt id or receipt
date...
12

PF-32 Add Payment

High

User enters the details of client payment like client payment id, total payment,
received payment, remaining payment, received date, client info etc.
PF-33 Search Payment

High

User can easily search the details of client payment by entering the client payment
id.
PF-34

Update Payment

High

If any change is required in payment then user can easily modify the client
payment by entering received payment id.

1.1.14Constraints
We must be very familiar with the Rational Unified Process in order for the completion of design
process of the system and must be familiar with the C# (C-Sharp) and SQL Server 2008 for the
implementation process of the system.

1.1.15Quality Ranges
Robustness -- Our system will generate appropriate exceptions if there is a failure during
execution.
Correctness -- Our system will meet the specified requirements.
Reliability -- The responses to queries shall take no longer than 5 to 8 second to load onto the
screen after the user submits the query.
The System shall display confirmation messages to user within 5 to 8 second after the user
submits information to the system.
The system will be totally reliable because it will provide the necessary information about all the
matters which are concerned in the Green House City Management System
Performance -- The GHCMS has a simple GUI, so that the user of the system will not have any
problem in handing the system. The document generated by the system will not take more than 5
to 8 second.
Usability -- The required training time for normal users will not be more than one week. The
CDs, Manuals and all the helping materials are given to the client so that maximum
understanding of the system can be taken from this system.

1.1.16

Other Product Requirements

1.1.16.1

System Requirements

Platform
The system must use windows platform.
C# (C Sharp)
C# is used to develop the business logic which is a collection of many APIs present in Visual
Studio. C# (C Sharp) components that will save, load, and update reports to the database are also
13

used.
Printer
Printer is used by the admission office to print the required list and reports.
Scanner
Scanner is used for scanning documents or snaps of the customer.
System requirements
A PC with minimum requirements
1.8 GHz
1 GB RAM (Recommended)
40 GB HD

14

2. Elaboration

Software Requirements Specification


For
Green House City Management

15

System
Version 2.1
Prepared by: Azra Yaqoob
Revised by: Muhammad Haris Zahoor, Anam Saghir
2015, November 22nd

Revision History
Date
28-October-2015

Version
1.1

15-November-2015

1.2

20-November-2015
22-November-2015

2.0
2.1

Description
Modification
of
attributes
Modification
of
attributes
Change format, layout
Modification
of
16

Prepared by
Anam Saghir
Muhammad Haris Zahoor
Azra Yaqoob
Azra Yaqoob

attributes, alignment

2.1 Software Requirements Specification


2.1.1 Introduction
This SRS document presents a detailed description of the Green House City management
system (GHCMS) that we are developing for Green House City Sole Proprietor. The SRS will
discuss system functionalities regarding activities like clients management, employee
management, purchase details, stock details, supplier details, pots details and report generating.
This software is going to make computerize whole the paper based system. Green House City
management system is a desktop based application that works within that organization.

2.1.2 Purpose
The objective of this software is to minimize the problems that Green House City currently faces
regarding their current system. The current system of the Green House City is manual and paper
based which has many problems and ambiguities like clients data records and their proper
maintenance.
Following are the some common problems with current systems.
17

There is no proper record for employees details, clients details, purchase details, sale
details, stock details, payment details, supply details and Plant details.
Time consuming.
All information is not placed in centralized system.
Lot of paper work.
Slow data processing.
Not user-friendly environment.
Difficult to find records due to file management system.

So, our purpose is to provide a well-managed and maintained software system which provides
the relief to the management of Green House City, as they are interested to get accurate and fast
results from this software.

2.1.3 Scope
Supported by a well-designed database, all available employees details, clients details, purchase
details, sale details, stock details, payment details, supply details and Plant details is integrated
together and can be accessed easily through a single point. This software provides options for
viewing different details regarding GHCMS.
The database is completely efficient and balanced in its design, which allows us to store all
information about employees details, clients details, purchase details, sale details, stock details,
payment details, supply details and Plant details. Users can very easily navigate their way
through the system allowing maximum output and controlled access.

2.1.4 Definitions, Acronyms and Abbreviations


GHCMS
GHC
RUP
DB
SQL
C#
GUI
UI
FUUAST

Green House City Management System


Green House City
Rational Unified Process
Database
Structured Query Language
C Sharp
Graphical User Interface
User Interface
Federal Urdu University of Arts, science &
technology

References

Websites
www.functionx.com/csharp
www.programmersheaven.com
www.Rational.org
18

Books & Documents


Software Engineering by Ian Somerville, 7th edition
IEEE 830 SRS standard template.pdf
IEEE standard- Guidelines for writing SRS.pdf
Applying UML and Patterns by Craig Larman 2nd Edition
Visual C# Black Book
How to Program C# Dietel and Dietel

2.1.5 Overview
This part of the document contains all the requirements of the GHCMS. The functionalities of
the software included in this document after a detailed meeting with the honors of the Green
House City and the present staff in this organization. All the requirements are gathered in that
meeting just like the guarantee system will manage all the employees details, clients details,
purchase details, sale details, stock details, payment details, supply details and Plant details.

2.1.6 Functional Requirements


2.1.6.1 Security Management

User Login

SRS-01.
The system operates on Administrator mode and User mode. Entering login ID,
password and selecting the appropriate type of user allows for easy login to the system.
User cannot go in the next window until it provides the correct information regarding to the login
like password mismatching, an error message will be displayed by entering wrong information.

Change Password

SRS-02.
password.
2.1.6.2

Easy to change password by providing the login ID, old password and new

User Management
Add User

SRS-03.
Administrators have the exclusive rights to add Users by allocating a Login ID
and along with Users choice password and store respective password details in the system.

Activate/Deactivate User

SRS-04.

User accounts can be activated or deactivated as required by administrator by


19

providing the respective Login ID.

Search User

SRS-05.
Administrators can easily search a respective users record by entering Login ID
Administrator can also view list of all user and view the detailed information.
Update User
SRS-06.

Administrators can easily update a respective users record by entering Login ID

2.1.6.3 Employee Management

Add Employee

SRS-07.
Administrator can only add new Employee, his/her information includes his /her
name, contact number, address, employee category, CNIC number , Employee salary, joining
date, date of birth and employee.
A special Employee ID is generated for every employee whose record is stored in the DB.

Update Employee

SRS-08.
Administrator can only update existing Employee; his/her information includes
his /her name, contact number, permanent address, CNIC number & Employee salary.

Search Employee

SRS-09.
SRS-10.

The employee record can be searched by ID,


The employee record can also be searched by category to check his/her status.

Activate/Deactivate Employee

SRS-11. Administrator or User can successfully Activate/Deactivate the Employees record.


2.1.6.4 Client Record
Add Client
SRS-12.
User and Administrator enters the name, address and cell number, the client id
will be generated automatically and allocated to that client.
Search Client
SRS-13.
User and administrator can search the old client records by category.

20

SRS-14.
User can also Search employee and view the detailed information by entering the
type of client.
Update Client
SRS-15.
The Client record can be easily updated by entering the Client id.
2.1.6.5 . Supplier Record

Add Supplier

SRS-16.
Users enters the supplier information such as name, Plants supplied, Quantity of
Plant, Plant prices, Supplied date and contact information, id will be generated automatically and
allocated to that client.

Search Supplier

SRS-17.
User/Administrator can search the supplier records by entering the supplier id or
name.
Update Supplier
SRS-18.
User can modify the supplier information such as name, Plants supplied, Quantity
of Plant, Plant prices, supplied date and contact information, by entering the supplier id or name.
2.1.6.6 Plants details
Add Plant
SRS-19.
User enters the details of the Plant like Plant id, Plant name, Plant quantity and
Plant price, plant type.
Search Plant
SRS-20.
User can easily search the details of the Plant by Plant Category.
SRS-21.
User can also search plant by entering the type of plant.
Update Plant
SRS-22.
User can easily modify the details of the Plant by entering Plant id or name.

Activate/Deactivate Plant
SRS-23.Administrator can easily activate or deactivate the details of the Plant by entering
plant id or name.

21

2.1.6.7

Flowerpot details

Add pot
SRS-24.
User enters the details of the flowerpots like pot id, pot name, pot quantity, pot size
and pot price.
Search pot
SRS-25.
User can easily search the details of the pot by entering pot category.
SRS-26.
User can also search pots by defining the type of pot like small medium or large.
Update pot
SRS-27.
User can easily modify the details of the Flowerpots by entering pot id or pot name.
Activate/Deactivate pot
SRS-28.
Administrator can easily Activate/Deactivate the details of the flowerpot by
entering pot id
or name.
2.1.6.8 Order details
Add Order
SRS-29.
User enters the details of the order like order id, order date.
Search Order
SRS-30.
User can easily search the details of the order by entering order id.
Update Order
SRS-31.
If any change is required in order then user can easily modify the order by entering
order id.
Cancel Order
SRS-32.
Administrator can easily cancel the order if it is required by entering the order id.
2.1.6.9 Receipt Generation

Generate Receipt

SRS-33.
User enters the receipt id, receipt date, details of the order like Client name, Plant
name, Plant quantity etc.

Search Receipt

SRS-34. User can easily search the details of receipt by entering the receipt id or receipt date.
22

2.1.6.10

Payment Detail

Add Payment
SRS-35.
User enters the details of supplier payment like Supplier payment id, total
payment, Paid payment, remaining Paid payment, paid date, paid person like employee, supplier
etc.

Search Payment

SRS-36.
User can easily search the details of Paid payment by entering the supplier payment
id.
Update Payment
SRS-37.
If any change is required in supplier payment then user can easily modify the
payment by entering supplier payment id.

2.1.7 Non Functional Requirements


2.1.7.1 Usability
The required training time for normal users will not be more than one week. They can use this
system and can alter package s of this system life time.
Availability:
Accuracy:
Bugs or defect rate:
Correctness:

Our system facility will be available 24 hours.


Our system will be completely accurate INSHALLAH.
It will be minimum as possible.
Our system will meet the specified requirements.

2.1.7.2 Performance
PE 1.
speed.

The GHCMS will be memory effective Plant, ensuring maximum processing

PE 2.
the user.
PE 3.
seconds.

Reponses time will be quick between 4-8 seconds for DB queries submitted by
Reports, lists, and results generated by DB will also be displayed within 10

PE 4.
Any notifications, confirmation messages or error messages will be displayed in
clear, polite and error-free manner, usually within 3-6 seconds time limit.
PE 5.

Minimum System Requirements:

Memory:
Processor:

512MB RAM
2.0 GHz or up
23

Disk Space:

15 GB

2.1.7.3 Design Constraints


We must be very familiar with the Rational Unified Process (RUP) in order for the completion of
design process of the system and must be familiar with the C-Sharp and SQL Server 2008 for the
implementation process of the system.
2.1.7.4 User Help
A detailed and clearly written user manual along with help brochures will be provided to Green
House City Users to enable them to extract maximum benefit from the system. The GUI is very
simple and straight-forward of GHCMS.
Purchased Components
The Users might have to purchase Visual Studio 2010, SQL Server 2008 are purchased other
components i.e. computer, printer are already present
2.1.7.5 External Interface Requirements
Our project uses a windows application GUI which allows a user to store all information related
to the organization. There is emphasis on the speed of use for this UI.
2.1.7.6 User Interfaces
The user interfaces will be much user friendly because it will be made after discussion with the
users of the system. They will be in windows application GUIs, so will be more interactive.
2.1.7.7 Hardware Interfaces
The system will communicate with the printer. If the administrator and User wants to print any
information & receipts about clients and employees, i.e. lists, reports.
2.1.7.8 Software Interfaces
Windows
The operating system must be windows 2000, XP or Window 7/8.
SQL server 2008
The system must use SQL server as its database component. Communication with the DB is
through SQL connections.
C# (C-Sharp)
This API is used to develop the business logic which is a collection of C# components that will
save, load, and update reports to the database.

24

2.1.7.9 Licensing Requirements


The License of the Green House City Management System by the GREEN HOUSE CITY alone!
The only company or organization that can use this software is one with License. Other company
or organization using this software without the License issued by the GREEN HOUSE CITY will
be held responsible for the facing legal operations. The development team will not responsible
for the maintenance and service of the system after two weeks of deployment.

Use case Diagram

For

Green House City

Management System

25

Version 1.0
Prepared by: Muhammad Haris Zahoor
Revised by: Azra Yaqoob, Anam Saghir
Date: 13/12/2015

2.2 Use case Diagrams


Revision History
Date
Dec 4, 2015

Version
1.0

Description
Initial Use
Diagram

26

Prepared by
case Muhammad Haris Zahoor

27

28

29

Fully Dressed Use cases


For
Green House City
Management System
Version 1.0
Prepared by: Azra Yaqoob, Anam Saghir
Revises by: Muhammad Haris Zahoor
Date: 13/12/2015

30

2.3 Fully Dressed Use cases


Revision History
Date

Version

Description

Prepared by

Dec15, 2015

1.0

Initial Use cases

Anam Saghir, Azra


Yaqoob

Use Case ID: UC-01


Use Case Name: User login
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 10th Dec, 2015.

31

Use Case Description: This use case describes that how a user logs into the system.
Primary Actor: <Administrator>, < Operator>
Stake Holder & Interests: Administrator, Operator Wants to successfully log into the system.
Pre-Condition: System should be in running State.
Account ID and password must be present.
Main Success Scenario:
User Action
System Response
1 User enters Account ID and password.
2- System verifies the information and a
confirmation message will be displayed
to user.
3- System loads the default configuration
settings for current user.
Alternative Flows / Extension Points:
1a. User leaves blank ID and Password.
System should generate error message, and prompts to enter password and account ID.
Post Condition: A successful login confirmation is displayed.
The main screen of system will displayed to user.
Priority: High.
Frequency in Use: Most frequent in use
Cross Reference: SRS-01

Use Case ID: UC-02


Use Case Name: Change Password
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 10 Dec, 2015.


32

Use Case Description: This use case describes that how a user can changes his/her password in
system.
Primary Actor:
<Administrator>, <Operator>
Stake Holder & Interests: Administrator, Operator Wants to successfully change password
and update account information.
Pre-Condition: System should be logged in by authenticated user.
Old and new password must be present.
Main Success scenario:
User actions
System Response
1 User enters old password, new password
- and again new password to confirm.
2 The system verifies the password and
account is updated.
3-

A confirmation message is shown to


the user.

Alternative Flows / Extension Points:


1a. User enters incorrect old password.
System should generate error message.
1b. User Entered new and confirm new passwords do not match
System should generate error message prompting user to re-enter passwords.
1c- If user leaves the password fields blank.
System should generate error message.
1d. Users enters the new or confirm new password in invalid format.
System should generate appropriate error messages and prompt to re-enter password.
Post condition: Users account information is updated.
Priority: High.
Frequency in use: Less frequent.
Cross Reference: SRS-3
Use Case ID: UC-03
Use Case Name: Add User
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 10 Dec, 2015.

33

Use Case Description: This Use Case describes that how a user can Add Operator.
Primary Actor :< Administrator>
Stake Holder & Interests: Administrator wants to successfully add new operator.
Pre-Condition: User must be authenticated to the system.
Main Success scenario:
User actions
System Response
1 User must be authenticated to the system.
2 User enters his/her name, father name,
CNIC number etc. information.
3- Information is being updated.
4- Confirmation message is been shown to
the user.
Alternative Flows / Extension Points:
2a. User enters his/her wrong name.
User must enter his correct name Information
2b. If User enters wrong father name Information
User must enters the correct father name information
2c. If user enters wrong CNIC number Information
User must enter correct CNIC number
2d. If User left the blank field
User must enter the required Information.
Post condition: Add User is successfully changed in the system.
Users account information is updated.
Priority: High.
Frequency in use: Less frequent.
Cross Reference: SRS-03

Use Case ID: UC-04


Use Case Name: Activate/Deactivate User
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015

Use Case updated By: Azra Yaqoob

Use Case updated on: 11 Dec, 2015


34

Use Case Description: This use case describes that how an operators account is
Activated/Deactivated from the system.
Primary Actor: <Administrator>
Stakeholders & Interests: Administrator Wants to successfully Activate/Deactivate an
operator from the system.
Pre-Condition: System should be logged in by authenticated user.
Operators account must exist.
Main Success Scenario:
User Actions
System Response
1 Administrator requests to
- Activate/Deactivate an operators
account/record.
2 System verifies the request and the
- account is Activate/Deactivate d from
the system.
3 A confirmation message is displayed to
- the user.
Alternative Flows / Extension Points:
1a. Administrator wishes to only deactivate account.
System verifies and deactivates operators account until modified by administrator.
1b. Administrator cancels the deletion process.
System reverts back the deletion process and control returns
Post Condition: A confirmation message is displayed to the user.
Priority: Low
Frequent in Use: Less frequent.
Cross Reference: SRS-04

Use Case ID: UC-05


Use Case Name: Search User
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015.

Use Case updated By: Muhammad Haris Zahoor

Use Case Updated On: 11 Dec, 2015.

35

Use Case Description: This use case describes how to operator record is retrieved from the
system.
Primary Actors :< Administrator>, <Operator>
Stakeholders & Interests: Administrator, Operator Wants to successfully search operator
information from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 user information must be available.
Main Success Scenario:
User Actions
System Response
1User enters the operator
information.
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters invalid information of operator.
System generates appropriate error messages indicating user to re-enter the information.
1b. User leaves the field blank.
System generates an error message indicating user to re-enter information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-05

Use Case ID: UC-06


Use Case Name: Update User
Use Case Created On: 4th Dec, 2015.

Use Case created By: Azra Yaqoob


Use Case updated By: Muhammad Haris Zahoor

36

Use Case Updated On: 11 Dec, 2015.

Use Case Description: This use case describes how to update operator record from the system.
Primary Actors :< Administrator>, <Operator>
Stakeholders & Interests: Administrator, Operator Wants to successfully update operator
information from the system.
Pre-Condition: System should be logged in by authenticated user.
User information must be available to update.
Main Success Scenario:
User Actions
System Response
1User search the user information
Required information will be displayed.
for updation.
User enters the operator
2- System verifies and displays the
information
updated status.
Alternative Flows / Extension Points:
1a. User enters invalid information of operator.
System generates appropriate error messages indicating user to re-enter the information.
1b. User leaves the field blank.
System generates an error message indicating user to re-enter information.
Post-Condition: Updated Information is successfully stored in the system.
Priority: High
Frequency in use: Less frequent.
Cross reference: SRS-06

Use Case ID: UC-07


Use Case Name: Add Employee
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 4th Dec, 2015.

37

Use Case Description: This use case describes that how a user can add new employee.
Primary Actor: <Administrator>, < Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully add a new employee
into the system.
Pre-Condition: System should be logged in by authenticated user.
Main Success Scenario:
1
-

User Actions
user enter his\her name, contact number,
Address, CNIC number, employee
category, joining date, date of birth,
employee Salary & employee picture.

System Response

2
-

3
-

Employee name, contact number,


Address, CNIC number, employee
category, joining date, date of birth,
employee Salary & employee picture
are being updated.
Confirmation message is been shown to
the user.

Alternative Flows / Extension Points:


1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Contact Number Information
User must enter correct contact number Information
1c. User enters wrong Address Information.
User must enter correct address Information.
1d. User enters wrong CNIC NUMBER Information.
User must enter correct CNIC number Information.

1e. If User enters wrong Employee Salary Information


User must enter correct employee salary Information.
1f. If User enters wrong Employee category Information
User must enter correct employee category Information.
1g. If User enters wrong joining date Information
38

User must enter correct joining date Information.


1h. If User enters wrong date of birth Information
User must enter correct date of birth Information.
Post Condition: Employee Information is successfully changed in the system.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-07

Use Case ID: UC-08


Use Case Name: Update Employee
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015.

Use Case updated By: Muhammad Haris Zahoor

Use Case Updated On: 4th Dec, 2015.

39

Use Case Description: This use case describes that how an Employee information is Updated in
the system.
Primary Actor: Administrator, Operator
Stakeholders & Interests: Administrator/Operator Wants to successfully update a employee
record.
Pre-Condition: System should be logged in by authenticated user.
Staff record must exists.
Main Success Scenario:
User Actions
System Response
1
3

User search the user information for


2
updation.
User enters his/her name, contact 4
number,
Permanent address, CNIC, number &
Employee salary etc.
5
-

Required information will be


displayed.
System verifies the information and
successfully updated.
A confirmation message is displayed to
the user.

Alternative Flows / Extension Points:


1a. User enters any invalid updated information.
System generates appropriate error messages indicating user to re-enter information in
valid format.
1b. User leaves the any required information field blank.
System generates an error message indicating user to re-enter information.
Post Condition: A confirmation message is displayed to the user.
System prompts user if any more updates are to be performed.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-08

Use Case ID: UC-09


Use Case Name: Search Employee by type
Use Case created By: Anam Saghir

Use Case Created On: 5th Dec, 2015.

Use Case updated By: Anam Saghir

Use Case Updated On: 5th Dec, 2015.


40

Use Case Description: This use case describes how a Employee record is retrieved from the
system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search employee


record from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Staff information must be available.
Main Success Scenario:
1-

User Actions
User enters employee Id ,name,
date of birth and employee
category to search employee record

System Response

2-

System verifies and displays the search


status.

Alternative Flows / Extension Points:


1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Id Information
User must enter correct contact Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-09

Use Case ID: UC-10


Use Case Name: Search Employee by category
Use Case created By: Anam Saghir

Use Case Created On: 5th Dec, 2015.

Use Case updated By: Anam Saghir

Use Case Updated On: 5th Dec, 2015.


41

Use Case Description: This use case describes how a Employee record is retrieved from the
system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search employee


record from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Staff information must be available.
Main Success Scenario:
1-

User Actions
User enters Category of employee
like
Administrator, operator, driver or
Gardner.

System Response

2-

System verifies and displays the search


status.

Alternative Flows / Extension Points:


1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Id Information
User must enter correct contact Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS- 10

Use Case ID: UC-11


Use Case Name: Activate/Deactivate Employee
Use Case created By: Anam Saghir

Use Case Created On: 4th Dec, 2015

Use Case updated By: Anam Saghir

Use Case updated on: 4th Dec, 2015


42

Use Case Description: This use case describes that how an employees account is
Activated/Deactivated from the system.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator, Operator Wants to successfully Activate/Deactivate
an employee from the system.
Pre-Condition: System should be logged in by authenticated user.
Employees account must exist.
Main Success Scenario:
User Actions
System Response
1 Administrator, operator requests to
- Activate/Deactivate an employees
account/record.
2 System verifies the request and the
- employee is Activate/Deactivate d
from the system.
3 A confirmation message is displayed to
- the user.
Alternative Flows / Extension Points:
1a. Administrator, operator wishes to only deactivate account.
System verifies and deactivates employee account until modified by administrator.
1b. Administrator, Operator cancels the deletion process.
System reverts back the deletion process and control returns
Post Condition: A confirmation message is displayed to the user.
Priority: Low
Frequent in use: Less frequent.
Cross Reference: SRS-11

Use Case ID: UC-12


Use Case Name: Add Client
Use Case created By: Anam Saghir

Use Case Created On: 5th Dec, 2015.

Use Case updated By: Muhammad Haris Zahoor

Use Case Updated On: 5th Dec, 2015.

43

Use Case Description: This use case describes that how a user can add new Client.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully add a new Client
into the system.
Pre-Condition: System should be logged in by authenticated user.
Main Success Scenario:
User Actions
1 User enters his/her name, ID, contact
number, address.

System Response
2
3
-

Client name, contact number,


Address, client id are being updated.
Confirmation message is been shown to
the user.

Alternative Flows / Extension Points:


1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Contact Number Information
User must enter correct contact number Information
1c. User enters wrong Address Information.
User must enter correct address Information.
1d. If User enters wrong Client id Information.
User must enter correct client id Information.
1e. If User left the blank field
User must enter the required Information.
Post Condition: Client Information is successfully changed in the system.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-12

Use Case ID: UC-13


Use Case Name: Search Client by Category
Use Case created By: Azra Yaqoob

Use Case Created On: 5th Dec, 2015.

44

Use Case updated By: Azra Yaqoob

Use Case Updated On: 5th Dec, 2015.

Use Case Description: This use case describes how Client record is retrieved from the system.
Primary Actors:

<Administrator>, < operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Client record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Client information must be available.
Main Success Scenario:
User Actions
System Response
1User enters the client id, client
name or client type..
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Id Information
User must enter correct contact Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-13.

Use Case ID: UC-14


Use Case Name: Search Client by type
Use Case created By: Azra Yaqoob

Use Case Created On: 5th Dec, 2015.

45

Use Case updated By: Azra Yaqoob

Use Case Updated On: 5th Dec, 2015.

Use Case Description: This use case describes how Client record is retrieved from the system.
Primary Actors:

<Administrator>, < operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Client record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Client information must be available.
Main Success Scenario:
User Actions
System Response
1User enters the type of client i.e.
permanent or regular to search the
record of client.
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Id Information
User must enter correct contact Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS- 14.

Use Case ID: UC-15


Use Case Name: Update Client
Use Case created By: Anam Saghir

Use Case Created On: 5th Dec, 2015.

46

Use Case Updated On: 5th Dec, 2015.

Use Case updated By: Anam Saghir

Use Case Description: This use case describes that how a Client information is updated in the
system.
Primary Actor: <Administrator>, < Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully update a Client
record.
Pre-Condition: System should be logged in by authenticated user.
Client record must exists.
Main Success Scenario:
User Actions
System Response
1 User search the client information for
2 Required information will be
- updation.
displayed.
User enters his/her name, id.
2 System verifies the information and
- successfully updated.
3 A confirmation message is displayed to
- the user.
Alternative Flows / Extension Points:
1a. User enters any invalid updated information.
System generates appropriate error messages indicating user to re-enter information in
valid format.
1b. User leaves the any required information field blank.
System generates an error message indicating user to re-enter information.
Post Condition: A confirmation message is displayed to the user.
System prompts user if any more updates are to be performed.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-15

Use Case ID: UC-16


Use Case Name: Add Supplier
Use Case Created On: 5th Dec, 2015.

Use Case created By: Anam Saghir

47

Use Case updated By: Muhammad Haris Zahoor

Use Case Updated On: 5th Dec, 2015.

Use Case Description: This use case describes that how a user can add new Supplier.
Primary Actor: <Administrator>,< Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully add a new Supplier
into the system.
Pre-Condition: System should be logged in by authenticated user.
Main Success Scenario:
User Actions
System Response
1 Users enters the supplier information
- such as name, Plants supplied, Quantity
of Plant, Plant prices, Supplied date and
contact information, id information.
2 Supplier information is being updated.
3 Confirmation message is been shown to
- the user.
Alternative Flows / Extension Points:
1a. If User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Contact Information
User must enter correct contact Information
1c. If User enters wrong Plant Supplied Information.
User must enter correct plant supplied Information.
1d. If User enters wrong Quantity of Plants Information.
User must enter correct quantity of plants Information.
1e. If User enters wrong Plant Prices Information.
User must enter correct plant prices Information
1f. If User enters wrong Supplied Date Information.
User must enter correct supplied date Information
1g. If User enters wrong Id Information.
User must enter correct id Information

1h. If User left the blank field


User must enter the required Information.
Post Condition: Client Information is successfully changed in the system.
Priority: High
48

Frequent in use: Less frequent.


Cross Reference: SRS-16

Use Case ID: UC-17


Use Case Name: Search Supplier
Use Case Created On: 5th Dec, 2015.

Use Case created By: Anam Saghir

49

Use Case Updated On: 5th Dec, 2015.

Use Case updated By: Anam Saghir

Use Case Description: This use case describes how Supplier record is retrieved from the system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Supplier


record from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Client information must be available.
Main Success Scenario:
User Actions
System Response
1User enters his/her name, ID. etc.
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Id Information
User must enter correct contact Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-17

Use Case ID: UC-18


Use Case Name: Update Supplier
Use Case created By: Anam Saghir

Use Case Created On: 5th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 5th Dec, 2015.


50

Use Case Description: This use case describes that how a Supplier information is
updated in the system.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully update a Supplier
record.
Pre-Condition: System should be logged in by authenticated user.
Supplier record must exists.
Main Success Scenario:
User Actions
System Response
1
2

User search the supplier information for


updation.
User enters supplier name, plants
supplied, Quantity of plants, plants
prices, Supplied date and contact
information.

3
-

Required information will be


displayed.
System verifies the information and
successfully updated.

4
-

A confirmation message is displayed to


the user.

Alternative Flows / Extension Points:


1a. User enters any invalid updated information.
System generates appropriate error messages indicating user to re-enter information in
valid format.
1b. User leaves the any required information field blank.
System generates an error message indicating user to re-enter information.
Post Condition: A confirmation message is displayed to the user.
System prompts user if any more updates are to be performed.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-18

Use Case ID: UC-19


Use Case Name: Add plant
Use Case created By: Anam Saghir

Use Case Created On: 5th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 5th Dec, 2015.


51

Use Case Description: This use case describes that how a user can add new plant.
Primary Actor :< Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully add a new Plant into
the system.
Pre-Condition: System should be logged in by authenticated user.
Main Success Scenario:
User Actions
1 User enters the details of the Plant like
- Plant id, Plant name, Plant quantity and
plant price, plant type.

System Response

2
3
-

Supplier information Plant like Plant id,


Plant name, Plant quantity Plant type
and Plant price is being updated.
Confirmation message is been shown to
the user.

Alternative Flows / Extension Points:


1a. If User left the blank field
User must enter the required Information.
Post Condition: Plant Information is successfully changed in the system.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-19

Use Case ID: UC-20


Use Case Name: Search Plant by Category
Use Case created By: Azra Yaqoob

Use Case Created On: 13th Dec, 2015.


Use Case Updated On: 13thDec, 2015.

Use Case updated By: Azra Yaqoob


52

Use Case Description: This use case describes how Plant record is retrieved from the system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Plant record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Client information must be available.
Main Success Scenario:
User Actions
System Response
1User enters the plant id, name,
plant type to search plant detail by
category.
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct Plant name Information.
1b. If User enters wrong Id Information
User must enter correct Plant Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-20

Use Case ID: UC-21


Use Case Name: Search Plant By type
Use Case created By: Azra Yaqoob

Use Case Created On: 5th Dec, 2015.


Use Case Updated On: 5th Dec, 2015.

Use Case updated By: Azra Yaqoob


53

Use Case Description: This use case describes how Plant record is retrieved from the system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Plant record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Client information must be available.
Main Success Scenario:
User Actions
System Response
1User enters the type of plant like
summer or winter to search the
record of plant
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct Plant name Information.
1b. If User enters wrong Id Information
User must enter correct Plant Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-21

Use Case ID: UC-22


Use Case Name: Update Plant
Use Case created By: Anam Saghir

Use Case Created On: 5thDec, 2015.


Use Case Updated On: 5th Dec, 2015.

Use Case updated By: Azra Yaqoob


54

Use Case Description: This use case describes that how a Plant information is updated in the
system.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully update a Plant
record.
Pre-Condition: System should be logged in by authenticated user.
Plant record must exists.
Main Success Scenario:
User Actions
1 User search the plants information to
- update.
3

User enters his/her Plant name, Plant id


information

System Response
Required information will be
displayed.

4
5
-

System verifies the information and


successfully updated.
A confirmation message is displayed to
the user.

Alternative Flows / Extension Points:


3a. User enters any invalid updated information.
System generates appropriate error messages indicating user to re-enter information in
valid format.
3b. User leaves the any required information field blank.
System generates an error message indicating user to re-enter information.
Post Condition: A confirmation message is displayed to the user.
System prompts user if any more updates are to be performed.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-22

Use Case ID: UC-23


Use Case Name: Activate/Deactivate Plant
Use Case Created On: 5th Dec, 2015

Use Case created By: Anam Saghir


Use Case updated By: Muhammad Haris Zahoor
55

Use Case Updated On: 5th Dec, 2015

Use Case Description: This use case describes that how a plant's Activate/Deactivate d from the
system.
Primary Actor: <Administrator>
Stakeholders & Interests: Administrator Wants to successfully Activate/Deactivate a Plant
from the system.
Pre-Condition: System should be logged in by authenticated user.
Plant must be exist.
Main Success Scenario:
User Actions
System Response
1 Administrator requests to
- Activate/Deactivate a Plant by entering
plant id or plant name.
2 System verifies the request and the
- Plant is Activate/Deactivate d from the
system.
3 A confirmation message is displayed to
- the user.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Id Information
User must enter correct plant Id Information
1c. If User left the blank field
User must enter the required Information.
Post Condition: A confirmation message is displayed to the user.
Priority: Low
Frequent in use: Less frequent.
Cross Reference: SRS-23
Use Case ID: UC-24
Use Case Name: Add pot
Use Case Created On: 5th Dec, 2015.

Use Case created By: Azra Yaqoob

Use Case Updated On: 5th Dec, 2015.

Use Case updated By: Azra Yaqoob


56

Use Case Description: This use case describes that how a user can add new pot details.
Primary Actor :< Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully add a new Pot into
the system.
Pre-Condition: System should be logged in by authenticated user.
Main Success Scenario:
User Actions
1 User enters the details of the Pot like Pot
- id, Pot name, Pot quantity, pot price and
pot type.

System Response

2
3
-

Information of Pot like Por id, Pot


name, Pot quantity Pot type and Pot
price is being updated.
Confirmation message is been shown to
the user.

Alternative Flows / Extension Points:


1a. If User left the blank field
User must enter the required Information.
Post Condition: Pot Information is successfully added in the system.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-24

Use Case ID: UC-25


Use Case Name: Search Pot by category
Use Case created By: Azra Yaqoob

Use Case Created On: 13th Dec, 2015.


Use Case Updated On: 13th Dec, 2015.

Use Case updated By: Azra Yaqoob


57

Use Case Description: This use case describes how Pot record is retrieved from the system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Pot record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Pot information must be available.
Main Success Scenario:
User Actions
System Response
1User enters pot ID, pot name and
pot type to search pot
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct Pot name Information.
1b. If User enters wrong Id Information
User must enter correct Pot Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully displayed by the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-25

Use Case ID: UC-26


Use Case Name: Search Pot by type
Use Case created By: Azra Yaqoob

Use Case Created On: 13th Dec, 2015.


Use Case Updated On: 13th Dec, 2015.

Use Case updated By: Azra Yaqoob


58

Use Case Description: This use case describes how Pot record is retrieved from the system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Pot record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Pot information must be available.
Main Success Scenario:
User Actions
System Response
1User enters pot type like small,
medium or large to search the pot
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct Pot name Information.
1b. If User enters wrong Id Information
User must enter correct Pot Id Information
1c. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully displayed by the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-26

Use Case ID: UC-27


Use Case Name: Update Pot
Use Case Created On: 13th Dec, 2015.

Use Case created By: Azra Yaqoob

Use Case Updated On: 13th Dec, 2015.

Use Case updated By: Azra Yaqoob


59

Use Case Description: This use case describes that how a Pot information is updated in the
system.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully update a Pot record.
Pre-Condition: System should be logged in by authenticated user.
Pot record must exists.
Main Success Scenario:
User Actions
1 User search the pot information for
- updation.
3

User enters Pot name, Pot id


information to search pot for updation.

System Response
Required information will be
displayed.

4
5
-

System verifies the information and


successfully update.
A confirmation message is displayed to
the user.

Alternative Flows / Extension Points:


3a. User enters any invalid updated information.
System generates appropriate error messages indicating user to re-enter information in
valid format.
3b. User leaves the any required information field blank.
System generates an error message indicating user to re-enter information.
Post Condition: A confirmation message is displayed to the user.
System prompts user if any more updates are to be performed.
Priority: High
Frequent in use: Less frequent.
Cross Reference: SRS-27

Use Case ID: UC-28


Use Case Name: Activate/Deactivate Pot
Use Case created By: Azra Yaqoob

Use Case Created On: 13th Dec, 2015

Use Case updated By: Azra Yaqoob

Use Case Updated On: 13th Dec, 2015


60

Use Case Description: This use case describes that how a pot is Activate/Deactivate d from the
system.
Primary Actor: <Administrator>
Stakeholders & Interests: Administrator Wants to successfully Activate/Deactivate a Pot
record from the system.
Pre-Condition: System should be logged in by authenticated user.
Pot must be exist.
Main Success Scenario:
User Actions
System Response
1 Administrator requests to
- Activate/Deactivate a Pot by entering
pot id.
2 System verifies the request and the Pot
- will be Activate/Deactivate from the
system.
3 A confirmation message is displayed to
- the user.
Alternative Flows / Extension Points:
1a. User enters wrong Name Information.
User must enter correct name Information.
1b. If User enters wrong Id Information
User must enter correct pot Id Information
1c. If User left the blank field
User must enter the required Information.
Post Condition: A confirmation message is displayed to the user.
Priority: Low
Frequent in use: Less frequent.
Cross Reference: SRS-28

Use Case ID: UC-29


Use Case Name: Add Order
Use Case Created On: 11th Dec, 2015.

Use Case created By: Anam Saghir

61

Use Case Updated On: 11th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Description: This use case describes that how a user can add Order.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully add a Order into the
system.
Pre-Condition: System should be logged in by authenticated user.
Main Success Scenario:
User Actions
1- User enters the details of the order like
order id, order date.

System Response
2- Order information order id, order date
are being updated.
3- Confirmation message is been shown to
the user.

Alternative Flows / Extension Points:


1a. If User left the blank field
User must enter the required Information.
Post Condition: Product Information is successfully changed in the system.
Priority: High
Frequent in Use: Less frequent.
Cross Reference: SRS-29

Use Case ID: UC-30


Use Case Name: Search Order
Use Case created By: Anam Saghir

Use Case Created On: 11th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 13th Dec, 2015.


62

Use Case Description: This use case describes that how Order record is retrieved from the
system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Order record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Order information must be available.
Main Success Scenario:
User Actions
System Response
1User enters the order id or order
date to search orders detail.
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. If User enters wrong Id Information
User must enter correct contact Id Information
1b. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully displayed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-30

Use Case ID: UC-31


Use Case Name: Update Order
Use Case created By: Anam Saghir

Use Case Created On: 11th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 13th Dec, 2015.


63

Use Case Description: This use case describes that how a Plants information is updated in the
system.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully update an Order
record.
Pre-Condition: System should be logged in by authenticated user.
Order record must exists.
Main Success Scenario:
User Actions
System Response
1- User search the user information for
2 Required information will be
updation.
displayed.
3

User enters the order id etc.

4- System verifies the Order id and


successfully updated.
5- A confirmation message is displayed to
the user.

Alternative Flows / Extension Points:


3a. If User enters wrong Id Information
User must enter correct contact Id Information
3b. User leaves the any required information field blank.
System generates an error message indicating user to re-enter information.
Post Condition: A confirmation message is displayed to the user.
System prompts user if any more updates are to be performed.
Priority: High
Frequent in Use: Less frequent.
Cross Reference: SRS-31

Use Case ID: UC-32


Use Case Name: Cancel Order
Use Case created By: Anam Saghir

Use Case Created On: 11th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 11th Dec, 2015.


64

Use Case Description: This use case describes that how an operators account will
Activate/Deactivate from the system.
Primary Actor: <Administrator>
Stakeholders & Interests: Administrator Wants to successfully Cancel Order from the system.
Pre-Condition: System should be logged in by authenticated user.
Order must be exist.
Main Success Scenario:
User Actions
1- Administrator requests to Cancel Order
by entering Order ID

System Response
2- System verifies the request and the
Cancel Order from the system.
3- A confirmation message is displayed to
the user.

Alternative Flows / Extension Points:


1a. If User enters wrong Id Information
User must enter correct plant Id Information
1a. If User left the blank field
User must enter the required Information.
Post Condition: A confirmation message is displayed to the user.
Priority: Low
Frequent in Use: Less frequent.
Cross Reference: SRS-32

Use Case ID: UC-33


Use Case Name: Generate Receipt
Use Case created By: Anam Saghir

Use Case Created On: 11th Dec, 2015.


Use Case Updated On: 13th Dec, 2015.

Use Case updated By: Azra Yaqoob

65

Use Case Description: This use case describes that how a user can add Generate Receipt

Primary Actor: <Administrator>, <Operator>


Stakeholders & Interests:

Administrator/Operator Wants to successfully generate Receipt


into the system.
System should be logged in by authenticated user.

Pre-Condition:
Main Success Scenario:
User Actions
1- User enters the receipt id, receipt date,
details of the order like Client name,
plant name, plant quantity etc.

System Response

2- Receipt info like receipt id, receipt date,


details of the order like Client name,
plant name, plant quantity etc. are being
updated
3- Confirmation message is been shown to
the user.
Alternative Flows / Extension Points:
1a. User enters invalid information of Receipt.
System generates appropriate error messages indicating user to re-enter the information.
1b. If User left the blank field
User must enter the required Information.
Post Condition: Plant Information is successfully changed in the system.
Priority: High
Frequent in Use: Less frequent.
Cross Reference: SRS-33

Use Case ID: UC-34


Use Case Name: Search Receipt
Use Case created By: Anam Saghir

Use Case Created On: 11th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 13th Dec, 2015.

66

Use Case Description: This use case describes how Order record is retrieved from the system.
Primary Actors:

<Administrator>, <operator>

Stakeholders & Interests: Administrator/operator Wants to successfully search Receipt record


from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Receipt information must be available.
Main Success Scenario:
User Actions
System Response
1User enters the Receipt ID.
2- System verifies and displays the search
status.
Alternative Flows / Extension Points:
1a. If User enters wrong Id or date Information
User must enter correct contact Id or date Information
1b. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-34

Use Case ID: UC-35


Use Case Name: Add Payment
Use Case Created On: 11th Dec, 2015.

Use Case created By: Anam Saghir

Use Case Updated On: 13th Dec,

Use Case updated By: Azra Yaqoob


2015.
67

Use Case Description: This use case describes that how a user can Add Supplier Payment.
Primary Actor: <Administrator>, < Operator>
Stakeholders & Interests:

Administrator/Operator Wants to successfully Add Supplier


Payment.

Pre-Condition:
System should be logged in by authenticated user.
Main Success Scenario:
User Actions
System Response
1- User enters the details of Supplier
payment like Supplier payment id, total
payment, Paid payment, remaining Paid
payment, paid date, paid person like
employee, supplier etc.
2- Supplier payment like Supplier
payment id, total payment, Paid
payment, remaining Paid payment, paid
date, paid person like employee,
supplier are being updated.
3- Confirmation message is been shown to
the user.
Alternative Flows / Extension Points:
1a. User enters invalid information of Paid Payment.
System generates appropriate error messages indicating user to re-enter the information.
1b. User leaves the field blank.
System generates an error message indicating user to re-enter information.
Post Condition: Paid payment is successfully changed in the system.
Priority: High
Frequent in Use: Less frequent.
Cross Reference: SRS-35
Use Case ID: UC-36
Use Case Name: Search Payment
Use Case created By: Anam Saghir

Use Case Created On: 11th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 13th Dec, 2015.

68

Use Case Description: This use case describes how Supplier Payment record is retrieved from
the system.
Primary Actors:
<Administrator>, <operator>
Stakeholders & Interests: Administrator/operator Wants to successfully search Supplier
Payment record from the system.
Pre-Condition: System should be logged in by authenticated user.
At least 1 Supplier Payment information must be available.
Main Success Scenario:
User Actions
1User enters the Supplier Payment
ID or supplier payment date.

System Response
2-

System verifies and displays the search


status.

Alternative Flows / Extension Points:


1a. If User enters wrong Id Information
User must enter correct Supplier payment Id Information
1b. If User left the blank field
User must enter the required Information.
Post-Condition: Search Information is successfully changed in the system.
Priority: High
Frequency in use: Most frequently in use.
Cross reference: SRS-36

Use Case ID: UC-37


Use Case Name: Update Payment
Use Case created By: Anam Saghir

Use Case Created On: 11th Dec, 2015.

Use Case updated By: Azra Yaqoob

Use Case Updated On: 13th Dec, 2015.

69

Use Case Description: This use case describes that how a Supplier Payment information is
updated in the system.
Primary Actor: <Administrator>, <Operator>
Stakeholders & Interests: Administrator/Operator Wants to successfully update Supplier
Payment record.
Pre-Condition: System should be logged in by authenticated user.
Supplier Payment record must exists.
Main Success Scenario:
User Actions
System Response
1- User search the supplier information for 2 Required information will be
updation.
displayed.
3

User enters the supplier Payment id.

4- System verifies the Supplier Payment


id and successfully updated.
5- A confirmation message is displayed to
the user.

Alternative Flows / Extension Points:


3a. If User enters wrong Id Information
User must enter correct Supplier payment Id Information
3b. User leaves the any required information field blank.
System generates an error message indicating user to re-enter information.
Post Condition: A confirmation message is displayed to the user.
System prompts user if any more updates are to be performed.
Priority: High
Frequent in Use: Less frequent.
Cross Reference: SRS-38

System Sequence Diagrams


For
Green House City
70

Management System
Prepared by: Muhammad Haris
Zahoor
Revised by: Azra Yaqoob ,Anam
Saghir
December 10th, 2015

71

2.4 System sequence diagrams

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

Entity Relationship Diagram


For
Green House City
Management System
Prepared by: Muhammad Haris Zahoor
Revised By: Anam Saghir, Azra Yaqoob
December 10th, 2015

91

2.5 Entity Relationship Diagram

92

93

Normalization
For
Green House City
Management System
Prepared by: Muhammad Haris Zahoor
Revised By: Azra Yaqoob, Anam Saghir
December 10th, 2015

2.6 Normalization
NORMALIZED TABLES UPTO 3NF
ADDEMPLOYEE :
em
p_i
d

emp_na
me

emp_ emp_
addre phone
ss

emp
_gen
der

emp_c emp_D.O
ategory .B
94

emp_ emp_sal
D.O. ary
B

Emp_st
atus

user_id

Operator :
op_id

op _name

op_availibility op _status

op _password

user_id

Plants:
pl_id

pl _name

pl
_season

pl _type

pl_status

pl
_category

pl
_price

pl
_quantity

user_id

Pot Table :
Pt_id

Pt_status

Pt_name

user_id

Potquantity:
Pts_id

Pts_size

Pts_price

Pts_quantity

user_id

Client:
cl_id

Supplier :
sup_id

cl _name

sup_name

cl _type

cl _address

sup_address

SupplierProduct:
sup_id sup_product_id sup_quantity sup_date
Order:
order_id

order_date

Orderdetail:
order_id order_product_id

client_id

order_quantity

cl _phone

sup_phone

user_id

user_id

sup_per_price sup_total_price user_id

user_id

order_quantity_
per_price

95

order_quantity_total_price

user_id

SupplierPayment:
spmt_i
d

spmt_dat spmt_totala
e
mount

spmt_
dueamount

spmt_totalpai spmt_
damount
duedate

sup_id

cpmt_
dueamount

cpmt_totalpai cpmt_
damount
duedate

ord_id

user_id

ClientPayment:
cpmt_i cpmt_dat cpmt_totala
d
e
mount

Client Receipt Table :


rec_id
rec_date

cp_id

cl_id

order_id

user_id

user_id

Domain Model
96

For
Green House City
Management System
Prepared by: Muhammad Haris
Zahoor
Revised By: Azra Yaqoob, Anam
Saghir
December 10th, 2015

97

2.7 Domain Model

98

2.8 Relational Modal

Attribute
Table ID

Primary
2emp_id

Normal Attribute
emp_name
emp_address
emp_phoneno
Table
Name OPERATOR
Attribute
Primary
Foreign Key
Normal
Attribute
emp_gender
op_id
user_id
op_name
emp_DOB
op_status
emp_category
op_password
emp_DOB
user_availibility
Table ID
3
emp_salary
emp_status
Attribute
Primary
Foreign Key
Normal Attribute
Table Name Plants
pl_id
user_id
pl_name
pl_season
pl_type
pl_category
pl_price
pl_quantity
pl_status

Attribute

Primary
pt_id

Table ID

Table Name

PotsQuantity

Foreign Key
user_id

Foreign Key
user_id

Normal Attribute
pt_size
pt_price
pt_quantity
pt_status

99

Attribute

Primary
pt_id

Table ID

Table Name

Client

Attribute

Primary
cl_id
cl_type
cl_address
cl_phone

Foreign Key
user_id

Normal Attribute
pt_name

Foreign Key
user_id

Normal Attribute
cl_name

Table ID

Table Name

Supplier

Attribute

Primary
sup_id

Foreign Key
user_id

Table ID

Table Name

SupplierProduct

Normal Attribute
sup_name
sup_address
sup_phone

100

Attribute

Primary
sup_id

Table ID

Table Name

Order

Attribute

Primary
order_id

Table ID

10

Table Name

OrderDetail

Attribute

Primary
order_id

Foreign Key
user_id

Normal Attribute
sup_quantity
sup_date
sup_product_id
sup_total_price
sup_per_price

Foreign Key
user_id
client_id

Normal Attribute
order_date

Foreign Key
user_id

Normal Attribute
order_product_id
order_quantity_total_price
order_quantity
order_quantity_per_price

101

Table ID

11

Table Name

SupplierPayment

Attribute

Primary
spmt_id

Foreign Key
suup_id
user_id

Normal Attribute
spmt_totalamount
spmt_dueamount
spmt_paidamount
spmt_duedate
spmt_paydate
supplydate

102

Table ID

12

Table Name

Receipt Table

Attribute

Primary
rec_id

Table ID

13

Table Name

ClientPayment

Attribute

Primary
cpmt_id

Foreign Key
cl_id
user_id
pl_id
ordr_id

Normal Attribute
date

Foreign Key
oord_id
user_id

Normal Attribute
cpmt_totalamount
cpmt_dueamount
cpmt_paidamount
cpmt_duedate
cpmt_paydate

103

3. CONSTRUCTION

104

Class Diagram
For
Green House City
Management System
Prepared by: Muhammad Haris
Zahoor
Revised By: Azra Yaqoob, Anam
Saghir
January 5th, 2016

105

3.1 Class Diagram

106

3.2 Implenentation Code


3.2.1 User Management
class BLUser
{
///object creation..for DLUser
DLUser obj1 = new DLUser();
///global variable inilization..
string id, name, status, password,conformid;
string userid;
/// <summary>
/// this method is used to the search id from table and dispaly in comobox
/// this method is used in the add operator form
/// </summary>
/// <returns></returns>
public DataTable searchoperatorcombo()
{
return obj1.searchoperatorcombodatabase();
}
/// <summary>
/// this method is used in changepassword form... for searching those user data that are
administrator or operator
/// </summary>
/// <returns></returns>
public DataTable searchusercombo()
{
return obj1.searchusercombodatabase();
}
///this method is used to display value in the text field...
public DataTable showtextfield(string comboxselecteditem1)
{
id = comboxselecteditem1;
return obj1.datatextfield(id);
}
/// <summary>
/// /this method is used to show data in text field but this method is used in
changepasswrd..form...
/// </summary>
/// <param name="comboxselecteditem1"></param>
/// <returns></returns>
public DataTable showtextfield1(string comboxselecteditem1)
{
id = comboxselecteditem1;
return obj1.datatextfield1(id);
}
//add operator method
public int addoperator(string id1, string name1, string status1, string password1,string
useridno,string currentstatus)
{
id = id1;
name = name1;
status = status1;
password = password1;
userid = useridno;

107

if (password1 == "")
{
MessageBox.Show("Password field is empty so Add Opeartor cannot perform...");
return 0;
}
else if (password1 == "" && id == "")
{
MessageBox.Show("All fields are empty so Opeator data cannot be inserted...");
return 0;
}
else if (id == "")
{
MessageBox.Show("Please first select the id option then data will be inserted...");
return 0;
}
else if (currentstatus == "")
{
MessageBox.Show("Your current status field is empty please select the desire
option..");
return 0;
}
}

return obj1.operatorinsert(id, name, status, password,userid,currentstatus);

//changepassword form method...


public int Change_Password(string id1,string newpassword1,string confirmpassword1,string
userid1)
{
id = id1;
password = newpassword1;
conformid = confirmpassword1;
userid = userid1;
if (password == "" && confirmpassword1 == ""&&id=="")
{
MessageBox.Show("All fields are empty so password cannot be changed...");
return 0;
}
else if (id == "")
{
MessageBox.Show("Please first select the id option then data will be inserted...");
return 0;
}
else if (password == "" && confirmpassword1 == "")
{
MessageBox.Show("Your password and confirm password field are empty please enter
the desire information...");
return 0;
}
else if(password=="")

108

MessageBox.Show("Your password field is empty please enter the desire information...

");

return 0;
}
else if (confirmpassword1 == "")
{
MessageBox.Show("Your confirm password field is empty please enter the desire
information... ");
return 0;
}
else if (password != confirmpassword1)
{
MessageBox.Show("Your Password and Confirmation password are mismatch please
enter the desire information...");
return 0;
}

return obj1.changepassworddatabase(id,password);

///search operator comboxbox....this method is used in the search opratoer method...


public DataTable searchoperatordropdown()
{
return obj1.searchoperatordropdowndatabase();
}
///search operator fucntion....
///id search method.....
public DataTable searchoperator(string id1)
{
id = id1;
if (id == "Please select Id")
{
MessageBox.Show("Please first select the desire option..");
}

return obj1.searchdatabase(id);

public int deleteoperator(string id1)


{
id = id1;
if (id == "Please select Id")
{
MessageBox.Show("Please first select the desire option..");

}
return obj1.deleteoperatordatabase(id);

109

///for login authentication...


public DataTable loginauthenticate(string id1, string password1)
{
id = id1;
password = password1;
///its id and password aunthentication...
if (id == ""&&password=="")
{
MessageBox.Show("Your Id and Password field is empty.So login cannot possible.");
}

//its id authentication...
else if (id == "")
{
MessageBox.Show("Your Id field is empty.So login cannot possible.");
}

///its password authenticaion...


else if (password == "")
{
MessageBox.Show("Your Password field is empty.So login cannot possible.");
}
return obj1.checkuserlogin(id,password);
}
///end of the login authentication...
///
///search operator deactivated...
public DataTable searchoperatordropdownactivate()
{
return obj1.searchoperatordropdownactivatedatabase();
}
////for Activation of users...
public int activateoperator(string id1)
{
id = id1;
if (id == "Please select Id")
{
MessageBox.Show("Please first select the desire option..");
}
return obj1.activateoperatordatabase(id);
}
}

3.2.2 Employee Management


class BLEmployee
{
///object creation of DLEmployee class..
DLEmployee obj1 = new DLEmployee();
/// <summary>
/// global variable inilitilization...

110

/// logic class


/// </summary>
/// <returns></returns>
public string id, name, gender, address, dob, contactno, cnic, category, joindate,useridno;
public string salary;
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
////for checking last id through max function..
public string check()
{
return obj1.checkdatabase();
}
/// <summary>
/// this function name is method.it is belong to the add employee...
/// </summary>
/// <param name="id1"></param>
/// <param name="name1"></param>
/// <param name="gender1"></param>
/// <param name="address1"></param>
/// <param name="dob1"></param>
/// <param name="contactno1"></param>
/// <param name="cnic1"></param>
/// <param name="salary1"></param>
/// <param name="category1"></param>
/// <param name="joindate1"></param>
/// <param name="image1"></param>
/// <returns></returns>
public int empauthenticate(string id1, string name1, string gender1, string address1, string
dob1, string contactno1, string cnic1, string salary1, string category1, string joindate1,string
userid,string status)
{
useridno = userid;
id = id1;
name = name1;
gender = gender1;
address = address1;
dob = dob1;
contactno = contactno1;
cnic = cnic1;
salary = salary1;
category = category1;
joindate = joindate1;

if (id == "" && name == "" && gender == "" && address == "" && contactno == "" &&
cnic == "" && salary == "" && category == "")
{
MessageBox.Show("All compulsory field all empty so data cannot be inserted...");
return 0;
}

111

else if (id == "" && gender == "" && address == "" && contactno == "" && cnic == ""
&& salary == "" && category == "")
{
MessageBox.Show("All compulsory field
id,gender,address,contactno,cnic,salary,category are empty so data cannot be inserted...");
return 0;
}
else if (id == "" && name == "" && address == "" && contactno == "" && cnic == "" &&
salary == "" && category == "")
{
MessageBox.Show("All compulsory field
id,name,address,contactno,cnic,salary,category are empty so data cannot be inserted...");
return 0;
}
////when address is enter...ohter filed is not enter....
else if (id == "" && name == "" && gender == "" && contactno == "" && cnic == "" &&
salary == "" && category == "")
{
MessageBox.Show("All compulsory field id,name,gender,contactno,cnic,salary,category
are empty so data cannot be inserted...");
return 0;
}
///when contact field is enter other is not...
else if (id == "" && name == "" && address == "" && gender == "" && cnic == "" &&
salary == "" && category == "")
{
MessageBox.Show("All compulsory field id,name,address,gender,cnic,salary,category
are empty so data cannot be inserted...");
return 0;
}
///when cnic field is enter and other is not...
else if (id == "" && name == "" && address == "" && gender == "" && contactno == ""
&& salary == "" && category == "")
{
MessageBox.Show("All compulsory field
id,name,address,gender,contact,salary,category are empty so data cannot be inserted...");
return 0;
}
///when employee category filed is empty...
else if (id == "" && name == "" && address == "" && gender == "" && contactno == ""
&& salary == "" && cnic == "")
{
MessageBox.Show("All compulsory field id,name,address,gender,contact,salary,cnic are
empty so data cannot be inserted...");
return 0;
}
else if (name == "" && gender == "" && address == "" && contactno == "" && cnic ==
"" && salary == "" && category == "")
{
MessageBox.Show("All compulsory field
name,gender,address,contactno,cnic,salary,category are empty so data cannot be inserted...");

112

return 0;
}
else if (gender == "" && address == "" && contactno == "" && cnic == "" && salary ==
"" && category == "")
{
MessageBox.Show("All compulsory field gender,address,contactno,cnic,salary,category
are empty so data cannot be inserted...");
return 0;
}
else if (address == "" && contactno == "" && cnic == "" && salary == "" && category
== "")
{
MessageBox.Show("All compulsory field address,contactno,cnic,salary,category are
empty so data cannot be inserted...");
return 0;
}
else if (contactno == "" && cnic == "" && salary == "" && category == "")
{
MessageBox.Show("All compulsory field contactno,cnic,salary,category are empty so
data cannot be inserted...");
return 0;
}
else if (cnic == "" && salary == "" && category == "")
{
MessageBox.Show("All compulsory field cnic,salary,category are empty so data cannot
be inserted...");
return 0;
}
else if (salary == "" && category == "")
{
MessageBox.Show("All compulsory field salary,category are empty so data cannot be
inserted...");
return 0;
}
else if (id == "")
{
MessageBox.Show("The id field is empty so data cannot be inserted...");
return 0;
}
else if (name == "")
{
MessageBox.Show("The name field is empty so data cannot be inserted...");
return 0;
}
else if (gender == "")
{
MessageBox.Show("The gender field is empty so data cannot be inserted...");
return 0;
}
else if (address == "")
{
MessageBox.Show("The address field is empty so data cannot be inserted...");
return 0;
}
else if (contactno == "")
{
MessageBox.Show("The contactno field is empty so data cannot be inserted...");

113

return 0;
}
else if (cnic == "")
{
MessageBox.Show("The cnic field is empty so data cannot be inserted...");
return 0;
}
else if (salary == "")
{
MessageBox.Show("The salary field is empty so data cannot be inserted...");
return 0;
}
else if (category == "")
{
MessageBox.Show("The category field is empty so data cannot be inserted...");
return 0;
}
return obj1.insertemp(id, name, gender, address, dob, contactno, cnic, salary, category,
joindate,useridno,status);
}
///end of the employee method classs....
///searching employee code..
///for select category aunthentication...
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}
}

return obj1.databaseserachid(id);

///name search method...


public DataTable searchname(string name1)
{
name = name1;
if (name == "")
{
MessageBox.Show("Name field is empty so searching is not poosible...");
}
}

return obj1.databaseserachname(name);

///for date search

114

public DataTable searchdate(string dateto, string datefrom)


{
string dateto1 = dateto;
string datefrom1 = datefrom;
return obj1.databasesearchdate(dateto1, datefrom1);
}
///name search category...
public DataTable searhcategory(string category1)
{
category = category1;
}

return obj1.databaseserachcategory(category);

/// <summary>
/// for search id updatation of data...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public DataTable updatesearch(string id)
{
string id1 = id;
if (id1 == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

}
return obj1.updatesearchdatabase(id1);
}
///for updation of employeee data...
///for inseration in updation of data check validaty...
public int empupdate(string id2, string name2, string gender2, string address2, string dob2,
string contactno2, string cnic2, string salary2, string category2, string joindate2)
{
id = id2;
name = name2;
gender = gender2;
address = address2;
dob = dob2;
contactno = contactno2;
cnic = cnic2;
salary = salary2;
category = category2;
joindate = joindate2;
if (name == "" && gender == "" && address == "" && contactno == "" && cnic == ""
&& salary == "" && category == "")
{
MessageBox.Show("All compulsory field all empty so data cannot be inserted...");
return 0;
}
else if (gender == "" && address == "" && contactno == "" && cnic == "" && salary ==
"" && category == "")

115

MessageBox.Show("All compulsory field gender,address,contactno,cnic,salary,category


are empty so data cannot be inserted...");
return 0;
}
else if (name == "" && address == "" && contactno == "" && cnic == "" && salary == ""
&& category == "")
{
MessageBox.Show("All compulsory field name,address,contactno,cnic,salary,category
are empty so data cannot be inserted...");
return 0;
}
////when address is enter...ohter filed is not enter....
else if (name == "" && gender == "" && contactno == "" && cnic == "" && salary == ""
&& category == "")
{
MessageBox.Show("All compulsory field name,gender,contactno,cnic,salary,category
are empty so data cannot be inserted...");
return 0;
}
///when contact field is enter other is not...
else if (name == "" && address == "" && gender == "" && cnic == "" && salary == ""
&& category == "")
{
MessageBox.Show("All compulsory field name,address,gender,cnic,salary,category are
empty so data cannot be inserted...");
return 0;
}
///when cnic field is enter and other is not...
else if (name == "" && address == "" && gender == "" && contactno == "" && salary
== "" && category == "")
{
MessageBox.Show("All compulsory field name,address,gender,contact,salary,category
are empty so data cannot be inserted...");
return 0;
}
///when employee category filed is empty...
else if (name == "" && address == "" && gender == "" && contactno == "" && salary
== "" && cnic == "")
{
MessageBox.Show("All compulsory field name,address,gender,contact,salary,cnic are
empty so data cannot be inserted...");
return 0;
}
else if (name == "" && gender == "" && address == "" && contactno == "" && cnic ==
"" && salary == "" && category == "")
{
MessageBox.Show("All compulsory field
name,gender,address,contactno,cnic,salary,category are empty so data cannot be inserted...");
return 0;

116

}
else if (gender == "" && address == "" && contactno == "" && cnic == "" && salary ==
"" && category == "")
{
MessageBox.Show("All compulsory field gender,address,contactno,cnic,salary,category
are empty so data cannot be inserted...");
return 0;
}
else if (address == "" && contactno == "" && cnic == "" && salary == "" && category
== "")
{
MessageBox.Show("All compulsory field address,contactno,cnic,salary,category are
empty so data cannot be inserted...");
return 0;
}
else if (contactno == "" && cnic == "" && salary == "" && category == "")
{
MessageBox.Show("All compulsory field contactno,cnic,salary,category are empty so
data cannot be inserted...");
return 0;
}
else if (cnic == "" && salary == "" && category == "")
{
MessageBox.Show("All compulsory field cnic,salary,category are empty so data cannot
be inserted...");
return 0;
}
else if (salary == "" && category == "")
{
MessageBox.Show("All compulsory field salary,category are empty so data cannot be
inserted...");
return 0;
}
else if (id == "")
{
MessageBox.Show("The id field is empty so data cannot be inserted...");
return 0;
}
else if (name == "")
{
MessageBox.Show("The name field is empty so data cannot be inserted...");
return 0;
}
else if (gender == "")
{
MessageBox.Show("The gender field is empty so data cannot be inserted...");
return 0;
}
else if (address == "")
{
MessageBox.Show("The address field is empty so data cannot be inserted...");
return 0;
}
else if (contactno == "")
{
MessageBox.Show("The contactno field is empty so data cannot be inserted...");
return 0;
}

117

else if (cnic == "")


{
MessageBox.Show("The cnic field is empty so data cannot be inserted...");
return 0;
}
else if (salary == "")
{
MessageBox.Show("The salary field is empty so data cannot be inserted...");
return 0;
}
else if (category == "")
{
MessageBox.Show("The category field is empty so data cannot be inserted...");
return 0;
}
return obj1.updatedatabase(id, name, gender, address, dob, contactno, cnic, salary,
category, joindate);
}
///for employee activation....
public int employeeactivate(string id1, string status1)
{
id = id1;
if (id == "")
{
MessageBox.Show("The Activate id field is empty please enter the desire id...");
return 3;
}
string status = status1;
return obj1.employeeactivatedatabase(id1,status1);
}
///for employee deactivation...
public int employeedeactive(string id1, string status1)
{
id = id1;
if (id == "")
{
MessageBox.Show("The Activate id field is empty please enter the desire id...");
return 3;
}
string status = status1;
return obj1.employedeactivatedatabase(id1, status1);
}
////for deactivate employeee search...
public DataTable searhdeatvieemployee()
{
return obj1.searchdeatvateddatabase();
}
}

118

3.2.3 Plant Management


class BLPlants
{
///object creation of DLP class..
DLPlants obj1 = new DLPlants();
/// <summary>
/// global variable inilitilization...
/// logic class
/// </summary>
/// <returns></returns>
public string id, name, season, type, category, quantity, userid,plant;
public string price;
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
////for checking last id through max function..
public string check()
{
return obj1.checkdatabase();
}
///this method is used to authenticate the plants data
public int plantauthenticate(string id1,string name1,string season1,string type1,string
category1,string quantity1,string userid1,string price1,string status)
{
id = id1;
name = name1;
season = season1;
type = type1;
category = category1;
quantity = quantity1;
userid = userid1;
price = price1;
if (name == "" && season == "" && type == "" && category == "" && quantity == "" &&
price1 == "")
{
MessageBox.Show("All compulsory field all empty so plant data cannot be inserted...");
return 0;
}
else if (season == "" && type == "" && category == "" && quantity == "" && price1 ==
"")
{
MessageBox.Show("All compulsory field season,type,category,quantity,price are empty
so data cannot be inserted...");
return 0;
}
else if (type == "" && category == "" && quantity == "" && price1 == "")
{
MessageBox.Show("All compulsory field type,category and quantity and price are
empty so data cannot be inserted...");

119

return 0;
}
else if (category == "" && quantity == "" && price1 == "")
{
MessageBox.Show("All compulsory field category,price and quantity are empty so data
cannot be inserted...");
return 0;
}
///remainnig authentication write..later...
else if (name == "")
{
MessageBox.Show("The
return 0;
}
else if (season == "")
{
MessageBox.Show("The
return 0;
}
else if (type == "")
{
MessageBox.Show("The
return 0;
}
else if (category == "")
{
MessageBox.Show("The
return 0;
}
else if (quantity == "")
{
MessageBox.Show("The
return 0;
}
else if (price == "")
{
MessageBox.Show("The
return 0;
}

name field is empty so data cannot be inserted...");

Seson field is empty so data cannot be inserted...");

Plant type field is empty so data cannot be inserted...");

Plant category field is empty so data cannot be inserted...");

Plant quantity field is empty so data cannot be inserted...");

Plant price field is empty so data cannot be inserted...");

return obj1.insertplant(id, name, season, type, category, quantity, userid,price,status); ;


}
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}

120

return obj1.databaseserachid(id);

///name search method...


public DataTable searchname(string name1)
{
name = name1;
if (name == "")
{
MessageBox.Show("Name field is empty so searching is not poosible...");
}
}

return obj1.databaseserachname(name);

///name search category...searhcategoryplant(type1,plant1)


public DataTable searhcategory(string category1)
{
category = category1;
return obj1.databaseserachcategory(category);
}
///plant search category...searhcategoryplant(type1,plant1)
public DataTable searhcategoryplant(string type1,string plant1)
{
type = type1;
plant = plant1;
}

return obj1.databasesearchplant(type,plant);

///for select category aunthentication...


public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///delete plant....
public int deleteplant(string idno)
{
id = idno;
if (id == "")
{
MessageBox.Show("Please enter the desire Plant id..");
}
return obj1.deleteplantdatabase(id);
}
///
///
///
///
///

<summary>
for search id updatation of data...
</summary>
<param name="id"></param>
<returns></returns>

121

public DataTable updatesearch(string id1)


{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

}
return obj1.updatesearchdatabase(id1);
}
///updation of plant..
public int plantupdate(string id2, string name2, string season2, string type2, string
category2, string quantity2, string userid2,string price2)
{
id = id2;
name = name2;
season = season2;
type = type2;
category = category2;
quantity = quantity2;
userid = userid2;
price = price2;
if (name == "" && season == "" && type == "" && category == "" && quantity == "" &&
price == "")
{
MessageBox.Show("All compulsory field all empty so plant data cannot be inserted...");
return 0;
}
else if (season == "" && type == "" && category == "" && quantity == "" && price ==
"")
{
MessageBox.Show("All compulsory field season,type,category,quantity,price are empty
so data cannot be inserted...");
return 0;
}
else if (type == "" && category == "" && quantity == "" && price == "")
{
MessageBox.Show("All compulsory field type,category and quantity and price are
empty so data cannot be inserted...");
return 0;
}
else if (category == "" && quantity == "" && price == "")
{
MessageBox.Show("All compulsory field category,price and quantity are empty so data
cannot be inserted...");
return 0;
}
///remainnig authentication write..later...

122

else if (name == "")


{
MessageBox.Show("The name field is empty so data cannot be inserted...");
return 0;
}
else if (season == "")
{
MessageBox.Show("The Seson field is empty so data cannot be inserted...");
return 0;
}
else if (type == "")
{
MessageBox.Show("The Plant type field is empty so data cannot be inserted...");
return 0;
}
else if (category == "")
{
MessageBox.Show("The Plant category field is empty so data cannot be inserted...");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("The Plant quantity field is empty so data cannot be inserted...");
return 0;
}
else if (price == "")
{
MessageBox.Show("The Plant price field is empty so data cannot be inserted...");
return 0;
}
return obj1.updateplantdatabase(id,name,season,type,category,quantity,userid,price);

////for plant activatoion...


public int plantactivate(string id1, string status1)
{
id = id1;
if (id == "")
{
MessageBox.Show("The Activate id field is empty please enter the desire id...");
return 3;
}
string status = status1;
return obj1.plantactivatedatabase(id1, status1);
}
////for plant deactivation...
public int plantdeactivate(string id1, string status1)
{
id = id1;
if (id == "")
{
MessageBox.Show("The Deactive id field is empty please enter the desire id...");
return 3;
}
string status = status1;

123

return obj1.plantdeactivatedatabase(id1, status1);


}
////for view plant deactivation...
public DataTable searhdeactivateplant()
{
return obj1.searhdeactivateplantdatabase();
}
}

3.2.4 Pot Management


class BLPots
{
///object creation of DLP class..
DLPots obj1 = new DLPots();
/// <summary>
/// global variable inilitilization...
/// logic class
/// </summary>
/// <returns></returns>
/// <summary>
/// global variable inilitilization...
/// logic class
/// </summary>
/// <returns></returns>
public string id, name, sizesmall, quantitysmall, pricesmall, userid;
public string sizemeidum, quantitymeidum, pricemeidum;
public string sizelarge, quantitylarge, pricelarge;
public string extrasizelarge, extraquantitylarge, extrapricelarge;
public int smallcount = 0, mediumcount = 0, largecount = 0, extralargecount=0;
public int num1 = 0, num2 = 0, num3 = 0, num4=0,last = 0;
public string size,price,quantity;
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
////for checking last id through max function..
public string check()
{
return obj1.checkdatabase();
}
///pots authentication..
public int potsauthenticate(string id1, string name1, string sizesmall1, string quantitysmall1,
string pricesmall1, string sizemeidum1, string quantitymeidum1, string pricemeidum1, string
sizelarge1, string quantitylarge1, string pricelarge1,string sizeextralarge1,string
quantityextralarge1,string priceextralarge1, string userid1,string status)
{
id = id1;
name = name1;

124

///small
sizesmall = sizesmall1;
quantitysmall = quantitysmall1;
pricesmall = pricesmall1;
///medium
sizemeidum = sizemeidum1;
quantitymeidum = quantitymeidum1;
pricemeidum = pricemeidum1;
//large
sizelarge = sizelarge1;
quantitylarge = quantitylarge1;
pricelarge = pricelarge1;
///extralarge...
extrasizelarge = sizeextralarge1;
extraquantitylarge = quantityextralarge1;
extrapricelarge = priceextralarge1;
///userid
userid = userid1;
///for name aunthentication...
if (name == "")
{
MessageBox.Show("Name field is empty. Plese enter the desire name..");
return 0;
}
if (sizesmall == "" && sizemeidum == "" && sizelarge == "" && extrasizelarge == "")
{
MessageBox.Show("Size field is empty.Please select the desire size..");
return 0;
}
///for small size authentication..
if (sizesmall == "Small")
{
if (quantitysmall == "" && pricesmall == "")
{
MessageBox.Show("Please enter the quantity and price of small size pots...");
return 0;
}
else if (quantitysmall == "")
{
MessageBox.Show("Please enter the quantity of small size pots...");
return 0;
}
else if (pricesmall == "")
{
MessageBox.Show("Please enter the price of small size pots...");
return 0;
}
smallcount = 1;
}
///for medium size authentication..
if (sizemeidum == "Medium")
{
if (quantitymeidum == "" && pricemeidum == "")
{
MessageBox.Show("Please enter the quantity and price of Medium size pots...");
return 0;
}
else if (quantitymeidum == "")

125

MessageBox.Show("Please enter the quantity of Medium size pots...");


return 0;

}
else if (pricemeidum == "")
{
MessageBox.Show("Please enter the price of Medium size pots...");
return 0;
}
mediumcount = 1;

}
///for large size authentication..
if (sizelarge == "Large")
{
if (quantitylarge == "" && pricelarge == "")
{
MessageBox.Show("Please enter the quantity and price of large size pots...");
return 0;
}
else if (quantitylarge == "")
{
MessageBox.Show("Please enter the quantity of large size pots...");
return 0;
}
else if (pricelarge == "")
{
MessageBox.Show("Please enter the price of large size pots...");
return 0;
}
largecount = 1;
}
///for extra large
///
if (extrasizelarge == "Extra Large")
{
if (extraquantitylarge == "" && extrapricelarge == "")
{
MessageBox.Show("Please enter the quantity and price of extra large size pots...");
return 0;
}
else if (extraquantitylarge == "")
{
MessageBox.Show("Please enter the quantity of extra large size pots...");
return 0;
}
else if (extrapricelarge == "")
{
MessageBox.Show("Please enter the price of extra large size pots...");
return 0;
}
extralargecount = 1;
}
///for inseration of pots..
obj1.insertpot(id, name, userid);
if (smallcount == 1)
{
num1 = obj1.insertsmallpot(id, sizesmall, quantitysmall, pricesmall, userid,status);
}

126

///for insertion of medium pots....


if (mediumcount == 1)
{
num2 = obj1.insertmediumpot(id, sizemeidum, quantitymeidum, pricemeidum,
userid,status);
}
///for insertion of large pots....
if (largecount == 1)
{
num3 = obj1.insertlargepot(id, sizelarge, quantitylarge, pricelarge, userid,status);
}
////for inseration extra large pots...
if (extralargecount == 1)
{
num4 = obj1.insertextralargepot(id, extrasizelarge, extraquantitylarge, extrapricelarge,
userid,status);
}
if (num1 > 0 || num2 > 0 || num3 > 0||num4>0)
{
last = 1;
}
return last;
}////end of authentication...
///for delete pots
///delete plant....
public int deletepots(string idno)
{
id = idno;
if (id == "")
{
MessageBox.Show("Please enter the desire Plant id..");
}
return obj1.deletepotsdatabase(id);
}
//when no option select in search..
///for select category aunthentication...
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///search id pots aunthentication...
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}

127

return obj1.databaseserachid(id);
}
///name search method..
///name search method...
public DataTable searchname(string name1)
{
name = name1;
if (name == "")
{
MessageBox.Show("Name field is empty so searching is not poosible...");
}
}

return obj1.databaseserachname(name);

///search category..
///
///name search category...
public DataTable searhcategory(string size1)
{
size = size1;
}

return obj1.databaseserachcategory(size);

/// <summary>
/// /for update searching...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public DataTable updatesearch(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

}
return obj1.updatesearchdatabase(id1);
}
/// <summary>
/// for update medium search
/// </summary>
/// <param name="id1"></param>
/// <returns></returns>
public DataTable udpatesarchmedium(string id1)
{
id = id1;
}

return obj1.updatesearchmediumdatabase(id);

/// <summary>

128

/// for update extra large search


/// </summary>
/// <param name="id1"></param>
/// <returns></returns>
public DataTable udpatesarchextralarge(string id1)
{
id = id1;
return obj1.updatesearchextralargedatabase(id);
}
/// <summary>
/// for update large search
/// </summary>
/// <param name="id1"></param>
/// <returns></returns>
public DataTable udpatesarchlarge(string id1)
{
id = id1;
return obj1.updatesearchlargedatabase(id);
}
///for searching update pots..
public DataTable searchpots(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}
}

return obj1.databasesearchpots(id);

////for update pots...


public int updatepots(string id2,string name2,string size2,string price2,string
quantity2,string userid2)
{
id = id2;
name = name2;
size = size2;
price = price2;
quantity = quantity2;
userid = userid2;
///for name aunthentication...
if (name == "" && size == "" && price == "" && quantity == "")
{
MessageBox.Show("ALL field is empty. so updation is not possible..");
return 0;
}
else if (size == "" && price == ""&&quantity == "")
{
MessageBox.Show("size,price and quantity field is empty. so updation is not
possible..");
return 0;
}
else if (name == "" && size == "" && price == "")

129

MessageBox.Show("size,price and name field is empty. so updation is not possible..");


return 0;

}
else if (name == "" && size == "" && quantity == "")
{
MessageBox.Show("size,quantity and name field is empty. so updation is not
possible..");
return 0;
}
else if (name == "" && price == "" && quantity == "")
{
MessageBox.Show("price,quantity and name field is empty. so updation is not
possible..");
return 0;
}
else if (name == "")
{
MessageBox.Show("name field is empty. so updation is not possible..");
return 0;
}
else if (size == "")
{
MessageBox.Show("size field is empty. so updation is not possible..");
return 0;
}
else if (price == "")
{
MessageBox.Show("price field is empty. so updation is not possible..");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("quantity field is empty. so updation is not possible..");
return 0;
}
return obj1.updatedatabasepots(id, name, size, price, quantity, userid);
}
}

3.2.5 Supplier Management


class BLSupplier
{
///object creation..for DLUser
DLSupplier obj1 = new DLSupplier();
///global variable inilization..
public string id, name, address, contactno, userid, product, quantity, product_per_price,
product_total_price, date,size;
/// <summary>
/// for palnt search method.....
/// </summary>
/// <returns></returns>
public DataTable searchplantcombo()

130

return obj1.searchplantcombodatabase();

}
/// <summary>
/// for pot search method.....
/// </summary>
/// <returns></returns>
public DataTable searchpotcombo()
{
return obj1.searchpotcombodatabase();
}
/// <summary>
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
public void authenticate(string check)
{
if (check == "")
{
MessageBox.Show("Please select the Product category first..");
}
}
/// <summary>
/// this method is used to authenticate about supplier informatiion...
/// </summary>
/// <param name="id1"></param>
/// <param name="name1"></param>
/// <param name="type1"></param>
/// <param name="address1"></param>
/// <param name="contactno1"></param>
/// <param name="userid1"></param>
/// <returns></returns>
public int supplierauthenticate(string id1, string name1, string address1, string contactno1,
string userid1)
{
id = id1;
name = name1;
address = address1;
contactno = contactno1;
userid = userid1;
if (name == "" && address == "" && contactno == "")
{
MessageBox.Show("All fields are empty please enter the desire data in these field..");
return 0;

131

}
else if (name == "" && address == "")
{
MessageBox.Show("Your name and address fields are empty please enter the desire
data in this field..");
return 0;
}
else if (name == "" && contactno == "")
{
MessageBox.Show("Your name and contactno fields are empty please enter the desire
data in this field..");
return 0;
}
else if (address == "" && contactno == "")
{
MessageBox.Show("Your address and contactno fields are empty please enter the
desire data in this field..");
return 0;
}
else if(name=="")
{
MessageBox.Show("Your name fields are empty please enter the desire data in this
field..");
return 0;
}
else if (address == "")
{
MessageBox.Show("Your address fields are empty please enter the desire data in this
field..");
return 0;
}
else if (contactno == "")
{
MessageBox.Show("Your contactno fields are empty please enter the desire data in this
field..");
return 0;
}
return obj1.insertsupplier(id, name, address, contactno, userid);
}
///for plant inseration....
public int insertplant(string id1,string product1,string quantity1,string
product_per_price1,string product_total_price1,string date1,string userid1)
{
id = id1;
product=product1;
quantity = quantity1;
product_per_price = product_per_price1;
product_total_price = product_total_price1;
date = date1;
userid = userid1;
== "")

if (product == "" && quantity == "" && product_per_price == "" && product_total_price
{

MessageBox.Show("All fields are empty please enter the desire data in these field..");

132

return 0;
}
else if (product == "" && quantity == "")
{
MessageBox.Show("Your product and quantity fields are empty please enter the desire
data in this field..");
return 0;
}
else if (quantity == "" && product_per_price == "")
{
MessageBox.Show("Your quantity and product per price fields are empty please enter
the desire data in this field..");
return 0;
}
else if (quantity == "" && product_total_price == "")
{
MessageBox.Show("Your quantity and product total price fields are empty please enter
the desire data in this field..");
return 0;
}
else if (product == "")
{
MessageBox.Show("Your product fields are empty please enter the desire data in this
field..");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("Your quantity fields are empty please enter the desire data in this
field..");
return 0;
}
else if (product_per_price == "")
{
MessageBox.Show("Your product per price fields are empty please enter the desire data
in this field..");
return 0;
}
else if (product_total_price == "")
{
MessageBox.Show("Your product total price fields are empty please enter the desire
data in this field..");
return 0;
}
return obj1.insertplantdatabase(id1,product1, quantity1, product_per_price1,
product_total_price1, date1, userid1);
}
////for show the data supplier supply plant and pots.. in searchdatagridview...
public DataTable searchproduct(string id1)
{
id = id1;

133

return obj1.databasearchproduct(id);

///for pot inseration....


public int insertpotplant(string id1,string size1,string product1,string quantity1,string
product_per_price1,string product_total_price1,string date1,string userid1)
{
id = id1;
product = product1;
size = size1;
quantity = quantity1;
product_per_price = product_per_price1;
product_total_price = product_total_price1;
date = date1;
userid = userid1;
if (product == "" && quantity == "" && product_per_price == "" && product_total_price
== ""&&size=="")
{
MessageBox.Show("All fields are empty please enter the desire data in these field..");
return 0;
}
else if (product == "" && quantity == "" && size == "")
{
MessageBox.Show("Your product,size and quantity fields are empty please enter the
desire data in this field..");
return 0;
}
else if (quantity == "" && product_per_price == "" && size == "")
{
MessageBox.Show("Your,size quantity and product per price fields are empty please
enter the desire data in this field..");
return 0;
}
else if (quantity == "" && product_total_price == "" && size == "")
{
MessageBox.Show("Your quantity,size and product total price fields are empty please
enter the desire data in this field..");
return 0;
}
else if (product == "")
{
MessageBox.Show("Your product fields are empty please enter the desire data in this
field..");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("Your quantity fields are empty please enter the desire data in this
field..");
return 0;
}
else if (product_per_price == "")
{
MessageBox.Show("Your product per price fields are empty please enter the desire data
in this field..");
return 0;

134

}
else if (product_total_price == "")
{
MessageBox.Show("Your product total price fields are empty please enter the desire
data in this field..");
return 0;
}
else if (size== "")
{
MessageBox.Show("Your size fields are empty please enter the desire data in this
field..");
return 0;
}
return obj1.insertpotplantdatabase(id1, size1, product1, quantity1, product_per_price1,
product_total_price1, date1, userid1);
}
/// <summary>
/// it is used to get id of the pot through pot name...
/// </summary>
/// <param name="product"></param>
/// <returns></returns>
public string gepotid(string product)
{
return obj1.gepotiddatabase(product);
}
/// <summary>
/// /
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public DataTable searchsizecombo(string number)
{
return obj1.searchsizecombodatabase(number);
}
///search supplier code will be started at that position
//when no option select in search..
///for select category aunthentication...
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///search id supplier aunthentication...
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

135

}
}

return obj1.databaseserachid(id);

///name search method..


///name search method...
public DataTable searchname(string name1)
{
name = name1;
if (name == "")
{
MessageBox.Show("Name field is empty so searching is not poosible...");
}
return obj1.databaseserachname(name);
}
///for searching date..
///for date search
public DataTable searchdate(string dateto, string datefrom)
{
string dateto1 = dateto;
string datefrom1 = datefrom;
return obj1.databasesearchdate(dateto1, datefrom1);
}
}

3.2.6 Supplier Payment


class BLSupplierPayment
{
///object creation of DLC class..
DLSupplierPayment obj1 = new DLSupplierPayment();
public DataTable dt;
/// <summary>
/// global variable inilitilization...
public string id, date, totalamount, totalpaidamount, dueamount, duedate, supid, userid;
/// </summary>
/// <returns></returns>
/// <summary>
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
/// <summary>
/// this method is used to the search id from table and dispaly in comobox
/// this method is used in the add supplier form
/// </summary>
/// <returns></returns>
public DataTable searchsuppliercombo()
{
return obj1.searchsuppliercombodatabase();

136

}
public DataTable findsuppliertotalamount(string supplierid1)
{
string supplierid = supplierid1;
return obj1.searchsuppliercombodatabase(supplierid);
}
public int supplierpaymentauthenticate(string id1, string supid1, string date1, string
totalamount1, string totalpaidamount1, string dueamount1, string duedate1, string userid1)
{
DateTime dt1 = DateTime.Parse(date1);
DateTime dt2 = DateTime.Parse(duedate1);
id = id1;
supid = supid1;
date = date1;
totalamount = totalamount1;
totalpaidamount = totalpaidamount1;
dueamount = dueamount1;
duedate = duedate1;
userid = userid1;
if (supid == "" && totalamount == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your all compulsory fields are empty...");
return 0;
}
else if (supid == "" && totalamount == "" && totalpaidamount == "" )
{
MessageBox.Show("Your supplier id,total amount, and totalpaid amount fields are
empty ...");
return 0;
}
else if (supid == "" && totalamount == "" && dueamount == "")
{
MessageBox.Show("Your supplier id,total amount, and dueamount fields are empty ...");
return 0;
}
else if (supid == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your supplier id,totalpaid amount and due amount fields are
empty...");
return 0;
}
else if (supid1 == "")
{
MessageBox.Show("Your supplier id field are empty...");
return 0;
}
else if (totalamount == "")
{
MessageBox.Show("Your totalamount field are empty...");
return 0;
}
else if (totalpaidamount == "")
{
MessageBox.Show("Your totalpaid amount field are empty...");
return 0;
}

137

else if (dueamount == "")


{
MessageBox.Show("Your due amount field are empty...");
return 0;
}
if (dt2.Date < dt1.Date)
{
MessageBox.Show("Your due date is less than current date please enter the correct
date ...");
return 0;
}
return obj1.insertsupplierpayment(id, supid, date, totalamount, totalpaidamount,
dueamount, duedate, userid);
}
///searching start at that point...
///search supplier code will be started at that position
//when no option select in search..
///for select category aunthentication...
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///search id supplier aunthentication...
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}
return obj1.databaseserachid(id);
}
///for searching date
///for searching date..
///for date search
public DataTable searchdate(string dateto, string datefrom)
{
DateTime dt4 = DateTime.Parse(dateto);
DateTime dt5 = DateTime.Parse(datefrom);
string dateto1 = dateto;
string datefrom1 = datefrom;
if ((dt4.Date> dt5.Date))
{
MessageBox.Show("Your To date is less than from date please enter the correct
date ...");

138

}
return obj1.databasesearchdate(dateto1, datefrom1);
}
/// <summary>
/// before updation first is searching....
/// </summary>
/// <param name="id1"></param>
/// <returns></returns>
public DataTable searchsupplierpayment(string id1)
{
id=id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

}
return obj1.searchsupplierpaymentdatabase(id);
}
///update supplier payment...
public int updatesupplierpaymentauthenticate(string id1, string supid1, string date1, string
totalamount1, string totalpaidamount1, string dueamount1, string duedate1, string userid1)
{
DateTime dt1 = DateTime.Parse(date1);
DateTime dt2 = DateTime.Parse(duedate1);
id = id1;
supid = supid1;
date = date1;
totalamount = totalamount1;
totalpaidamount = totalpaidamount1;
dueamount = dueamount1;
duedate = duedate1;
userid = userid1;
if (supid == "" && totalamount == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your all compulsory fields are empty...");
return 0;
}
else if (supid == "" && totalamount == "" && totalpaidamount == "")
{
MessageBox.Show("Your supplier id,total amount, and totalpaid amount fields are
empty ...");
return 0;
}
else if (supid == "" && totalamount == "" && dueamount == "")
{
MessageBox.Show("Your supplier id,total amount, and dueamount fields are empty ...");
return 0;
}
else if (supid == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your supplier id,totalpaid amount and due amount fields are
empty...");

139

return 0;
}
else if (supid1 == "")
{
MessageBox.Show("Your supplier id field are empty...");
return 0;
}
else if (totalamount == "")
{
MessageBox.Show("Your totalamount field are empty...");
return 0;
}
else if (totalpaidamount == "")
{
MessageBox.Show("Your totalpaid amount field are empty...");
return 0;
}
else if (dueamount == "")
{
MessageBox.Show("Your due amount field are empty...");
return 0;
}
if (dt2.Date < dt1.Date)
{
MessageBox.Show("Your due date is less than current date please enter the correct
date ...");
return 0;
}
return obj1.updatesupplierpaymentdatabase(id, supid, date, totalamount,
totalpaidamount, dueamount, duedate, userid);
}
}

3.2.7 Order Management


class BLOrder
{
///object creation of DLEmployee class..
DLOrders obj1 = new DLOrders();
/// <summary>
/// global variable inilitilization...
public string id, client, userid, product, quantity, product_per_price, product_total_price,
option, size, date;
/// logic class
/// </summary>
/// <returns></returns>
////for checking last id through max function..
public string check()
{
return obj1.checkdatabase();
}
/// <summary>
/// for palnt search method.....
/// </summary>
/// <returns></returns>

140

public DataTable searchplantcombo()


{
return obj1.searchplantcombodatabase();
}
/// <summary>
/// for pot search method.....
/// </summary>
/// <returns></returns>
public DataTable searchpotcombo()
{
return obj1.searchpotcombodatabase();
}
/// <summary>
/// for client search method.....
/// </summary>
/// <returns></returns>
public DataTable searchclientcombo()
{
return obj1.searchclientcombodatabase();
}
/// this method is used to authenticate about supplier informatiion...
/// </summary>
/// <param name="id1"></param>
/// <param name="name1"></param>
/// <param name="type1"></param>
/// <param name="address1"></param>
/// <param name="contactno1"></param>
/// <param name="userid1"></param>
/// <returns></returns>
public int orderauthenticate(string id1, string client1, string date1, string userid1)
{
id = id1;
client = client1;
date = date1;
userid = userid1;
if (client == "")
{
MessageBox.Show("Your client filed is empty please enter the desire information...");
return 0;
}
return obj1.insertorder(id,client,date, userid);;
}
/// <summary>
/// it aunthenticate the product....
/// </summary>
/// <param name="check"></param>
public void authenticate(string check)
{
if (check == "")
{
MessageBox.Show("Please select the Product category first..");
}

141

}
///for plant inseration....
public int insertplant(string id1, string product1, string quantity1, string product_per_price1,
string product_total_price1, string date1, string userid1)
{
id = id1;
product = product1;
quantity = quantity1;
product_per_price = product_per_price1;
product_total_price = product_total_price1;
date = date1;
userid = userid1;
== "")

if (product == "" && quantity == "" && product_per_price == "" && product_total_price
{

MessageBox.Show("All fields are empty please enter the desire data in these field..");

return 0;
}
else if (product == "" && quantity == "")
{
MessageBox.Show("Your product and quantity fields are empty please enter the desire
data in this field..");
return 0;
}
else if (quantity == "" && product_per_price == "")
{
MessageBox.Show("Your quantity and product per price fields are empty please enter
the desire data in this field..");
return 0;
}
else if (quantity == "" && product_total_price == "")
{
MessageBox.Show("Your quantity and product total price fields are empty please enter
the desire data in this field..");
return 0;
}
else if (product == "")
{
MessageBox.Show("Your product fields are empty please enter the desire data in this
field..");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("Your quantity fields are empty please enter the desire data in this
field..");
return 0;
}
else if (product_per_price == "")
{
MessageBox.Show("Your product per price fields are empty please enter the desire data
in this field..");
return 0;
}
else if (product_total_price == "")

142

MessageBox.Show("Your product total price fields are empty please enter the desire
data in this field..");
return 0;
}
return obj1.insertplantdatabase(id1, product1, quantity1, product_per_price1,
product_total_price1, date1, userid1);
}
////for show the data supplier supply plant and pots.. in searchdatagridview...
public DataTable searchproduct(string id1)
{
id = id1;

return obj1.databasearchproduct(id);
}
///for pot inseration....
public int insertpotplant(string id1, string size1, string product1, string quantity1, string
product_per_price1, string product_total_price1, string date1, string userid1)
{
id = id1;
product = product1;
size = size1;
quantity = quantity1;
product_per_price = product_per_price1;
product_total_price = product_total_price1;
date = date1;
userid = userid1;
if (product == "" && quantity == "" && product_per_price == "" && product_total_price
== "" && size == "")
{
MessageBox.Show("All fields are empty please enter the desire data in these field..");
return 0;
}
else if (product == "" && quantity == "" && size == "")
{
MessageBox.Show("Your product,size and quantity fields are empty please enter the
desire data in this field..");
return 0;
}
else if (quantity == "" && product_per_price == "" && size == "")
{
MessageBox.Show("Your,size quantity and product per price fields are empty please
enter the desire data in this field..");
return 0;
}
else if (quantity == "" && product_total_price == "" && size == "")
{
MessageBox.Show("Your quantity,size and product total price fields are empty please
enter the desire data in this field..");
return 0;
}

143

else if (product == "")


{
MessageBox.Show("Your product fields are empty please enter the desire data in this
field..");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("Your quantity fields are empty please enter the desire data in this
field..");
return 0;
}
else if (product_per_price == "")
{
MessageBox.Show("Your product per price fields are empty please enter the desire data
in this field..");
return 0;
}
else if (product_total_price == "")
{
MessageBox.Show("Your product total price fields are empty please enter the desire
data in this field..");
return 0;
}
else if (size == "")
{
MessageBox.Show("Your size fields are empty please enter the desire data in this
field..");
return 0;
}
return obj1.insertpotplantdatabase(id1, size1, product1, quantity1, product_per_price1,
product_total_price1, date1, userid1);
}
/// <summary>
/// it is used to get id of the pot through pot name...
/// </summary>
/// <param name="product"></param>
/// <returns></returns>
public string gepotid(string product)
{
return obj1.gepotiddatabase(product);
}
/// <summary>
/// /
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public DataTable searchsizecombo(string number)
{
return obj1.searchsizecombodatabase(number);
}
///find product plant prices that is currently selected
public string findproductprice(string product1)
{

144

product = product1;
return obj1.databasefindproductprice(product);
}
///find product pot prices that is currently selected
public string findproductprice(string product1,string size1)
{
product = product1;
size = size1;
return obj1.databasefindproductprice(product,size);
}
///searching start at that point...
///search supplier code will be started at that position
//when no option select in search..
///for select category aunthentication...
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///search id supplier aunthentication...
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}
}

return obj1.databaseserachid(id);

///for searching date..


///for date search
public DataTable searchdate(string dateto, string datefrom)
{
string dateto1 = dateto;
string datefrom1 = datefrom;
return obj1.databasesearchdate(dateto1, datefrom1);
}
/////for searching update order....
/// <summary>
/// for search id updatation of data...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public DataTable searchupdateorder(string id)
{
string id1 = id;

145

if (id1 == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

}
return obj1.searchupdateorderdatabase(id1);
}
///search order products...
public DataTable searchupdateorderproduct(string id)
{
string id1 = id;
return obj1.searchupdateorderproductdatabase(id1);
}
/////search update order
public int orderauthenticateupdate(string id1, string client1, string date1, string userid1)
{
id = id1;
client = client1;
date = date1;
userid = userid1;
if (client == "")
{
MessageBox.Show("Your client filed is empty please enter the desire information...");
return 0;
}
return obj1.insertorderupdate(id, client, date, userid); ;
}
////for updatation plant...
///for plant inseration....
public int insertplantupdate(string id1, string product1, string quantity1, string
product_per_price1, string product_total_price1, string date1, string userid1,string oldid,int
addquantity,int detectquantity,int nodectection)
{
id = id1;
product = product1;
quantity = quantity1;
product_per_price = product_per_price1;
product_total_price = product_total_price1;
date = date1;
userid = userid1;
if (product == "" && quantity == "" && product_per_price == "" && product_total_price
== "")

{
MessageBox.Show("All fields are empty please enter the desire data in these field..");
return 0;
}
else if (product == "" && quantity == "")
{

146

MessageBox.Show("Your product and quantity fields are empty please enter the desire
data in this field..");
return 0;
}
else if (quantity == "" && product_per_price == "")
{
MessageBox.Show("Your quantity and product per price fields are empty please enter
the desire data in this field..");
return 0;
}
else if (quantity == "" && product_total_price == "")
{
MessageBox.Show("Your quantity and product total price fields are empty please enter
the desire data in this field..");
return 0;
}
else if (product == "")
{
MessageBox.Show("Your product fields are empty please enter the desire data in this
field..");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("Your quantity fields are empty please enter the desire data in this
field..");
return 0;
}
else if (product_per_price == "")
{
MessageBox.Show("Your product per price fields are empty please enter the desire data
in this field..");
return 0;
}
else if (product_total_price == "")
{
MessageBox.Show("Your product total price fields are empty please enter the desire
data in this field..");
return 0;
}
return obj1.insertplantdatabaseupdate(id1, product1, quantity1, product_per_price1,
product_total_price1, date1, userid1,oldid,addquantity,detectquantity,nodectection);
}
///old plantname...
public string checkoldplantname(string oldplantname)
{
return obj1.checkoldplantnamedatabase(oldplantname);
}
/////iinsert pot update...
///for pot inseration....
public int insertpotupdate(string id1, string size1, string product1, string quantity1, string
product_per_price1, string product_total_price1, string date1, string userid1,string oldpotname,int
addquantity,int detectquantity)
{

147

id = id1;
product = product1;
size = size1;
quantity = quantity1;
product_per_price = product_per_price1;
product_total_price = product_total_price1;
date = date1;
userid = userid1;
if (product == "" && quantity == "" && product_per_price == "" && product_total_price
== "" && size == "")
{
MessageBox.Show("All fields are empty please enter the desire data in these field..");
return 0;
}
else if (product == "" && quantity == "" && size == "")
{
MessageBox.Show("Your product,size and quantity fields are empty please enter the
desire data in this field..");
return 0;
}
else if (quantity == "" && product_per_price == "" && size == "")
{
MessageBox.Show("Your,size quantity and product per price fields are empty please
enter the desire data in this field..");
return 0;
}
else if (quantity == "" && product_total_price == "" && size == "")
{
MessageBox.Show("Your quantity,size and product total price fields are empty please
enter the desire data in this field..");
return 0;
}
else if (product == "")
{
MessageBox.Show("Your product fields are empty please enter the desire data in this
field..");
return 0;
}
else if (quantity == "")
{
MessageBox.Show("Your quantity fields are empty please enter the desire data in this
field..");
return 0;
}
else if (product_per_price == "")
{
MessageBox.Show("Your product per price fields are empty please enter the desire data
in this field..");
return 0;
}
else if (product_total_price == "")
{
MessageBox.Show("Your product total price fields are empty please enter the desire
data in this field..");
return 0;
}

148

else if (size == "")


{
MessageBox.Show("Your size fields are empty please enter the desire data in this
field..");
return 0;
}
return obj1.insertpotupdatedatabase(id1, size1, product1, quantity1, product_per_price1,
product_total_price1, date1, userid1, oldpotname, addquantity, detectquantity);
}
public DataTable disp(string sarchi)
{
return obj1.databasedisp(sarchi);
}
}
}

3.2.8 Order Payment


class BLOrderPayment
{
///object creation of DLC class..
DLOrderPayment obj1 = new DLOrderPayment();
public DataTable dt;
/// <summary>
/// global variable inilitilization...
public string id, date, totalamount, totalpaidamount, dueamount, duedate, supid, userid;
/// </summary>
/// <returns></returns>
/// <summary>
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
/// <summary>
/// this method is used to the search id from table and dispaly in comobox
/// this method is used in the add supplier form
/// </summary>
/// <returns></returns>
public DataTable searchsuppliercombo()
{
return obj1.searchsuppliercombodatabase();
}
//order payment authentication
public int ordpaymentauthenticate(string id1, string supid1, string date1, string
totalamount1, string totalpaidamount1, string dueamount1, string duedate1, string userid1)
{
DateTime dt1 = DateTime.Parse(date1);
DateTime dt2 = DateTime.Parse(duedate1);
id = id1;
supid = supid1;

149

date = date1;
totalamount = totalamount1;
totalpaidamount = totalpaidamount1;
dueamount = dueamount1;
duedate = duedate1;
userid = userid1;
if (supid == "" && totalamount == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your all compulsory fields are empty...");
return 0;
}
else if (supid == "" && totalamount == "" && totalpaidamount == "")
{
MessageBox.Show("Your Order id,total amount, and totalpaid amount fields are
empty ...");
return 0;
}
else if (supid == "" && totalamount == "" && dueamount == "")
{
MessageBox.Show("Your Order id,total amount, and dueamount fields are empty ...");
return 0;
}
else if (supid == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your Order id,totalpaid amount and due amount fields are
empty...");
return 0;
}
else if (supid1 == "")
{
MessageBox.Show("Your Order id field are empty...");
return 0;
}
else if (totalamount == "")
{
MessageBox.Show("Your totalamount field are empty...");
return 0;
}
else if (totalpaidamount == "")
{
MessageBox.Show("Your totalpaid amount field are empty...");
return 0;
}
else if (dueamount == "")
{
MessageBox.Show("Your due amount field are empty...");
return 0;
}
if (dt2.Date < dt1.Date)
{
MessageBox.Show("Your due date is less than current date please enter the correct
date ...");
return 0;
}
return obj1.insertorderpayment(id, supid, date, totalamount, totalpaidamount,
dueamount, duedate, userid);
}

150

////for order product... payment


public DataTable findordertotalamount(string supplierid1)
{
string supplierid = supplierid1;
return obj1.searchordercombodatabase(supplierid);
}
///searching start at that point...
///search supplier code will be started at that position
//when no option select in search..
///for select category aunthentication...
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///search id supplier aunthentication...
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}
return obj1.databaseserachid(id);
}
///for searching date
///for searching date..
///for date search
public DataTable searchdate(string dateto, string datefrom)
{
DateTime dt6 = DateTime.Parse(dateto);
DateTime dt7 = DateTime.Parse(datefrom);
string dateto1 = dateto;
string datefrom1 = datefrom;
if ((dt6.Date > dt7.Date))
{
MessageBox.Show("Your To date is less than from date please enter the correct
date ...");
}
return obj1.databasesearchdate(dateto1, datefrom1);

}
/// <summary>
/// before updation first is searching....
/// </summary>
/// <param name="id1"></param>
/// <returns></returns>
public DataTable searchsupplierpayment(string id1)

151

id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

}
return obj1.searchsupplierpaymentdatabase(id);
}
///update supplier payment...
public int updatesupplierpaymentauthenticate(string id1, string supid1, string date1, string
totalamount1, string totalpaidamount1, string dueamount1, string duedate1, string userid1)
{
DateTime dt1 = DateTime.Parse(date1);
DateTime dt2 = DateTime.Parse(duedate1);
id = id1;
supid = supid1;
date = date1;
totalamount = totalamount1;
totalpaidamount = totalpaidamount1;
dueamount = dueamount1;
duedate = duedate1;
userid = userid1;
if (supid == "" && totalamount == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your all compulsory fields are empty...");
return 0;
}
else if (supid == "" && totalamount == "" && totalpaidamount == "")
{
MessageBox.Show("Your Order id,total amount, and totalpaid amount fields are
empty ...");
return 0;
}
else if (supid == "" && totalamount == "" && dueamount == "")
{
MessageBox.Show("Your Order id,total amount, and dueamount fields are empty ...");
return 0;
}
else if (supid == "" && totalpaidamount == "" && dueamount == "")
{
MessageBox.Show("Your Order id,totalpaid amount and due amount fields are
empty...");
return 0;
}
else if (supid1 == "")
{
MessageBox.Show("Your Order id field are empty...");
return 0;
}
else if (totalamount == "")
{
MessageBox.Show("Your totalamount field are empty...");

152

return 0;
}
else if (totalpaidamount == "")
{
MessageBox.Show("Your totalpaid amount field are empty...");
return 0;
}
else if (dueamount == "")
{
MessageBox.Show("Your due amount field are empty...");
return 0;
}
if (dt2.Date < dt1.Date)
{
MessageBox.Show("Your due date is less than current date please enter the correct
date ...");
return 0;
}
return obj1.updatesupplierpaymentdatabase(id, supid, date, totalamount,
totalpaidamount, dueamount, duedate, userid);
}
}

3.2.9 Receipt Generation


class BLReceipt
{
///object creation..for DLUser
DLReceipt obj1 = new DLReceipt();
///global variable inilization..
///
DataTable dt, dt1;
public string recid, date, paymentid, orderid, clientid, userid,id;
public DataTable searchclientpaymentcombo()
{
return obj1.searchclientpaymentcombodatabase();
}
/// </summary>
/// <returns></returns>
/// <summary>
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
public int Generate_Receipt(string recid1, string date1, string paymentid1, string orderid1,
string clientid1, string userid1)
{
recid = recid1;
date = date1;
paymentid = paymentid1;

153

orderid = orderid1;
clientid = clientid1;
userid = userid1;
if (paymentid1 == "")
{
MessageBox.Show("Your all compulsory fields are empty.. Please enter the desire
information..");
return 0;
}
return obj1.Insert_Generate_Receipt( recid1, date1, paymentid1, orderid1, clientid1,
userid1);
}
public string searchorderid(string paymentid1)
{
string paymentid = paymentid1;
return obj1.searchorderiddatabase(paymentid);
}
////search client id...
public string searchclientid(string ordid1)
{
string ordid = ordid1;
return obj1.searchclientiddatabase(ordid);
}
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
///search id supplier aunthentication...
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}
return obj1.databaseserachid(id);
}
///for searching date
///for searching date..
///for date search
public DataTable searchdate(string dateto, string datefrom)
{
DateTime dt9 = DateTime.Parse(dateto);
DateTime dt10 = DateTime.Parse(datefrom);
string dateto1 = dateto;
string datefrom1 = datefrom;

154

if ((dt9.Date > dt10.Date))


{
MessageBox.Show("Your To date is less than from date please enter the correct
date ...");
}
return obj1.databasesearchdate(dateto1, datefrom1);
}
}

3.2.10

Client Management

class BLClient
{
///object creation of DLC class..
DLClient obj1 = new DLClient();
/// <summary>
/// global variable inilitilization...
/// logic class
/// </summary>
/// <returns></returns>
public string id, name, address, type, contactno, userid;
/// <summary>
/// <summary>
/// this method is used to count number of rows in database so we write..
/// </summary>
/// <returns></returns>
public int countlogic()
{
return obj1.countdatabase();
}
///client add authentication...
public int clientauthenticate(string id1, string name1, string type1, string address1, string
contactno1, string userid1)
{
id = id1;
name = name1;
address = address1;
type = type1;
contactno = contactno1;
userid = userid1;
if (name == "" && type == "")
{
MessageBox.Show("Your name and type fields are empty please enter the desire data
in these field..");
return 0;
}
else if (name == "")
{
MessageBox.Show("Your name fields are empty please enter the desire data in this
field..");
return 0;

155

}
else if (type == "")
{
MessageBox.Show("Your type fields are empty please enter the desire data in this
field..");
return 0;
}
if (type == "Permanent")
{
if (address == "" && contactno == "")
{
MessageBox.Show("Your address and contactno field are empty please enter the
desire data in these field..");
return 0;
}
else if (address == "")
{
MessageBox.Show("Your address fields are empty please enter the desire data in
this field..");
return 0;
}
else if (contactno == "")
{
MessageBox.Show("Your type contactno are empty please enter the desire data in
this field..");
return 0;
}
}
return obj1.insertclient(id, name, type, address, contactno, userid);
}
///search id client aunthentication...
///id search method.....
public DataTable searchid(string id1)
{
id = id1;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");
}
}

return obj1.databaseserachid(id);

///name search method..


///name search method...
public DataTable searchname(string name1)
{
name = name1;
if (name == "")
{
MessageBox.Show("Name field is empty so searching is not poosible...");
}
return obj1.databaseserachname(name);
}
///search category..

156

///
///name search category...
public DataTable searhcategory(string category)
{
type = category;
return obj1.databaseserachcategory(type);
}
//when no option select in search..
///for select category aunthentication...
public void nooption(int val)
{
if (val == 0)
{
MessageBox.Show("Please Select the Desire Category for Search...");
}
}
/// <summary>
/// for search id updatation of data...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public DataTable updatesearch(string id2)
{
id = id2;
if (id == "")
{
MessageBox.Show("Id field is empty so searching is not poosible...");

}
return obj1.updatesearchdatabase(id);
}
////client updation...
public int cltupdate(string id2,string name2,string type2,string address2,string
contactno2,string userid2)
{
id = id2;
name = name2;
address = address2;
type = type2;
contactno = contactno2;
userid = userid2;
if (name == "" && type == "")
{
MessageBox.Show("Your name and type fields are empty please enter the desire data
in these field..");
return 0;
}
else if (name == "")
{
MessageBox.Show("Your name fields are empty please enter the desire data in this
field..");

157

return 0;
}
else if (type == "")
{
MessageBox.Show("Your type fields are empty please enter the desire data in this
field..");
return 0;
}
if (type == "Permanent")
{
if (address == "" && contactno == "")
{
MessageBox.Show("Your address and contactno field are empty please enter the
desire data in these field..");
return 0;
}
else if (address == "")
{
MessageBox.Show("Your address fields are empty please enter the desire data in
this field..");

return 0;
}
else if (contactno == "")
{
MessageBox.Show("Your type contactno are empty please enter the desire data in
this field..");
return 0;
}
}
}
}

return obj1.updateclient(id, name, type,address, contactno, userid);

3.3 Sample Queries


3.3.1 User Related Queries
Query 1
SqlDataAdapter sda = new SqlDataAdapter(@"SELECT id
FROM
ADDEMPLOYEE
WHERE
(category = '" + name1 + "' OR category = '" + name2 + "')AND(status = '" +
"ACTIVATED" + "')", con);

Query 2
SqlDataAdapter sda = new SqlDataAdapter(@"SELECT opid
FROM
OPERATOR
WHERE
(opstatus = '" + name1 + "' OR opstatus = '" + name2 + "')AND(status = '" +
"ACTIVATED" + "')", con);

Query 3
SqlDataAdapter sda = new SqlDataAdapter(@"SELECT opid

158

FROM
OPERATOR
WHERE
(opstatus = '" + name1 + "' OR opstatus = '" + name2 + "')AND(status = '" +
"ACTIVATED" + "')", con);

3.3.2 Employee Related Queries


Query 1
SqlCommand cmd = new SqlCommand(@"SELECT count(*) FROM ADDEMPLOYEE", con);

Query 2

SqlCommand cmd = new SqlCommand(@"SELECT MAX(empid) FROM XCheckAllDatabase


WHERE (empname = '" + checkname + "') ", con);

Query 3

SqlCommand cmd = new SqlCommand(@"INSERT INTO ADDEMPLOYEE


(id, name, gender, address, dob, contacno, cnic, salary, category,
joiningdate,userid,status )
VALUES
('" + id1 + "','" + name1 + "','" + gender1 + "','" + address1 + "','" + dob1 + "','" +
contactno1 + "','" + cnic1 + "','" + salary1 + "','" + category1 + "','" + joindate1 + "','" + userid1
+ "','" + status + "')", con);

3.3.3 Plant Related Queries


Query 1

SqlCommand cmd = new SqlCommand(@"SELECT count(*) FROM Plants", con);

Query 2
SqlCommand cmd = new SqlCommand(@"SELECT MAX(plantid) FROM XCheckAllDatabase
WHERE (plantname = '" + checkname + "') ", con);

Query 3
SqlCommand cmd = new SqlCommand(@"INSERT INTO Plants
(plid, plname, plseason, pltype, plcategory, plquantity, opid,plprice,status)
VALUES
('" + id + "','" + name + "','" + season + "','" + type + "','" + category + "','" +
quantity + "','" + userid + "','" + price + "','" + status + "')", con);
SET

SqlCommand cmd1 = new SqlCommand(@"UPDATE


XCheckAllDatabase
plantid ='" + id + "'WHERE
(plantname = '" + checkname + "')", con);

3.3.4 Pot Related Queries


Query 1

SqlCommand cmd = new SqlCommand(@"INSERT INTO Pots


(pt_id, pt_name, userid)
VALUES
('" + id + "','" + name + "','" + userid + "')", con);
SET

SqlCommand cmd1 = new SqlCommand(@"UPDATE


XCheckAllDatabase
potsid ='" + id + "'WHERE
(potsname = '" + checkname + "')", con);

Query 2
159

SqlCommand cmd = new SqlCommand(@"INSERT INTO PotsQuantity


(pts_id, pts_size, pts_price, pts_quantity, userid,status)
VALUES
('" + id + "','" + sizesmall + "','" + pricesmall + "','" + quantitysmall + "','" + userid
+ "','" + status + "')", con);

3.3.5 Supplier Queries


Query 1
SqlCommand cmd = new SqlCommand(@"SELECT count(*) FROM Supplier", con);

Query 2

SqlCommand cmd = new SqlCommand(@"INSERT INTO Supplier


(sup_id, sup_name, sup_address, sup_phone, userid)
VALUES
('" + id + "','" + name + "','" + address + "','" + contactno + "','" + userid + "')",
con);

3.3.6 Order Queries


Query 1

SqlCommand cmd = new SqlCommand(@"INSERT INTO [Order]


(orders_id, orders_date, client_id, user_id)
VALUES
('" + id + "','" + date + "','" + client + "','" + userid + "')", con);

Query 2
SqlCommand cmd9 = new SqlCommand(@"SELECT
FROM
Plants
WHERE
(plname = '" + product + "')", con);

plquantity

3.3.7 Receipt Queries


Query 1

SqlCommand cmd = new SqlCommand(@"SELECT count(*) FROM ClientReceipt", con);

Query 2
SqlCommand cmd1 = new SqlCommand(@"SELECT
FROM
ClientPayment
WHERE
(oord_id = '" + orderid + "')", con);

oord_id

3.3.8 Client Related Queries


Query 1

SqlCommand cmd = new SqlCommand(@"SELECT count(*) FROM Client", con);

Query 2
SqlCommand cmd = new SqlCommand(@"INSERT INTO Client
(cl_id, cl_name, cl_type, cl_address, cl_contectno, userid)
VALUES
('" + id + "','" + name + "','" + type + "','" + address + "','" + contactno + "','" +
userid + "')", con);

3.3.9 Order Payment Queries


Query 1
SqlDataAdapter sda = new SqlDataAdapter(@"SELECT
FROM
[Order]", con);

160

orders_id

Query 2
SqlCommand cmd1 = new SqlCommand(@"SELECT
FROM
ClientPayment
WHERE
(oord_id = '" + supid + "')", con);

3.3.10

oord_id

Supplier Payment Queries

Query 1

SqlCommand cmd = new SqlCommand(@"SELECT count(*) FROM SupplierPayment", con);

Query 2
SqlDataAdapter sda = new SqlDataAdapter(@"SELECT
SupplierProduct.suplt_total_price
FROM
Supplier INNER JOIN
SupplierProduct ON Supplier.sup_id = SupplierProduct.suplt_id
WHERE
(Supplier.sup_id = '" + supplierid + "')", con);

Test Cases
For
Green House City
Management System
Prepared by: Azra Yaqoob, Anam
Saghir
Revised By: : Muhammad Haris
Zahoor
January 5th, 2016

161

3.4 Test Cases


User Login
TC: 01
Description

Priority
Normal Flow:
Preconditions:

Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

User Login
This test case is to test the user login. This test case
verifies if the user login is completed successfully or
not. This test case will be carried more than one time
to verify the process
.
High
User request the system for login
System verifies the id and password.
System successfully login the user
System should be in running mode.
Administrator/operator successfully log into
system.
Account ID and password must present.
A successful login confirmation is displayed.
The main screen of the system is shown to user.
Account Id
Password
Redirect To Home Page
Redirect To Home Page
Pass

162

the

Change Password
TC: 02
Description

Change Password
This test case is to test that how the user changes his
password in system. This test case will be carried
more than one time to verify the process.

Priority

High
User requests the system to Change password.
System should successfully process the request and
ask for old and new
Password.
The user enter the old password new password and
again new password to confirm.
System verifies the password and account is
updated.
A confirmation message is shown to the user.
System should be in running mode.
System should be logged in by authenticated user.
Old and new password must be present.
A confirmation message indicating change of
password is displayed to the user.
Users account information is updated.
Old password
New password.

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Temporary password is sent to the user.


Temporary password is sent to the user.
Pass

Add user
TC: 03

Add user
163

Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:

This test case is to test the administrator can Add


user account. This test case verifies if the Add
operator is completed successfully or not. This test
case will be carried more than one time to verify the
process.
High
Administrator request to add operator.
Administrator enters operator account information.
Administrator request the system to save
information
System saves the operators information in
database.
System displays a confirmation message of
successful addition of administrator in database
System should be in running mode.
Administrator must be authenticated to the system.
Add User is successfully changed in the system.
Users account information is updated.
name,
address
password,
permanent
address
contact number
date of birth
Date of joining.
User account is successfully created in system

Expected
Result:

User account is successfully created in system.

Acceptance:

Pass

Activate/Deactivate user
TC: 04
Description

Priority

Activate/Deactivate User
This
test
case
is
to
test
Admin
can
Activate/Deactivate operator account. This
test case verifies if the Activate/Deactivate operator
is completed successfully or not. This test case will be
carried more than one time to verify the process.
Low

164

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Admin request to Activate/Deactivate operator.


System will show all operators to the Admin.
Admin enter required information.
System verifies the information and show specific
operator to the Admin and confirms deletion
process form Admin.
Admin will respond to the message
After
verification
operator
record
is
been
successfully Activate/Deactivated from system and
confirmation message is show to the Admin.
System should be in running mode.
System should be logged in by authenticated user.
Operators account must exist.
User account is successfully Activate/Deactivated
from the database.
A confirmation message is displayed to the user.
User id.
User account is successfully Activate/Deactivated
from the database.
User account is successfully Activate/Deactivated
from the database.
Pass

Search User
TC: 05
Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

Search User
This test case is to test that how to operator record is
retrieved from the system if the search operator is
completed successfully or not. This test case will be
carried more than one time to verify the process.
High
User requests the system to search user.
System should successfully process the request.
The user enter operator information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 user information must be available.
Search Information is successfully changed in the
system.
User id.
165

Actual Result:
Expected
Result:
Acceptance:

User account is successfully searched from the


database.
User account is successfully searched from the
database.
Pass

Update User
TC: 06
Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Update User
This test case is to test that how to operator record is
updated from the system if the updating operator is
completed successfully or not. This test case will be
carried more than one time to verify the process.
High
User requests the system to search user.
System should successfully process the request.
The user enter operator information.
System verifies the information and display the
updated status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 user information must be available.
Search Information is successfully changed in the
system.
User id.
User account is successfully updated.
User account is successfully updated.
Pass

Add Employee
TC: 07
Description

Add Employee
This test case is to test that how operator,
administrator can successfully add new employee in
the system .This test case verifies if the add new
employee is completed successfully or not. This test
166

case will be carried more than one time to verify the


process.
Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:

High
Operator, administrator request for add new
employee.
System will show add new employee form to the
operator, administrator.
Operator, administrator provides the employee
information.
System verifies the information and confirmation
message is shown to operator, administrator.
System should be in running mode.
System should be logged in by authenticated user.
Add new employee is successfully added in database.
Name
contact number
Address
CNIC number
employee category
joining date
date of birth,
employee Salary
New
employee
database.

is successfully added in

Expected
Result:

New employee is successfully added in database.

Acceptance:

Pass

Update Employee
TC: 08
Description

Priority

Update Employee
This test case is to test the administrator, operator
can update employee account. This test case verifies
if the Update employee is completed successfully or
not. This test case will be carried more than one time
to verify the process.
High

167

Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:
Expected
Result:

Administrator,
operator
request
to
update
employee.
System will show all employee to the administrator,
operator.
Administrator, operator enter required information
System verifies the information and confirmation
message is shown to administrator, operator.
System should be in running mode.
System should be logged in by authenticated user.
Staff record must exists.
Employee account is updated and stored with all the
provided information in the database.
Name
contact number
Address
CNIC number
employee category
joining date
date of birth,
employee Salary
Employee account is successfully updated in
database.
Employee
database.

account

is

successfully

updated

in

Search Employee by type


TC: 09
Description

Search Employee by type


This test case is to test that how to search employee
record is retrieved from the system. If the search
employee is completed successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

Normal Flow:

Preconditions:

User requests the system to search employee.


System should successfully process the request.
The user enter employee information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 user information must be available.
168

Postconditions:
Input Data:

Actual Result:
Expected
Result:
Acceptance:

Search Information is successfully changed in the


system.
Id
Name
D.o.b.
category
Employee account is successfully searched from the
database.
Employee account is successfully searched from the
database.
Pass

Search Employee by category


TC: 10
Description

Search Employee by category


This test case is to test that how to search employee
record is retrieved from the system. If the search
employee is completed successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

Normal Flow:

Preconditions:
Postconditions:
Input Data:

User requests the system to search employee.


System should successfully process the request.
The user enter employee information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 user information must be available.
Search Information is successfully changed in the
system.
Administrator
Operator
Driver
Gardner

Actual Result:

Employee account is successfully searched from the


database.
169

Expected
Result:
Acceptance:

Employee account is successfully searched from the


database.
Pass

Activate/Deactivate Employee
TC: 11
Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Activate/Deactivate Employee
This test case is to test Administrator, operator can
Activate/Deactivate employee account. This test case
verifies if the Activate/Deactivate employee is
completed successfully or not. This test case will be
carried more than one time to verify the process.
Low
Administrator,
operator
request
to
Activate/Deactivate user.
System will show all employee to the operator,
administrator.
Operator, administrator enter required information.
System verifies the information and show specific
employee to the operator, administrator and
confirms
deletion
process
form
operator,
administrator.
Operator, administrator will respond to the message
After verification employee record has been
successfully Activate/Deactivated from system and
confirmation message is show to the operator,
administrator.
System should be in running mode.
System should be logged in by authenticated user.
Employee
account
is
successfully
Activate/Deactivated from the database.
Id.
System account is successfully Activate/Deactivated
from the database.
System account is successfully Activate/Deactivated
from the database.
Pass

170

Add Client
TC: 12
Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:
Expected
Result:
Acceptance:

Add Client
This test case is to test that how operator,
administrator can successfully add new client in the
system .This test case verifies if the add new client is
completed successfully or not. This test case will be
carried more than one time to verify the process.
High
Operator, administrator request for add new client.
System will show add new client form to the operator,
administrator.
Operator, administrator provides client information.
System verifies the information and confirmation
message is shown to operator, administrator.
System should be in running mode.
System should be logged in by authenticated user.
Client is successfully added in database.
Name
Id
contact number
Address.
Client is successfully added in database.
Client is successfully added in database.
Pass

Search Client by category


TC: 13
Description

Search Client by category


This test case is to test that how to search client
record is retrieved from the system. If the search
client is completed successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

171

Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:
Expected
Result:
Acceptance:

User requests the system to search client.


System should successfully process the request.
The user enter client information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 user information must be available.
Search Information is successfully changed in the
system.
Client id
Client name
Client type
Client account is successfully searching from the
database.
Client account is successfully searching from the
database.
Pass

Search Client by Type


TC: 14
Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

Search Client by Type


This test case is to test that how to search client
record is retrieved from the system. If the search
client is completed successfully or not.
This test case will be carried more than one time to
verify the process.
High
User requests the system to search client.
System should successfully process the request.
The user enter client information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 user information must be available.
Search Information is successfully changed in the
system.
permanent
Regular
172

Actual Result:
Expected
Result:
Acceptance:

Client account is successfully searching from the


database.
Client account is successfully searching from the
database.
Pass

Update Client
TC: 15
Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

Update Client
This test case is to test the administrator, operator
can update client account. This test case verifies if
the Update client is completed successfully or not.
This test case will be carried more than one time to
verify the process.
High
Administrator, operator request to update client.
System will show all client to the administrator,
operator.
Administrator, operator enter required information.
System verifies the information and confirmation
message is shown to administrator, operator.
System should be in running mode.
System should be logged in by authenticated user.
Client record must exists.
Client account is updated and stored with all the
provided information in the database.
id.

Actual Result:
Expected
Result:
Acceptance:

Client account is successfully updated in database.


Client account is successfully updated in database.
Pass

Add Supplier
TC: 16
Description

Add Supplier
This test case is to test that how operator,
administrator can successfully add new supplier in the
system .This test case verifies if the add new supplier
173

is completed successfully or not. This test case will be


carried more than one time to verify the process.
Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

High
Operator, administrator request for add new supplier.
System will show add new supplier form to the
operator, administrator.
Operator, administrator provides supplier information.
System verifies the information and confirmation
message is shown to operator, administrator.
System should be in running mode.
System should be logged in by authenticated user.
Supplier is successfully added in database.
Name
Plants supplied
Quantity of Plant
Plant prices
Supplied date
contact information
id information

Actual Result:

Supplier is successfully added in database.

Expected
Result:

Supplier is successfully added in database.

Acceptance:

Pass

Search Supplier
TC:17
Description

Search Supplier
This test case is to test that how to search supplier
record is retrieved from the system. If the search
supplier is completed successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

174

User requests the system to search supplier.


System should successfully process the request.
The user enter supplier information.
System verifies the information and display the
search status.

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:

System should be in running mode.


System should be logged in by authenticated user.
At least 1 user information must be available.
Search Information is successfully changed in the
system.
Name
Id
Supplier account is successfully searching from the
database.

Expected
Result:

Supplier account is successfully searching from the


database.

Acceptance:

Pass

Update Supplier
TC: 18
Description

Update Supplier
This test case is to test the administrator, operator
can update supplier account. This test case verifies if
the Update supplier is completed successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High
Administrator, operator request to update supplier.
System will show all supplier to the administrator,
operator.
Administrator, operator enter required information.
System verifies the information and confirmation
message is shown to administrator, operator.
System should be in running mode.
System should be logged in by authenticated user.
Supplier record must exists.
Supplier account is updated and stored with all the
provided information in the database.
Supplier id.
Supplier account is successfully updated in

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:

175

database.
Expected
Result:
Acceptance:

Supplier account
database.

is

successfully

updated

in

Pass

Add Plant
TC: 19
Description

Add Plant.
This test case is to test that how operator,
administrator can successfully add Plant in the
system .This test case verifies if the add new plant is
completed successfully or not. This test case will be
carried more than one time to verify the process.

Priority

High
Operator, administrator request for add new plant.
System will show add new plant form to the operator,
administrator.
Operator, administrator provides Plant information.
System verifies the information and confirmation
message is shown to operator, administrator.

Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:
Expected
Result:
Acceptance:

System should be in running mode.


System should be logged in by authenticated user.
Plant Information is successfully change in the
system.
Plant id
Plant name
Plant quantity
plant price
Plant type.
New Plant is successfully added in database.
New Plant is successfully added in database.
Pass

Search Plant by category


TC: 20
Description

Search Plant by category


This test case is to test that how to search
176

Plant

record is retrieved
From the system. If the search Plant is completed
successfully or not.
This test case will be carried more than one time to
verify the process.
Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

High
User requests the system to search Plant.
System should successfully process the request.
The user enter plant information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 Client information must be available.
Search Information is successfully changed in the
system.
Name
Id
Type
Plant account is successfully searching from the
database.
Plant account is successfully searching from the
database.
Pass

Search Plant by Type


TC: 21
Description

Search Plant by type


This test case is to test that how to search Plant
record is retrieved
From the system. If the search Plant is completed
successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

Normal Flow:

User requests the system to search Plant.


System should successfully process the request.
The user enter plant information.
System verifies the information and display the
search status.
177

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

System should be in running mode.


System should be logged in by authenticated user.
At least 1 Client information must be available.
Search Information is successfully changed in the
system.
Summer
Winter
Plant account is successfully searched from the
database.
Plant account is successfully searched from the
database.
Pass

Update Plant
TC: 22
Description

Update Plant
This test case is to test the administrator, operator
can update Plant account. This test case verifies if the
Update plant is completed successfully or not. This
test case will be carried more than one time to verify
the process.

Priority

High
Administrator, operator request to update plant.
System will show all plant to the administrator,
operator.
Administrator, operator enter required information.
System verifies the information and confirmation
message is shown to administrator, operator.
System should be in running mode.
System should be logged in by authenticated user.
Plant record must exists.
Supplier account is updated and stored with all the
provided information in the database.

Normal Flow:

Preconditions:
Postconditions:
Input Data:

plant id
Actual Result:

Plant account is successfully updated in database.

Expected
Result:

Plant account is successfully updated in database.

Acceptance:

Pass
178

Activate/Deactivate Plant
TC: 23
Description

Activate/Deactivate Plant.
This test case is to test Administrator can
Activate/Deactivate plant from the system. This test
case verifies if the Activate/Deactivate plant process
is completed successfully or not. This test case will be
carried more than one time to verify the process.

Priority

Low
Administrator request to Activate/Deactivate Plant.
System will show all Plant to the, administrator.
Administrator enter required information.
System verifies the information and show specific
plant to the administrator and confirms deletion
process form administrator.
Administrator will respond to the message
After verification plant record has been successfully
Activate/Deactivated from system and confirmation
message is shown to the administrator.
System should be in running mode.
System should be logged in by authenticated user.
Plant must be exist.
Plant is successfully Activate/Deactivated from the
database.

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Plant id
Plant is successfully Activate/Deactivated from the
database.
Plant is successfully Activate/Deactivated from the
database.
Pass

Add Pot
TC: 24
Description

Add Pot.
This test case is to test that how operator,
administrator can successfully add Pot in the
system .This test case verifies if the add new pot is
179

completed successfully or not. This test case will be


carried more than one time to verify the process.
Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:
Expected
Result:
Acceptance:

High
Operator, administrator request for add new pot.
System will show add new pot form to the operator,
administrator.
Operator, administrator provides Pot information.
System verifies the information and confirmation
message is shown to operator, administrator.
System should be in running mode.
System should be logged in by authenticated user.
Pot Information is successfully change in the system.
Pot id
Pot name
Pot quantity
pot price
Pot type.
New Pot is successfully added in database.
New Pot is successfully added in database.
Pass

Search Pot by category


TC: 25
Description

Search Pot by category


This test case is to test that how to search Pot record
is retrieved
From the system. If the search Pot is completed
successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

Normal Flow:

User requests the system to search Pot.


System should successfully process the request.
The user enter pot information.
System verifies the information and display the
search status.

180

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

System should be in running mode.


System should be logged in by authenticated user.
At least 1 Client information must be available.
Search Information is successfully changed in the
system.
Pot Name
Pot Id
Pot type
Pot account is successfully searched from the
database.
Pot account is successfully searched from the
database.
Pass

Search Pot by Type


TC: 26
Description

Search Pot by Type


This test case is to test that how to search Pot record
is retrieved
From the system. If the search Pot is completed
successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

Normal Flow:

Preconditions:
Postconditions:
Input Data:

Actual Result:
Expected

User requests the system to search Pot.


System should successfully process the request.
The user enter pot information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 Client information must be available.
Search Information is successfully changed in the
system.
Small
Medium
large
Pot account is successfully searched from the
database.
Pot account is successfully searched from the
181

Result:
Acceptance:
Update Pot
TC: 27
Description

Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:

database.
Pass

Update Pot
This test case is to test the administrator, operator
can update Pot account. This test case verifies if the
Update pot is completed successfully or not. This test
case will be carried more than one time to verify the
process.
High
Administrator, operator request to update pot.
System will show all pot to the administrator,
operator.
Administrator, operator enter required information.
System verifies the information and confirmation
message is shown to administrator, operator.
System should be in running mode.
System should be logged in by authenticated user.
Pot record must exists.
Supplier account is updated and stored with all the
provided information in the database.
pot id

Actual Result:
Expected
Result:
Acceptance:

Pot account is successfully updated in database.


Pot account is successfully updated in database.
Pass

Activate/Deactivate Pot
TC: 28
Description

Priority

Activate/Deactivate Pot.
This test case is to test Administrator, operator can
Activate/Deactivate pot from the system. This test
case verifies if the Activate/Deactivate pot employee
is completed successfully or not. This test case will be
carried more than one time to verify the process.
Low

182

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Administrator,
operator
request
to
Activate/Deactivate Pot.
System will show all Pot to the operator,
administrator.
Operator, administrator enter required information.
System verifies the information and show specific
pot to the operator, administrator and confirms
deletion process form operator, administrator.
Operator, administrator will respond to the message
After verification pot record has been successfully
Activate/Deactivated from system and confirmation
message is show to the operator, administrator.
System should be in running mode.
System should be logged in by authenticated user.
Pot must be exist.
Pot is successfully Activate/Deactivated from the
database.
Pot id
Pot is successfully Activate/Deactivated from the
database.
Pot is successfully Activate/Deactivated from the
database.
Pass

Add Order
TC: 29
Description

Add Order
This test case is to test that how operator,
administrator can successfully add order in the
system .This test case verifies if the add order is
completed successfully or not. This test case will be
carried more than one time to verify the process.

Priority

High
Operator, administrator request for add order.
System will show add order form to the operator,
administrator.
Operator,
administrator
provides
the
order
information.
System verifies the information and confirmation
message is shown to operator, administrator.

Normal Flow:

183

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

System should be in running mode.


System should be logged in by authenticated user.
Order is successfully added in database.
Order date
Order id
Order is successfully added in database.
Order is successfully added in database.
Pass

Search Order
TC:30
Description

Search Order
This test case is to test that how to search Order
record is retrieved from the system. If the search
Order is completed successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

User requests the system to search Order.


System should successfully process the request.
The user enter order information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 Order information must be available.
Search Information is successfully changed in the
system.
Id
Order date
Order account is successfully searching from the
database.
Order account is successfully searching from the
database.
Pass

184

Update Order
TC: 31
Description

Update Order
This test case is to test the administrator, operator
can update Order. This test case verifies if the Update
Order is completed successfully or not. This test case
will be carried more than one time to verify the
process.

Priority

High
Administrator, operator request to update Order.
System will show all order to the administrator,
operator.
Administrator, operator enter required information.
System verifies the information and confirmation
message is shown to administrator, operator.
System should be in running mode.
System should be logged in by authenticated user.
Order record must exists.
Order account is updated and stored with all the
provided information in the database.
Order Id.

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Order account is successfully updated in database.


Order account is successfully updated in database.
Pass

Cancel Order
TC: 32
Description

Cancel Order.
This test case is to test Administrator can
Activate/Deactivate Operator account from the
system.
This
test
case
verifies
if
the
Activate/Deactivate operator account is completed
successfully or not. This test case will be carried more
185

than one time to verify the process.


Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Low
Administrator request to cancel order.
System verifies the request and Cancel Order from
the
System.
After verification order has been successfully cancel
from system and confirmation message is show to
the, administrator.
System should be in running mode.
System should be logged in by authenticated user.
Order must be exist.
A confirmation message is displayed to the user.
Order id
Order is successfully cancel from the database.
Order is successfully cancel from the database.
Pass

Generate Receipt
TC: 33
Description

Generate Receipt
This test case is to test that how operator,
administrator can successfully add generate receipt in
the system .This test case verifies if the add order is
completed successfully or not. This test case will be
carried more than one time to verify the process.

Priority

High
Operator, administrator request for add order.
System will show add order form to the operator,
administrator.
Operator,
administrator
provides
the
order
information.
System verifies the information and confirmation
message is shown to operator, administrator.

Normal Flow:

Preconditions:

System should be in running mode.


System should be logged in by authenticated user.
186

Postconditions:
Input Data:

Actual Result:
Expected
Result:
Acceptance:

Receipt generation process successfully terminated.


receipt id
receipt date
Client name
plant name
plant quantity
Receipt is successfully generated.
Receipt is successfully generated.
Pass

Search Receipt
TC: 34
Description

Search Receipt
This test case is to test that how to Order record is
retrieved
From the system. If the search Order record is
completed successfully or not.
This test case will be carried more than one time to
verify the process.

Priority

High

Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:

User requests the system to search receipt.


System should successfully process the request.
The user enter receipt information.
System verifies the information and display the
search status.
System should be in running mode.
System should be logged in by authenticated user.
At least 1 Receipt information must be available.
Search Information is successfully changed in the
system.
Receipt ID
Receipt is successfully searching from the database.
Receipt is successfully searching from the database.
187

Acceptance:

Pass

Add Payment
TC: 35
Description

Add Payment.
This test case is to test that how operator,
administrator can successfully add Payment in the
system .This test case verifies if the add Payment is
completed successfully or not. This test case will be
carried more than one time to verify the process.

Priority

High
Operator, administrator request for add Payment.
System will show add Payment form to the operator,
administrator.
Operator,
administrator
provides
Payment
information.
System verifies the information and confirmation
message is shown to operator, administrator.

Normal Flow:

Preconditions:
Postconditions:
Input Data:

System should be in running mode.


System should be logged in by authenticated user.
Paid payment is successfully changed in the system..
Payment id
total payment
Paid payment
remaining Paid payment
paid date
paid person like employee, supplier

Actual Result:

Payment is successfully added in system.

Expected
Result:

Payment is successfully added in system.

Acceptance:

Pass

Search Payment
TC:36
Description

Search Payment
This test case is to test that how to Payment record is
retrieved from the system.if the
payment is
188

completed successfully or not.


This test case will be carried more than one time to
verify the process.
Priority
Normal Flow:

Preconditions:
Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

High
The user enter Payment information.
System verifies the information and display the
search status.

System should be in running mode.


System should be logged in by authenticated user.
At least 1 Payment information must be available.
Search Information is successfully changed in the
system.
Payment ID
Payment date
Payment account is successfully searching from the
system
Payment account is successfully searching from the
system.
Pass

Update Payment
TC: 37
Description

Update Payment
This test case is to test the administrator, operator
can update Payment information in the system. This
test case verifies if the Update Payment is completed
successfully or not. This test case will be carried more
than one time to verify the process.

Priority

High
Administrator, operator enter required information.
System verifies the information and confirmation
message is shown to administrator, operator.

Normal Flow:

Preconditions:

System should be in running mode.


System should be logged in by authenticated user.
Payment record must exists.
189

Postconditions:
Input Data:
Actual Result:
Expected
Result:
Acceptance:

Payment account is updated and stored with all the


provided information in the system.
Payment id.
Payment account is successfully updated in system.
Payment account
database.

is

successfully

updated

Pass

4. Transition

190

in

4.1 Snap Shots

191

192

193

194

195

196

User Manual

197

For
Green House City
Management System
Prepared by: Azra Yaqoob
Revised By: Muhammad Haris Zahoor
January 5th, 2016

4.2 User Manual


Welcome to the Green House City Management System!. This User Manual provides a detailed
description of all the Green House City Management System features. We are sure you will find
the GHCM easy to use. Lets get started!

198

4.2.1 Computer Requirements


Before entering the GHCM, make sure your computer meets the following requirements:
Windows XP,Windows 7 ,8 or higher
Microsoft Visual Studio 2010

4.2.2 Login Screen


The main areas of the GHCM Login page are below and are described in detail on the following
pages.

o
o
o
o

Login Screen to login for user


ID text box to enter login Id
Password text box to enter Password of user
Login Button to submit user information for login to system

4.2.3 Home Page


The home page of GHCM contains different tiles such as
Employee Management, Client Management, User Management, Supplier, Plants, Pots
Management, Reports, Receipt.

199

o Each tile Contains Segments like Add, search, Update, Activate and deactivate
o By clicking on a tile a redial appears
o As below by clicking Employee Management a redial that contains Add
Employee, Search Employee, Update employee etc. appears

200

4.2.4 User Management


By clicking on user management user management redial appears you can easily
add,update,activate deactivate user information by click on segments on add user
segment add user form will appears having buttons, Text Boxes, Labels and combo box
User can easily enter required information in fields
Add button will store and save the record
Reset button will clear all the fields
Close button is to close the forms
Similarly user can Activate/Deactivate, search, change password and view deactivate user
by entering the related information in fields.

4.2.5 Employee Management


By clicking on Employee management employee management redial appears you can
easily add,update,activate deactivate user information by click on segments
on add employee segment add employee form will appears having buttons, Text Boxes,
Labels and combo box
User can easily enter required information in fields
Add button will store and save the record
Reset button will clear all the fields
Close button is to close the forms
Similarly user can search, update, activate deactivate, and view deactivate employees
information.

201

4.2.6 Client Management


By clicking on Client management client management redial apperars you can easily
add,update,activate deactivate user information by click on segments
on add client segment add client form will appears having buttons, Text Boxes, Labels
and combo box
User can easily enter required information in fields
Add button will store and save the record
Reset button will clear all the fields
Close button is to close the forms
Similarly user can search and update clients information.

202

4.2.7 Supplier Management


By clicking on Supplier management supplier management redial appears you can easily
add, update supplier information by click on segments
on add Supplier segment add supplier form will appears having buttons, Text Boxes,
Labels and combo box
User can easily enter required information in fields
Add button will store and save the record
Reset button will clear all the fields
Close button is to close the forms
Similarly user can, search, update and add supplier products by entering the related
information in fields.

203

4.2.8 Receipt Generation


By clicking on Receipt , redial appears you can easily add, Search or generate bill
information by click on segments
on add receipt segment add receipt form will appears having buttons, Text Boxes, Labels
and combo box
User can easily enter required information in fields
Add button will store and save the record
Reset button will clear all the fields
Close button is to close the forms
Similarly user can search receipt and generate bill by entering the related information in
fields.

204

4.2.9 Plants Management


By clicking on Plants Management , redial appears you can easily
add,Search,activate,deactivate or view deactivated plants information by click on related
segment
on add plant segment add plant form will appears having buttons, Text Boxes, Labels and
combo box
User can easily enter required information in fields
Add button will store and save the record
Reset button will clear all the fields
Close button is to close the form
Similarly user can Activate/Deactivate, search, update and view deactivate plant by
entering the related information in fields.

205

4.2.10

Pot Management

By clicking on Pot Management , redial appears you can easily


add,Search,activate,deactivate or view deactivated pot information by click on related
segment
on add pot segment add pot form will appears having buttons, Text Boxes, Labels and
combo box
User can easily enter required information in fields
Add button will store and save the record
Reset button will clear all the fields
Close button is to close the form
Similarly user can Activate/Deactivate, search, update and view deactivate pot by
entering the related information in fields.

206

4.2.11

Supplier Payment

By clicking on Supplier payment , redial appears you can easily add,Search,update


payment information by click on related segment
on add Supplier Payment segment add Supplier Payment form will appears having
buttons, Text boxes, Labels and combo box
207

User can easily enter required information in fields


Add button will store and save the record
Reset button will clear all the fields
Close button is to close the form

4.2.12

Order Management

By clicking on Order management, redial appears you can easily add, Search, update,
activate, deactivate and view deactive information by click on related segment.
on add order segment add order form will appears having buttons, Text boxes, Labels
and combo box
User can easily enter required client id information in fields
Add button will store and save the record
A conformation message will be shown to user and then user have to fill the information
of ordered products.
Reset button will clear all the fields
Close button is to close the form

208

5. Project Management
5.1 Gantt chart

209

210

You might also like