You are on page 1of 37

JAIPUR ENGINEERING COLLEGE AND RESEARCH CENTRE

DEPARTMENT OF
ELECTRONICS AND COMMUNICATION ENGINEERING

Session (2019-2020)

A Minor Project Report

On
Employee Payment Management System
Presented By

Sr.
Name R.T.U Roll Number
no.
1. Aditya Sharma 16EJCEC006
2. Aman Khandelwal 16EJCEC010
3. Anubhav Khandelwal 16EJCEC025
4. Devansh Singh Kushwaha 16EJCEC057

Submitted To: Project Guide:


Rajesh Kumar Bathija Jitendra Sharma
ACKNOWLEDGEMENT

The success and final outcome of this project requires a lot of guidance and
assistance from many people and we are extremely privileged to have this all
along till the completion of our project. All that we will do is only due to
supervision and assistance and we would not forget to thank them.

We respect and thank Mr. Rajesh Bathija , for providing us an opportunity to do


the project work and giving us all support and guidance. We are extremely
thankful to him for providing such a nice support, although he had busy schedule
managing the corporate affairs.

We owe my deep gratitude to our project guide Mr. Jitendra Sharma , who is
taking keen interest on our project work and guiding us all along, by providing all
the necessary information for developing a good system.

Last but not the least, we are grateful to all my friends who are helping me and
are always with me. We are heartily thankful to those people who are involved
directly or indirectly in this project for encouraging me whenever we need their
help in spite of their busy schedule.
ABSTRACT :

It is an Employee payment management system GUI application. It


is used to calculate the employee salary with overtime bonus in
weekly wages.
And also generate the employee payment slip with all details about
that employee.
Some of the employees are doing overtime work in this application
calculate the overtime payment based on how many hours he work
greater than the daily hours.
By condition employees mainly weekly working 40 hours above 40
hours it will consider as a overtime work it will benefit for the
employees because earn some extra money add with the whatever
weekly salary.
By mainly it is used weekly wages and also overtime employee salary
management system.
And also after giving hours per worked and wages per hour clicking
the weekly wages button then automatically shows tax, gross
payable, overtime bonus and net payable .It is main advantage of this
application.And also generate employee weekly wages payable slip
with date. In this we are using SQL and DJANGO to save the
employee data and there pay slips of last 2 years from current date
employee working in the company.
INDEX

Sr. No. TOPIC


1. Introduction
 Objective of payroll management
 Pay Roll description(main & and about project)
 Purpose of using payroll
 Payroll cycle
 Specifications of payroll management

2. Technologies
 PYTHON
 Introduction to python
 History of Python
 Python features
 Python graphical user interface (GUI)
 PYTHON TKinter GUI
 TKinter widges
 Geometry management
 SQL
 Introduction to SQL
 Database Management

3. Present payroll system


 Companies using payroll system
 Various methods available in market

Payroll Process
4.
 Pre – payroll process
 Post – payroll process

5. Advantages

6. Challenges and handling to implement the project


7. Application
8. Technical issues
9. Project description
10. Implementation
11. Project after implementation
12. Conclusion
Object of Payroll Management System
Developing a software and maintaining the salary management of the employee
on his hourly basis rate and adding more payment if the employee does
overtime.

Generating the pay slip at the end of the month according to working hours of
employee and deducing the taxes from the total amount.

Making a GUI which would me more user friendly.

Pay Roll Description


Payroll mistakes can happen faster than you think. For a moment, think about the
employees for whom monthly salary is the only source of income. Imagine what if
the salary is not paid accurately or there is a delay in releasing salary. Such
irregularities can take a toll on the morale of the employees and ultimately affect
the business productivity.
While ensuring accurate and timely payment of salary is important, adhering to
the various laws and regulations such as labor law, PF, PT and other statutory
compliance is also critical. Non-adherence with these laws can attract serious
legal and financial consequences.
To make sure that your employees are happy and you are law compliant, you
need to have a proper understanding of what payroll is and how to run payroll
effectively. We will start with the basics of payroll.
Brief Description of the Project
It is an employee payment management system GUI application. It is used to
calculate the employee salary with overtime bonus in weekly wages.
And also generate the employee payment slip with all details about that
employee.
Some of the employees are doing overtime work in this application we can
calculate the overtime payment based on how many hours he work greater than
the daily hours.
By condition employees mainly weekly working 40 hours above 40 hours it will
consider as a overtime work it will benefit for the employees because earn some
extra money add with the whatever weekly salary.
By mainly it is used weekly wages and also overtime employee salary
management system.
And also after giving hours per worked and wages per hour clicking the weekly
wages button then automatically shows tax, gross payable ,overtime bonus and
net payable. It is main advantage of this application. And also generate employee
weekly wages payable slip with date.

