You are on page 1of 126

Book Store Management

PROJECT REPORT
ON

BOOK STORE MANAGEMENT

Submitted By-

Ms. AMRITA SINGH

Under the Guidance of


Mrs. Dhatri Vinjamuri
And
Mrs. Neha Samuel

Submitted to
S.K. College of science and commerce
Plot no.31, sector 25, Nerul(e),Navi Mumbai
2010-2011

1
Book Store Management

Project Report Submitted to


S.K. COLLEGE OF SCIENCE &
COMMERCE

Plot No.31, Sector 25,


Seawoods, Navi Mumbai - 400706.

Project Report On
Book Store Management

SUBMITTED BY COLLEGE GUIDE


MS. AMRITA SINGH Mrs. NEHA SAMUEL
(T.Y.C.S.) 2011-12

2
Book Store Management

EXTERNAL EXAMINER:
DATE:

PREFACE

This project is developed with an aim to achieve


computerization of Shop, For time saving & Helping self.

This software provide help in effective management of Purchase & Sales with
additional features of security and increase & Decrease date inconsistency.

The following documentation Provides an insight of the existing “BOOK


SHOP MANAGEMENT” with a scope for further expansion in future.

This report depicts the information use for the system development. For detail
information scope of the project along with table design and Screen Layouts
are provided.

Although this report is prepared with utmost care, there may be errors for the
project and is subjected to further enhancements.

AMRITA SINGH.

3
Book Store Management

ACKNOWLEDGEMENT

I take this opportunity to thank all those who have been directly or
indirectly related to my project.

I would like to thank to our project guide Mrs. NEHA SAMUEL for his
constant source of inspiration. I am grateful to our coordinator Mrs. DHATARI
VINJAMURI for her encouragement and suggestions on my project. I
sincerely thank to our entire professor from (Computer Department) of our
COLLEGE for their continued support.

I look forward in comments which are welcomed by me from students


and teachers.

4
Book Store Management

INDEX:
SR. NO. CONTENTS PAGE NO.

PRELIMINARY INVESTIGATION
01
• ORGANIZATIONAL OVERVIEW
• DESCRIPTION OF THE SYSTEM 7-16
• LIMITATION OF PRESENT SYSTEM
• PROPOSED SYSTEM
• FEASIBILITY STUDY
• GANTT CHART

SYSTEM ANALYSIS
02 • STACK HOLDER
• FACT FINDING TECHNIQUES
• EVENT TABLE
• USE CASE DIAGRAM 17-29
• ERD DIAGRAM
• ACTIVITY DIAGRAM
• CLASS DIAGRAM
• SEQUENCE DIAGRAM
• COLLABORATION DIAGRAM

03 SYSTEM DESIGN

• Converting ERD to Tables


• Component Diagram 30-36
• Package Diagram
• Deployment Diagram
• System flow chart
• Structure chart(Program level & System level)

SYSTEM CODING
04 • Menu Tree
• List of tables with attributes and constraints 37-123
• Validations
• Test Cases, Test Data and Test Results
• Screen Layouts & Report Layouts
05 SYSTEM IMPLEMENTATION 124-125
06 FUTURE ENHANCEMENTS 126-127
07 CONCLUSION

5
Book Store Management

07 REFERENCES AND BIBLIOGRAPHY 128-129

1
Preliminary Investigation

6
Book Store Management

Organization overview &


Introduction:

This system “Inventory system” has been developed by Ms. AMRITA


SINGH as an academic project for the Computer Science Department of S.K.
College of Science & Commerce as a part of the T.Y. BSc Computer
Science Course.

This system was created with a lot of anticipation towards mastering the
basics of system creation .It was designed in such a way so as to help us make
use of basic technologies like Visual Studio and MS SQL .It has used the
concepts of maintaining a uniform system structure and during the process of
creating this system an honest effort has been made towards creating a
professional system in the future.

7
Book Store Management

Description of the System:

During the past several decade’s personnel function has


been transformed from a relatively obscure record keeping staff to
central and top level management function. There are many factors
that have influenced this transformation like technological
advances, professionalism, and general recognition of human beings
as most important resources.

 A computer based management system is designed to handle the entire


primary Information required to calculate monthly statements. Separate
database is maintained to handle all the details required for the correct
statement calculation and generation.

 This project intends to introduce more user friendliness in the various


activities such as record updating, maintenance, and searching.

 The searching of record has been made quite simple as all the details of
the Book can be obtained by simply keying in the identification of those
Books.

 Similarly, record maintenance and updating can also be accomplished by


using the identification of the Book with all the details being
automatically generated. These details are also being promptly
automatically updated in the Master files thus keeping the record
absolutely up-to-date.

8
Book Store Management

 The entire information has maintained in the database or Files and


whoever wants to retrieve can’t retrieve, only authorization user can
retrieve the necessary information which can be easily is accessible from
the file.

Limitations of the Present System:

The present system has several shortcomings that are as follows:-

 In Present system each and every record is maintains in registers, so


there will be lot of redundancy in maintain book records.
 Also there is no security due to all records are maintain in register.
 Modification of one record causes to other records related to that record,
so work becomes very critical, so some time data loss will be ocular.
 Storage of information is costly.
 Require knowledge about this system.
 More time required for reading & adding records in register
 Searching any old record of any job done or damaged required more
time due to critical system of register.

9
Book Store Management

Proposed System:

This system computerized all the requirements of the owner. It will give the
owner the feature of maintaining all the profiles of its customer, Suppliers, the
Product in which the owner deals in, the companies of whose product the
owner sells. It gives the user the functionality of searching stock without
manually checking it as stock entries are updated throughout the sales and
purchase transaction. It also keeps track of the enquiries made in the owner by
various people.

OBJECTIVES

1) Data management.

2) Data retrieval at will.

3) Data modification.

4) Save time thereby increasing performance.

5) Reducing work process time.

6) Provide various report facility.

7) Cost effective and less manpower required.

10
Book Store Management

Advantages of The Proposed System:

 This system uses MS SQL as data base which is strong and secure
database for proposed system.

 The proposed system empowers the user with a new computer based
system by reducing the efforts of data maintenance.

 The proposed developed according to the user specification hence it is a


user-centered system.

 This system provides a facility to generate a bill as soon as the customer


purchases a product.

 If the customer has not paid the full payment then there is a facility to
check the balance amount that has to be paid by the customer.

11
Book Store Management

Limitation of the Proposed System :

 The system prepared is competent but we cannot say that it is a perfect


system. This system like any other system has some flaws &
shortcomings in it. They are as follows:

 This system is semi-functional. This means that the system covers the
manipulation related to the record only.

 Only one person can use the system.

 There would be high rate & better quality of performance.

System requirements
Hardware and software requirements:
The least hardware requirements are:
1) Minimum 2 GB HDD space
2) Pentium or Celeron based processor
12
Book Store Management

3) 128 MB RAM

The least software requirements are:


1) Operating system: - Windows XP, Windows7.

2) Front-end Tool: - Visual studio 2008.

3) Back-end Tool: - MS SQL Server 2005.

4) Report Generation: - Crystal Report Basic.

FEASIBILITY STUDY

Every project would be feasible, if provided with


unlimited resources and unlimited time. But unfortunately, the
development of computer-based system of book is more likely plagued
by a security of resources and difficult time constraint. It is both
necessary and prudent to evaluate the feasibility of the project at the
earliest possible time. During software engineering we concentrate our
attention on four primary area of interest. The techniques used in
conducting an initial investigation and feasibility study are very similar
but the objectives are not so.

The major objectives of feasibility study are to further define the


problem and to determine the best way to solve it. The typical primary
objectives are:

13
Book Store Management

• A centralized database will be developed.

• Runtime operating decision-making will be eliminated.

• Unnecessary control procedure will be automated.

• The minimum of paper work should be produced.

• The output produced by the system should be in a usable format

Gantt chart:

I planned my project according to the Gantt chart as follows:

Sr. Task Start Finish Duration


No. (in Days)
14
Book Store Management

1 Understanding current 15-06-2011 22-06-2011 07


system
2 Problem definition 23-06-2011 30-06-2011 07
3 Information gathering 1-07-2011 15-07-2011 15
4 System Analysis 16-7-2011 31-07-2011 16
5 Database design 1-08-2011 31-08-2011 30
6 Form design 01-09-2011 30-09-2011 30
7 Coding 01-10-2011 30-11-2011 60
8 Modification of forms 01-12- 2011 16-12-2011 16
9 Testing 24-12-2011 15-01-2012 20
10 Implementation 16-01-2012 10-02-2012 24

2
15
Book Store Management

System Analysis

STAKE HOLDERS

A corporate stake holder is a party that can affect or be affected by


the actions of the business as a whole.

TYPES OF STAKE HOLDERS:


 Internal stake holder

16
Book Store Management

Internal stake holders-Market (or primary)Stake holders are those that


are engaged in economic transactions with the business.

 External stake holders-

Non market(or secondary) stake holders are those who although they do
not engaged in direct economic exchange with the business are
affected by or can affect its actions.

 Owner

The owner of the admission system needs to keep a check on


everything which is visiting admission system about each and every
registration and viewing and making changes i.e. update, delete etc. this is
one of the important issue to be handled . Book should be updated
regularly as if the new book comes in to avoid any mistake.

FACT FINDING TECHNIQUES:

17
Book Store Management

The system referred is the “Inventory system” that deals with the bills
of the customer & supplier. The following are the fact-finding techniques,
which were followed:

1) Going through all the existing documentation, files, registers:

I went through all the files and registers in which the supplier’s
details were kept. I also referred the handmade bills and receipts. From
this I traced out the history, which was required for the existing system
to be implemented.

2) Research and site visit:

I visited the shop several times, which was very important for gathering the
details about the items stored in the shop and the how the bill is generated.

3) Observation:

By visiting the shop I observed how the manual process is been taking place.
Through observation I was able to see what exactly is to be done.

4) Questionnaires:

Questionnaires are the special purpose documents that allowed me to collect


information and opinions from respondents. Through questionnaires it was
possible to know the requirements of the respondent.

5) Interviews:

Through interviews it was possible for me to collect information from the


respondent face-to-face

Event Table

18
Book Store Management

List of events gathered during analysis are entered in event table. An event table includes
rows and columns representing events and their details respectively.

TRIGGER:
Trigger an occurrence that tells the system that has occurred, either the arrival of data
needing or of a point in time
SOURCE:
SOURCE An external agent or actor that supplies data to the system.
ACTIVITY:
ACTIVITY Behavior that the system performs when an event occurs
RESPONSE:
RESPONSE An output produced by the system that goes to a destination.
DESTINATION:
DESTINATION An external agent or actor that receives data from the system

19
Book Store Management

EVENT TRIGGER SOURCE ACTIVITY RESPONSE DESTINATIO


N

Admin Request Admin Validate Confirmation Admin


Login username & username & Saved
Password password
Add an Employee Employee Add Information Employee
Employee Details employee saved
details

Update Update Employee Update Update Employee


Employee employee employee Information

Add Books Books Books Add Book Information Books


details and and saved
add in in inventory
inventory

Update Update Book Book Update Information Inventory


Inventory quantity updated Master

Generate bill Create bill Bill Calculate Bill Bill Master


bill amount generated

Save Bill Save Bill Bill Save Bill Information Bill Master
saved

Print Bill Generate and Bill Print bill Take print of Bill master
print Bill

Salary Report Add Salary Employee Report View Employee


details Saved Report

Use Case Diagram

20
Book Store Management

The use case diagram is used to identify the primary elements and processes that
form the system. The primary elements are termed as "actors" and the processes are called
"use cases." The use case diagram shows which actors interact with each use case.

Books Details

Add Book detail

Update Books Detail

Search for Books

Delete Books
Administrator
Detail

Employee Details

21
Book Store Management

Invoice Detail

22
Book Store Management

Entity Relationship Diagram

Symbols used in Entity-Relationship Diagram are as


follows:

Represent Data Entity.

Represent connection.

Connect two Entities or One to One


