Project 35
Project 35
1. Introduction 1
2. Technologies Used:-----------------------------------------------------------2
4. Theoretical Background-----------------------------------------------------5
5. References 17
1. Introduction
Stock management is the practice of ordering, storing, tracking, and
business’s inventory.
the products.
system.
products.
5. Database setup: This module is used to setup the database in the system
Table Design:
The database of Library System contains 4 tables. The tables are normalized to
minimize the redundancies of data and enforcing the validation rules of the
organization. Most of the tables are designed to store master records. The tables and
their structure are given below.
Table: Orders
Table: Products
Table: orders
Table: User
3. System Implementation
SOFTWARE SPECIFICATION:-
Operating System : Windows 7
Platform : Python IDLE 3.5
Database : MySQL
Languages : Python
HARDWARE SPECIFICATION:-
4. Theoretical Background
PYTHON IDLE
Python is a widely used general-purpose, high-level programming language. It was
initially designed by Guido van Rossum in 1991 and developed by Python Software
Foundation. Python is an interpreted, object-oriented, high-level programming
language with dynamic semantics. Its high-level built in data structures, combined
with dynamic typing and dynamic binding, make it very attractive for Rapid
Application Development, as well as for use as a scripting or glue language to connect
existing components together. Python's simple, easy to learn syntax emphasizes
readability and therefore reduces the cost of program maintenance. Python supports
modules and packages, which encourages program modularity and code reuse. The
Python interpreter and the extensive standard library are available in source or binary
form without charge for all major platforms, and can be freely distributed.
Often, programmers fall in love with Python because of the increased productivity it
provides. Since there is no compilation step, the edit-test-debug cycle is incredibly
fast. Debugging Python programs is easy: a bug or bad input will never cause a
segmentation fault. Instead, when the interpreter discovers an error, it raises an
exception. When the program doesn't catch the exception, the interpreter prints a
stack trace. A source level debugger allows inspection of local and global variables,
evaluation of arbitrary expressions, setting breakpoints, stepping through the code a
line at a time, and so on. The debugger is written in Python itself, testifying to Python's
introspective power. On the other hand, often the quickest way to debug a program is
to add a few print statements to the source: the fast edit-test-debug cycle makes this
simple approach very effective.
MYSQL
MySQL is a database management system that allows you to manage relational
databases. It is open-source software backed by Oracle. It means you can use MySQL
without paying a dime. Also, if you want, you can change its source code to suit your
needs. Even though MySQL is open-source software, you can buy a commercial license
version from Oracle to get premium support services. MySQL is pretty easy to master
in comparison with other database software like Oracle Database, or Microsoft SQL
Server. MySQL can run on various platforms UNIX, Linux, Windows, etc. You can install
it on a server or even in a desktop. Besides, MySQL is reliable, scalable, and fast.
# STOCK MANAGEMENT
import os
import mysql.connector
import datetime
now = datetime.datetime.now()
def product_mgmt( ):
while True :
print("\t\t\t 1. Add New Product")
print("\t\t\t 2. List Product")
print("\t\t\t 3. Update Product")
print("\t\t\t 4. Delete Product")
print("\t\t\t 5. Back (Main Menu)")
p=int (input("\t\tEnter Your Choice :"))
if p==1:
add_product()
if p==2:
search_product()
if p==3:
update_product()
if p==4:
delete_product()
if p== 5 :
break
def purchase_mgmt( ):
while True :
print("\t\t\t 1. Add Order")
print("\t\t\t 2. List Order")
print("\t\t\t 3. Back (Main Menu)")
o=int (input("\t\tEnter Your Choice :"))
if o==1 :
add_order()
if o==2 :
list_order()
if o== 3 :
break
def sales_mgmt( ):
while True :
print("\t\t\t 1. Sale Items")
print("\t\t\t 2. List Sales")
print("\t\t\t 3. Back (Main Menu)")
s=int (input("\t\tEnter Your Choice :"))
if s== 1 :
sale_product()
if s== 2 :
list_sale()
if s== 3 :
break
def user_mgmt( ):
while True :
print("\t\t\t 1. Add user")
print("\t\t\t 2. List user")
print("\t\t\t 3. Back (Main Menu)")
u=int (input("\t\tEnter Your Choice :"))
if u==1:
add_user()
if u==2:
list_user()
if u==3:
break
def create_database():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
print(" Creating PRODUCT table")
sql = "CREATE TABLE if not exists product (\
pcode int(4) PRIMARY KEY,\
pname char(30) NOT NULL,\
pprice float(8,2) ,\
pqty int(4) ,\
pcat char(30));"
mycursor.execute(sql)
print(" Creating ORDER table")
sql = "CREATE TABLE if not exists orders (\
orderid int(4)PRIMARY KEY ,\
orderdate DATE ,\
pcode char(30) NOT NULL , \
pprice float(8,2) ,\
pqty int(4) ,\
supplier char(50),\
pcat char(30));"
mycursor.execute(sql)
print(" ORDER table created")
def list_database():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
sql="show tables;"
mycursor.execute(sql)
for i in mycursor:
print(i)
def add_order():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
now = datetime.datetime.now()
sql="INSERT INTO orders (orderid, orderdate, pcode, pprice, pqty, supplier,
pcat) values (%s,%s,%s,%s,%s,%s,%s)"
code=int(input("Enter product code :"))
oid=now.year+now.month+now.day+now.hour+now.minute+now.second
qty=int(input("Enter product quantity : "))
price=float(input("Enter Product unit price: "))
cat=input("Enter product category: ")
supplier=input("Enter Supplier details: ")
val=(oid,now,code,price,qty,supplier,cat)
mycursor.execute(sql,val)
mydb.commit()
def list_order():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",
database="stock")
mycursor=mydb.cursor()
sql="SELECT * from orders"
mycursor.execute(sql)
print("\t\t\t\t\t\t\t ORDER DETAILS")
print("-"*85)
print("orderid Date Product code price quantity Supplier
Category")
print("-"*85)
for i in mycursor:
print(i[0],"\t",i[1],"\t",i[2],"\t ",i[3],"\t",i[4],"\t ",i[5],"\t",i[6])
print("-"*85)
def db_mgmt( ):
while True :
print("\t\t\t 1. Database creation")
print("\t\t\t 2. List Database")
print("\t\t\t 3. Back (Main Menu)")
p=int (input("\t\tEnter Your Choice :"))
if p==1 :
create_database()
if p==2 :
list_database()
if p== 3 :
break
def add_product():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
sql="INSERT INTO product(pcode,pname,pprice,pqty,pcat) values (%s,%s,%s,
%s,%s)"
code=int(input("\t\tEnter product code :"))
search="SELECT count(*) FROM product WHERE pcode=({});".format(code)
mycursor.execute(search)
for x in mycursor:
cnt=x[0]
if cnt==0:
name=input("\t\tEnter product name :")
qty=int(input("\t\tEnter product quantity :"))
price=float(input("\t\tEnter product unit price :"))
cat=input("\t\tEnter Product category :")
val=(code,name,price,qty,cat)
mycursor.execute(sql,val)
mydb.commit()
else:
print("\t\t Product already exist")
def update_product():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
code=int(input("Enter the product code :"))
qty=int(input("Enter the quantity :"))
sql="UPDATE product SET pqty=pqty+%s WHERE pcode=%s;"
val=(qty,code)
mycursor.execute(sql,val)
mydb.commit()
print("\t\t Product details updated")
def delete_product():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
code=int(input("Enter the product code :"))
sql="DELETE FROM product WHERE pcode = %s;"
val=(code,)
mycursor.execute(sql,val)
mydb.commit()
print(mycursor.rowcount," record(s) deleted");
def search_product():
while True :
print("\t\t\t 1. List all product")
print("\t\t\t 2. List product code wise")
print("\t\t\t 3. List product categoty wise")
print("\t\t\t 4. Back (Main Menu)")
s=int (input("\t\tEnter Your Choice :"))
if s==1 :
list_product()
if s==2 :
code=int(input(" Enter product code :"))
list_prcode(code)
if s==3 :
cat=input("Enter category :")
list_prcat(cat)
if s== 4 :
break
def list_product():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
sql="SELECT * from product"
mycursor.execute(sql)
print("\t\t\t\t PRODUCT DETAILS")
print("\t\t","-"*47)
print("\t\t code name price quantity category")
print("\t\t","-"*47)
for i in mycursor:
print("\t\t",i[0],"\t",i[1],"\t",i[2],"\t ",i[3],"\t\t",i[4])
print("\t\t","-"*47)
def list_prcode(code):
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
sql="SELECT * from product WHERE pcode=%s"
val=(code,)
mycursor.execute(sql,val)
print("\t\t\t\t PRODUCT DETAILS")
print("\t\t","-"*47)
print("\t\t code name price quantity category")
print("\t\t","-"*47)
for i in mycursor:
print("\t\t",i[0],"\t",i[1],"\t",i[2],"\t ",i[3],"\t\t",i[4])
print("\t\t","-"*47)
def sale_product():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
pcode=input("Enter product code: ")
sql="SELECT count(*) from product WHERE pcode=%s;"
val=(pcode,)
mycursor.execute(sql,val)
for x in mycursor:
cnt=x[0]
if cnt !=0 :
sql="SELECT * from product WHERE pcode=%s;"
val=(pcode,)
mycursor.execute(sql,val)
for x in mycursor:
print(x)
price=int(x[2])
pqty=int(x[3])
qty=int(input("Enter no of quantity :"))
if qty <= pqty:
total=qty*price;
print ("Collect Rs. ", total)
sql="INSERT into sales values(%s,%s,%s,%s,%s,%s)"
val=(int(cnt)+1,datetime.datetime.now(),pcode,price,qty,total)
mycursor.execute(sql,val)
sql="UPDATE product SET pqty=pqty-%s WHERE pcode=%s"
val=(qty,pcode)
mycursor.execute(sql,val)
mydb.commit()
else:
print(" Quantity not Available")
else:
print(" Product is not avalaible")
def list_sale():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
sql="SELECT * FROM sales"
mycursor.execute(sql)
print(" \t\t\t\tSALES DETAILS")
print("-"*80)
print("Sales id Date Product Code Price Quantity Total")
print("-"*80)
for x in mycursor:
print(x[0],"\t",x[1],"\t",x[2],"\t ",x[3],"\t\t",x[4],"\t\t",x[5])
print("-"*80)
def list_prcat(cat):
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
print (cat)
sql="SELECT * from product WHERE pcat =%s"
val=(cat,)
mycursor.execute(sql,val)
clrscr()
print("\t\t\t\t PRODUCT DETAILS")
print("\t\t","-"*47)
print("\t\t code name price quantity category")
print("\t\t","-"*47)
for i in mycursor:
print("\t\t",i[0],"\t",i[1],"\t",i[2],"\t ",i[3],"\t\t",i[4])
print("\t\t","-"*47)
def add_user():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
uid=input("Enter emaid id :")
name=input(" Enter Name :")
paswd=input("Enter Password :")
sql="INSERT INTO user values (%s,%s,%s);"
val=(uid,name,paswd)
mycursor.execute(sql,val)
mydb.commit()
print(mycursor.rowcount, " user created")
def list_user():
mydb=mysql.connector.connect(host="localhost",user="root",passwd="school",databas
e="stock")
mycursor=mydb.cursor()
sql="SELECT uid,uname from user"
mycursor.execute(sql)
clrscr()
print("\t\t\t\t USER DETAILS")
print("\t\t","-"*27)
print("\t\t UID name ")
print("\t\t","-"*27)
for i in mycursor:
print("\t\t",i[0],"\t",i[1])
print("\t\t","-"*27)
def clrscr():
print("\n"*5)
while True:
create_database()
clrscr()
print("\t\t\t STOCK MANAGEMENT")
print("\t\t\t ****************\n")
print("\t\t 1. PRODUCT MANAGEMENT")
print("\t\t 2. PURCHASE MANAGEMENT")
print("\t\t 3. SALES MANAGEMENT")
print("\t\t 4. USER MANAGEMENT")
print("\t\t 5. DATABASE SETUP")
print("\t\t 6. EXIT\n")
n=int(input("Enter your choice :"))
if n== 1:
product_mgmt()
if n== 2:
os.system('cls')
purchase_mgmt()
if n== 3:
sales_mgmt()
if n== 4:
user_mgmt()
if n==5:
db_mgmt()
if n== 6:
break
www.cb
5. References
In order to work on this project titled –Stock Management System, the following
books and literature are referred by me during the various phases of development of the
project.
1.http://www.mysql.org/
2.http://www.python.org/