Purpose of using payroll


Managing accounts and maintaining proper records of all employees’ time and
attendance to prepare payroll manually is a complex and time consuming
process. Payroll system developed for small business has made the tasks easier.
Now, most of the companies prefer to use payroll software for their small
business to calculate employees’ salaries accurately and quickly.
A payroll system is an important software program that calculates payroll
accurately in compliance with taxing authority. These systems can calculate
taxes and deductions according to tax system.
Use of Payroll software is efficient way of calculating pays than a manual system.
Payroll software programs simplify information, generate reports, and minimize
manual efforts. The simplicity and effectiveness of payroll systems provide great
advantages to organizations. These systems allow easy management of
employees’ salaries, wages, taxes and other deductions.
Companies need to be extra careful while calculating taxes, EPF and SOCSO to
prevent any mistakes. Calculating salaries accurately builds trust among
employees therefore; easy to use payroll system is quite helpful in providing
accurate calculations. Payroll Software provides complete solution of your payroll
needs. Basically, payroll software helps with calculating paychecks from hours
logged in time and attendance tracking systems.
Payroll Cycle
Specification of Payroll management
Small business payroll software possesses significant user friendly features and
provides fast calculations with accuracy. Some features of payroll software are
stated below.
1. It can handle multi company transactions.
2. It can calculate bonuses, commissions and advance payments.
3. It can calculate monthly salary, EPF, SOCSO and PCB.
4. It can generate various management and operation reports.
5. It gives accurate calculation.
6. It is suitable to maintain employee profiles.
 Technologies
PYTHON
Python Language Introduction
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.
Python is a programming language that lets you work quickly and integrate
systems more efficiently.
Python is a high-level, interpreted, interactive and object-oriented scripting
language. Python is designed to be highly readable. It uses English keywords
frequently where as other languages use punctuation, and it has fewer
syntactical constructions than other languages.
 Python is Interpreted − Python is processed at runtime by the interpreter.
You do not need to compile your program before executing it. This is similar to
PERL and PHP.
 Python is Interactive − You can actually sit at a Python prompt and
interact with the interpreter directly to write your programs.
 Python is Object-Oriented − Python supports Object-Oriented style or
technique of programming that encapsulates code within objects.
 Python is a Beginner's Language − Python is a great language for the
beginner-level programmers and supports the development of a wide range of
applications from simple text processing to WWW browsers to games.

History of Python
Python was developed by Guido van Rossum in the late eighties and early
nineties at the National Research Institute for Mathematics and Computer
Science in the Netherlands.
Python is derived from many other languages, including ABC, Modula-3, C, C++,
Algol-68, SmallTalk, and Unix shell and other scripting languages.
Python is copyrighted. Like Perl, Python source code is now available under the
GNU General Public License (GPL).
Python is now maintained by a core development team at the institute, although
Guido van Rossum still holds a vital role in directing its progress.

Python Features
Python's features include −
 Easy-to-learn − Python has few keywords, simple structure, and a clearly
defined syntax. This allows the student to pick up the language quickly.
 Easy-to-read − Python code is more clearly defined and visible to the
eyes.
 Easy-to-maintain − Python's source code is fairly easy-to-maintain.
 A broad standard library − Python's bulk of the library is very portable
and cross-platform compatible on UNIX, Windows, and Macintosh.
 Interactive Mode − Python has support for an interactive mode which
allows interactive testing and debugging of snippets of code.
 Portable − Python can run on a wide variety of hardware platforms and
has the same interface on all platforms.
 Extendable − You can add low-level modules to the Python interpreter.
These modules enable programmers to add to or customize their tools to be
more efficient.
 Databases − Python provides interfaces to all major commercial
databases.
 GUI Programming − Python supports GUI applications that can be
created and ported to many system calls, libraries and windows systems, such
as Windows MFC, Macintosh, and the X Window system of Unix.
 Scalable − Python provides a better structure and support for large
programs than shell scripting.
Apart from the above-mentioned features, Python has a big list of good features,
few are listed below −
 It supports functional and structured programming methods as well as
OOP.
 It can be used as a scripting language or can be compiled to byte-code for
building large applications.
 It provides very high-level dynamic data types and supports dynamic type
checking.
 IT supports automatic garbage collection.
 It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.

Python graphical user interfaces (GUIs)


 Tkinter − Tkinter is the Python interface to the Tk GUI toolkit shipped with
Python. We would look this option in this chapter.
 wxPython − This is an open-source Python interface for
wxWindows http://wxpython.org.
 JPython − JPython is a Python port for Java which gives Python scripts
seamless access to Java class libraries on the local
machine http://www.jython.org.
There are many other interfaces available, which you can find them on the net.
PYTHON TKINTER GUI
Tkinter Programming

Tkinter is the standard GUI library for Python. Python when combined with
Tkinter provides a fast and easy way to create GUI applications. Tkinter provides
a powerful object-oriented interface to the Tk GUI toolkit.

Creating a GUI application using Tkinter is an easy task. All you need to do is
perform the following steps −
 Import the Tkinter module.
 Create the GUI application main window.
 Add one or more of the above-mentioned widgets to the GUI application.
 Enter the main event loop to take action against each event triggered by
the user.

Example

#!/usr/bin/python

import tkinter
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

This would create a following window −

Tkinter Widgets
Tkinter provides various controls, such as buttons, labels and text boxes used in a GUI
application. These controls are commonly called widgets.
There are currently 15 types of widgets in Tkinter. We present these widgets as well as a
brief description in the following table −

Sr.No. Operator & Description

1 Button
The Button widget is used to display buttons in your application.

2 Canvas
The Canvas widget is used to draw shapes, such as lines, ovals, polygons and
rectangles, in your application.

3 Checkbutton
The Checkbutton widget is used to display a number of options as checkboxes.
The user can select multiple options at a time.
4 Entry
The Entry widget is used to display a single-line text field for accepting values
from a user.

5 Frame
The Frame widget is used as a container widget to organize other widgets.

6 Label
The Label widget is used to provide a single-line caption for other widgets. It can
also contain images.

7 Listbox
The Listbox widget is used to provide a list of options to a user.

8 Menubutton
The Menubutton widget is used to display menus in your application.

9 Menu
The Menu widget is used to provide various commands to a user. These
commands are contained inside Menubutton.

10 Message
The Message widget is used to display multiline text fields for accepting values
from a user.

11 Radiobutton
The Radiobutton widget is used to display a number of options as radio buttons.
The user can select only one option at a time.

12 Scale
The Scale widget is used to provide a slider widget.

13 Scrollbar
The Scrollbar widget is used to add scrolling capability to various widgets, such as
list boxes.

14 Text
The Text widget is used to display text in multiple lines.

15 Toplevel
The Toplevel widget is used to provide a separate window container.

16 Spinbox
The Spinbox widget is a variant of the standard Tkinter Entry widget, which can
be used to select from a fixed number of values.

17 PanedWindow
A PanedWindow is a container widget that may contain any number of panes,
arranged horizontally or vertically.

18 LabelFrame
A labelframe is a simple container widget. Its primary purpose is to act as a spacer
or container for complex window layouts.

19 tkMessageBox
This module is used to display message boxes in your applications.
Geometry Management
All Tkinter widgets have access to specific geometry management methods,
which have the purpose of organizing widgets throughout the parent widget area.
Tkinter exposes the following geometry manager classes: pack, grid, and place.
 The pack() Method − This geometry manager organizes widgets in blocks
before placing them in the parent widget.
 The grid() Method − This geometry manager organizes widgets in a table-
like structure in the parent widget.
 The place() Method − This geometry manager organizes widgets by
placing them in a specific position in the parent widget.
SQL (Structure Query Language)
SQL tutorial gives unique learning on Structured Query Language and it helps to
make practice on SQL commands which provides immediate results. SQL is a
language of database, it includes database creation, deletion, fetching rows and
modifying rows etc.
SQL is an ANSI (American National Standards Institute) standard, but there are
many different versions of the SQL language.

What is SQL?
 SQL is Structured Query Language, which is a computer language for
storing, manipulating and retrieving data stored in relational database.
 SQL is the standard language for Relation Database System. All relational
database management systems like MySQL, MS Access, Oracle, Sybase,
Informix, postgres and SQL Server use SQL as standard database
language.
Also, they are using different dialects, such as:
 MS SQL Server using T-SQL.
 Oracle using PL/SQL
 MS Access version of SQL is called JET SQL (native format) etc.
 Allows users to access data in relational database management systems.
 Allows users to describe the data.
 Allows users to define the data in database and manipulate that data.
 Allows to embed within other languages using SQL modules, libraries & pre-
compilers.
 Allows users to create and drop databases and tables.
History:
 1970 -- Dr. E. F. "Ted" of IBM is known as the father of relational databases. He
described a relational model for databases.
 1974 -- Structured Query Language appeared.
 1978 -- IBM worked to develop Codd's ideas and released a product named
System/R.
 1986 -- IBM developed the first prototype of relational database and
standardized by ANSI. The first relational database was released by Relational
Software and its later becoming Oracle.
SQL Process:
When you are executing an SQL command for any RDBMS, the system
determines the best way to carry out your request and SQL engine figures out
how to interpret the task.
There are various components included in the process. These components are
Query Dispatcher, Optimization Engines, Classic Query Engine and SQL Query
Engine, etc. Classic query engine handles all non-SQL queries, but SQL query
engine won't handle logical files.
Following is a simple diagram showing SQL Architecture:
Some basic SQL create statement :

1. The SQL CREATE DATABASE Statement


Syntax:
CREATE DATABASE databasename;
CREATE DATABASE databasename;

2. The SQL DROP DATABASE Statement


Syntax:

DROP DATABASE databasename;

3. The SQL BACKUP DATABASE Statement


Syntax:

BACKUP DATABASE databasename


TO DISK = 'filepath';
4. The SQL CREATE TABLE Statement
Syntax:

CREATE TABLE table_name (


column1 datatype,
column2 datatype,
column3 datatype,
....
);

5. The SQL DROP TABLE Statement


Syntax:

DROP TABLE table_name;

6. The SQL ALTER TABLE Statement


Syntax:
ALTER TABLE table_name ALTER TABLE table_name
ADD column_name datatype; DROP COLUMN column_name;

ALTER TABLE table_name


ALTER COLUMN column_name
;datatype;
7. The SQL CONSTRAINTS Statement
Syntax:
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....
);
8. The SQL NOT NULL Statement
Syntax:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
9. The SQL UNIQUE Statement
Syntax:
CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
10.The SQL PRIMARY KEY Statement
Syntax:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
11.The SQL FOREIGN KEY Statement
Syntax:
CREATE TABLE Orders (
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
12. The SQL CHECK Statement
Syntax:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
13. The SQL DEFAULT Statement
Syntax:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
14. The SQL INDEX Statement
Syntax:
CREATE INDEX index_name
ON table_name (column1, column2, ...);
15. The SQL AUTO INCREMENT Statement
Syntax:
CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
16. The SQL DATES Statement
Syntax:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
17. The SQL VIEWS Statement
Syntax:
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
18. The SQL INJECTION Statement
Syntax:
txtUserId = getRequestString("UserId");
txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId;
Present payroll system
 Companies using payroll
 Gusto: This online payroll service suits small businesses.
Its users find it saves them time up to 75% for processing
payrolls. It is easy to setup with instructions in plain
English that’s helpful for users with less technical
knowledge.
 Xero: A full-service accounting platform that takes care of
invoicing, inventory, bank connections, and bank
reconciliation, among others. Its a payroll automation
services is an integral part of their productivity kit.
 ADP Workforce Now: It is a compact HR management tool
with a suite of solutions for the payroll management of
midsize businesses. One of its unique features is being
fully COBRA-compliant.
 Dayforce HCM: This payroll suite offers a rich set of
features that take care of payrolls, taxes, and workforce
management. It has effective multi-tasking capabilities
and HR tools.
 Wave: It is considered one of the most compact payroll
software suites that is available for free with payroll
automation and expense management capabilities. It suits
small and developing companies.
 Various methods available for payroll
 Excel based payroll management
 Payroll outsourcing
 Using payroll software
Payroll Process

 Pre-Payroll Process

 Defining payroll policy


The net amount to be paid is affected by multiple factors. The
company's various policies such as pay policy, leave and
benefits policy, attendance policy, etc. come into play at that
time. As a first step, such policies need to be well defined and
get approved by the management to ensure standard payroll
processing.

 Gathering inputs
Payroll process involves interacting with multiple departments
and personnel. There can be information like mid-year salary
revision data, attendance data, etc.
In smaller organizations, these inputs are received from a
consolidated source or fewer teams.
 Post-Payroll Process

 Payroll calculation
At this stage, the validated input data is fed into the payroll
system for actual payroll processing. The result is the net pay
after adjusting necessary taxes and other deductions. Once
payroll process is over, it is always a good practice to
reconcile the values and verify for accuracy to avoid any
errors.
Advantages:
 Time saving.
 Reduces the work of pen paper for the calculation of final salary
 Reduces time delay in generation of payslip of the employee
 User friendly
 Proper calculation of payment for employee on extra working hours.
 Employee can see his payslip online itself .
 After giving hours per worked and wages of per hours ,it automatically
shows the taxes, gross payable,over time bonus and net payable amount
at the end.
 Security end to end encryption.

Challenges and handling to implement the project


 Complexity in adding and removing employees and other limitations
like manual data entry, difficulty in extracting information, etc.
 Payroll officers were managing payroll on excel sheets.
 Generating pay slip as in form of pdf .
 Employee cannot enter his leave time and entry time in the app as it
can only be done by admin holding the accounts.

Application of payroll slip


 In small industries, offices where there is lot of employment.
 In big super markets for the calculation of wages of employee
working there according to their working hours.
 In every sector where there are lot of employees working in
single company.
 Through the payroll we would like to target the small sector where
employment is less as compare to the MNC’s .
Technical issues
 How the program saves data?
 How errors are detected and how the error messages are to be
displayed?
 What happens when we try to overwrite the data?
 Is the software user-friendly?

Project Description
The term payroll encompasses every employee who receives a regular
wage or other compensation. The different payment methods are
calculated by a payroll specialist and the appropriate paychecks are issued .
After a payroll accountant multiplies an employee’s hours by his/her pay

rate, the gross income amount is entered into a computer program…

Regular deductions such as tax withholdings, medical insurance etc. are


then categorized and subtracted. The remaining balance is then converted
to a check and becomes the employee’s net pay for that time period.
Setting up an effective payroll system is not difficult for trainer

professionals, but it can be very time consuming.

• A payroll system involves everything that has to do with the payment of


employees and the filing of employment taxes, keeping track of hours,
calculating salary, printing and delivering checks etc.
• Few of the possible deductions are:
• Health insurance
• Vacation days
• Sick days
• Employee loans
• Child support payments
• Workman’s compensation

THE MOST IMPORTANT MODULES OF THE DESIGN ARE :


• Employee data
• Payroll records
• Rates
• For the employee data module, one has to keep track of the id no., name,
pension plan agreement and payroll of an employee.
Final layout of software after implementation
IMPLEMENTATION

Technologies used - Python 3.6


Python Tkinter GUI
Language used - Python

 CODE OF PROJECT
import time
import datetime
from tkinter import *
import tkinter.messagebox

root=Tk()
root.title("Employee payroll system")
root.geometry('1350x650+0+0')
root.configure(background="powder blue")

Tops=Frame(root,width=1350,height=50,bd=8,bg="powder blue")
Tops.pack(side=TOP)

f1=Frame(root,width=600,height=600,bd=8,bg="powder blue")
f1.pack(side=LEFT)
f2=Frame(root,width=300,height=700,bd=8,bg="powder blue")
f2.pack(side=RIGHT)

fla=Frame(f1,width=600,height=200,bd=8,bg="powder blue")
fla.pack(side=TOP)
flb=Frame(f1,width=300,height=600,bd=8,bg="powder blue")
flb.pack(side=TOP)
lblinfo=Label(Tops,font=('arial',45,'bold'),text="Employee Payment Management system
",bd=10,fg="green")
lblinfo.grid(row=0,column=0)

def exit():
exit=tkinter.messagebox.askyesno("Employee system","Do you want to exit the system")
if exit>0:
root.destroy()
return

def reset():
Name.set("")
Address.set("")
HoursWorked.set("")
wageshour.set("")
Payable.set("")
Taxable.set("")
NetPayable.set("")
GrossPayable.set("")
OverTimeBonus.set("")
Employer.set("")
NINumber.set("")
txtpayslip.delete("1.0",END)
def enterinfo():
txtpayslip.delete("1.0",END)
txtpayslip.insert(END,"\t\tPay Slip\n\n")
txtpayslip.insert(END,"Name :\t\t"+Name.get()+"\n\n")
txtpayslip.insert(END,"Address :\t\t"+Address.get()+"\n\n")
txtpayslip.insert(END,"Employer :\t\t"+Employer.get()+"\n\n")
txtpayslip.insert(END,"NI Number :\t\t"+NINumber.get()+"\n\n")
txtpayslip.insert(END,"Hours Worked :\t\t"+HoursWorked.get()+"\n\n")
txtpayslip.insert(END,"Net Payable :\t\t"+NetPayable.get()+"\n\n")
txtpayslip.insert(END,"Wages per hour :\t\t"+wageshour.get()+"\n\n")
txtpayslip.insert(END,"Tax Paid :\t\t"+Taxable.get()+"\n\n")
txtpayslip.insert(END,"Payable :\t\t"+Payable.get()+"\n\n")
def weeklywages():
txtpayslip.delete("1.0",END)
hoursworkedperweek=float(HoursWorked.get())
wagesperhours=float(wageshour.get())

paydue=wagesperhours*hoursworkedperweek
paymentdue="INR",str('%.2f'%(paydue))
Payable.set(paymentdue)

tax=paydue*0.2
taxable="INR",str('%.2f'%(tax))
Taxable.set(taxable)

netpay=paydue-tax
netpays="INR",str('%.2f'%(netpay))
NetPayable.set(netpays)

if hoursworkedperweek > 40:


overtimehours=(hoursworkedperweek-40)+wagesperhours*1.5
overtime="INR",str('%.2f'%(overtimehours))
OverTimeBonus.set(overtime)
elif hoursworkedperweek<=40:
overtimepay=(hoursworkedperweek-40)+wagesperhours*1.5
overtimehrs="INR",str('%.2f'%(overtimepay))
OverTimeBonus.set(overtimehrs)
return

#===============================Variables==================================
====
Name=StringVar()
Address=StringVar()
HoursWorked=StringVar()
wageshour=StringVar()
Payable=StringVar()
Taxable=StringVar()
NetPayable=StringVar()
GrossPayable=StringVar()
OverTimeBonus=StringVar()
Employer=StringVar()
NINumber=StringVar()
TimeOfOrder=StringVar()
DateOfOrder=StringVar()

DateOfOrder.set(time.strftime("%d/%m/%Y"))

#================= Label Widget ========================================

lblName=Label(fla,text="Name",font=('arial',16,'bold'),bd=20,fg="red",bg="powder
blue").grid(row=0,column=0)
lblAddress=Label(fla,text="Address",font=('arial',16,'bold'),bd=20,fg="red",bg="powder
blue").grid(row=0,column=2)
lblEmployer=Label(fla,text="Employer",font=('arial',16,'bold'),bd=20,fg="red",bg="powde
r blue").grid(row=1,column=0)
lblNINumber=Label(fla,text="NI
Number",font=('arial',16,'bold'),bd=20,fg="red",bg="powder blue").grid(row=1,column=2)
lblHoursWorked=Label(fla,text="Hours
Worked",font=('arial',16,'bold'),bd=20,fg="red",bg="powder blue").grid(row=2,column=0)
lblHourlyRate=Label(fla,text="Hourly
Rate",font=('arial',16,'bold'),bd=20,fg="red",bg="powder blue").grid(row=2,column=2)
lblTax=Label(fla,text="Tax",font=('arial',16,'bold'),bd=20,anchor='w',fg="red",bg="powder
blue").grid(row=3,column=0)
lblOverTime=Label(fla,text="OverTime",font=('arial',16,'bold'),bd=20,fg="red",bg="powde
r blue").grid(row=3,column=2)
lblGrossPay=Label(fla,text="GrossPay",font=('arial',16,'bold'),bd=20,fg="red",bg="powder
blue").grid(row=4,column=0)
lblNetPay=Label(fla,text="Net Pay",font=('arial',16,'bold'),bd=20,fg="red",bg="powder
blue").grid(row=4,column=2)

#===================== Entry Widget =====================================

etxname=Entry(fla,textvariable=Name,font=('arial',16,'bold'),bd=16,width=22,justify='left'
)
etxname.grid(row=0,column=1)

etxaddress=Entry(fla,textvariable=Address,font=('arial',16,'bold'),bd=16,width=22,justify='
left')
etxaddress.grid(row=0,column=3)

etxemployer=Entry(fla,textvariable=Employer,font=('arial',16,'bold'),bd=16,width=22,justi
fy='left')
etxemployer.grid(row=1,column=1)
etxhoursworked=Entry(fla,textvariable=HoursWorked,font=('arial',16,'bold'),bd=16,width
=22,justify='left')
etxhoursworked.grid(row=2,column=1)

etxwagesperhours=Entry(fla,textvariable=wageshour,font=('arial',16,'bold'),bd=16,width=
22,justify='left')
etxwagesperhours.grid(row=2,column=3)

etxnin=Entry(fla,textvariable=NINumber,font=('arial',16,'bold'),bd=16,width=22,justify='le
ft')
etxnin.grid(row=1,column=3)

etxgrosspay=Entry(fla,textvariable=Payable,font=('arial',16,'bold'),bd=16,width=22,justify
='left')
etxgrosspay.grid(row=4,column=1)

etxnetpay=Entry(fla,textvariable=NetPayable,font=('arial',16,'bold'),bd=16,width=22,justif
y='left')
etxnetpay.grid(row=4,column=3)

etxtax=Entry(fla,textvariable=Taxable,font=('arial',16,'bold'),bd=16,width=22,justify='left')
etxtax.grid(row=3,column=1)

etxovertime=Entry(fla,textvariable=OverTimeBonus,font=('arial',16,'bold'),bd=16,width=2
2,justify='left')
etxovertime.grid(row=3,column=3)

#=============================== Text Widget


===================================
payslip=Label(f2,textvariable=DateOfOrder,font=('arial',21,'bold'),fg="red",bg="powder
blue").grid(row=0,column=0)
txtpayslip=Text(f2,height=22,width=34,bd=16,font=('arial',13,'bold'),fg="green",bg="pow
der blue")
txtpayslip.grid(row=1,column=0)

#=============================== Buttons ==================================

btnsalary=Button(flb,text='Weekly
Salary',padx=16,pady=16,bd=8,font=('arial',16,'bold'),width=14,fg="red",bg="powder
blue",command=weeklywages).grid(row=0,column=0)

btnreset=Button(flb,text='Reset',padx=16,pady=16,bd=8,font=('arial',16,'bold'),width=14,
command=reset,fg="red",bg="powder blue").grid(row=0,column=1)

btnpayslip=Button(flb,text='View
Payslip',padx=16,pady=16,bd=8,font=('arial',16,'bold'),width=14,command=enterinfo,fg="
red",bg="powder blue").grid(row=0,column=2)

btnexit=Button(flb,text='Exit
System',padx=16,pady=16,bd=8,font=('arial',16,'bold'),width=14,command=exit,fg="red",
bg="powder blue").grid(row=0,column=3)

root.mainloop()
CONCLUSION
This project has really been faithful and informative. It has made us learn
and understand the many trivial concepts of Python Language. As we have
used python Tkinter as a GUI it provides various controls, such as buttons,
labels and text boxes to build a user friendly application.
The fast growing use of internet confirms the good future and scope
of the proposed project.
Finally it has taught us a valuable lifelong lesson about the
improvements and working and interacting in a group.

You might also like