Relation
Represent the relationship.

1 M Shows One to Many Relations.

M 1 Shows Many to One Relation.

ER-Diagram

23
Book Store Management

An entity-relationship (ER) diagram is a specialized graphic that illustrates the


interrelationships between entities in a database.

Activity Diagram:

24
Book Store Management

The process flows in the system are captured in the activity diagram. Similar to a
state diagram, an activity diagram also consists of activities, actions, transitions, initial and
final states, and guard conditions.

Admin

25
Book Store Management

Employee

26
Book Store Management

Class Diagram
The class diagram is used to refine the use case diagram and define a detailed
design of the system. The class diagram classifies the actors defined in the use case
diagram into a set of interrelated classes. The relationship or association between the
classes can be either an "is-a" or "has-a" relationship. Each class in the class diagram may
be capable of providing certain functionalities.

27
Book Store Management

Sequence Diagram
A sequence diagram represents the interaction between different objects in the
system. The important aspect of a sequence diagram is that it is time-ordered. This means
that the exact sequence of the interactions between the objects is represented step by step.
Different objects in the sequence diagram interact with each other by passing "messages".

28
Book Store Management

COLLABORATION DIAGRAM
A collaboration diagram, also called a communication diagram or interaction
diagram, is an illustration of the relationships and interactions among software objects in the
Unified Modeling Language.

29
Book Store Management

3
System design

30
Book Store Management

CONVERTING ERD TO TABLES:

1. Employee 2.Book Details

3. Bill Receipt 4.Emp Salary

31
Book Store Management

Component Diagram
The component diagram represents the high-level parts that make up the system.
This diagram depicts, at a high level, what components form part of the system and how
they are interrelated. A component diagram depicts the components culled after the
system has undergone the development or construction phase.

32
Book Store Management

Package Diagram
A package diagram in the Unified Modeling Language depicts
the dependencies between the packages that make up a model. Package diagrams can use
packages containing use cases to illustrate the functionality of a software system

33
Book Store Management

Deployment Diagram
The deployment diagram captures the configuration of the runtime elements of the
application. This diagram is by far most useful when a system is built and ready to be
deployed.

34
Book Store Management

System Flow Chart:


A systems flow chart shows the key inputs and outputs associated with the program.
The shape of the symbols indicates the types of input or output devices.

MAINTAIN BOOK
BOOK
BOOK DETAILS
REPORT
DATABASE

MAINTAIN INVENTORYREP
INVENTORY ORT
INVENTORY
DATABASE DETAILS

BOOK
BILL CREATION BILL
SHOP
PROGRAM
MANAGEMENT BILL REPORT

SYSTEM DATABASE

MAINTAIN
EMPLOYEE
EMPLOYEE EMPLOYEE
REPORT
DATABASE DETAILS

35
Book Store Management

STRUCTURE CHART
A Structure Chart (SC) in software engineering and organizational theory, is a chart which
shows the breakdown of a system to its lowest manageable levels. They are used
in structured programming to arrange program modules into a tree. Each module is
represented by a box, which contains the module's name.

36
Book Store Management

4.
System Coding

37
Book Store Management

Menu Tree
BOOK SHOP MANAGEMENT SYSTEM

Book Tools & Utilities Inventory


File

Add
Update
Change Book Calculator
Inventory
Password
Update
Book Show Inventory
status
Exit
Delete
Book

Show all
Book

Search
Book

BOOK SHOP MANAGEMENT SYSTEM

Bill Reports Employee Exit

Generate Book
Search
Bill Info
Employee
Inventory
Print Add
PrintBill
Bill Info
Employee
Employee Update
Employee
Daily
DailySales
Sales
ssSSsSales Delete
Monthly Sales Employee
SsLASales
SalesSales
ssSSsSales

38
Book Store Management

Database Tables:

List of tables with attributes and constraints:


Table Name: UserMaster

Key Field Name Field Type Field Size Description

* Primary key username varchar 50 Users name

password varchar 50 User password

Table Name: Employee

Key Field Name Field Type Field Size Description

* Primary key EmployeeId numeric (18,0) Employee ID

EmployeeName varchar 50 Employee Name

DesignationId number (18,0) Employee


Designation ID

Salary numeric (18,2) Employee Salary

Dateofbirth datetime Employee Date of


Birth

Address varchar 500 Employee Address

Status varchar 50 Employee Status

Table Name: Employee Designation

Key Field Name Field Type Field Size Description

39
Book Store Management

* Primary Key DesignationId numeric (18,0) Employee Designation


ID

Type varchar 50 Employee Designation


Type

Table Name: Book Master

Key Field Name Field Type Field Size Description

* Primary BookID numeric (18,0) Book ID


Key

BookName varchar 50 Book Name

Batch No varchar 50 Book Batch Number

price numeric (7,2) Book Price

manuDate datetime Book Manufacturing Date

Expiry date datetime Book Expiry Date

Table Name: Inventory Master

Key Field Name Field Type Field Size Description

* Primary InventoryId numeric (18,0) Inventory ID


Key

BookId numeric (18,0) Book Id

Quantity numeric (18,0) Inventory Quantity

Table Name: Purchased Item

40
Book Store Management

Key Field Name Field Type Field Size Description

* Primary Key SrNo numeric (18,0) Bill Serial Number

BillID numeric (18,0) Bill ID

BookID numeric (18,0) Book ID

Quantity numeric (18,0) Total Book Quantity

Price numeric (18,0) Book Price

Table Name: Bill Master

Key Field Name Field Type Field Size Description

* Primary Key BillID numeric (18,0) Bill ID

BillOwner varchar 50 Bill Owner Name

BillDate datetime Bill Date

Total numeric (18,2) Total Amount

Validation

41
Book Store Management

There are many approaches to software testing. Reviews, walkthroughs,


or inspections are considered as static testing, whereas actually executing programmed code
with a given set of test cases is referred to as dynamic testing. Static testing can be (and
unfortunately in practice often is) omitted. Dynamic testing takes place when the program
itself is used for the first time (which is generally considered the beginning of the testing
stage). Dynamic testing may begin before the program is 100% complete in order to test
particular sections of code (modules or discrete functions). Typical techniques for this are
either using stubs/drivers or execution from a debugger environment. For
example, spreadsheet programs are, by their very nature, tested to a large extent
interactively ("on the fly"), with results displayed immediately after each calculation or text
manipulation.

White box testing is when the tester has access to the internal data structures and
algorithms including the code that implement these.

Types of white box testing


The following types of white box testing exist:

 API testing (application programming interface) - testing of the application using


public and private APIs
 Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the test
designer can create tests to cause all statements in the program to be executed at
least once)
 Fault injection methods - improving the coverage of a test by introducing faults to
test code paths

Test coverage
White box testing methods can also be used to evaluate the completeness of a test suite that
was created with black box testing methods. This allows the software team to examine parts
42
Book Store Management

of a system that are rarely tested and ensures that the most important function points have
been tested.

Two common forms of code coverage are:

 Function coverage, which reports on functions executed


 Statement coverage, which reports on the number of lines executed to complete the
test
They both return code coverage metric, measured as a percentage.

43
Book Store Management

Table Validations

Form Valid Data In Valid Data

Add Book All Field are Compulsory Empty Fields in animal name, or field are not
selected

Add Employee All Field are Compulsory Empty Fields, numbers in employee name number
or alphabets in salary.

Generate bill All Field are Compulsory Empty Fields, or fields are not selected

Control Valid Data In Valid Data

Price name 34,37,999,1234,12 or any 44562,s34534,rs44,$451 etc


Text box number but not more than four
digit.

Employee Rocky,jocky,finel 21542,roni,@make;


Name Text
box

44
Book Store Management

Coding for validation

For Only Alphabets


If Char.IsLetter(e.KeyChar) Or Asc(e.KeyChar) = 127 Or Asc(e.KeyChar) = 8 Or
Asc(e.KeyChar) = 11 Or Asc(e.KeyChar) = 13 Or Asc(e.KeyChar) = 32 Then
e.Handled = False
Else
e.Handled = True
End If

For Only Numbers


Private Function validatFields() As Boolean
If Not IsNumeric(TextBox4.Text.Trim) Then
MsgBox("Price must be a number")
Return False
End If
Return True
End Function

45
Book Store Management

Test Case

The forms were tested for their functionality and error messages are displayed
wherever the input does not meet the required requirements

 Login form giving error message.

If any invalid user want to take entry into the system then this form restrict him from
entering into the system. By entering invalid username or password it gives an error
message

 Add Book Form gives an error message.

Add Book form gives an error message if valid data entry is not done. For example, Price
should be numeric.

 Update Book Form gives error message

Update Book form gives an error message if valid data entry is not done. For example, if no
book is selected then it gives an error message ‘Please select Book’.

46
Book Store Management

Screen layouts and report layout

Splash Screen:

login Screen:

47
Book Store Management

Project Main Screen:

Change Password Forms:

48
Book Store Management

Add Book Screen:

update book Screen:

49
Book Store Management

delete book Screen:

Search book Screen:

50
Book Store Management

update inventory Screen:

Show Book Status:

51
Book Store Management

Add employee Screen:

Search employee Screen:

52
Book Store Management

Update employee Screen

53
Book Store Management

delete employee Screen:

Generate bill Screen:

54
Book Store Management

Employee Salary Screen:

Book Report Screen:

55
Book Store Management

Employee Report Screen:

Daily Sales Report Screen:

56
Book Store Management

Monthly Sales Report Screen:

Bill Print SCREEN:

57
Book Store Management

Book Status:

Available book:

58
Book Store Management

Project profile:

59
Book Store Management

Codings of sreen Layouts


Coding for Splash screen:

Public Class splpane1

Private Sub splpane1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load
Timer1.Enabled = True
Timer1.Interval = 50
End Sub

Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Timer1.Tick
ProgressBar1.Increment(2)
If ProgressBar1.Value >= 100 Then
Dim f As New LoginForm
Me.Hide()
f.Show()

Timer1.Enabled = False
End If
End Sub

Private Sub PictureBox1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles PictureBox1.Click

End Sub
End Class

60
Book Store Management

Coding for login screen:


Imports System.Data.SqlClient
Imports System.Text
Imports System.Security.Cryptography
Imports System.Threading
Imports System.Configuration

Public Class LoginForm


Dim constr As String

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub
Private Sub login()
Try
Dim myConnection As New SqlConnection(constr)
Dim encPassword As String = PasswordTextBox.Text.Trim()
myConnection.Open()
Dim command As New SqlCommand("select roleID from UserMaster where username='" +
UsernameTextBox.Text.Trim() + "' and password='" + encPassword + "'", myConnection)
Dim objrdr As SqlDataReader = command.ExecuteReader()

'MsgBox(i)
If objrdr.Read Then
' System.Windows.Forms.MessageBox.Show("Welcome!")

Dim role As Integer = objrdr(0)


command.Dispose()
myConnection.Close()
Me.Hide()
Dim objMain As New Main(encPassword, role)
objMain.ShowDialog()
Else
PasswordTextBox.Text = ""
MsgBox("I Don't know who r u?")

End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Me.Close()
End Sub

Private Sub LoginForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


Me.Hide()
SplashScreen.Show()
SplashScreen.Update()
Thread.Sleep(5000)
SplashScreen.Close()
Me.Visible = True

61
Book Store Management

Me.UsernameTextBox.Text = "admin"
Me.PasswordTextBox.Focus()
'If ConfigurationManager.ConnectionStrings.Count > 0 Then
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
' End If

End Sub

