0% found this document useful (0 votes)
9 views

Payroll Management

Payroll management system
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Payroll Management

Payroll management system
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

CERTIFICATE

PROPOSED SYSTEM

Proposed system is a system which is computerized in


every manner. Computerized system is not just adding
machines but they are capable of doing much complex,
tedious and cumbersome tasks.
Processing of date by hand is satisfactory only when
the amount of data to be processed is small and also
the manual processing is slow, monotonous and
often subject error.
Above explanation is clearly telling us that existing
system contains a lot of deficiencies which can be
removed by only following proposed system. Now-a-
days, computer graph is at its extent. Computerization
contains a lot of benefits so that everyone is chasing
and following computerized items.
Now, question arises what kind of help this project or
computerized system can give to remove all
disadvantages of this existing system.
The proposed project "Payroll Management
System" has been developed to overcome the
problems faced in the practicing of manual
system. A payroll management system is a
software that is used to manage all your
employee's financial records in a simple and
automated fashion. This payroll management
system manages employee's salaries,
deductions, other conveyance, net pay,
bonuses and generation of pay-slips, etc.

This software is built to eliminate and in some


cases reduce the hardships faced by the
existing system. Moreover, this system is
designed for particular need of them company
to carry out its operations in a smooth and
effective manner.
The main objective of the Payroll Management System
is to manage the details of the Payments and Salary. It
manages all the information about the employees of
the organization and their payroll.
The main objectives of Payroll Management System
are:
• Provides the searching facilities of a particular
employee.
• The transactions are executed in the offline mode.
• Manage the information of salary
• Manage all the data of the employees working in
an organization.
• Displays the Salary Slip of all employees as well as
for a particular employee.
• Editing, adding, updating and deletion of records is
improved which results in proper resource
management of payments
Hardware:
• Processor: Pentium ®G2030 @3.70 GHz
• Processor Speed: 533 MHz
• RAM: 2GB or more
• Hard Disk: 2.00 GB
Software:
• Operating System: Windows 10
• IDE: IDLE Python
• Front End - Python 3.8
• Back End - MySQL server 8.0
Modules used in the Project:

1. MySQL connector:
This is used to connect MySQL database with python.

2. Datetime:
Using datetime module, current date and time will be
displayed in the project.

3. Tabulate:
Using tabulate module, we can design the structure of
table. Format of the table can be altered with this
module.
4. Inflect:
Using inflect module we can convert number into
words.
SYSTEM DESIGN OF PAYROLL
MANAGEMENT SYSTEM

In this phase, logical system is built which fulfils the given


requirements. Design phase of software development deals with
transforming the client’s requirements into a logically working
system, Normally, design is performed in the following in the following
two steps:

1. Primary Design Phase:


In this phase, the system is designed at block level. The blocks are
created on the basis of analysis done in the problem identification
phase. Different blocks are created for different functions emphasis is
put on minimizing the information flow between blacks. Thus, all
activities which require more interaction are kept in one block.

2. Secondary Design Phase:


In the secondary phase the detailed design of every block is performed.

The general tasks involved in the design process are the following:
1. Design various blocks for overall system processes.
2. Design smaller, compact and workable modules in each block.
3. Design various database structures.
4. Specify details of programs to achieve desired functionality,
5. Design the form of Inputs, and outputs of the system.
6. Perform documentation of the design.
7. System reviews.
USER INTERFACE DESIGN

User Interface Design is concerned with the dialogue


between a user and the computer. It is concerned with
everything from starting the system or logging into the
system to the eventually presentation of desired Inputs and
outputs. The overall flow of screens and messages are called
a dialogue
The following steps are various guidelines for User Interface
Design:
1. The system user should always be aware of what to do
next.
2. The screen should be formatted so that various types of
information, instructions and messages always appear in
the same general display area.
3. Message, instructions or information should be
displayed long enough to allow the system user to read
them.
4. Use display attributes sparingly.
5. Default values for fields and answers to be entered by
the user should be specified.
6. A user should not be allowed to proceed without
correcting an error.
7. The system user should never get an operating system
message or fatal errors.
FUTURE SCOPE OF PROJECT
In a nutshell, it can be summarized that the future scope of the
project circles around maintaining Information regarding
1. We can add printer in future.
2. We can give more advance software for Payroll
Management System including more facilities.
3. We will host the platform on online servers to make it
accessible worldwide.
4. Integrate multiple load balancers to distribute the loads of
the system.
5. Create the master and slave database structure to reduce
the overload of the database queries.

The above-mentioned points are the enhancements which can


