Medicine Stock Checking System
Medicine Stock Checking System
2021-2022
TOPIC:
MEDICINE STOCK CHECKING SYSTEM
INTRODUCTION TO PYTHON.
INTRODUCTION TO THE
PROJECT.
SYSTEM REQUIREMENTS.
BACKEND DETAILS.
FRONTEND DETAILS.
MOTIVE.
SCREEN SHOTS OF EXECUTION.
BIBLIOGRAPHY.
LIMITATIONS.
INTRODUCTION TO PYTHON
History of Python:
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. It was mainly developed for emphasis on code readability, and its syntax
allows programmers to express concepts in fewer lines of code.
The Medicine Stock Checking System software is an ERP software used by medicine shops
or medicine dealers for wholesale/retail business. This software stores details of medicines
and helps us to search medicines by their name and manufacturer. It is possible to edit
medicine cost and sell the medicine. The balance i.e. due amount of the stock can also be
checked. If the medicine is expired, the system has the provision to dispose it to the system
specified warehouse. The program is also useful to check the details of the expired medicines.
SYSTEM REQUIREMENTS
HARDWARE REQUIREMENT:
SOFTWARE REQUIREMENT:
Windows 7 or higher
My-SQL server 5.5 or higher(as backend)
Python idle 3.6 or higher or spyder (as frontend).
Microsoft Word 2010 or higher for documentation.
BACKEND DETAILS
Code:
CREATE TABLE STOCK(
Batch_no int(11) Primary Key,
name varchar(50),
manuf varchar(50) ,
date_man date,
date_exp date,
quantity int,
sell int,
balance int,
cost_unit int );
Code:
CREATE TABLE DISPOSE(
Batch_no int(11),
Name varchar(50),
date_exp date,
amount int );
FRONT-END DETAILS
PROGRAM CODE
import sys
import random
import datetime
import mysql.connector
import matplotlib.pyplot as plt
mycon=mysql.connector.connect(host='localhost',user='root',password='abhisek',database='medi
cine')
mycur=mycon.cursor()
def Store():
sql="Insert into
stock(batch_no,name,manuf,date_man,date_exp,quantity,sell,balance,cost_unit)values(%s,
%s,%s,%s,%s,%s,%s,%s,%s)"
print('\nPLEASE PROVIDE THE REQUIRED INFORMATION\n')
acc=int(input('\nENTER THE BATCH NUMBER:'))
nm=input('\nENTER THE NAME OF THE MEDICINE WITH POWER:')
def Search_by_Name():
ph=input('\nENTER THE MEDICINE NAME TO SEARCH:')
sql="Select * from Stock where name=%s"
value=(ph,)
mycur.execute(sql,value)
rec=mycur.fetchone()
if(rec==None):
print(ph,'IS NOT AVAILABLE')
else:
print('BATCH NUMBER:\t',rec[0])
print('MEDICINE NAME:\t',rec[1])
print('MANUFACTURER:\t',rec[2])
print('DATE OF MANUFACTURE:\t',rec[3])
print('DATE OF EXPIRY:\t',rec[4])
print('QUANITTY STORED:\t',rec[5])
print('INITIAL COST:\t',rec[8])
def Search_by_Manu():
ph=input('\nENTER THE MANUFACTURER NAME TO SEARCH:')
sql="Select name from Stock where manuf=%s"
value=(ph,)
mycur.execute(sql,value)
rec=mycur.fetchall()
if(rec==None):
print(ph,'IS A WRONG MANUFACTURER')
else:
print('----------MEDICINES MANUFACTURED BY',ph,'--------------------')
for nm in rec:
print(nm[0])
def Cost_Update():
sql="Update stock set cost_unit=%s where name=%s";
ph=input('\nENTER THE MEDICINE NAME TO CHANGE COST:')
addr=int(input('\nENTER THE NEW COST PER UNIT:'))
value=(addr,ph)
try:
mycur.execute(sql,value)
mycon.commit()
print('NEW COST OF',ph,'IS=RS',addr)
except:
print('UNABLE TO CHANGE COST!!!!')
def Sell():
sql="Update stock set sell=%s,balance=%s where name=%s";
ph=input('\nENTER THE MEDICINE NAME TO SELL:')
addr=int(input('\nENTER THE QUANTITY TO SELL:'))
sql2='select quantity from stock where name=%s'
value2=(ph,)
mycur.execute(sql2,value2)
rec=mycur.fetchone()
if(addr>rec[0]):
print('INSUFFICIENT STOCK IN HAND!!!!!!')
return
else:
balance=rec[0]-addr
value=(addr,balance,ph)
try:
mycur.execute(sql,value)
mycon.commit()
print(addr,'UNITS OF',ph,'SOLD')
print(balance,'UNITS LEFT')
except:
print('UNABLE TO SELL MEDICINE!!!!')
def Available():
ph=input('\nENTER THE MEDICINE NAME TO SEARCH:')
sql="Select balance from Stock where name=%s"
value=(ph,)
mycur.execute(sql,value)
rec=mycur.fetchone()
if(rec==None):
print(ph,'IS NOT AVAILABLE')
else:
print(rec[0],'UNITS OF',ph,'IS AVAILABLE')
def Dispose():
sql="Insert into dispose(batch_no,name,date_exp,amount)values(%s,%s,%s,%s)"
nm=input('\nENTER THE MEDICINE NAME TO DISPOSE:')
sql2="Select batch_no,name,date_exp,balance from stock where name=%s and date_exp<=
%s"
t_date=datetime.date.today()
value2=(nm,t_date)
mycur.execute(sql2,value2)
rec=mycur.fetchone()
if(rec==None):
print(nm,'IS NOT EXPIRED YET')
else:
print(nm,'IS EXPIRED')
c=int(input('\nPRESS 1 TO DISPOSE IT:'))
if(c==1):
b=rec[0]
n=rec[1]
d=rec[2]
am=rec[3]
value=(b,n,d,am)
sql3='Delete from stock where name=%s'
value3=(n,)
try:
mycur.execute(sql,value)
mycon.commit()
print(n,'SUCCESSFULLY DISPOSED')
mycur.execute(sql3,value3)
mycon.commit()
except:
print('UNABLE TO DISPOSE MEDICINE')
else:
print('WARNING!!!!!',nm,'MUST BE DISPOSED LATER')
return
def Search_Dispose():
ph=input('\nENTER THE DISPOSED MEDICINE NAME TO SEARCH:')
sql="Select * from Dispose where name=%s"
value=(ph,)
mycur.execute(sql,value)
rec=mycur.fetchone()
if(rec==None):
print(ph,'IS NOT AVAILABLE')
else:
print('BATCH NUMBER:\t',rec[0])
print('MEDICINE NAME:\t',rec[1])
print('DATE OF EXPIRY:\t',rec[2])
print('BALANCE AMOUNT:\t',rec[3])
def Graph():
ad=input('ENTER MEDICINE NAME:')
sql='Select * from stock where name=%s'
value=(ad,)
mycur.execute(sql,value)
T=mycur.fetchone()
N=[T[5],T[6],T[7]]
L=['QUANTITY','SELL','BALANCE']
clr=('red','blue','green')
plt.bar(L,N,color=clr)
plt.xlabel('MEDICINE STATUS')
plt.ylabel('VALUES')
plt.title('MEDICINE QUANITTY-SELL-BALANCE')
plt.show()
def Close():
print('\nTHANK YOU FOR USING THE APPLICATION')
sys.quit()
print('------------WELCOME TO MEDICINE STOCK CHECKING
SYSTEM-------------\n\n')
while(True):
print('\n\nPRESS 1 TO ADD A NEW MEDICINE')
print('PRESS 2 TO SEARCH A MEDICINE BY NAME')
print('PRESS 3 TO SEARCH A MEDICINE BY MANUFACTURER')
print('PRESS 4 TO UPDATE MEDICINE COST')
print('PRESS 5 TO SELL MEDICINE')
print('PRESS 6 TO CHECK AVAILABILITY')
print('PRESS 7 TO DISPOSE EXPIRED MEDICINE')
print('PRESS 8 TO SEARCH EXPIRED MEDICINE BY NAME')
print('PRESS 9 TO VIEW QUANTITY,SELL,BALANCE GRAPHICALLY')
print('PRESS 10 TO CLOSE THE APPLICATION')
choice=int(input('ENTER YOUR CHOICE : '))
if(choice==1):
Store()
elif(choice==2):
Search_by_Name()
elif(choice==3):
Search_by_Manu()
elif(choice==4):
Cost_Update()
elif(choice==5):
Sell()
elif(choice==6):
Available()
elif(choice==7):
Dispose()
elif(choice==8):
Search_Dispose()
elif(choice==9):
Graph()
else:
Close()
MOTIVE
To maintain the medicine stock details, sell medicine, update stock details, providing
medicine amount enquiry by simple search technique.
To dispose medicines which are expired and provide the facility to search the disposed
medicines.
Globalized usage.
SCREEN SHOTS OF EXECUTION
MAIN MENU
DISPOSING MEDICINES
BIBLIOGRAPHY
BOOKS:
WEBSITES:
www.geeksforgeeks.org
https://docs.python.org/3/
https://www.w3schools.com/python/
LIMITATIONS
The project does not have the facility to take care of the medicines which are
to be refunded i.e. there is no mechanism to keep the account of the refunded
medicines.
******************************