Project Report On Sales and Inventory Management System
Project Report On Sales and Inventory Management System
PROJECT REPORT
ON
For
Submitted by
Mr/Ms.______________
Guided by
Prof. ______________
Submitted to
Computer Department
I would like to take this opportunity to express my gratitude towards all the people
who have in various ways, helped in the successful completion of my project.
I must convey my gratitude to Prof. Navnath Shete for giving me the constant
source of inspiration and help in preparing the project, personally correcting my
work and providing encouragement throughout the project.
I also thank all my faculty members for steering me through the tough as well as
easy phases of the project in a result oriented manner with concern attention.
Thanking You,
________________
DECLARATION
____________________
Introduction
System Introduction
For optimal sales and inventory management processes, you need robust
functionality for managing your logistics facilities. Support for inventory
management helps you record and track materials on the basis of both quantity and
value.
Using this software we can reduce costs for warehousing, transportation, order
fulfillment, and material handling – while improving customer service.
You can significantly improve inventory turns, optimize the flow of goods, and
shorten routes within your warehouse or distribution center. Additional benefits of
inventory management include improved cash flow, visibility, and decision
making.
Employees can plan, enter, and document warehouse and internal stock movements
by managing goods receipts, goods issues, storage, picking and packing, physical
stock transfers, and transfer postings.
Problems In existing system
As we know manual system are quite tedious ,time consuming and less efficient
and accurate in comparison to the computerized system.
So following are some disadvantages of the old system:
1. Time consuming
2. Less accurate
3. Less efficient
The scope of this system is to provide user efficient working environment and
more output can be generated through this. This system provides user friendly
interface resulting in knowing each and every usability features of the system.
This system helps in tracking records so that past records can be verified through
them and one can make decisions based on the past records. This system completes
the work in a very less time resulting in less time consumption and high level of
efficiency.
This system is developed in such a way that even a naïve user can also operate the
system easily. The calculations are made very quickly and the records are directly
saved into databases and the databases can be maintained for a longer period of
time. Each record can be retrieved and can be verified for the future transactions.
Also this system provides high level of security for data leaking as only admin
people can access the database no changes can be made in it until it verifies the
user login id and password.
We also have operator login through which operator can take orders but can’t make
changes in the database. Limited access is available to the operator.
Feasibility Study
As we know each and every project needs to have a feasibility study for the
complete understandability of the project. We will consider 3 types of feasibility
study they are technical feasibility, operational feasibility and economical
feasibility.
Technical Feasibility:
This new system requires 6 fully trained people to run the system perfectly.
1 admin person to maintain database n other 5 to handle the system interface and
order making things.
As our existing system is purely manual, so we need a onetime investment of Rs 4
Lacs for the purchase of 6 computers, 5 invoice printers, a laser printer, AC and
networking etc. It requires apprx. 10 Lacks PA as a operating cost.
With the above details our system is technically feasible as after investing 14 Lacs
in a year, the company is still saving Rs 15 Lacs PA.
Operational Feasibility:
The new solution is feasible in all sense but operationally it is not. The new
system demands the expulsion of at least 15 people from the company. It creates an
environment of joblessness and fear among the employees. It can lead to an
indefinite strike in the company also. So the management must take corrective
actions prior in advance in order to start the further proceedings.
Economic Feasibility:
With the manual system the operating cost of the system is about 60 Lacks
P.A. This cost comprises salary of 25 people, stationary, building rent, electricity,
water, telephone etc. But with the new system this reoccurring cost comes out to be
about 20 Lacks P.A. Hence the new system is economically feasible.
Operating Environment – Hardware and
Software
HARDWARE REQUIREMENTS
SOFTWARE REQUIREMENTS
• It support for inventory management helps you record and track materials on
the basis of both quantity and value.
• For warehouse management, you can track quantity and value of all your
materials, perform physical inventory, and optimize your warehouse
resources
User Requirements
FUNCTIONAL REQUIREMENTS
A. INPUT/OUTPUT
B. PROCESSING
1. System should automatically generate the bill.
2. System should inform the pending order and make changes if the order is
dispatched.
C. ERROR HANDLING
1. Should report any errors on duplicate primary keys.
2. Should report any ‘Out of Range’ values on numeric fields
3. Should report any data type mismatches any field on the forms.
4. Should report on any ‘Invalid dates’
5. Should report any violation of authorization of rights
6. Should report any Invalid Login errors
NON-FUNCTIONAL REQUIREMENTS
Checks
Inventories
<<include>>
Tracks Order
Dispatch order on
Supplier time
Customer
Sends Invoice
Updates Records
Use Case Diagram for Customer
Studies
Requirements
Make list of
requirements
Makes payment
Customer Clerk
Invoice
Send GRN
Class Diagram for a customer order
Customer Order
Cust_Id Order_no
Name Ordercredate
Addr1 Order_status
Addr2 Shipment_dat
Cust_city e
Pincode Challan
Addcust()
Updatecust() calcBilltotal()
Getcustdet() Payment calctotalweig
Amount ht()
Payment
date
Makepayme
nt()
Getinvoice()
Ordetdetail Material
Orderno
Materialqty Materialcode
Materialvalue Plantcode
Stckqty
Caclsubtotal
calcweight Getpriceforqty()
Credit Cheque
Number Chqno
Type Bankname
Expirydate Bankid
validating validating
GRN
Recivedqty
Damaged
Rejected
Rejectgood()
Description()
Sequence diagram for Supplier
Log In
Validate
Tracks order
Places order
Makes Payment
Dispatch Order
Send GNR
Input Screens
Splash Screen
Login Form
Main Form
Transaction screen
Order Enquiry
Material Details
Plant Details
About
State Details
Order Details
Customer Details
Order Status
Add Plant
Add Customer
Search Customer
Update customer
Add material
Edit material
Table specifications
UID_PASS (Login Table)
Column Name Data Size Description
Type
USER_NAME Text 50 User name of the ADMIN/OPERATOR
Values Like :
COMP001
Computer – Pentium IV
PMP1 – Pune Plant – Unit I
PMP2 – Pune Plant – Unit II
PMP3 – Pune Plant - Unit III
Material_price - 5000
plant_code Num 6
plant_name char 10 Code of the material
order_tracking(Order_status_tracking Table)
Column Name Data Type Size Description
Only that software errors and defects are present. It is important to keep this
(rather gloomy) statement in mind as testing is being conducted.
Testing principles
Before applying methods to design effective test cases, a software engineer must
understand the basic principle that guide software testing:
All tests should be traceable to customer requirements
Tests should be planned long before testing begins
80 percent of all errors uncovered during testing will likely be traceable to
20 percent of all program components. The problem, of course, is to isolate these
suspect components and to thoroughly test them.
Testing should being “in the small” and progress toward testing “in the
large”.
Exhaustive testing is not possible
To be most effective an independent third party should conduct testing
A rich variety of test case design methods have evolved for software. These
methods provide the developer with a systematic approach to testing. More
important, methods provide a mechanism that can help to ensure the completeness
of tests and provide the highest likelihood for uncovering errors in software.
Any engineered product (and most other things) can be tested in one of
two ways:
Knowing the specified function that a product has been designed to perform,
tests can be conducted that demonstrate each function is fully operational
While at the same time searching for errors in each function; (2) knowing the
internal
Working of a product, tests can be conducted to ensure that “all gears mesh,”
that is, internal operations are performed according to specifications and all
internal components have been adequately exercised. The first test approach is
called black box testing and the second, white-box testing.
UNIT TESTING
INTEGRATION TESTING
DATABASE TESTING
RECOVERY TESTING
FUNCTIONALITY TESTING
SMOKE TEST
SANITY TEST
COMPATIBILITY TESTING
LOAD TESTING
SYSTEM TESTING
PERFORMANCE TESTING
USER ACCEPTANCE TESTING
White box testing
Sometimes called glass-box testing is a test case design method that uses the
control structure of the procedural design to derive test cases. Using white-box
testing methods, the software engineer can derive test cases that (1) guarantee that
all independent paths within a module have been exercised at least once, (2)
exercise all logical decisions on their true and false sides, (3) execute all loops at
their boundaries and within their operational bounds, and (4) exercise internal data
structures to ensure their validity.
White-box testing of software is predicated on close examination of procedural
detail. Providing test cases that exercise specific sets of conditions and/or loops
tests logical paths through the software. The “status of the program” may be
examined at various points to determine if the expected or asserted status
corresponds to the actual status. Basis path testing is a white-box testing technique
first proposed by Tom McCabe. The basis path method enables the test case
designer to derive a logical complexity measure of a procedural design and use this
measure as a guide for defining a basis set of execution paths. Test cases derived to
exercise the basis set are guaranteed to execute every statement in the program at
least one time during testing.
In this system, the system was tested for the calculation matters were the
data provided for giving the right output or not. If wrong data was provided then
what it is throwing error or accepting.
Black box testing
Properly accepted and output is correctly produced and that the integrity of
external information is maintained. A black-box test examines some fundamental
aspect of a system with a little regard for the internal logical structure of the
software. Black-box testing attempts to find errors in the following categories:
1. Incorrect or missing functions,
2. Interface errors,
3. Errors in data structures or external database access,
4. Behavior or performance errors, and
5. Initialization and termination errors. By applying back-box techniques,
we derive a set of test cases that satisfy the following criteria:
a. Test cases that reduce, by a count that is greater than one, the
number of additional test cases that must be designed to achieve reasonable testing
and
b. Test cases that tell us something about the presence or absence of
classes of errors, rather than an error associated only with the specific test at hand.
Black box testing for this system was done to check the internal testing i.e,
the system is working properly in each case or no. What kind of errors are there in
database design.
Testing Process
The testing process can be shown as:
Test Test
Levels of testing
Plan Procedures
Test Case
Specification
Yes
Test Case
Execution
Is Error
Test Case
Uncovered
Analysis
?
No
Test Report
Menu Tree
Main Page
Reports
Status Notepad About
Bar Plant
Exit
Project Code
report
Material
State
USER MANUAL
Menu Explanation
Start Up screen
1. The first menu item of the System screen is transaction screen this screen is
the main screen it has all the menu items which help to take order and
maintain it in database. The 1st tab is “order entry” this screen will be
disabled initially to make an order operator has to click on order entry button
at the right hand side of the screen
Order Entry
2. Once that button is clicked the screen is activated and orderno.,oder creation
date and order status are auto generated search cust_code by clicking search
button and retrieve rest of the customer details. If the customer is new then
administrator has to add new customer into database which is only accessed
by admin person operator are not given those rights.
3. Once customer details are retrieved click calculate order value button this
this will take to the order detail screen where order no is auto generated
material code is selected and item qty is to be filled and by clicking on
calculate the total is calculated n thus the order is placed
Shipment Details
6. The shipment details are already auto filled by the system operator has to
provide the transporter name only
Accounts Department
7. Accounts dept is also auto filled admin has to verify all the details and make
order date according to convenience
Machine Installation
8. Next screen is machine installation here the engineer who gonna install the
machine is to be given.
Commercial Group
Order Enquiry
2. So all customer databases and material database and all master tables are to
be handled by the admin person only.
The scope of the project includes that what all future enhancements can be done in
this system to make it more feasible to use
• Manages contacts
• Manages accounts
• Manages opportunities
3. Graphs could have been added in order to get the records more clearly.
Conclusion
While developing the system a conscious effort has been made to create and
develop a software package, making use of available tools, techniques and
resources – that would generate a proper System
While making the system, an eye has been kept on making it as user-
friendly, as cost-effective and as flexible as possible. As such one may hope that
the system will be acceptable to any user and will adequately meet his/her needs.
As in case of any system development processes where there are a number of
shortcomings, there have been some shortcomings in the development of this
system also. The project is still under modification.
BIBLIOGRAPHY
BOOKS REFERRED
By Gary J. Bronson
WEB LINK
• http://www.dreamincode.net
• http://www.a1vbcode.com
Code design
Login
OleDbCommand2.Parameters.Add("USER_NAME",
Data.OleDb.OleDbType.LongVarChar)
OleDbCommand2.Parameters("USER_NAME").Value = username
OleDbConnection1.Open()
Read = OleDbCommand2.ExecuteReader
With Read
While .Read
temp1 = .GetValue(0)
temp2 = .GetValue(1)
End While
End With
OleDbConnection1.Close()
If password.Equals(temp1) = True Then
Me.Hide()
curr = New Main
'curr.Show()
curr.Hide()
Else
MessageBox.Show("Wrong Password !!!", "Login Error",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
GoTo bug1
TextBox1.Focus()
End If
If temp.Equals("ADMIN") = True Then
flag = 1
End If
If temp.Equals("OP") = True Then
flag = 2
End If
hcl = MsgBox("Login Successful... Welcome to Sales and Inventory
Management System !!!", MsgBoxStyle.OKOnly + vbInformation, "Sales And
Inventory Management System")
If (hcl = MsgBoxResult.OK) Then
curr = New Main
curr.Show()
End If
Else
MsgBox("All fields required not to be a null value.",
vbExclamation, "Sales and Inventory Management System")
bug1:
ComboBox1.Focus()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
End
End Sub
End Class
Transaction screen
Imports System.Data
If TextBox1.Text <> "" And TextBox4.Text <> "" And TextBox5.Text <> ""
And TextBox3.Text <> "" And TextBox21.Text <> "" And DateTimePicker1.Text <>
"" And DateTimePicker5.Text <> "" Then
Me.TabPage2.Enabled = True
Me.TabControl1.SelectedIndex = 1
Me.TabPage1.Enabled = False
order_no = TextBox1.Text
order_creation_date = DateTimePicker1.Text
order_status = "SCHD"
customer_ref_no = TextBox4.Text
customer_ref_date = DateTimePicker2.Text
material_required_date = DateTimePicker5.Text
order_value = TextBox21.Text
plant_code = TextBox5.Text
customer_slno = TextBox3.Text
TextBox12.Text = Str(order_no)
TextBox22.Text = order_status
customer_initial = Mid(customer_slno, 1, 1)
TextBox46.Text = customer_initial
TextBox13.Text = Str(challan_no)
Else
MsgBox("All fields required not to be a null value.",
vbExclamation, "Sales Management System")
TextBox3.Focus()
End If
End Sub
Me.TabPage3.Enabled = True
Me.TabControl1.SelectedIndex = 2
order_status = "SHIP"
delivery_challan_no = TextBox13.Text
shipment_date = DateTimePicker3.Text
transporter_name = TextBox14.Text
accountCommand1.Parameters.Add("cust_slno",
Data.OleDb.OleDbType.Integer)
accountCommand1.Parameters("cust_slno").Value = customer_slno
accountConnection1.Open()
Read = accountCommand1.ExecuteReader()
With Read
While .Read
TextBox24.Text = .GetValue(0)
TextBox25.Text = .GetValue(1)
TextBox26.Text = .GetValue(2)
TextBox27.Text = .GetValue(3)
End While
End With
accountConnection1.Close()
End If
Else
MsgBox("All fields required not to be a null value.",
vbExclamation, "Sales Management System")
TextBox14.Focus()
End If
End Sub
machCommand1.Parameters.Add("cust_slno",
Data.OleDb.OleDbType.Integer)
machCommand1.Parameters("cust_slno").Value = customer_slno
machConnection1.Open()
Read = machCommand1.ExecuteReader()
With Read
While .Read
TextBox35.Text = .GetValue(0)
TextBox33.Text = .GetValue(1)
TextBox34.Text = .GetValue(2)
TextBox31.Text = .GetValue(3)
End While
End With
machConnection1.Close()
End If
End Sub
Me.TabPage5.Enabled = True
Me.TabControl1.SelectedIndex = 4
order_status = "MACI"
TextBox41.Text = Str(order_no)
TextBox32.Text = order_status
machine_installed_by = TextBox30.Text
Dim Read As OleDb.OleDbDataReader
If customer_slno <> "" Then
comCommand1.Parameters.Add("cust_slno",
Data.OleDb.OleDbType.Integer)
comCommand1.Parameters("cust_slno").Value = customer_slno
comConnection1.Open()
Read = comCommand1.ExecuteReader()
With Read
While .Read
TextBox40.Text = .GetValue(0)
TextBox38.Text = .GetValue(1)
TextBox39.Text = .GetValue(2)
TextBox37.Text = .GetValue(3)
End While
End With
comConnection1.Close()
End If
Else
MsgBox("All fields required not to be a null value.",
vbExclamation, "Sales Management System")
TextBox30.Focus()
End If
End Sub
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim str1 As String
Dim Read As OleDb.OleDbDataReader
If TextBox3.Text <> "" Then
str1 = TextBox3.Text
If str1 <> "" Then
orderCommand1.Parameters.Add("cust_slno",
Data.OleDb.OleDbType.Integer)
orderCommand1.Parameters("cust_slno").Value = str1
orderConnection1.Open()
Read = orderCommand1.ExecuteReader()
With Read
While .Read
TextBox6.Text = .GetValue(0)
TextBox7.Text = .GetValue(1)
TextBox8.Text = .GetValue(2)
TextBox9.Text = .GetValue(3)
TextBox10.Text = .GetValue(4)
TextBox11.Text = .GetValue(5)
End While
End With
orderConnection1.Close()
End If
Else
MsgBox("Please provide an Customer Code to search",
MsgBoxStyle.Exclamation, "Sales Management System")
TextBox3.Focus()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
curr = New Orderdetail
curr.Show()
Button1.Visible = False
Button11.Visible = True
order_status = "REVD"
End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button11.Click
TextBox21.Text = temporder_value
TextBox5.Text = tempplant_code
order_status = "CLRD"
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
TextBox22.Text = order_status
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button8.Click
Dim enq As String
Dim Read As OleDb.OleDbDataReader
If TextBox15.Text <> "" Then
enq = TextBox15.Text
enquiryCommand.Parameters.Add("order_no",
Data.OleDb.OleDbType.Integer)
enquiryCommand.Parameters("order_no").Value = enq
enquiryConnection.Open()
Read = enquiryCommand.ExecuteReader()
With Read
While .Read
TextBox20.Text = .GetValue(1)
TextBox16.Text = .GetValue(2)
TextBox17.Text = .GetValue(3)
TextBox18.Text = .GetValue(4)
TextBox19.Text = .GetValue(5)
TextBox44.Text = .GetValue(7)
TextBox45.Text = .GetValue(6)
End While
End With
enquiryConnection.Close()
Else
MessageBox.Show("Please Enter the Order No. !!!", "Sales
Management System", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
End Sub
End Sub
End Class
Add customer
Imports System.Data.OleDb
End Sub
End Class
Edit material
Public Class Editmaterial
Inherits System.Windows.Forms.Form
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
Button3.Enabled = enableBack
Button4.Enabled = enableBack
Button5.Enabled = enableForward
Button6.Enabled = enableForward
End Sub
With Read
While .Read
TextBox1.Text = .GetValue(0)
TextBox2.Text = .GetValue(1)
TextBox3.Text = .GetValue(2)
TextBox4.Text = .GetValue(3)
End While
End With
OleDbConnection1.Close()
End If
End Sub
End Class
Order Detail
Imports System.Data.OleDb
Public Class Orderdetail
Inherits System.Windows.Forms.Form
Public Shared temp1 As String
Public Shared temp2 As String
Dim qty As Integer
Dim item_value As Integer
Private Sub Orderdetail_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Enabled = False
Button4.Enabled = False
TextBox3.Enabled = False
TextBox4.Enabled = False
TextBox5.Enabled = False
TextBox1.Text = Str(transaction.temporder_no)
materialConnection.Open()
Dim objReader As OleDbDataReader = materialCommand.ExecuteReader
Do While objReader.Read()
ComboBox1.Items.Add(objReader("material_code"))
Loop
materialConnection.Close()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
TextBox1.Text = ""
ComboBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
Button4.Enabled = False
TextBox3.Enabled = False
TextBox4.Enabled = False
TextBox5.Enabled = False
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
Dim str1 As String
Dim Read As OleDb.OleDbDataReader
TextBox3.Enabled = True
TextBox4.Enabled = True
TextBox5.Enabled = True
Button4.Enabled = True
matorderdetailCommand1.Parameters.Add("material_code",
Data.OleDb.OleDbType.Integer)
matorderdetailCommand1.Parameters("material_code").Value = str1
matorderdetailConnection1.Open()
Read = matorderdetailCommand1.ExecuteReader
With Read
While .Read
TextBox4.Text = .GetValue(3)
TextBox5.Text = .GetValue(2)
End While
End With
matorderdetailConnection1.Close()
qty = Val(TextBox5.Text)
item_value = qty * Val(TextBox2.Text)
TextBox3.Text = Str(item_value)
End Sub
orderdetailinsertConnection1.Open()
orderdetailinsertCommand1.CommandText = _
"INSERT INTO order_detail(order_no,material_code,item_qty,item_value)VALUES('"
& TextBox1.Text & "', '" & ComboBox1.Text & "','" & TextBox2.Text & "', '" &
TextBox3.Text & "')"
flag = MsgBox("Order Placed!!!", MsgBoxStyle.OKOnly + vbInformation,
"Sales Management System")
If (flag = MsgBoxResult.OK) Then
transaction.temporder_value = item_value
transaction.tempplant_code = TextBox4.Text
End If
orderdetailinsertCommand1.ExecuteNonQuery()
orderdetailinsertConnection1.Close()
Me.Close()
fix:
Exit Sub
Me.Close()
End Sub
End Sub
End Class
Order Status
Public Class Orderstatus
Inherits System.Windows.Forms.Form
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
On Error GoTo fix
If TextBox1.Text = "" And TextBox2.Text = "" Then
MsgBox("State Code and State Description cannot be a null value.",
vbExclamation, "Sales Management System")
Exit Sub
End If
OleDbConnection1.Open()
OleDbCommand1.CommandText = _
"INSERT INTO status_master(order_status, description)" & _
"VALUES('" & TextBox1.Text & "','" & TextBox2.Text & "')"
MsgBox("New State has been successfully added.", vbInformation, "Sales
Management System")
OleDbCommand1.ExecuteNonQuery()
OleDbConnection1.Close()
Me.Close()
fix:
Exit Sub
End Sub
Test Cases
Case Scenario Sr.no Action Expected Actual Result
no. Output Output
Initiate
LogIn
Validate
User_id
and Pwd
Invalid
userid /
pwd
Tracks
Order
Order
Order
Details
Shipment
Shipment
availabili
ty
Dispatch
order
Payment Details
Records
Invoice
Update
Invoice
Records
details
Activity Diagram for system:
Request Material
Get
Materials
Ship Order
Tracks Order
Pay Bill
Send GRN
Close Order