0% found this document useful (0 votes)
32 views27 pages

Saravana Updated

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views27 pages

Saravana Updated

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 27

SHIKSHAA PUBLIC SCHOOL

PROJECT REPORT
COMPUTER SCIENCE
Topic: STOCK MANAGEMENT
Academic year: 2024 – 2025

DONE BY:
R.GOKULAVARADHAN(XII-A)
K.SARAVANAN(XII-A)
THARAKESHWAR(XII-A)

SHIKSHAA PUBLIC SCHOOL


CHROMPET, CHENNAI-64

DEPARTMENT OF COMPUTER SCIENCE


This is to certify that of class
________has performed during the year
2024-2025 and his/her project report is certified as Bonafide.

Date: _________ __________________


Head of Department
Computer Science

Submitted for All India Secondary School Examination


2025(Practical Examination) in Computer Science at SHIKSHAA
PUBLIC SCHOOL on ___________________

______________ ______________
Internal Examiner External Examiner

Date: Date: ________

___________________
Signature of the Principal

Acknowledgement
I would like to express my greatest appreciation to the all individuals
who have helped and supported me throughout the project which led to
its success and final outcome of this project.

It required a lot of guidance and assistance from many people and I am


extremely fortunate to receive such help throughout the project work.
Whatever I have done is only due to such guidance and assistance and
I would not forget to thank them.

I am thankful to my computer teacher Mrs. Arun Saranya for her


ongoing support during the project, from initial advice, and
encouragement, which led to the final report of this project.

I would also like to thank my team members Gokulavaradan and


Tharakeshwar who were always there in to help me.

A special acknowledgement goes to my classmates who helped me in


completing the project by exchanging interesting ideas and sharing
their experience.

I wish to thank my parents as well for their undivided support and


interest who inspired me and encouraged me to go my own way,
without whom I would be unable to complete my project.

At the end, I want to thank everyone who displayed appreciation to my


work and motivated me to continue my work.
1. ABSTRACT 5

2. SYSTEM CONFIGURATION 6

3. INTRODUCTION 7

i) PYTHON
ii) MYSQL
4. RELATION BETWEEN PYTHON AND MYSQL 11

5. DATABASE CONNECTIVITY 12

6. LIBRARIES AND FUNCTIONS USED 12

7. DATABASE SCHEMA 13

8. MYSQL QUERIES USED IN THIS PROJECT 14

9. SOURCE CODE 14

10. OUTPUT 19

11. CONCLUSION 23

12. BIBLIOGRAPHY 25

TABLE OF CONTENTS:
2.SYSTEM CONFIGURATION

HARDWARE CONFIGURATION

Microsoft Windows 11/ Windows 8/ Windows 8.2:


• Processor: intel Pentium or higher

• Memory:2 GB (32-bit), 4 GB (64-bit)

• Disk Space: 1.5 GB of free disk space

SOFTWARE REQUIREMENTS:

• 1 GB RAM (2 GB+ recommended)


• 9-58 GB free hard disk space depending on edition and configuration, including

space required for temporary files

• DVD-ROM drive (if installing from a Media Kit DVD)

• Basic GPU – Any vendor DirectX 9.0 class or better (Pixel Shader Level 2)

• Intel® Pentium® or compatible, 1.6 GHz minimum (2GHz+ recommended)

• 1024x768 or higher-resolution monitor

• Mouse or other pointing device.

3.INTRODUCTION
i) PYTHON:
Python is a high-level, interpreted scripting language developed in the late 1980s by
Guidovan Rossum at the National Research Institute for Mathematics and Computer Science
in the Netherlands. The initial version was published at the outsources newsgroup in 1991,
and version 1.0 was released in 1994.

Python 2.0 was released in 2000, and the 2.x versions were the prevalent releases until
December 2008. At that time, the development team made the decision to release version 3.0,
which contained a few relatively small but significant changes that were not backward
compatible with the 2.x versions. Python 2 and 3 are very similar, and some features of
Python 3 have been backported to Python 2. But in general, they remain not quite compatible.