Private Sub PasswordTextBox_KeyPress(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles PasswordTextBox.KeyPress
If Asc(e.KeyChar) = 13 Then
login()
End If
End Sub

Private Sub UsernameTextBox_KeyPress(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles UsernameTextBox.KeyPress
If Asc(e.KeyChar) = 13 Then
login()
End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button2.Click
Me.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button1.Click
login()
End Sub

Private Sub LogoPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles LogoPictureBox.Click

End Sub
End Class

62
Book Store Management

Coding for main screen:


Imports System.Windows.Forms
Imports System.Data.SqlClient
Imports System.Configuration

Public Class Main

Dim constr As String


Dim password As String
Dim role As Integer

Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles


ExitToolStripMenuItem.Click
Dispose(True)
End Sub

Private m_ChildFormNumber As Integer

Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles ToolStripMenuItem2.Click

Dim obj As SearchBookDialog = New SearchBookDialog(1)


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub AddBookToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles AddBookToolStripMenuItem.Click

Dim obj As AddBook = New AddBook


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub
Private Sub AddBook()
Dim myConnectionn As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Try
myConnectionn = New SqlConnection(ConfigurationManager.ConnectionStrings("Book
").ConnectionString)
myConnectionn.Open()
command = New SqlCommand("insert into bookMaster")
Catch ex As Exception

End Try
End Sub

63
Book Store Management

Private Sub Main_FormClosing(ByVal sender As Object, ByVal e As


System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dispose(True)
End Sub

Private Sub ShowAllToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles ShowAllToolStripMenuItem.Click

Dim obj As ViewAllBookForm = New ViewAllBookForm


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub SearchToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles SearchToolStripMenuItem1.Click

Dim obj As SearchBookDialog = New SearchBookDialog


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles ToolStripMenuItem1.Click

Dim obj As UpdateInventoryForm = New UpdateInventoryForm


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub ShowInventoryStatusToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles ShowInventoryStatusToolStripMenuItem.Click
Dim obj As Inventory = New Inventory
obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
End Sub

Private Sub GenerateBillToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles GenerateBillToolStripMenuItem.Click
Dim obj As GenerateBill = New GenerateBill
obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
End Sub

Private Sub PrintBillToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs)
'Dim obj As PrintBill = New PrintBill

64
Book Store Management

'obj.MdiParent = Me
'obj.StartPosition = FormStartPosition.CenterScreen
'obj.Show()
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
Application.Exit()
End Sub

Private Sub BookInfoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles BookInfoToolStripMenuItem.Click

Dim obj As AllBookReportForm1 = New AllBookReportForm1


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub InventoryInfoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles InventoryInfoToolStripMenuItem.Click

Dim obj As InventoryReportForm1 = New InventoryReportForm1


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
End Sub

Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles AboutToolStripMenuItem.Click
Dim obj As AboutBox = New AboutBox
obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
End Sub

Private Sub SearchToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles SearchToolStripMenuItem.Click

Dim obj As SearchEmployeeDialog = New SearchEmployeeDialog()


obj.StartPosition = FormStartPosition.CenterScreen
obj.MdiParent = Me
obj.Show()

65
Book Store Management

End Sub
Private Sub closeAll()
For Each frm As Form In Me.MdiChildren
frm.Close()
Next
End Sub
Private Sub AddToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles AddToolStripMenuItem.Click

Dim obj As AddEmployeeForm = New AddEmployeeForm()


obj.StartPosition = FormStartPosition.CenterScreen
obj.MdiParent = Me
obj.Show()

End Sub

Private Sub UpdateToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles UpdateToolStripMenuItem.Click

closeAll()
Dim obj As SearchEmployeeDialog = New SearchEmployeeDialog(1)
obj.StartPosition = FormStartPosition.CenterScreen
obj.MdiParent = Me
obj.Show()

End Sub

Private Sub DeleteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles DeleteToolStripMenuItem.Click

closeAll()
Dim obj As SearchEmployeeDialog = New SearchEmployeeDialog(2)
obj.StartPosition = FormStartPosition.CenterScreen
obj.MdiParent = Me
obj.Show()

End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles ToolStripButton1.Click

Dim obj As AddBook = New AddBook


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles ToolStripButton2.Click
Dim obj As Inventory = New Inventory
obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

66
Book Store Management

End Sub

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles ToolStripButton3.Click

Dim obj As AddEmployeeForm = New AddEmployeeForm()


obj.StartPosition = FormStartPosition.CenterScreen
obj.MdiParent = Me

End Sub

Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles ToolStripButton4.Click
Dim obj As GenerateBill = New GenerateBill
obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
End Sub
Private Sub CallSystem()
Dim objsystem As SystemLibrary.System = New SystemLibrary.System
Dim constr As String = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim strpath As String
Dim array As ArrayList = New ArrayList()
array.Add("BillMaster")
array.Add("Employee")
array.Add("EmployeeDesignation")
array.Add("InventoryMaster")
array.Add("BookMaster")
array.Add("PurchasedItem")
array.Add("UserMaster")
strpath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
objsystem.writeFile(strpath & "\vss.bin")
objsystem.ReadFile(strpath & "\vss.bin", constr, array)
End Sub
Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles ToolStripMenuItem4.Click

Dim obj As UpdateBook = New UpdateBook


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub ChangePasswordToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles ChangePasswordToolStripMenuItem.Click
Dim obj As UsersDialog = New UsersDialog(password)
obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
End Sub

Public Sub New()

' This call is required by the Windows Form Designer.


InitializeComponent()

67
Book Store Management

' Add any initialization after the InitializeComponent() call.


CallSystem()
End Sub
Public Sub New(ByVal password As String, ByVal role As Integer)

' This call is required by the Windows Form Designer.


InitializeComponent()

' Add any initialization after the InitializeComponent() call.


Me.password = password
Me.role = role
CallSystem()
End Sub

Private Sub EmployeeReportToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles EmployeeReportToolStripMenuItem.Click

Dim obj As EmployeeReportForm = New EmployeeReportForm


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub DailySalesReportToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles DailySalesReportToolStripMenuItem.Click

Dim obj As DailySalesReportForm = New DailySalesReportForm


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub MonthlyReportToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MonthlyReportToolStripMenuItem.Click

Dim obj As MonthlySalesReportForm = New MonthlySalesReportForm


obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()

End Sub

Private Sub PrintBillToolStripMenuItem_Click_1(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles PrintBillToolStripMenuItem.Click
Dim obj As PrintBill = New PrintBill()
obj.MdiParent = Me
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
End Sub

68
Book Store Management

End Class

Coding for user dialog:


Imports System.Windows.Forms
Imports System.Data.SqlClient
Imports System.Configuration

Public Class UsersDialog


Dim constr As String
Dim pwd As String
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
OK_Button.Click
'MsgBox(UserComboBox.SelectedItem.ToString)
Dim obj As New UpdateUserForm(UserComboBox.SelectedItem.ToString, pwd)
obj.MdiParent = Me.MdiParent
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
Me.Hide()
End Sub

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub

Private Sub UsersDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load

constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString


Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Dim dbreader As SqlDataReader = Nothing

Try
myConnection = New SqlConnection(constr)
myConnection.Open()
command = New SqlCommand("select username from usermaster", myConnection)
dbreader = command.ExecuteReader
While dbreader.Read
UserComboBox.Items.Add(dbreader(0))
End While
UserComboBox.SelectedIndex = 0
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

Public Sub New()

' This call is required by the Windows Form Designer.


69
Book Store Management

InitializeComponent()

' Add any initialization after the InitializeComponent() call.

End Sub
Public Sub New(ByVal pwd As String)

' This call is required by the Windows Form Designer.


InitializeComponent()

' Add any initialization after the InitializeComponent() call.


Me.pwd = pwd
End Sub
End Class

Coding for update user dialog:


Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Text
Imports System.Security.Cryptography

Public Class UpdateUserForm


Dim user As String
Dim constr As String
Dim obj As String
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Me.Close()
End Sub

Private Sub UpdateUserForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
UserTextBox.Text = user
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
End Sub

Public Sub New()

' This call is required by the Windows Form Designer.


InitializeComponent()

' Add any initialization after the InitializeComponent() call.

End Sub
Public Sub New(ByRef user As String, ByVal pwd As String)

' This call is required by the Windows Form Designer.


InitializeComponent()

' Add any initialization after the InitializeComponent() call.


Me.user = user
Me.obj = pwd
End Sub

70
Book Store Management

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button1.Click

If validateFields() Then
Try
Dim myConnection As New SqlConnection(constr)
Dim encPassword As String = PasswordTextBox.Text.Trim()
myConnection.Open()
Dim command As SqlCommand = New SqlCommand("update usermaster set password='" &
encPassword & "'", myConnection)
Dim i As Integer = command.ExecuteNonQuery
If i > 0 Then
MsgBox("Updated!")
command.Dispose()
myConnection.Close()
Me.Close()
Else
MsgBox("Failed!")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
Private Function validateFields() As Boolean
If UserTextBox.Text.Trim.Length = 0 Then
MsgBox("User name can not be empty!")
Return False
End If
If TextBox1.Text.Trim.Length = 0 Then
MsgBox("old Password should not be empty!")
Return False
End If
If PasswordTextBox.Text.Trim.Length = 0 Then
MsgBox("Password and confirm password doesnot match!")
Return False
End If
If ConfirmPasswordTextBox.Text.Trim.Length = 0 Then
MsgBox("Password and confirm password doesnot match!")
Return False
End If
If Not PasswordTextBox.Text.Trim = ConfirmPasswordTextBox.Text.Trim Then
MsgBox("Password and confirm password doesnot match!")
Return False
End If
If Not obj = TextBox1.Text.Trim Then
MsgBox("You are not correct user to change password!")
Return False
End If
Return True
End Function
End Class

71
Book Store Management

Coding for add book:

Imports System.Configuration
Imports System.Data.SqlClient

Public Class AddBook


Dim constr As String
Private Sub AddBook_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim id As Integer = MiscUtilityClass.getID("bookmaster", "bookid")
'TextBox1.Enabled = False
'TextBox1.Text = id

Me.DateTimePicker1.Format = DateTimePickerFormat.Custom
Me.DateTimePicker1.CustomFormat = "MM/dd/yyyy"
Me.DateTimePicker2.Format = DateTimePickerFormat.Custom
Me.DateTimePicker2.CustomFormat = "MM/dd/yyyy"
Me.DateTimePicker2.MinDate = Date.Now
End Sub
Private Function validateFields() As Boolean
If Not IsNumeric(TextBox4.Text.Trim) Then
MsgBox("Price must be a number")
Return False
End If
Return True
End Function
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
SaveButton.Click
saveBook()
End Sub
Private Sub saveBook()
'MsgBox(DateTimePicker1.Value)
'MsgBox(DateTimePicker2.Value)
If validatFields() Then
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Dim trans As SqlTransaction = Nothing
Try
myConnection = New SqlConnection(constr)
myConnection.Open()
trans = myConnection.BeginTransaction

72
Book Store Management

command = New SqlCommand("insert into


bookmaster(BookName,BatchNo,price,manuDate,Expirydate) values('" & TextBox2.Text.Trim & "','" &
TextBox3.Text.Trim & "','" & Val(TextBox4.Text.Trim) & "','" &
DateTimePicker1.Value.ToString("MM/dd/yyyy") & "','" &
DateTimePicker2.Value.ToString("MM/dd/yyyy") & "')", myConnection, trans)
Dim i As Integer = command.ExecuteNonQuery
If i > 0 Then
MsgBox("Book Added Successfully!")
trans.Commit()
command.Dispose()
myConnection.Close()
Me.Close()
Else
MsgBox("Failed to add Book!")
End If
Catch ex As Exception
trans.Rollback()
MsgBox(ex.Message)
End Try
End If
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnCancel.Click
Me.Close()
End Sub

Private Sub DateTimePicker2_ValueChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles DateTimePicker2.ValueChanged

End Sub

Private Sub DateTimePicker2_KeyPress(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DateTimePicker2.KeyPress
If Asc(e.KeyChar) = 13 Then
saveBook()
End If
End Sub

Private Sub TextBox2_KeyPress(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If Asc(e.KeyChar) = 13 Then
saveBook()
End If
End Sub

Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
If Asc(e.KeyChar) = 13 Then
saveBook()
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
e.Handled = True
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then
e.Handled = False

73
Book Store Management

End If

End Sub

Private Sub DateTimePicker1_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DateTimePicker1.KeyPress
If Asc(e.KeyChar) = 13 Then
saveBook()
End If
End Sub

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If Asc(e.KeyChar) = 13 Then
saveBook()
End If
End Sub
Private Function validatFields() As Boolean

If TextBox2.Text.Trim.Length = 0 Then
MsgBox("book Name is Required!")
Return False
End If

If TextBox3.Text.Trim.Length = 0 Then
MsgBox("Batch no is Required!")
Return False
End If
If TextBox4.Text.Trim.Length = 0 Then
MsgBox("price is Required!")
Return False
End If
If DateTimePicker1.Value.ToString("MM/dd/yyyy") =
DateTimePicker2.Value.ToString("MM/dd/yyyy") Then
MsgBox("Manufacturing and Expiry date can not be same!")
Return False
End If

Return True

End Function
End Class

74
Book Store Management

Coding for update book:


Imports System.Data.SqlClient
Imports System.Configuration

Public Class UpdateBook


Private Sub UpdateBook()

If validateFields() Then
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Dim command2 As SqlCommand = Nothing
Dim quantity As Integer = 0
If CType(ComboBox1.SelectedItem, BookClass).ExpiryDate > Date.Now Then
quantity = getQuantity(CType(ComboBox1.SelectedItem, BookClass).BookID)
End If
Dim query2 As String = "update inventoryMaster set quantity=" & quantity & " where bookID=" &
CType(ComboBox1.SelectedItem, BookClass).BookID
Dim d1 As Date = Date.Parse(DateTimePicker1.Value)
Try
myConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("Book
").ConnectionString)
myConnection.Open()
command = New SqlCommand("update bookmaster set batchno='" & TextBox3.Text.Trim &
"',price=" & Val(TextBox4.Text.Trim) & ",manudate='" & d1.ToString("MM/dd/yyyy") & "',expirydate='" &
DateTimePicker2.Value.ToString("MM/dd/yyyy") & "' where bookid=" & CType(ComboBox1.SelectedItem,
BookClass).BookID, myConnection)
command2 = New SqlCommand(query2, myConnection)
Dim i As Integer = command.ExecuteNonQuery
Dim j As Integer = command2.ExecuteNonQuery
If i + j > 1 Then
MsgBox("Book Updated successfully!")
Me.Close()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
75
Book Store Management

End Sub
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
SaveButton.Click
UpdateBook()

End Sub
Private Function getQuantity(ByVal id As Integer) As Integer

Dim myConnection As SqlConnection = Nothing


Dim command As SqlCommand = Nothing
ComboBox1.Items.Add("select Book")
Dim quantity As Integer = 0
Try
myConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("Book
").ConnectionString)
myConnection.Open()
command = New SqlCommand("select quantity from inventorymaster where bookID=" & id,
myConnection)
Dim dbreader = command.ExecuteReader()
While dbreader.Read
quantity = dbreader(0)
End While
dbreader.Close()
command.Dispose()
myConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return quantity
End Function
Private Sub UpdateBook_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
ComboBox1.Items.Add("select Book")
Try
myConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("Book
").ConnectionString)
myConnection.Open()
command = New SqlCommand("select bookid,bookname,expirydate from bookmaster",
myConnection)
Dim dbreader As SqlDataReader = command.ExecuteReader
While dbreader.Read
Dim obj As BookClass = New BookClass
obj.BookID = dbreader(0)
obj.BookName = dbreader(1)
obj.ExpiryDate = dbreader(2)
ComboBox1.Items.Add(obj)
End While
command.Dispose()
myConnection.Close()
Catch ex As SqlException
MsgBox("Sql Exception")
MsgBox(ex.Message)
End Try
ComboBox1.SelectedIndex = 0
Catch ex As Exception
MsgBox(ex.Message)
End Try

76
Book Store Management

Me.DateTimePicker2.MinDate = Date.Now
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles ComboBox1.SelectedIndexChanged
If ComboBox1.SelectedIndex > 0 Then
TextBox1.Text = CType(ComboBox1.SelectedItem, BookClass).BookID
End If
End Sub

Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


btnCancel.Click
Me.Close()
End Sub
Private Function validateFields() As Boolean
If ComboBox1.SelectedIndex = 0 Then
MsgBox("Please select Book")
Return False
End If
If TextBox3.Text.Trim.Length = 0 Then
MsgBox("Batch Number is required!")
Return False
End If
If TextBox4.Text.Trim.Length = 0 Then
MsgBox("Price is required!")
Return False
End If
If Not IsNumeric(TextBox4.Text.Trim) Then
MsgBox("Price must be number!")
Return False
End If
If DateTimePicker1.Value.ToString("MM/dd/yyyy") =
DateTimePicker2.Value.ToString("MM/dd/yyyy") Then
MsgBox("Manufacturing and Expiry date can not be same!")
Return False
End If
Return True
End Function
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If Asc(e.KeyChar) = 13 Then
UpdateBook()
End If
End Sub

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles TextBox3.TextChanged

End Sub

Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
If Asc(e.KeyChar) = 13 Then
UpdateBook()
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
e.Handled = True
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then

77
Book Store Management

e.Handled = False
End If
End Sub

Private Sub DateTimePicker1_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DateTimePicker1.KeyPress

If Asc(e.KeyChar) = 13 Then
UpdateBook()
End If

End Sub

Private Sub DateTimePicker2_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DateTimePicker2.KeyPress
If Asc(e.KeyChar) = 13 Then
UpdateBook()
End If
End Sub

End Class

Coding for delete book:

Imports System.Globalization
Imports System.Data.SqlClient
Imports System.Configuration

Public Class DeleteBook


Dim del As SearchBookDialog
Public Sub New()

InitializeComponent()

End Sub
Public Sub New(ByRef obj As BookClass, ByRef del As SearchBookDialog)

InitializeComponent()
TextBox1.Text = obj.BookID
TextBox2.Text = obj.BookName
TextBox3.Text = obj.BatchNo
TextBox4.Text = obj.Price

Dim myDTFI As DateTimeFormatInfo = New DateTimeFormatInfo()


myDTFI.ShortDatePattern = "dd\MM\yyyy"
Dim dt As DateTime = DateTime.Parse(obj.ManufacturingDate, myDTFI)
Dim dt2 As DateTime = DateTime.Parse(obj.ExpiryDate, myDTFI)

78
Book Store Management

DateTimePicker1.Value = dt
DateTimePicker2.Value = dt2
Me.del = del

End Sub

Private Sub DeleteBook_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


Me.DateTimePicker1.Format = DateTimePickerFormat.Custom
Me.DateTimePicker1.CustomFormat = "dd/MM/yyyy"
Me.DateTimePicker2.Format = DateTimePickerFormat.Custom
Me.DateTimePicker2.CustomFormat = "dd/MM/yyyy"
End Sub

Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


btnCancel.Click
Me.Close()
End Sub

Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


SaveButton.Click
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Dim command2 As SqlCommand = Nothing
Try
myConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("Book
").ConnectionString)
myConnection.Open()

command = New SqlCommand("delete from bookmaster where bookid=" & TextBox1.Text.Trim,


myConnection)
Dim j As Integer = command.ExecuteNonQuery()
command2 = New SqlCommand("delete from inventorymaster where bookid=" &
TextBox1.Text.Trim, myConnection)
Dim i As Integer = command2.ExecuteNonQuery()

command.Dispose()
myConnection.Close()
del.action(True)
Me.Close()
Catch ex As Exception

MsgBox(ex.Message)
End Try

End sub

End Class

79
Book Store Management

Coding for search book:


Imports System.Windows.Forms
Imports System.Data.SqlClient
Imports System.Configuration

Public Class SearchBookDialog


Dim constr As String
Dim whoiscalling As Integer
Dim obj As UpdateInventoryForm
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
OK_Button.Click
If CriteriaValue.Text.Trim.Length > 0 Then
action()
End If

End Sub

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub

Private Sub SearchBookDialog_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
CriteriaKey.Items.Clear()
CriteriaKey.Items.Add("BookID")
CriteriaKey.Items.Add("BookName")
CriteriaKey.Items.Add("BatchNo")
CriteriaKey.Items.Add("Price")
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
action(True)
End Sub

80
Book Store Management

Private Sub CriteriaKey_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles CriteriaKey.SelectedIndexChanged
CriteriaValue.Text = ""
End Sub
Public Sub action()
Dim objcon As SqlConnection = Nothing
Dim query As String = "select
p.bookID,p.bookName,p.BatchNo,p.Price,convert(varchar(20),p.manudate,103) as
ManufacturingDate,convert(varchar(20),p.expirydate,103) as ExpiryDate,i.quantity from bookmaster p left
join inventorymaster i on p.bookid=i.bookid where "
If IsNumeric(CriteriaValue) Then
query = query & " p.convert(varchar(100)," & CriteriaKey.SelectedItem.ToString & ")like '" &
CriteriaValue.Text.Trim & "%'"
Else
query = query & "p." & CriteriaKey.SelectedItem.ToString & " like '" + CriteriaValue.Text.Trim +
"%'"
End If
Try
objcon = New SqlConnection(constr)
Dim objda As SqlDataAdapter = New SqlDataAdapter(query, objcon)
Dim table As New DataTable
objda.Fill(table)
DataGridView1.DataSource = table
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub getCurrentItemFromTable()


Dim row As Integer = DataGridView1.CurrentRow.Index

Dim objbook As BookClass = New BookClass


objbook.BookID = Val(DataGridView1.Item(0, row).Value.ToString)
objbook.BookName = DataGridView1.Item(1, row).Value.ToString
objbook.BatchNo = DataGridView1.Item(2, row).Value.ToString
objbook.Price = DataGridView1.Item(3, row).Value.ToString
objbook.ManufacturingDate = DataGridView1.Item(4, row).Value.ToString
objbook.ExpiryDate = DataGridView1.Item(5, row).Value.ToString
objbook.Quantity = DataGridView1.Item(6, row).Value.ToString
If whoiscalling = 1 Then
Dim objBookView As New DeleteBook(objbook, Me)
objBookView.MdiParent = Me.MdiParent
objBookView.Show()
End If
If whoiscalling = 2 Then
obj.TextBox1.Text = objbook.BookID
obj.TextBox2.Text = objbook.BookName

obj.TextBox3.Text = objbook.Quantity
Me.Close()
End If
End Sub

Public Sub action(ByVal flag As Boolean)


Dim objcon As SqlConnection = Nothing

81
Book Store Management

Dim query As String = "select p.bookID,bookName,BatchNo,Price,convert(varchar(20),manudate,103) as


ManufacturingDate,convert(varchar(20),expirydate,103) as ExpiryDate ,quantity from bookmaster p left join
inventorymaster i on p.bookid=i.bookid"
Try
objcon = New SqlConnection(constr)
Dim objda As SqlDataAdapter = New SqlDataAdapter(query, objcon)
Dim table As New DataTable
objda.Fill(table)
DataGridView1.DataSource = table
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick

getCurrentItemFromTable()
End Sub

Public Sub New()

InitializeComponent()

End Sub
Public Sub New(ByVal whoiscalling As Integer)

InitializeComponent()
Me.whoiscalling = whoiscalling
End Sub
Public Sub New(ByRef obj As UpdateInventoryForm, ByVal whoiscalling As Integer)
InitializeComponent()
Me.obj = obj
Me.whoiscalling = whoiscalling

End Class

82
Book Store Management

Coding for update inventory:


Imports System.Data.SqlClient
Imports System.Configuration

Public Class UpdateInventoryForm


Dim constr As String
Public quantity As Integer
Public Sub New()

InitializeComponent()

End Sub

Public Sub New(ByRef obj As BookClass)

InitializeComponent()
TextBox1.Text = obj.BookID
TextBox2.Text = obj.BookName

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button1.Click
TextBox3.Enabled = False
Dim obj As SearchBookDialog = New SearchBookDialog(Me, 2)

83
Book Store Management

obj.MdiParent = Me.MdiParent
obj.StartPosition = FormStartPosition.CenterScreen
obj.Show()
End Sub

Private Sub UpdateButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


UpdateButton.Click
If IsNumeric(TextBox3.Text.Trim) Then
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
quantity = quantity + Val(TextBox3.Text.Trim)
Try
myConnection = New SqlConnection(constr)
myConnection.Open()
If CheckBookExist() Then
command = New SqlCommand("update inventorymaster set quantity=" & quantity & " where
bookid=" & Val(TextBox1.Text.Trim), myConnection)
Else
command = New SqlCommand("insert into inventorymaster(bookid,quantity)values(" &
Val(TextBox1.Text.Trim) & ",'" & Val(TextBox3.Text.Trim) & "')", myConnection)
End If
Dim i As Integer = command.ExecuteNonQuery
If i > 0 Then
MsgBox("Book Updated Successfully!")
clearFields()
Else
MsgBox("Failed to update book!")
End If

command.Dispose()
myConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Quantity must be numeric!")
End If
End Sub
Private Sub clearFields()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
Button1.Focus()
End Sub
Private Function CheckBookExist() As Boolean
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Try
myConnection = New SqlConnection(constr)
myConnection.Open()
command = New SqlCommand("select count(*) from inventorymaster where bookid=" &
Val(TextBox1.Text.Trim), myConnection)
Dim i As Integer = CType(command.ExecuteScalar, Integer)
If i > 0 Then
command.Dispose()
myConnection.Close()
Return True
Else
command.Dispose()

84
Book Store Management

myConnection.Close()
Return False
End If
Catch ex As Exception
Try
command.Dispose()

Catch exc As Exception

End Try
Try
myConnection.Close()
Catch exc As Exception

End Try
MsgBox(ex.Message)
Return False
End Try
End Function

Private Sub EditButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


EditButton.Click
TextBox3.Enabled = True
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button3.Click
Me.Close()
End Sub

Private Sub UpdateInventoryForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
If IsNumeric(TextBox3.Text.Trim) Then
quantity = Val(TextBox3.Text.Trim)
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
e.Handled = True
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then
e.Handled = False
End If
End Sub
End Class

85
Book Store Management

Coding for show all inventory:


Imports System.Data.SqlClient
Imports System.Configuration
Public Class Inventory
Dim constr As String
Private Sub Inventory_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim objcon As SqlConnection = Nothing
Dim query As String = "select p.bookID,bookName,BatchNo,Price,convert(varchar(20),manudate,103) as
ManufacturingDate,convert(varchar(20),expirydate,101) as ExpiryDate ,quantity from bookmaster p join
inventorymaster i on p.bookid=i.bookid"
Try
objcon = New SqlConnection(constr)
Dim objda As SqlDataAdapter = New SqlDataAdapter(query, objcon)
Dim table As New DataTable
objda.Fill(table)
DataGridView1.DataSource = table
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub DataGridView1_CellFormatting(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting

If e.RowIndex >= 0 And e.ColumnIndex >= 0 Then

86
Book Store Management

Dim theRow As DataGridViewRow = DataGridView1.Rows(e.RowIndex)


If CType(theRow.Cells(6).Value, Integer) < 25 Then
theRow.DefaultCellStyle.BackColor = Color.Red
End If
Dim date1 As String = CType(theRow.Cells(5).Value, String)
Dim d As Date = Date.Parse(date1)
Dim i As TimeSpan = d.Subtract(Date.Now)

If i.Days <= 0 Then


theRow.DefaultCellStyle.BackColor = Color.Red
End If
End If
End Sub
End Class

Coding for add employee:


Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Globalization

Public Class AddEmployeeForm

Private Sub NewButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


NewButton.Click
EIDTextBox.Text = MiscUtilityClass.getID("Employee", "EmployeeID").ToString()
End Sub
Private Sub ClearFields()
EIDTextBox.Text = ""
ENameTextBox.Text = ""
DesignationComboBox.SelectedIndex = 0
SalaryTextBox.Text = ""
DOBTextBox.Text = ""
AddressTextBox.Text = ""
ENameTextBox.Focus()
End Sub
Private Sub FillCombo()
Me.DesignationComboBox.Items.Clear()
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Try

87
Book Store Management

myConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("Book


").ConnectionString)
'myConnection = New SqlConnection("Data Source=COM4\SQLEXPRESS;Initial
Catalog=MyData;Integrated Security=True;Pooling=False")

myConnection.Open()
command = New SqlCommand("select * from employeedesignation", myConnection)
Dim dbreader As SqlDataReader = command.ExecuteReader()
While dbreader.Read()
' MsgBox("Hello" & dbreader.Item(1).ToString)
Dim objlist As New DesignationClass()
objlist.DesignationID = dbreader.GetValue(0)
objlist.Designation = dbreader.GetString(1)
DesignationComboBox.Items.Add(objlist)
End While
command.Dispose()
myConnection.Close()
DesignationComboBox.SelectedIndex = 0
Catch ex As Exception
command.Dispose()
myConnection.Close()
MsgBox(ex.Message)
End Try
End Sub
Private Function validateFields() As Boolean
If ENameTextBox.Text.Trim.Length = 0 Then
MsgBox("Employee Name is Required!")
Return False
End If
If String.IsNullOrEmpty(SalaryTextBox.Text.Trim) Or Not IsNumeric(SalaryTextBox.Text.Trim) Then
MsgBox("Valid salary is Required!")
Return False
End If
If AddressTextBox.Text.Trim.Length = 0 Then
MsgBox("Address is Required!")
Return False
End If
Return True
If Not IsNumeric(SalaryTextBox.Text.Trim) Then
MsgBox("Price must be a number")
Return False
End If
Return True

End Function
Private Sub upadteEmployee()
If validateFields() Then
Dim d As Date = DateTimePicker1.Value
Try
Dim myConnection As SqlConnection = New
SqlConnection(ConfigurationManager.ConnectionStrings("Book ").ConnectionString)
myConnection.Open()
Dim command As SqlCommand = New SqlCommand("update Employee set EmployeeName='" &
ENameTextBox.Text.Trim() & "',DesignationID=" & CType(DesignationComboBox.SelectedItem,
DesignationClass).DesignationID & ",Salary=" & Val(SalaryTextBox.Text) & "DateOfBirth='" & d &
"',Address='" & AddressTextBox.Text.Trim() & "' where EmployeeID=" & Val(EIDTextBox.Text),
myConnection)
Dim i As Integer = command.ExecuteNonQuery
If i > 0 Then

88
Book Store Management

If MsgBox("Book has been Updated!Do you want to continue?",


MsgBoxStyle.YesNo).Equals(MsgBoxResult.Yes) Then
ClearFields()
Else
command.Dispose()
myConnection.Close()
Me.Dispose()
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If

End Sub
Private Sub saveEmployee()
'MsgBox(PNameTextBox.Text.Trim() & "," & PBatchNoTextBox.Text.Trim() & "," &
MDateTextBox.Text & "," & DescriptionTextBox.Text.Trim() & "," & Val(RateTextBox.Text.Trim()) & ","
& Val(QuantityTextBox.Text.Trim()) & "," & Val(TotalTextBox.Text.Trim()))
If validateFields() Then
Dim d As Date = DateTimePicker1.Value
Try
Dim myConnection As SqlConnection = New
SqlConnection(ConfigurationManager.ConnectionStrings("Book ").ConnectionString)
myConnection.Open()

Dim command As SqlCommand = New SqlCommand("InsertEmployee", myConnection)


command.CommandType = CommandType.StoredProcedure

Dim param1 As New SqlParameter()


param1.ParameterName = "@EmployeeName"
param1.DbType = DbType.String
param1.Value = ENameTextBox.Text.Trim()
command.Parameters.Add(param1)

Dim param2 As New SqlParameter()


param2.ParameterName = "@DesignationID"
param2.DbType = DbType.Int32
param2.Value = CType(DesignationComboBox.SelectedItem, DesignationClass).DesignationID
command.Parameters.Add(param2)

Dim param3 As New SqlParameter()


param3.ParameterName = "@salary"
param3.DbType = DbType.Double
param3.Value = SalaryTextBox.Text.Trim()
command.Parameters.Add(param3)

Dim param4 As New SqlParameter()


param4.ParameterName = "@dateofbirth"
param4.DbType = DbType.Date
param4.Value = d
command.Parameters.Add(param4)

Dim param5 As New SqlParameter()


param5.ParameterName = "@address"
param5.DbType = DbType.String
param5.Value = AddressTextBox.Text.Trim()

89
Book Store Management

command.Parameters.Add(param5)

Dim i As Integer = command.ExecuteNonQuery


If i > 0 Then
If MsgBox("Employee added to Database!Do you want to continue?",
MsgBoxStyle.YesNo).Equals(MsgBoxResult.Yes) Then
ClearFields()
Else
command.Dispose()
myConnection.Close()
Me.Dispose()
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If

End Sub
Public Sub New()
InitializeComponent()

End Sub
Public Sub New(ByRef obj As EmployeeClass)
InitializeComponent()
End Sub

Private Sub fillStatus()


'StatusComboBox.Items.Clear()
'StatusComboBox.Items.Add("Active")
'StatusComboBox.Items.Add("InActive")
'StatusComboBox.SelectedIndex = 0
End Sub

Private Sub AddEmployeeForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
Me.DateTimePicker1.Format = DateTimePickerFormat.Custom
Me.DateTimePicker1.CustomFormat = "dd/MM/yyyy"
FillCombo()
fillStatus()
EIDTextBox.Text = MiscUtilityClass.getID("Employee", "EmployeeID").ToString()
Me.DateTimePicker1.MaxDate = Date.Now
End Sub

Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.PaintEventArgs) Handles Panel2.Paint

End Sub

Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


SaveButton.Click
saveEmployee()
End Sub

Private Sub UpdateButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


upadteEmployee()
End Sub

90
Book Store Management

Private Sub BookCancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles BookCancelButton.Click
Me.Close()
End Sub

Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles DateTimePicker1.ValueChanged
DOBTextBox.Text = DateTimePicker1.Value.ToString("dd/MM/yyyy")
End Sub
Private Sub SalaryTextBox_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles SalaryTextBox.KeyPress
If Asc(e.KeyChar) = 13 Then
saveEmployee()
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
e.Handled = True
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then
e.Handled = False
End If
End Sub

Private Sub ENameTextBox_KeyPress(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles ENameTextBox.KeyPress
If Char.IsLetter(e.KeyChar) Or Asc(e.KeyChar) = 127 Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 11
Or Asc(e.KeyChar) = 13 Or Asc(e.KeyChar) = 32 Then
e.Handled = False
Else
e.Handled = True
End If
If Asc(e.KeyChar) = 13 Then
saveEmployee()
End If
End Sub

Private Sub EIDTextBox_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles EIDTextBox.KeyPress
If Asc(e.KeyChar) = 13 Then
saveEmployee()
End If
End Sub

Private Sub DesignationComboBox_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DesignationComboBox.KeyPress
If Asc(e.KeyChar) = 13 Then
saveEmployee()
End If
End Sub

End Class

91
Book Store Management

Coding for Search employee:


Imports System.Windows.Forms
Imports System.Data.SqlClient
Imports System.Configuration

Public Class SearchEmployeeDialog


Dim flag As Integer

Private Sub SearchEmployeeDialog_Load(ByVal sender As Object, ByVal e As System.EventArgs)


Handles Me.Load
CriteriaKey.Items.Clear()
CriteriaKey.Items.Add("EmployeeID")
CriteriaKey.Items.Add("EmployeeName")
Action(True)
End Sub

92
Book Store Management

Private Sub CriteriaValue_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles CriteriaValue.TextChanged
End Sub

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


btnOK.Click
Action()
End Sub

Private Sub CriteriaKey_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles CriteriaKey.SelectedIndexChanged
CriteriaValue.Text = ""
End Sub
Private Sub Action()
Dim objcon As SqlConnection = Nothing
Dim objcmd As SqlCommand = Nothing
Dim query As String = ""
Try
objcon = New SqlConnection(ConfigurationManager.ConnectionStrings("Book ").ConnectionString)
query = query & "select EmployeeID,EmployeeName,type,salary,convert(varchar(20),Dateofbirth,103)
as DateOfBirth,Address,status from employee e,employeedesignation d where e.designationid=d.designationid
and "
If IsNumeric(CriteriaValue) Then
query = query & " convert(varchar(100)," & CriteriaKey.SelectedItem.ToString & ")like '" &
CriteriaValue.Text.Trim & "%'"
Else
query = query & "" & CriteriaKey.SelectedItem.ToString & " like '" + CriteriaValue.Text.Trim +
"%'"
End If

Dim objda As SqlDataAdapter = New SqlDataAdapter(query, objcon)


Dim table As New DataTable
objda.Fill(table)
DataGridView1.DataSource = table

Catch ex As Exception
Try
objcmd.Dispose()
Catch exc1 As Exception

End Try
Try
objcon.Close()
Catch exc As Exception

End Try
MsgBox(ex.Message)
MsgBox(Err.Source)
End Try
End Sub
Public Sub Action(ByVal check As Boolean)
Dim objcon As SqlConnection = Nothing
Dim objcmd As SqlCommand = Nothing
Dim query As String = ""
Try
objcon = New SqlConnection(ConfigurationManager.ConnectionStrings("Book ").ConnectionString)

93
Book Store Management

query = query & "select EmployeeID,EmployeeName,type,salary,convert(varchar(20),Dateofbirth,103)


as DateOfBirth,Address,status from employee e,employeedesignation d where
e.designationid=d.designationid"
Dim objda As SqlDataAdapter = New SqlDataAdapter(query, objcon)
Dim table As New DataTable
objda.Fill(table)
DataGridView1.DataSource = table

Catch ex As Exception
Try
objcmd.Dispose()
Catch exc1 As Exception

End Try
Try
objcon.Close()
Catch exc As Exception

End Try
MsgBox(ex.Message)
End Try
End Sub

Private Sub CriteriaValue_KeyPress(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles CriteriaValue.KeyPress
If Asc(e.KeyChar) = 13 Then
Action()
End If
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim row As Integer = DataGridView1.CurrentRow.Index
Dim objemployee As EmployeeClass = New EmployeeClass
objemployee.EmployeeID = Val(DataGridView1.Item(0, row).Value.ToString)
objemployee.EmployeeName = DataGridView1.Item(1, row).Value.ToString
objemployee.DesignationType = DataGridView1.Item(2, row).Value.ToString
objemployee.Salary = CType(DataGridView1.Item(3, row).Value.ToString, Double)
objemployee.DateofBirth = DataGridView1.Item(4, row).Value.ToString
objemployee.Address = DataGridView1.Item(5, row).Value.ToString
objemployee.Status = DataGridView1.Item(6, row).Value.ToString
If flag = 1 Then
Dim objemployeeView As New UpdateEmployeeForm(objemployee, Me)
objemployeeView.MdiParent = Me.MdiParent
objemployeeView.StartPosition = FormStartPosition.CenterScreen
objemployeeView.Show()
End If
If flag = 2 Then
Dim objemployeedel As New DeleteEmployeeForm(objemployee, Me)
objemployeedel.MdiParent = Me.MdiParent
objemployeedel.StartPosition = FormStartPosition.CenterScreen
objemployeedel.Show()
End If
End Sub

Public Sub New()


InitializeComponent()
End Sub
Public Sub New(ByVal flag As Integer)

94
Book Store Management

InitializeComponent()
Me.flag = flag
End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Label1.Click

End Sub
End Class

Coding for Update employee:


Imports System.Globalization
Imports System.Data.SqlClient
Imports System.Configuration

Public Class UpdateEmployeeForm


Dim objsearch As SearchEmployeeDialog
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub
Private Sub fillStatus()

95
Book Store Management

StatusComboBox.Items.Clear()
StatusComboBox.Items.Add("Active")
StatusComboBox.Items.Add("InActive")
StatusComboBox.SelectedIndex = 0
End Sub
Private Sub setEmployeeValues(ByRef obj As EmployeeClass)
FillCombo()
fillStatus()
Me.EIDTextBox.Text = obj.EmployeeID
Me.ENameTextBox.Text = obj.EmployeeName
Dim i As Integer
For i = 0 To DesignationComboBox.Items.Count - 1
If DesignationComboBox.Items.Item(i).ToString = obj.DesignationType Then
Me.DesignationComboBox.SelectedItem = DesignationComboBox.Items.Item(i)
End If
Next
If Me.StatusComboBox.Items.Contains(obj.Status) Then
Me.StatusComboBox.SelectedItem = obj.Status
End If
Me.DOBTextBox.Text = obj.DateofBirth
Dim dateobj As DateTimeFormatInfo = New DateTimeFormatInfo()
dateobj.ShortDatePattern = "dd/MM/yyyy"
Dim date1 As Date = Date.Parse(obj.DateofBirth, dateobj)
Me.DateTimePicker1.Value = date1
Me.SalaryTextBox.Text = obj.Salary
Me.AddressTextBox.Text = obj.Address
End Sub
Private Sub FillCombo()
Me.DesignationComboBox.Items.Clear()
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Try
myConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("Book
").ConnectionString)
'myConnection = New SqlConnection("Data Source=COM4\SQLEXPRESS;Initial
Catalog=MyData;Integrated Security=True;Pooling=False")

myConnection.Open()
command = New SqlCommand("select * from employeedesignation", myConnection)
Dim dbreader As SqlDataReader = command.ExecuteReader()
While dbreader.Read()
' MsgBox("Hello" & dbreader.Item(1).ToString)
Dim objlist As New DesignationClass()
objlist.DesignationID = dbreader.GetValue(0)
objlist.Designation = dbreader.GetString(1)
DesignationComboBox.Items.Add(objlist)
End While
command.Dispose()
myConnection.Close()
DesignationComboBox.SelectedIndex = 0
Catch ex As Exception
command.Dispose()
myConnection.Close()
MsgBox(ex.Message)
End Try
End Sub
Private Function validateFields() As Boolean
If ENameTextBox.Text.Trim.Length = 0 Then
MsgBox("Employee Name is Required!")

96
Book Store Management

Return False
End If
If String.IsNullOrEmpty(SalaryTextBox.Text.Trim) Or Not IsNumeric(SalaryTextBox.Text.Trim) Then
MsgBox("Valid salary is Required!")
Return False
End If
If AddressTextBox.Text.Trim.Length = 0 Then
MsgBox("Address is Required!")
Return False
End If
Return True
If Not IsNumeric(SalaryTextBox.Text.Trim) Then
MsgBox("Price must be a number")
Return False
End If
Return True

End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button1.Click

If validateFields() Then
Dim d As Date = DateTimePicker1.Value
Try
Dim myConnection As SqlConnection = New
SqlConnection(ConfigurationManager.ConnectionStrings("Book ").ConnectionString)
myConnection.Open()
Dim query As String
query = "update Employee set EmployeeName='" & ENameTextBox.Text.Trim() &
"',DesignationID=" & CType(DesignationComboBox.SelectedItem, DesignationClass).DesignationID &
",Salary=" & Val(SalaryTextBox.Text) & ",DateOfBirth='" & d & "',Address='" &
AddressTextBox.Text.Trim() & "',status='" & StatusComboBox.SelectedItem.ToString & "' where
EmployeeID=" & Val(EIDTextBox.Text)
' MsgBox(query)
Dim command As SqlCommand = New SqlCommand(query, myConnection)
Dim i As Integer = command.ExecuteNonQuery
If i > 0 Then
If MsgBox("Employees has been Updated!Do you want to continue?",
MsgBoxStyle.YesNo).Equals(MsgBoxResult.Yes) Then
ClearFields()
objsearch.Action(True)
Me.Close()
Else
command.Dispose()
myConnection.Close()
Me.Dispose()
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If

End Sub

Private Sub ClearFields()


EIDTextBox.Text = ""
ENameTextBox.Text = ""

97
Book Store Management

DesignationComboBox.SelectedIndex = 0
SalaryTextBox.Text = ""
DOBTextBox.Text = ""
AddressTextBox.Text = ""
ENameTextBox.Focus()
End Sub

Public Sub New()

' This call is required by the Windows Form Designer.


InitializeComponent()

' Add any initialization after the InitializeComponent() call.


End Sub
Public Sub New(ByRef obj As EmployeeClass, ByRef objsearch As SearchEmployeeDialog)

' This call is required by the Windows Form Designer.


InitializeComponent()
Me.objsearch = objsearch
' Add any initialization after the InitializeComponent() call.
setEmployeeValues(obj)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button2.Click
Me.Close()
End Sub

Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles DateTimePicker1.ValueChanged
DOBTextBox.Text = DateTimePicker1.Value.ToString("dd/MM/yyyy")
End Sub

Private Sub UpdateEmployeeForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
Me.DateTimePicker1.Format = DateTimePickerFormat.Custom
Me.DateTimePicker1.CustomFormat = "dd/MM/yyyy"
End Sub

Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.PaintEventArgs) Handles Panel2.Paint

End Sub

Private Sub ENameTextBox_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles ENameTextBox.KeyPress
If Char.IsLetter(e.KeyChar) Or Asc(e.KeyChar) = 127 Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 11
Or Asc(e.KeyChar) = 13 Or Asc(e.KeyChar) = 32 Then
e.Handled = False
Else
e.Handled = True
End If
End Sub

98
Book Store Management

Private Sub SalaryTextBox_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles SalaryTextBox.KeyPress
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
e.Handled = True
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then
e.Handled = False
End If
End Sub
End Class

Coding for Delete employee:


Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Globalization

Public Class DeleteEmployeeForm

99
Book Store Management

Dim objsearch As SearchEmployeeDialog


Private Sub fillStatus()
StatusComboBox.Items.Clear()
StatusComboBox.Items.Add("Active")
StatusComboBox.Items.Add("InActive")
StatusComboBox.SelectedIndex = 0
End Sub
Private Sub setEmployeeValues(ByRef obj As EmployeeClass)
FillCombo()
fillStatus()
Me.EIDTextBox.Text = obj.EmployeeID
Me.ENameTextBox.Text = obj.EmployeeName
Dim i As Integer
For i = 0 To DesignationComboBox.Items.Count - 1
If DesignationComboBox.Items.Item(i).ToString = obj.DesignationType Then
Me.DesignationComboBox.SelectedItem = DesignationComboBox.Items.Item(i)
End If
Next
If Me.StatusComboBox.Items.Contains(obj.Status) Then
Me.StatusComboBox.SelectedItem = obj.Status
End If
Me.DOBTextBox.Text = obj.DateofBirth
Dim dateobj As DateTimeFormatInfo = New DateTimeFormatInfo()
dateobj.ShortDatePattern = "dd/MM/yyyy"
Dim date1 As Date = Date.Parse(obj.DateofBirth, dateobj)
Me.DateTimePicker1.Value = date1
Me.SalaryTextBox.Text = obj.Salary
Me.AddressTextBox.Text = obj.Address
End Sub
Private Sub FillCombo()
Me.DesignationComboBox.Items.Clear()
Dim objcon As SqlConnection = Nothing
Dim objcmd As SqlCommand = Nothing
Try
objcon = New SqlConnection(ConfigurationManager.ConnectionStrings("Book ").ConnectionString)
objcon.Open()
objcmd = New SqlCommand("select * from employeedesignation", objcon)
Dim objrdr As SqlDataReader = objcmd.ExecuteReader()
While objrdr.Read()
Dim objlist As New DesignationClass()
objlist.DesignationID = objrdr.GetValue(0)
objlist.Designation = objrdr.GetString(1)
DesignationComboBox.Items.Add(objlist)
End While
objcmd.Dispose()
objcon.Close()
DesignationComboBox.SelectedIndex = 0
Catch ex As Exception
objcmd.Dispose()
objcon.Close()
MsgBox(ex.Message)
End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button2.Click
Me.Close()
End Sub

100
Book Store Management

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button1.Click
Try
Dim objcon As SqlConnection = New
SqlConnection(ConfigurationManager.ConnectionStrings("Book ").ConnectionString)
objcon.Open()
Dim query As String
query = "delete from Employee where EmployeeID=" & Val(EIDTextBox.Text)
Dim objcmd As SqlCommand = New SqlCommand(query, objcon)
Dim i As Integer = objcmd.ExecuteNonQuery
If i > 0 Then
If MsgBox("Employees has been Deleted!Do you want to continue?",
MsgBoxStyle.YesNo).Equals(MsgBoxResult.Yes) Then
ClearFields()
objsearch.Action(True)
Me.Close()
Else
objcmd.Dispose()
objcon.Close()
Me.Dispose()
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub ClearFields()
EIDTextBox.Text = ""
ENameTextBox.Text = ""
DesignationComboBox.SelectedIndex = 0
SalaryTextBox.Text = ""
DOBTextBox.Text = ""
AddressTextBox.Text = ""
ENameTextBox.Focus()
End Sub

Public Sub New()


InitializeComponent()

End Sub
Public Sub New(ByRef obj As EmployeeClass, ByRef objsearch As SearchEmployeeDialog)
InitializeComponent()
Me.objsearch = objsearch
setEmployeeValues(obj)
End Sub
End Class

Coding for generate bill:


Imports System.Data.SqlClient
Imports System.Configuration

Public Class GenerateBill


Dim constr As String

101
Book Store Management

Dim totalAmt As Double


Private Sub GenerateBill_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
getBook()
End Sub
Private Sub getBook()
ComboBox1.Items.Clear()
Dim myConnection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
ComboBox1.Items.Add("Select")
Try
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
myConnection = New SqlConnection(constr)
myConnection.Open()
command = New SqlCommand("select i.bookID,BookName,Price,quantity from inventorymaster i left
join bookmaster p on i.bookid=p.bookid", myConnection)
Dim dbreader As SqlDataReader = command.ExecuteReader
While dbreader.Read
Dim obj As BookClass = New BookClass
obj.BookID = dbreader(0)
obj.BookName = dbreader(1)
obj.Price = dbreader(2)
obj.Quantity = dbreader(3)
ComboBox1.Items.Add(obj)
End While

dbreader.Close()
command.Dispose()
myConnection.Close()
ListView1.Items.Clear()
ComboBox1.SelectedIndex = 0
Dim id As Integer = MiscUtilityClass.getID("BillMaster", "BillID")
TextBox1.Text = id
totalAmt = 0
AddColumn()
ListView1.Columns(5).Width = 0
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub StartUp()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
ListView1.Items.Clear()
ComboBox1.SelectedIndex = 0
Dim id As Integer = MiscUtilityClass.getID("BillMaster", "BillID")
TextBox1.Text = id
totalAmt = 0
AddColumn()
getBook()
End Sub
Private Sub AddColumn()
ListView1.Columns.Clear()
ListView1.Columns.Add("Book ID")
ListView1.Columns.Add("Book Name")
ListView1.Columns.Add("Quantity")
ListView1.Columns.Add("Price")
ListView1.Columns.Add("Amount")

102
Book Store Management

ListView1.Columns.Add("QStock")
ListView1.Columns(5).Width = 0
ListView1.View = View.Details
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
If ComboBox1.SelectedIndex > 0 Then
Dim str1 As String = CType(ComboBox1.SelectedItem, BookClass).BookID.ToString
Dim str2 As String = CType(ComboBox1.SelectedItem, BookClass).BookName
Dim str3 As String = CType(ComboBox1.SelectedItem, BookClass).Price.ToString
Dim q As String = CType(ComboBox1.SelectedItem, BookClass).Quantity.ToString
Dim listobj As ListViewItem = New ListViewItem(str1)
listobj.SubItems.Add(str2)
listobj.SubItems.Add(TextBox2.Text.Trim)
listobj.SubItems.Add(str3)
totalAmt = totalAmt + CType(ComboBox1.SelectedItem, BookClass).Price *
Val(TextBox2.Text.Trim)
listobj.SubItems.Add((CType(ComboBox1.SelectedItem, BookClass).Price *
Val(TextBox2.Text.Trim)).ToString)
listobj.SubItems.Add(q)
ListView1.Items.Add(listobj)
TextBox4.Text = totalAmt
End If

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button2.Click
Dim myConnection As SqlConnection = Nothing
Dim myConnection2 As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Dim command2 As SqlCommand = Nothing
Dim command3 As SqlCommand = Nothing
Dim command4 As SqlCommand = Nothing
Dim trans As SqlTransaction = Nothing

Try
myConnection = New SqlConnection(constr)
myConnection.Open()
'trans = myConnection.BeginTransaction

command = New SqlCommand("insert into BillMaster(BillOwner,BillDate,Total)values('" &


TextBox3.Text.Trim & "','" & Date.Now.ToString("MM/dd/yyyy") & "'," & Val(TextBox4.Text.Trim) & ")",
myConnection) ', trans)
command.ExecuteNonQuery()
TextBox1.Text = MiscUtilityClass.getID("BillMaster", "BillID") - 1
myConnection2 = New SqlConnection(constr)
myConnection2.Open()
For i = 0 To ListView1.Items.Count - 1
Dim id As String = ListView1.Items(i).Text
Dim quantity As String = ListView1.Items(i).SubItems(2).Text
Dim price As String = ListView1.Items(i).SubItems(3).Text
Dim stockQ As String = ListView1.Items(i).SubItems(3).Text
command2 = New SqlCommand("insert into PurchasedItem(BillId,BookID,Quantity,Price)values("
& TextBox1.Text.Trim & "," & Val(id) & "," & Val(quantity) & "," & Val(price) & ")", myConnection) ',
trans)
command2.ExecuteNonQuery()
'MsgBox(stockQ)
stockQ = Val(stockQ) - Val(quantity)

103
Book Store Management

'MsgBox(stockQ)
command3 = New SqlCommand("Update inventorymaster set quantity=" & stockQ & " where
bookid=" & Val(id), myConnection) ', trans)
command3.ExecuteNonQuery()
Next
'trans.Commit()
command.Dispose()
command2.Dispose()
command3.Dispose()
myConnection2.Close()
myConnection.Close()

MsgBox("Bill Saved!")

Catch ex As Exception
Try
' trans.Rollback()
Catch exc As Exception

End Try
MsgBox(ex.Message)
End Try
End Sub

Private Sub NewBillButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles NewBillButton.Click
StartUp()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button3.Click
Me.Close()
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim obj As BillGenerationForm = New BillGenerationForm(Val(TextBox1.Text.Trim))
obj.MdiParent = Me.MdiParent
obj.Show()
End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
e.Handled = True
End If
If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then
e.Handled = False
End If
End Sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles TextBox2.TextChanged

End Sub

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress

104
Book Store Management

If Char.IsLetter(e.KeyChar) Or Asc(e.KeyChar) = 127 Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 11


Or Asc(e.KeyChar) = 13 Or Asc(e.KeyChar) = 32 Then
e.Handled = False
Else
e.Handled = True
End If
End Sub

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles TextBox3.TextChanged

End Sub
End Class

105
Book Store Management

Coding for Employee Salary:


Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Text
Imports System.Security.Cryptography
Imports System.Globalization

Public Class EmployeeSalary

Private Sub EmployeeSalary_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles MyBase.Load
OpenDB()

Dim cmd1 As New SqlCommand("Select * from Employee", con)

getCustomer()
cboEmpId.SelectedIndex = 0

End Sub
Private Sub getCustomer()
cboEmpId.Items.Add("Select Employee")
Dim objcon As SqlConnection = Nothing
Dim objcmd As SqlCommand = Nothing
Dim objrdr As SqlDataReader = Nothing
Dim query As String = "select * from Employee"
Try
objcon = New SqlConnection(ConfigurationManager.ConnectionStrings("Grocery").ConnectionString)
objcon.Open()
objcmd = New SqlCommand(query, objcon)
objrdr = objcmd.ExecuteReader()
While objrdr.Read
Dim obj As CustomerClass = New CustomerClass
' obj.EmployeeName = objrdr(0)
obj.EmployeeName = objrdr(1)
'obj.address = objrdr(2)
'obj.status = objrdr(3)
cboEmpId.Items.Add(obj)
End While
objcmd.Dispose()
objcon.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub cboEmpId_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles cboEmpId.SelectedIndexChanged

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button2.Click
Me.Close()

End Sub

106
Book Store Management

Private Sub DBasic_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs)
Dim f As Boolean = False
' f = Number_Validation(e.KeyChar)
If f = True Then
e.Handled = True
End If
End Sub

Private Sub DDailywages_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtDDailywages.KeyPress
Dim f As Boolean = False
' f = Number_Validation(e.KeyChar)
If f = True Then
e.Handled = True
End If
End Sub

Private Sub DDays_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtDDays.KeyPress
Dim f As Boolean = False
'f = Number_Validation(e.KeyChar)
If f = True Then
e.Handled = True
End If
End Sub

Private Sub MBasic_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs)
Dim f As Boolean = False
'f = Number_Validation(e.KeyChar)
If f = True Then
e.Handled = True
End If
End Sub

Private Sub MDaily_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtMDaily.KeyPress
Dim f As Boolean = False
'f = Number_Validation(e.KeyChar)
If f = True Then
e.Handled = True
End If
End Sub

Private Sub MDays_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtMDays.KeyPress
Dim f As Boolean = False
'f = Number_Validation(e.KeyChar)
If f = True Then
e.Handled = True
End If
End Sub

Private Sub DDays_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles txtDDays.TextChanged
txtDSalary.Text = Val(Val(txtDDailywages.Text) * Val(txtDDays.Text))
End Sub

107
Book Store Management

Private Sub txtMDays_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles txtMDays.TextChanged
txtMSalary.Text = Val(txtMDays.Text) * Val(txtMDaily.Text)
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button4.Click
'sallary.Show()

Dim obj As Monthlysalary = New Monthlysalary


obj.StartPosition = FormStartPosition.CenterScreen
''obj.MdiParent = Me
obj.Show()

End Sub
Private Sub ClearFields()
txtDDailywages.Text = ""
txtDDays.Text = ""
txtDSalary.Text = ""
txtMBasic.Text = ""
txtMDaily.Text = ""
txtMDays.Text = ""
txtMSalary.Text = ""

End Sub

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


btnSave.Click
' Dim d As Date = DateTimePicker1.Value
Dim transaction As SqlTransaction = Nothing
Dim objcon As SqlConnection = Nothing
Try
objcon = New SqlConnection(ConfigurationManager.ConnectionStrings("Grocery").ConnectionString)
objcon.Open()
Dim objcmd As SqlCommand = New SqlCommand("insert into
Empsalary(dsalary,ddays,ddaily,emp_name,msalary,mdaily,mbasic,mdays)values('" & txtDSalary.Text.Trim()
& "','" & txtDDays.Text.Trim() & "','" & txtDDailywages.Text.Trim() & "','" & cboEmpId.Text.Trim & "','" &
txtMSalary.Text.Trim() & "','" & txtMDaily.Text.Trim() & "','" & txtMBasic.Text.Trim() & "','" &
txtMDays.Text.Trim() & "')", objcon, transaction)
' Dim objcmd As SqlCommand = New SqlCommand("Insert into Empsalary Values(" &
Val(txtDDailywages.Text) & "," & Val(txtDDays.Text) & "," & Val(txtDSalary.Text) & "," &
Val(txtMBasic.Text) & "," & Val(txtMDaily.Text) & "," & Val(txtMDays.Text) & "," & Val(txtMSalary.Text)
& ")", objcon, transaction)
Dim i As Integer = objcmd.ExecuteNonQuery

'Dim objcmd2 As SqlCommand = New SqlCommand("insert into


inventorymaster(productID,Quantity)values(" & Val(PIDTextBox.Text) & "," &
Val(QuantityTextBox.Text.Trim()) & ")", objcon, transaction)
'Dim j As Integer = objcmd2.ExecuteNonQuery

'If i > 0 And j > 0 Then


If MsgBox("Product added to Database!Do you want to continue?",
MsgBoxStyle.YesNo).Equals(MsgBoxResult.Yes) Then
ClearFields()
Else

108
Book Store Management

objcmd.Dispose()
objcon.Close()
Me.Dispose()
End If
' End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
'End If
End Sub

Private Sub txtMDaily_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles txtMDaily.TextChanged

End Sub

Private Sub txtMBasic_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles txtMBasic.TextChanged
txtMDaily.Text = Val(txtMBasic.Text) / 30
End Sub

Private Sub btnReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub txtDDailywages_TextChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles txtDDailywages.TextChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Button1.Click
Dim obj As Dailysalary = New Dailysalary
obj.StartPosition = FormStartPosition.CenterScreen
'obj.MdiParent = Me
obj.Show()

End Sub
End Class

109
Book Store Management

Coding for Print bill:


Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Globalization

Public Class PrintBill


Dim constr As String
Private Sub PrintBill_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
constr = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim myConnection As SqlConnection = Nothing
Dim query As String = "select BillID,BillOwner,convert(varchar(20),BillDate,103) as BillDate,Total
from billmaster"
Try
myConnection = New SqlConnection(constr)
Dim databaseadapter As SqlDataAdapter = New SqlDataAdapter(query, myConnection)
Dim table As New DataTable
databaseadapter.Fill(table)
DataGridView1.DataSource = table
Catch ex As Exception
MsgBox(ex.Message)
End Try
CriteriaKey.Items.Add("Select Bill")
CriteriaKey.Items.Add("BillDate")
CriteriaKey.Items.Add("BillID")
CriteriaKey.SelectedIndex = 0
End Sub

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

End Sub

Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


OK_Button.Click
If CriteriaKey.SelectedIndex > 0 Then
Dim myConnection As SqlConnection = Nothing
Dim query As String = "select BillID,BillOwner,convert(varchar(20),BillDate,103) as BillDate,Total
from billmaster"
Try
Try

If CriteriaKey.SelectedIndex = 1 Then
Dim df As DateTimeFormatInfo = New DateTimeFormatInfo
df.ShortDatePattern = "dd/MM/yyyy"
Dim d As Date = Date.Parse(CriteriaValue.Text.Trim, df)
query = query & " where BillDate='" & d.ToString("MM/dd/yyyy") & "'"
End If
If CriteriaKey.SelectedIndex = 2 Then
query = query & " where convert(varchar(20),BillID) like '" & CriteriaValue.Text.Trim & "%'"
End If
' MsgBox(query)
myConnection = New SqlConnection(constr)
Dim databaseadapter As SqlDataAdapter = New SqlDataAdapter(query, myConnection)
Dim table As New DataTable
databaseadapter.Fill(table)
DataGridView1.DataSource = table
Catch ex As Exception

110
Book Store Management

MsgBox("Invalid Date")
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Cancel_Button.Click
Me.Close()
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim row As Integer = DataGridView1.CurrentRow.Index
Dim id As Integer = Val(DataGridView1.Item(0, row).Value.ToString)

Dim obj As BillGenerationForm = New BillGenerationForm(id)


obj.MdiParent = Me.MdiParent
obj.Show()
End Sub
End Class

111
Book Store Management

Coding for all book Report Screen:


Imports System.Configuration
Imports System.Data.SqlClient

Public Class AllBookReportForm1

Private Sub AllBookReportForm1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
Dim connectionString = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim rpt As New CrystalReport1() 'The report you created.
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand()
Dim myDA As New SqlDataAdapter()
Dim myDS As New Book DataSet() 'The DataSet you created.

Try

myConnection = New SqlConnection(connectionString)


MyCommand.Connection = myConnection
MyCommand.CommandText = "select * from bookmaster"
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand

myDA.Fill(myDS, "datatable1")
rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception


MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class

112
Book Store Management

Coding for Inventory Report Screen:


Imports System.Configuration
Imports System.Data.SqlClient

Public Class InventoryReportForm1

Private Sub InventoryReportForm1_Load(ByVal sender As Object, ByVal e As System.EventArgs)


Handles Me.Load
Dim connectionString = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim rpt As New CrystalReport2() 'The report you created.
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand()
Dim myDA As New SqlDataAdapter()
Dim myDS As New Book DataSet() 'The DataSet you created.

Try

myConnection = New SqlConnection(connectionString)


MyCommand.Connection = myConnection
MyCommand.CommandText = "SELECT BookMaster.BookName, InventoryMaster.Quantity,
BookMaster.price FROM InventoryMaster INNER JOIN BookMaster ON InventoryMaster.BookId =
BookMaster.BookID"
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand

myDA.Fill(myDS, "datatable2")
rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception


MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class

113
Book Store Management

Coding for Employee Report Screen:


Imports System.Configuration
Imports System.Data.SqlClient

Public Class EmployeeReportForm

Private Sub EmployeeReportForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
Dim connectionString = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim rpt As New CrystalReport4() 'The report you created.
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand()
Dim myDA As New SqlDataAdapter()
Dim myDS As New Book DataSet() 'The DataSet you created.

Try

myConnection = New SqlConnection(connectionString)


MyCommand.Connection = myConnection
MyCommand.CommandText = "SELECT Employee.EmployeeID, Employee.EmployeeName,
EmployeeDesignation.Type, Employee.salary, Employee.dateofbirth, Employee.address FROM Employee
INNER JOIN EmployeeDesignation ON Employee.DesignationID = EmployeeDesignation.DesignationID"
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand

myDA.Fill(myDS, "datatable5")
rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception


MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

End Class

114
Book Store Management

Coding for DAILY SALES REPORT SCREEN:


Imports System.Configuration
Imports System.Data.SqlClient

Public Class DailySalesReportForm

Private Sub DailySalesReportForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles


Me.Load
Dim connectionString = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim rpt As New CrystalReport6() 'The report you created.
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand()

Dim myDA As New SqlDataAdapter()


Dim myDS As New DataSet1() 'The DataSet you created.

Try

myConnection = New SqlConnection(connectionString)


MyCommand.Connection = myConnection
MyCommand.CommandText = "SELECT PurchasedItem.SrNo, BookMaster.BookName,
PurchasedItem.Quantity, PurchasedItem.Price, BillMaster.BillDate, BillMaster.Total FROM BookMaster
INNER JOIN PurchasedItem ON BookMaster.BookID = PurchasedItem.BookID INNER JOIN BillMaster ON
PurchasedItem.BillID = BillMaster.BillID where BillMaster.BillDate='" &
Date.Now.ToString("MM/dd/yyyy") & "'"
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand
myDA.Fill(myDS, "DataTable1")
rpt.SetDataSource(myDS)

CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception


MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

End Class

115
Book Store Management

Coding for Monthly sales report SCREEN:


Imports System.Configuration
Imports System.Data.SqlClient

Public Class MonthlySalesReportForm

Private Sub MonthlySalesReportForm_Load(ByVal sender As Object, ByVal e As System.EventArgs)


Handles Me.Load
Dim connectionString = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim rpt As New CrystalReport6() 'The report you created.
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand()

Dim myDA As New SqlDataAdapter()


Dim myDS As New DataSet1() 'The DataSet you created.

Dim d1 As Date = New Date(Date.Now.Year, Date.Now.Month, 1)


Dim lstdate As Integer = Date.DaysInMonth(Date.Now.Year, Date.Now.Month)

Dim d2 As Date = New Date(Date.Now.Year, Date.Now.Month, lstdate)

Try
Dim query As String = "SELECT PurchasedItem.SrNo, BookMaster.BookName,
PurchasedItem.Quantity, PurchasedItem.Price, BillMaster.BillDate, BillMaster.Total FROM BookMaster
INNER JOIN PurchasedItem ON BookMaster.BookID = PurchasedItem.BookID INNER JOIN BillMaster ON
PurchasedItem.BillID = BillMaster.BillID where BillMaster.BillDate between '" &
d1.ToString("MM/dd/yyyy") & "' and '" & d2.ToString("MM/dd/yyyy") & "'"
'MsgBox(query)
myConnection = New SqlConnection(connectionString)
MyCommand.Connection = myConnection
MyCommand.CommandText = query
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand
myDA.Fill(myDS, "DataTable1")
rpt.SetDataSource(myDS)

CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception


MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

End Class

116
Book Store Management

Coding for Bill Print SCREEN:


Imports System.Configuration
Imports System.Data.SqlClient

Public Class Bill


Dim id As Integer

Private Sub Bill_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


Dim connectionString = ConfigurationManager.ConnectionStrings("Book ").ConnectionString
Dim rpt As New CrystalReport3()
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand()
Dim myDA As New SqlDataAdapter()
Dim myDS As New Book DataSet().

Try

myConnection = New SqlConnection(connectionString)


MyCommand.Connection = myConnection
MyCommand.CommandText = "SELECT BillMaster.BillID, BillMaster.BillOwner,
BillMaster.BillDate, BookMaster.BookName, PurchasedItem.Quantity, PurchasedItem.Price, BillMaster.Total
FROM BillMaster INNER JOIN PurchasedItem ON BillMaster.BillID = PurchasedItem.BillID CROSS JOIN
BookMaster where BillMaster.billID=" & id
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand

myDA.Fill(myDS, "DataTable3")
rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception


MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

Public Sub New()


InitializeComponent()
End Sub
Public Sub New(ByVal id As Integer)
InitializeComponent()

Me.id = id
End Sub
End Class

117
Book Store Management

Coding for project profile:


Public NotInheritable Class AboutBox

Private Sub AboutBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load
Dim ApplicationTitle As String
If My.Application.Info.Title <> "" Then
ApplicationTitle = My.Application.Info.Title
Else
ApplicationTitle =
System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName)
End If
Me.LabelBookName.Text = My.Application.Info.BookName
Me.LabelVersion.Text = String.Format("Version {0}", My.Application.Info.Version.ToString)
Me.LabelCopyright.Text = My.Application.Info.Copyright
Me.LabelCompanyName.Text = My.Application.Info.CompanyName
Me.TextBoxDescription.Text = My.Application.Info.Description
End Sub

Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


OKButton.Click
Me.Close()
End Sub

Private Sub LabelBookName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles LabelBookName.Click

End Sub
End Class

118
Book Store Management

7.
CONCLUSION

119
Book Store Management

CONCLUSION

 An attempt is made in all its earnest towards the successful completion of the project.
This system was verified with valid as well as with invalid data.

 This system is user friendly since it has been developed in visual studio 8 a successful
GUI environment. Since the connection can be extended to any database. The control
will be more powerful.

 Connecting it to any type of database extends the development control. Any


suggestions for future development of the system are welcome

 Upgrading the system if may can be done without affecting the proper functioning of
system.

120
Book Store Management

5.
System implementation

121
Book Store Management

System implementation

 To run this application, firstly we need to install VisualStudio2008

 Secondly, we need to install MYSQL2005

 Thirdly, we need to Copy project files on to machine

 Execute project.

122
Book Store Management

6.
FUTURE ENHANCEMENTS

123
Book Store Management

FUTURE ENHANCEMENTS

Due to time constraints on the part of the developer, supplier details form could not be
prepared.

Hence this project would be updated in the near future to include supplier details form
and other similar reports.

Details of book transaction between the owner and the supplier also has to be added

Any suggestions are accepted. Any sort of problem would be solved.

Any changes made in the system in future, will Affect the other functioning of the

System .

124
Book Store Management

7.
References and Bibliography

125
Book Store Management

BIBLIOGRAPHY

REFERENCES BOOKS:

Software Engineering - Written by: Pankaj Jalote

Project Management - Written by: K.R.Sharma

The complete Reference for -Written by: Anne Bohem, Murach

Websites:

www.wrox.com

www.webmonkey.com

www.w3schools.com

www.google.com

Thank you.

126

You might also like