be done to increase the applicability and usage of this project.
Here we can maintain the records of Payroll and Employee.
Also, as it can be seen that now-a-days the players are
versatile, i.e. so there is a scope for introducing a method to
maintain the Payroll Management System. Enhancements can
be done to maintain all the Payroll, Employee, Salary,
Appraisals, Working Points.
We have left all the options open so that if there is any other
future requirement in the system by the user for the
enhancement of the system then it is possible to implement
them. In the last we would like to thanks all the persons
involved in the development of the system directly or
indirectly. We hope that the project will serve its purpose for
which it is develop there by underlining success of process.
LIMITATIONS
Although we have put our best efforts to make the software flexible,
easy to operate but limitations cannot be ruled out even by me.
Though the software presents a broad range of options to its users
some intricate options could not be covered into it; partly because of
logistic and partly due to lack of sophistication, Paucity of time was
also major constraint, thus it was not possible to make the software
foolproof and dynamic. Lack of time also compelled me to ignore
some part such as storing old result of the candidate etc.

Considerable efforts have made the software easy to operate even


for the people not related to the field of computers but it is
acknowledged that a layman may find it a bit problematic at the first
instance. The user is provided help at each step for his convenience
in working with the software.

List of limitations which is available in the Payroll Management


System:
1. Excel export has not been developed for Payroll; Employee due
to some criticality.
2. The transactions are executed in off-line mode, hence on-line
data for Salary, Appraisals capture and modification is not
possible.
3. Off-line reports of Payroll, Working Points. Salary cannot be
generated due to batch mode execution.
CONCLUSION

Payroll System software developed for a company


has been designed to achieve maximum efficiency and
reduce the time taken to handle the payroll activity. It is
designed to replace and existing manual record system
thereby reducing time taken for calculations, updating,
searching and for storing data.
import mysql.connector
import datetime
from tabulate import tabulate

db=input ("Enter name of your database: ")

mydb=mysql.connector.connect(host="localhost",
user='root',
password='12345')
mycursor=mydb.cursor()

sql="CREATE DATABASE if not exists %s" % (db,)


mycursor.execute(sql)
print ("Database created Successfully..")
mycursor=mydb.cursor()
mycursor.execute("Use "+db)
TableName=input("Name of Table to be created:")
query="Create table if not exists "+TableName+" \
(empno int primary key, \
name varchar(15) not null,\
job varchar(15),\
BasicSalary int,\
DA float,\
HRA float,\
GrossSalary float,\
Tax float,\
NetSalary float)"
print("Table"+TableName+" created successfully....")
mycursor.execute(query)