As of this writing, the most recent python version available is 3.11.0. An official end of life
of January 1,2020 has been established for Python 2, after which time it will no longer be
maintained.

Python is still maintained by a core development team at the Institute, and Guido is still in
charge, having been given the title of BDFL (Benevolent Dictator for Life) by the Python
community. The name Python derives not from the snake, but from the British comedy troupe
Monty Python’s Flying Circus, of which Guido was, and presumably still is, a fan. It is
common to find references to Monty Python sketches and movies scattered throughout the
Python documentation.
Python is Popular
Python has been growing in popularity over the last few years. The 2018 Stack Overflow
Developer Survey ranked Python as the 7th most popular and the number one most wanted
technology of the year. World-class software development countries around the globe use
Python every single day. According to research by Dice, Python is also one of the hottest
skills to have and the most popular programming language in the world based on the
Popularity of programming Language Index.

Python is Interpreted
Many languages are compiled, meaning the source code you create needs to be translated into
machine code, the language of your computer’s processor, before it can be run. Programs
written in an interpreted language are passed straight to an interpreter that runs them directly.
This makes for a quicker development cycle because you just type in your code and unit,
without the intermediate compilation step. One potential downside to interpreted languages is
execution speed. Programs that are compiled into the native language of the computer
processor tend to run more quickly than interpreted programs. For some applications that are
particularly computationally intensive, like graphics processing or intense number crunching,
this can be limiting.

In practice, however, for most programs, the difference in execution speed is measured in
milliseconds, or seconds at most, and not appreciably noticeable to a human user. The
expediency of coding in an interpreted language is typically worth it for most applications.

Python is Free
The Python interpreter is developed under an OSI-approved open-source license, making it
free to install, use, and distribute, even for commercial purposes.

A version of the interpreter is available for virtually any platform there is, including all
flavors of Unix, Windows, macOS, smartphones and tablets, and probably anything else you
ever heard of. A version even exists for the half dozen people remaining who use OS/2.
Python is Portable
Because Python code is interpreted and not compiled into native machine instructions, code
written for one platform will work on any other platform that has the Python interpreter
installed. (This is true of any interpreted language, not just Python.

Python is Simple
As programming languages go, Python is relatively uncluttered, and the developers have
deliberately kept it that way. A rough estimate of the complexity of a language can be
gleaned from the number of keywords or reserved words in the language. These are words
that are reserved for special meaning by the compiler or interpreter because they designate
specific built-in functionality of the language. Python 3 has 33 keywords, and Python 2 has
31. By contrast, C++ has 62, Java has 53, and Visual Basic has more than 120, though these
latter examples probably vary somewhat by implementation or dialect.

ii) MYSQL:
Database Management System:
A Database Management System (DBMS) is a software application that interacts with the
user, applications and the database itself to capture and analyse data. The data stored in the
database can be modified, retrieved and deleted, and can be of any type like strings, numbers,
images etc.

Types of DBMS:
There are mainly 4 types of DBMS, which are Hierarchical, Relational, Network, and Object-
Oriented DBMS.

Hierarchical DBMS: As the name suggests, this type of DBMS has a style of
predecessor-successor type of relationship. So, it has a structure similar to that of a tree,
wherein the nodes represent records and the branches of the tree represent fields.

Relational DBMS (RDBMS): This type of DBMS, uses a structure that allows the
users to identify and access data in relation to another piece of data in the database.

Network DBMS: This type of DBMS supports many to many relations wherein multiple
member records can be linked.

Object-oriented DBMS: This type of DBMS uses small individual software called
objects. Each object contains a piece of data, and the instructions for the actions to be done
with the data.

Structured Query Language (SQL):


SQL is the core of a relational database which is used for accessing and managing the
database. By using SQL, you can add, update or delete rows of data, retrieve subsets of
information, modify databases and perform many actions.

The different subsets of SQL are as follows:

• DDL (Data Definition Language)– It allows you to perform various operations on


the database such as CREATE, ALTER and DELETE objects.

• DML (Data Manipulation Language) – It allows you to access and manipulate


data. It helps you to insert, update, delete and retrieve data from the database.

• DCL (Data Control Language) – It allows you to control access to the database.
Example – Grant or Revoke access permissions.

• TCL (Transaction Control Language) – It allows you to deal with the transaction
of the database. Example – Commit, Rollback, Savepoint, Set Transaction.

MySQL & its Features:


MySQL is an open-source relational database management system that works on many
platforms. It provides multi-user access to support many storage engines and is backed by
Oracle. So, you can buy a commercial license version from Oracle to get premium support
services.

The features of MySQL are as follows:


Ease of Management - The software very easily gets downloaded and also uses an
event scheduler to schedule the tasks automatically.

• Robust Transactional Support – Holds the ACID (Atomicity, Consistency,


Isolation, and Durability) property, and also allows distributed multi-version support.

• Comprehensive Application Development – MySQL has plugin libraries to


embed the database into any application. It also supports stored procedures, triggers,
functions, views and many more for application development.

• High Performance – Provides fast load utilities with distinct memory caches and table
index partitioning.

• Low Total Cost of Ownership – This reduces licensing costs and hardware
expenditures.

• Open Source & 24 * 7 Support – This RDBMS can be used on any platform and
offers 24*7 support for open source and enterprise edition.

• Secure Data Protection – MySQL supports powerful mechanisms to ensure that only
authorized users have access to the databases.

• High Availability – MySQL can run high-speed master/slave replication


configurations and it offers cluster servers.

• Scalability & Flexibility – With MySQL you can run deeply embedded applications
and create data warehouses holding a humongous amount of data.

MySQL Data Types:

• Numeric – This data type includes integers of various sizes, floating-point(real) of


various precisions and formatted numbers.

• Character-string – These data types either have a fixed, or a varying number of


characters. This data type also has a variable-length string called CHARACTER LARGE
OBJECT(CLOB) which is used to specify columns that have large text values.

• Bit-string – These data types are either of a fixed length or varying length of bits.
There is also a variable-length bit string data type called BINARY LARGE
OBJECT(BLOB), which is available to specify columns that have large binary values, such
as images.
• Boolean –This data type has TRUE or FALSE values. Since SQL, has NULL values, a
three-valued logic is used, which is UNKNOWN.

• Date & Time –The DATE data type has: YEAR, MONTH, and DAY in the form
YYYY-MM-DD. Similarly, the TIME data type has the components HOUR, MINUTE, and
SECOND in the form HH:MM: SS. These formats can change based on the requirement.

• Timestamp & Interval –The TIMESTAMP data type includes a minimum of six
positions, for decimal fractions of seconds and an optional WITH TIME ZONE qualifier in
addition to the DATE and TIME fields. The INTERVAL data type mentions a relative value
that can be used to increment or decrement an absolute value of a date, time, or timestamp.
Python MySQL Database Connection: Arguments required to connect MySQL from Python.
You need to know the following detail of the MySQL server to perform the connection from
Python.

4.PYTHON MYSQL DATABASE CONNECTION


Arguments required to connect MySQL from Python

You need to know the following detail of the MySQL server to perform the connection from
Python.

• Username – i.e., the username that you use to work with MySQL Server. The default
username for the MySQL database is a root.

• Password – Password is given by the user at the time of installing the MySQL database.
If you are using root then you won’t need the password.

• Host Name – is the server’s name or Ip address on which MySQL is running. If you are
running on localhost, then you can use localhost, or its IP, i.e. 127.0.0.0

• Database Name – Database name to which you want to connect. This is an optional
argument.

READ Operation
READ Operation on any database means to fetch some useful information from the database.
Once our database connection is established, you are ready to make a query into this
database. You can use either fetchone() method to fetch single record or fetchall()method to
fetch multiple values from a database table.
• fetchone() − It fetches the next row of a query result set. A result set is an object that is
returned when a cursor object is used to query a table.