while True:
print("\n\n\n")
print("*"*95)
print("\t\t\t\t\tMAIN MENU")
print("*"*95)
print("\t\t\t\t1. For Adding Employee records")
print("\t\t\t\t2. For Displaying Record of All the
Employees")
print("\t\t\t\t3. For displaying Record of a particular
Employee")
print("\t\t\t\t4. For deleting Records of all the Employees")
print("\t\t\t\t5. For Deleting a Record of a particular
employee")
print("\t\t\t\t6. For Modification in a record")
print("\t\t\t\t7. For displaying payroll")
print("\t\t\t\t8. For displaying Salary Slip for all the
Employees")
print("\t\t\t\t9. For displaying Salary Slip for a particular
Employee")
print("\t\t\t\t10.For Exit")
print("Enter Choice...",end=' ')
choice=int(input())
if choice==1:
try:
print('Enter employee information........')
mempno=int(input('Enter employee no:'))
mname=input('Enter employee name:')
mjob=input("Enter employee job:")
mbasic=float(input("Enter basic salary:"))
if mjob.upper()=='OFFICER':
mda=mbasic*0.5
mhra=mbasic*0.35
mtax=mbasic*0.2
elif mjob.upper()=='MANAGER':
mda=mbasic*0.45
mhra-mbasic*0.38
mtax=mbasic*0.15
else:
mda=mbasic*0.48
mhra=mbasic*0.25
mtax=mbasic*0.1
mgross=mbasic+mda+mhra
mnet=mgross-mtax
rec=(mempno, mname, mjob, mbasic, mda, mhra,
mgross, mtax, mnet)
query="insert into "+TableName+"
values(%s,%s,%s,%s,%s,%s,%s,%s,%s)"
mycursor.execute(query,rec)

mydb.commit()
print('Record added successfully....')
except Exception as e:
print('Something went wrong',e)
elif choice==2:
try:
query= 'select*from '+TableName
mycursor.execute(query)
print(tabulate(mycursor,headers=['EmpNo', 'Name',
'Job', 'Basic Salary', 'DA', 'HRA', 'gross Salary', 'Tax',
'NetSalary', 'Tax', 'Net Salary'], tablefmt='psql'))
'''myrecords=mycursor.fetchall()
for rec in myrecords:
print (rec)'''
except:
print('Something went wrong')

elif choice==3:
try:
en=input('Enter employee no. of the record to be
displayed...')
query="select * from "+TableName+" where
empno="+en
mycursor.execute(query)
myrecord=mycursor.fetchone()
print("\n\nRecord of Employee No:"+en)
print(myrecord)
c=mycursor.rowcount
if c==-1:
print('Nothing to display')
except:
print('Something went wrong')

elif choice==4:
try:
ch=input('Do you want to delete all the records (y/n)')
if ch.upper()=='Y':
mycursor.execute('delete from'+TableName)
mydb.commit()
print('All the records are deleted...')
except:
print('Something went wrong')

elif choice==5:
try:
en=input("Enter employee no. of the record to be
deleted...")
query='delete from '+TableName+' where empno='+en
mycursor.execute(query)
mydb.commit()
c=mycursor.rowcount
if c>0:
print('Deletion done')
else:
print('Employee no ',en,' not found')
except:
print('Something went wrong')

elif choice == 6:
try:
en=input("Enter employee no. of the record to be
modified...")
query='select * from '+TableName+' where
empno='+en
mycursor.execute(query)
myrecord=mycursor.fetchone()
c=mycursor.rowcount
if c==-1:
print('Empno '+en+' does not exist')
else:
mname=myrecord[1]
mjob=myrecord[2]
mbasic=myrecord[3]
print('empno :',myrecord[0])
print('name :',myrecord[1])
print('job :',myrecord[2])
print("basic :",myrecord[3])
print('da :',myrecord[4])
print("hra :",myrecord[5])
print('gross :',myrecord[6])
print('tax :',myrecord[7])
print('net :',myrecord[8])
print("-------------------------")
print("Type Value to modify below or just press
Enter for no change")
x=input("Enter name :")
if len(x)>0:
mname=x
x=input("Enter job :")
if len(x)>0:
mjob = x
x=input("Enter basic salary :")
if len(x)>0:
mbasic=float(x)
query='update '+TableName+ ' set
name='+"'"+mname+"'"+','+'job='+"'"+mjob+"'"+','+'basicsala
ry='+"'"+str(mbasic)+"'" ' where empno='+en
print(query)
mycursor.execute(query)
mydb.commit()
print("Record modified")
except:
print('Something went wrong')

elif choice ==7:


try:
query='select * from '+TableName
mycursor.execute(query)
myrecords=mycursor.fetchall()
print("\n\n\n")
print(95*'*')
print('Employee Payroll' .center(90))
print(95*'*')
now=datetime.datetime.now()
print("Current Date and Time:", end=' ')
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print()
print (95*'-')
print("%-5s %-15s %-10s %-8s %-8s %-8s %-9s %-8s %-
9s "\
%('Empno','Name', 'Job', 'Basic', 'DA','HRA', 'Gross',
'Tax', 'Net'))
print (95*"-")
for rec in myrecords:
print('%4d %-15s %-10s %8.2f %8.2f %8.2f %9.2f
%8.2f %9.2f' %rec)
print (95*'-')
except:
print('Something went wrong')
elif choice == 8:
try:
query='select * from '+TableName
mycursor.execute(query)
now = datetime.datetime.now()
print("\n\n\n")
print("-"*95)
print("\t\t\t\tSalary slip")
print("-"*95)
print("Current Date and Time:", end=' ')
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print(tabulate (mycursor, headers = ['EmpNo',
'Name', 'Job', 'Basic Salary', 'Da', 'Salary', 'Tax', 'Net Salary'],
tablefmt='psql'))
myrecords=mycursor.fetchall()
for rec in myrecords:
print('%4d %-15s %-10s %8.2f %8.2f %8.2f %9.2f
%8.2f %9.2f' %rec)
except:
print("something went wrong")

elif choice==9:
try:
en=input("Enter employee number whose pay slip
you want to retreive:")
query='select * from '+TableName+' where
empno='+en
mycursor.execute(query)
now = datetime.datetime.now()
print("\n\n\n\t\t\t\tSALARY SLIP ")
print("Current Date and Time:", end=' ')
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print(tabulate (mycursor, headers = ['EmpNo',
'Name', 'Job', 'Basic Salary', 'Da', 'Salary', 'Tax', 'Net Salary'],
tablefmt='psql'))
except Exception as e:
print('Something went wrong', e)
elif choice==10:
break
else:
print('wrong Choice')

You might also like