• fetchall() − It fetches all the rows in a result set. If some rows have already been
extracted from the result set, then it retrieves the remaining rows from the result set.

5.DATABASE CONNECTIVITY
Steps to connect MySQL database in Python using MySQL

Connector Python

1. Install MySQL Connector Python using pip.

2. Use the mysql.connector.connect()method of MySQL Connector Python with required


parameters to connect MySQL.

3. Use the connection object returned by a connect()method to create a cursor object to


perform Database Operations.

4. The cursor.execute() to execute SQL queries from Python.

5. Close the Cursor object using a cursor.close() and MySQL database connection using
connection.close() after your work completes.

6. Catch Exception if any that may occur during this process.

6.LIBRARIES AND FUNCTIONS USED


LIBRARIES AND MODULES USED:

OS:
The OS module in Python provides functions for interacting with the operating system.OS
comes under Python’s standard utility modules. This module provides a portable way of
using operating system-dependent functionality. The os module include many functions to
interact with the file system.

MySQL Connector:
MySQL Connector/Python enables Python programs to access MySQL databases, using an
API that is compliant with the Python Database API Specification v2

Platform:
The platform module in Python is quite handy for retrieving information about the system on
which your Python code is running.
9.SOURCE CODE:

import os

import mysql.connector

import datetime

# Database connection

def connect_db():

try:

return mysql.connector.connect(host="localhost", user="root", passwd="sps@123$",


database="stock")

except mysql.connector.Error as err:

print(f"Error: {err}")

return None

def clear_screen():

print("\n" * 5)

def product_mgmt(mydb):

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)")

choice = int(input("\t\tEnter Your Choice: "))

if choice == 1:
add_product(mydb)

elif choice == 2:

search_product(mydb)

elif choice == 3:

update_product(mydb)

elif choice == 4:

delete_product(mydb)

elif choice == 5:

break

def purchase_mgmt(mydb):

while True:

print("\t\t\t 1. Add Order")

print("\t\t\t 2. List Order")

print("\t\t\t 3. Back (Main Menu)")

choice = int(input("\t\tEnter Your Choice: "))

if choice == 1:

add_order(mydb)

elif choice == 2:

list_order(mydb)

elif choice == 3:

break

def sales_mgmt(mydb):

while True:
print("\t\t\t 1. Sale Items")

print("\t\t\t 2. List Sales")

print("\t\t\t 3. Back (Main Menu)")

choice = int(input("\t\tEnter Your Choice: "))

if choice == 1:

sale_product(mydb)

elif choice == 2:

list_sale(mydb)

elif choice == 3:

break

def user_mgmt(mydb):

while True:

print("\t\t\t 1. Add User")

print("\t\t\t 2. List Users")

print("\t\t\t 3. Back (Main Menu)")

choice = int(input("\t\tEnter Your Choice: "))

if choice == 1:

add_user(mydb)

elif choice == 2:

list_user(mydb)

elif choice == 3:

break
def db_mgmt(mydb):

while True:

print("\t\t\t 1. Database Creation")

print("\t\t\t 2. List Database")

print("\t\t\t 3. Back (Main Menu)")

choice = int(input("\t\tEnter Your Choice: "))

if choice == 1:

create_database(mydb)

elif choice == 2:

list_database(mydb)

elif choice == 3:

break

def create_database(mydb):

mycursor = mydb.cursor()

try:

print("Creating PRODUCT table")

aa = """CREATE TABLE IF NOT EXISTS product (

pcode INT(4) auto_increment PRIMARY KEY,

pname CHAR(30) NOT NULL,

pprice FLOAT(8,2),

pqty INT(4),

pcat CHAR(30));"""

mycursor.execute(aa)

print("Creating ORDER table")


sql = """CREATE TABLE IF NOT EXISTS orders (

orderid INT(4) auto_increment 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)

mydb.commit()

print("Creating SALES table")

sql = """CREATE TABLE IF NOT EXISTS sales (

salesid INT(4) auto_increment PRIMARY KEY,

salesdate DATE,

pcode CHAR(30) REFERENCES product(pcode),

pprice FLOAT(8,2),

pqty INT(4),

Total DOUBLE(8,2));"""

mycursor.execute(sql)

mydb.commit()

print("Creating USER table")

sql = """CREATE TABLE IF NOT EXISTS user (

uid CHAR(6) PRIMARY KEY,

uname CHAR(30) NOT NULL,

upwd CHAR(30));"""
mycursor.execute(sql)

mydb.commit()

print("Tables created successfully.")

except mysql.connector.Error as err:

print(f"Error: {err}")

finally:

mycursor.close()

def list_database(mydb):

mycursor = mydb.cursor()

mycursor.execute("SHOW TABLES;")

for table in mycursor:

print(table)

mycursor.close()

def add_order(mydb):

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 * 1000000 + now.month * 10000 + now.day * 100 + now.hour * 10 + now.minute * 1 +


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()

print("Order added successfully.")

mycursor.close()

def list_order(mydb):

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM orders")

clear_screen()

print("\t\t\t\t\t\t\t ORDER DETAILS")

print("-" * 85)

print("Order ID Date Product Code Price Quantity Supplier Category")

print("-" * 85)

for order in mycursor.fetchall():

print(order[0], "\t", order[1], "\t", order[2], "\t ", order[3], "\t", order[4], "\t ", order[5], "\t",
order[6])

print("-" * 85)

mycursor.close()

def add_product(mydb):

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: "))

mycursor.execute("SELECT COUNT(*) FROM product WHERE pcode=%s;", (code,))

cnt = mycursor.fetchone()[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()

print("Product added successfully.")

else:

print("\t\tProduct already exists.")

mycursor.close()

def update_product(mydb):

mycursor = mydb.cursor()

code = int(input("Enter the product code: "))

qty = int(input("Enter the quantity to add: "))

sql= "UPDATE product SET pqty = pqty + %s WHERE pcode = %s;"

mycursor.execute(sql, (qty, code))

mydb.commit()

print("\t\tProduct details updated.")

mycursor.close()

def delete_product(mydb):

mycursor = mydb.cursor()

code = int(input("Enter the product code: "))


sql= "DELETE FROM product WHERE pcode = %s;"

mycursor.execute(sql, (code,))

mydb.commit()

print(mycursor.rowcount, "record(s) deleted.")

mycursor.close()

def search_product(mydb):

while True:

print("\t\t\t 1. List all products")

print("\t\t\t 2. List product by code")

print("\t\t\t 3. List product by category")

print("\t\t\t 4. Back (Main Menu)")

choice = int(input("\t\tEnter Your Choice: "))

if choice == 1:

list_product(mydb)

elif choice == 2:

code = int(input("Enter product code: "))

list_product_by_code(mydb, code)

elif choice == 3:

cat = input("Enter category: ")

list_product_by_category(mydb, cat)

elif choice == 4:

break

def list_product(mydb):

mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM product")

clear_screen()

print("\t\t\t\t PRODUCT DETAILS")

print("\t\t", "-" * 47)

print("\t\t Code Name Price Quantity Category")

print("\t\t", "-" * 47)

for product in mycursor.fetchall():

print("\t\t", product[0], "\t", product[1], "\t", product[2], "\t ", product[3], "\t\t", product[4])

print("\t\t", "-" * 47)

mycursor.close()

def list_product_by_code(mydb, code):

mycursor = mydb.cursor()

sql = "SELECT * FROM product WHERE pcode = %s"

mycursor.execute(sql, (code,))

clear_screen()

print("\t\t\t\t PRODUCT DETAILS")

print("\t\t", "-" * 47)

print("\t\t Code Name Price Quantity Category")

print("\t\t", "-" * 47)

for product in mycursor.fetchall():

print("\t\t", product[0], "\t", product[1], "\t", product[2], "\t ", product[3], "\t\t", product[4])

print("\t\t", "-" * 47)

mycursor.close()

def list_product_by_category(mydb, cat):

mycursor = mydb.cursor()
sql = "SELECT * FROM product WHERE pcat = %s"

mycursor.execute(sql, (cat,))

clear_screen()

print("\t\t\t\t PRODUCT DETAILS")

print("\t\t", "-" * 47)

print("\t\t Code Name Price Quantity Category")

print("\t\t", "-" * 47)

for product in mycursor.fetchall():

print("\t\t", product[0], "\t", product[1], "\t", product[2], "\t ", product[3], "\t\t", product[4])

print("\t\t", "-" * 47)

mycursor.close()

def sale_product(mydb):

mycursor = mydb.cursor()

pcode = input("Enter product code: ")

mycursor.execute("SELECT COUNT(*) FROM product WHERE pcode = %s;", (pcode,))

cnt = mycursor.fetchone()[0]

if cnt != 0:

mycursor.execute("SELECT * FROM product WHERE pcode = %s;", (pcode,))

product = mycursor.fetchone()

print(product)

price = product[2]

pqty = product[3]

qty = int(input("Enter number of quantities: "))

if qty <= pqty:


total = qty * price

print("Collect Rs.", total)

mycursor.execute("SELECT COUNT(*) FROM sales") # Adjusted sales ID logic

#mydb.commit()

#sales_id =2#int(mycursor.fetchone())+1

sales_id = mycursor.fetchone()

sales_id = sales_id[0]+1

print(sales_id)

val = (sales_id, datetime.datetime.now(), pcode, price, qty, total)

sql = "INSERT INTO sales(salesid, salesdate, pcode, pprice, pqty, Total) VALUES({}, '0{}', '{}', {},{},
{})".format(sales_id, datetime.datetime.now(), pcode, price, qty, total)

mycursor.execute(sql)

mydb.commit()

mycursor.execute("UPDATE product SET pqty = pqty - %s WHERE pcode = %s", (qty, pcode))

mydb.commit()

else:

print("Quantity not available.")

else:

print("Product is not available.")

mycursor.close()

def list_sale(mydb):

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM sales")


print("\t\t\t\t SALES DETAILS")

print("-" * 80)

print("Sales ID Date Product Code Price Quantity Total")

print("-" * 80)

for sale in mycursor.fetchall():

print(sale[0], "\t", sale[1], "\t", sale[2], "\t ", sale[3], "\t\t", sale[4], "\t\t", sale[5])

print("-" * 80)

mycursor.close()

def add_user(mydb):

mycursor = mydb.cursor()

uid = input("Enter email ID: ")

name = input("Enter Name: ")

password = input("Enter Password: ")

sql = "INSERT INTO user (uid, uname, upwd) VALUES (%s, %s, %s);"

val = (uid, name, password)

mycursor.execute(sql, val)

mydb.commit()

print("User created successfully.")

mycursor.close()

def list_user(mydb):

mycursor = mydb.cursor()

mycursor.execute("SELECT uid, uname FROM user")

clear_screen()

print("\t\t\t\t USER DETAILS")

print("\t\t", "-" * 27)


print("\t\t UID Name")

print("\t\t", "-" * 27)

for user in mycursor.fetchall():

print("\t\t", user[0], "\t", user[1])

print("\t\t", "-" * 27)

mycursor.close()

def main():

mydb = connect_db()

create_database(mydb)

if mydb is None:

return

while True:

clear_screen()

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")

choice = int(input("Enter your choice: "))

if choice == 1:

product_mgmt(mydb)
elif choice == 2:

purchase_mgmt(mydb)

elif choice == 3:

sales_mgmt(mydb)

elif choice == 4:

user_mgmt(mydb)

elif choice == 5:

db_mgmt(mydb)

elif choice == 6:

break

mydb.close()

if __name__ == "__main__":

main()

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy