Laynetworks  
Web laynetworks.com Google
Home | Site Map | Tell a friends
Management Tutorials
Download
Tutorials
History
Computer Science
Networking
OS - Linux and Unix
Source Code
Script & Languages
Protocols
Glossary
IGNOU
Quiz
About Us
Contact Us
Feedback
 
Sign up for our Email Newsletter
 
Get Paid for Your Tech Turorials / Tips

 
Home > Source Code > The Employee information and Payroll system
Page : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
The Employee information and Payroll system
 

Contributed by Malisetty Siva Sankar

The Employee information and Payroll system. (FoxPro fullsource)

Program 1: Main.Prg
Purpose : Displays main menu with various actions for the user the work with the
database.

Code Begin:

SET ECHO OFF
SET CENTURY ON
SET CONF ON
CHOICE-1
DO WHILE CHOICE!=0
CLEAR
@1,8 TO 15,64
@2,25 SAY ‘MAIN MENU’
@4.20 SAY ‘1 EMPLOYEE JOINS’
@5.20 SAY ‘2 EMPLOYEE CHANCES’
@6,20 SAY ‘3. BROWSE EMPLOYEE’
@7.20 SAY ‘4. EMPLOYEE RESIGNS’
@8,20 SAY ‘5. PRINT PAYSLIP’
@9,20 SAY ‘6. SALARY REPORT’
@10,20 SAY ‘7. SANCTION LOAN ’
@11,20 SAY ‘8. LOAN REPORT ’
@12,20 SAY ‘9. LOAN ARCHIVE’
@13,20 SAY ’0 GET ME OUT’
@15,20 SAY ‘ CHOICE ‘ GET CHOICE
READ
DO CASE
CASE CHOICE=1
DO EADD
CASE CHOICE=2
DO ECHANCE
CASE CHOICE=3
DO EABOUT
CASE CHOICE=4
DO EDELETE
CASE CHOICE=5
DO PAYSLIP
CASE CHOICE=6
USE SALARY
BROW
CASE CHOICE=7
DO LOANDADD
CASE CHOICE=8
USE LOAN
BROW
CLOSE DATABASE
CASE CHOICE=9
USE LOANMASTER
BROW
CLOSE DATABASE
ENDCASE
ENDO

OUTPUT:

MAIN MENU OF PAYROLL SYSTEM

CLOSE DATA BASES
ENDCASE
ENDDO

OUTPUT:

MAIN MENU OF PAYROLL SYSTEM

TOP

Program 2: Eadd.prg
Purpose : Interacts with the user and adds new employee details to the database

Code Begin:

CLEAR
*GETTING NEW ID
USE EMPLOYEE
GO BOTTOM
EID=0
EID=EMP_ID
CLOSE DATABASES

*INITALIZING VARIABLES
EID=EID+1
ENAME=SPACE(20)
EADDR=SPACE(30)
EDOB=DATE()
EDOJ=DATE()
EDESIG=SPACE(10)
EDEPT=SPACE(10)
ELEVEL=0
EBASIC=0
EQUALIF=SPACE(10)

*GETTING INPUTS
@1,8 TO 15,64
@2,10 SAY ‘NEW EMPLOYEE ADDITION SCREEN’
@2,10 SAY ‘EMPLOYEE ID ‘+STR(EID)
@3,10 SAY ‘EMPLOYEE NAME’
@4,10 SAY ‘ADDRESS’
@5,10 SAY ‘DATE OF BIRTH’
@6,10 SAY ‘DATE OF JOINING’
@7,10 SAY ‘DEPARTMENT’
@8,10 SAY ‘DESIGNATION’
@10,10 SAY ‘LEVEL’
@11,10 SAY ‘BASIC PAY’
@12.10 SAY ‘QUALIFICATION’
@15,10 SAY ‘SAVE[Y/N]’
@4,30 GET ENAME VALID LEN(TRIM(ENAME))>0
@5,30 GET EADDR VALID LEN(TRIM(EADDR))>0
@6,30 GET EDOB
@7,30 GET EDOJ
@8,30 GET EDEPT VALID LEN(TRIM(EDESIG))>0
@9,30 GET EDEPT VALID ELEVEL > 400
@10,30 GET ELEVEL VALID ELEVEL > 0 .AND. ELEVEL < 9
@11,30 GET EBASIC VALID EBASIC > 400
@12,30 GET EQUALIF VALID LEN(TRIM(EQUALIF)>0
READ
CONFSAVE=’Y’
@15,30 GET CONFSAVE VALID CONFSAVE=’Y’ .OR. CONFSAVE=’N’
READ
IF CONFSAVE=’Y’
USE EMPLOYEE
REPLACE EMP_ID WITH EID
REPLACE EMP_NAME WITH ENAME
REPLACE EMP_ADDR WITH EADDDR
REPLACE EMP_DOB WITH EDOB
REPLACE EMP_DOJ WITH EDOJ
REPLACE EMP_DEPT WITH EDEPT
REPLACE EMP_TITLE WITH EDESIG
REPLACE EMP_GRADE WITH ELEVEL
REPLACE EMP_BASIC WITH EBASIC
REPLACE EMP_QUALIF WITH EQUALIF
ENDIF
USE
RETURN

ADDING NEW EMPLOYEE DETAILS

SAVE[Y/N]……:?

TOP

PROGRAM 3: ECHANGE.PRG
PURPOSE : Interacts with the user and modifies employee details in the database

Code Begin:

CLEAR
EID=1
RECFOUND=0

*GETTING INPUTS
@1,8 TO 15,64
@2,10 SAY ‘EMPLOYEE MODIFICATION SCREEN’
@3,10 SAY ‘EMPLOYEE ID’
@3,30 GET EID VALID EID > 0
READ

USE EMPLOYEE
GO TOP
DO WHILE NOT EOF()
IF EMP_ID=EID
SCATTER MEMVAR
RECFOUND=1
EXIT
ENDIF
IF RECNO()+1 <= RECCOUNT()
GOTO RECNO()+1
ELSE
EXIT
ENDIF
ENDDO
IF RECFOUND=1
@4,10 SAY ‘EMPLOYEE NAME’
@5,10 SAY ‘ADDRSS’
@610 SAY ‘DATE OF BIRTH’
@7,10 SAY ‘DATE OF JOINING’
@8,10 SAY ‘DEPARTMENT’
@9,10 SAY ‘DESIGNATION’
@10,10 SAY ‘LEVEL’
@11,10 SAY ‘BSIC PAY’
@12,10 SAY ‘QUALIFICATION’
@15,10 SAY ‘MODIFY[T/N]’
@4,30 SAY M.EMP_NAME
@5,30 SAY M.EMP_ADDR
@6,30 SAY M.EMP_DOB
@7,30 SAY M.EMP_DOJ
@8,30 SAY M.EMP_DEPT
@9,30 SAY M.EMP_TITLE
@10,30 SAY M.EMP_GRADE
@11,30 SAY M.EMP_BASIC
@12,30 SAY M.EMP_QUALIF
@15,30 GET CONFSAVE VALID CONFSAVE=’Y’ .OR. CONFSAVE=’N’
READ
IF CONFSAVE=’Y’
@15,10 SAY ‘SAVE[Y/N]’
@4,30 SAY GET M.EMP_NAME VALID LEN(TRIM(M.EMP_NAME))>0
@5,30 SAY GET M.EMP_ADDR VALID LEN(TRIM(M.EMP_ADDR))>0
@6,30 SAY GET M.EMP_DOB
@7,30 SAY GET M.EMP_DOJ
@8,30 SAY GET M.EMP_DEPT VALID LEN(TRIM(M.EMP_DEPT))>0
@9,30 SAY GET M.EMP_TITLE VALID LEN(TRIM(M.EMP_TITLE))>0
@10,30 SAY GET M.EMP_GRADE VALID M.EMP_BASIC > 400
@12,30 SAY GET M.EMP_QUALIF VALID LEN(TRIM(M.EMP_QUALIF))>0
READ
IF CONFSAVE=’Y’
GATHER MEMVAR
ENDIF
ENDIF
ELSE
@12,10 SAY “RECOD NOT FOUND” &&GET CONFSAVE
READ
ENDIF
USE
RETURN

MIDIFYING EMPLOYEE DETAILS

TOP

PROGRAM 4: EDELETE.PRG
PURPOSE “ Removes the details of an employee from the employee.dbf when he is resigning and adds the information to the employeearchive.dbf

Code Begin:

CLEAR
EID=1
RECFOUND=0
CONFSAVE=’Y’
*GETTING INPUTS
@1,8 TO 15,64
@2,10 SAY ‘EMPLOYEE DELETION SCREEN’
@3,10 SAY ‘EMPLOYEE ID’
@3.30 GET EID VALID EID > 0
READ

USE EMPLOYEE
GO TOP
DO WHILE NOT EOF()
IF EMP_ID=EID
SCATTER MEMVAR
RECFOUND=1
EXIT
ENDIF
IF RECNO()+1 <= RECCOUNT()
GOTO RECNO()+1
ELSE
EXIT
ENDIF
ENDDO

IF RECFOUNT=1
@4,10 SAY ‘EMPLOYEE NAME’
@5,10 SAY ‘ADDRESS’
@6,10 SAY ‘DATE OF BIRTH’
@7,10 SAY ‘DATE OF JOINING’
@8,10 SAY ‘DEPARTMENT’
@9,10 SAY ‘DESIGNATION’
@10,10 SAY ‘LEVEL’
@11,10 SAY ‘BASIC PAY’
@12,10 SAY ‘QUALIFICATION’
@13,10 SAY ‘DELETE [Y/N]’
@4,30 SAY ‘M.EMP_NAME’
@5,30 SAY ‘M.EMP_EDDR’
@6,30 SAY ‘M.EMP_DOB’
@7,30 SAY ‘M.EMP_DOJ’
@8,30 SAY ‘M.EMP_DEPT’
@9,30 SAY ‘M.EMP_TITLE’
@10,30 SAY ‘M.EMP_GRADE’
@11,30 SAY ‘M.EMP_BASIC’
@12,30 SAY ‘M.EMP_QUALIF’
@15,30 GET CONFSAVE VALID CONFSAVE=’Y’ .OR.. CONFSAVE=’N’
READ
IF CONFSAVE=’Y’
DELETE
PACK
USE EMPLOYEEARCHIVE
APPEND BLANK
M.UPDATED=DATE()
GATHER MEMVAR
ENDIF
ELSE
@12,10 SAY “RECORD NOT FOUND” &&GET CONFSAVE
READ
ENDIF
USE
RETURN

REMOVING DETAILS OF AN RESIGNED EMPLOYEE

DELETE [Y/N] Y

TOP

PROGRAM 5: PAYSLIP.PRG
PURPOSE : Prepares monthly pay slips for all the working for all the working employee. Gets month as an input and prints the pay slip. Does necessary calculation for net salary. If it finds that any employee has covered his due. The detail is removed from loan account and archieved to loan master.
Code Begin:

CLEAR
ENAME=” “
EID=” “
EDEPT=” “
ETITLE=” “
EGRADE=” “
EBASIC=0
EDA=0
EHRA=0
EDEDUCT=0
ELOANCODE=0
EMONTH=0
EYEAR=YEAR(DATE())
EGROSS=0
EDRAFT=’Y’

@1,18 TO 15,64
@2,10 SAY ‘PREPARE PAY SLIP’
@4,10 SAY “YEAR “+STR(EYER)
@6,10 SAY “MONTH”
@8,10 SAY “DRAFT[Y/N]”
@6,25 GET EMONTH VALID EMONTH > 0 .AND. EMONTH < 13
@8,25 GET EDRAFT VALID EDRAFT = ‘N’ .OR. EDRAFT=’Y’
READ

SELECT A
USE EMPLOYEE
GO TOP
SELECT B
USE ALLOWANCE
GO TOP
SELECT C
USE SALARY
GO BOTTOM
SELECT A

DO WHILE NOT EOF()
SCATTER MEMVAR
ENAME=EMP_NAME
EID=EMP_ID
EDEPT=EMP_DEPT
ETITLE=EMP_TITLE
EBASIC=EMP_EBASIC
EGRADE=EMP_GRADE
SELECT B
GO TOP
DO WHILE NOT EOF()
IF EGRADE=GRADE
EDA=(DA*EBASIC)/100
EHRA=(HRA*EBASIC)/100
EGROSS=EDA+EHRA
EXIT
ENDIF
IF RECNO()+1
ENDDO
SELECT C
GO TOP
DO WHILE NOT EOF()
IF EID-EMP_ID
IF PAID_AMT<LOAN_AMT
EDEDUCT=DEDUCT

ELOANCODE=LOAN_CODE
IF EDRAFT=’N’
PAID_AMT=PAID_AMT+DEDUCT
ENDIF
EXIT
ENDIF
ENDIF
IF RECONO()+1 > RECCOUNT()
EXIT
ENDIF
GO RECNO()+1
ENDDO
SELECT A
ENET=EGROSS-EDEDUCT
?’-----------------------X CUT HERE X------------------------------------‘
?’--------------------------------------------------------------------------------‘
?’ XYZ COMPANY (I) LTD.
?’ CHENNAI’
?’ PAY SLIP FOR’ + ENAME + ‘(EID:’ +STR(EID) + ‘)’
?’ ‘
?’ BASIC DA HRA GROSS DEDUCTIONS NET
?’ ‘ + STR(EBASIC) + ‘ ‘ +STR(EDA) + ‘ ‘ + STR(EHRA) + ‘ ‘+
STR(EGROSS) +’ ‘ +STR(EDEDUCT) +’ ‘ + STR(ENET)
?’ ‘
?’---------------------------------------------------------------------------------‘
?’ ‘
IF EDRAFT=’N’
SELECT D
APPEND BLANK
GATHER MEMVAR
REPLACE EMP_ID WITH EID
REPLACE EMP_DEPT WITH EDEPT
REPLACE EMP_TITLE WITH ETITLE
REPLACE GRADE WITH EGRADE
REPLACE DA WITH EHRA
REPLACE HRA WITH EHRA
REPLACE DEDUCT WITH EDEDUCT
REPLACE LOAN_CODE WITH ELOANCODE
REPLACE MONTH WITH EMONTH
REPLACE YEAR WITH EYEAR
ENDIF
IF RECNO()+ > RECCOUNT()
EXIT
ENDIF
GO RECNO()+1
ENDOD

OUTPUT
PAY SLIP INITIATION SCREEN

TOP

PROGRAM 6: Loanadd.prg
Purpose : Allows user to sanctions loan for an employee check if the employee hold a loan due. If found, loan details are displayed on request. If the employee has no open account, loan is sanctioned.

Code Begin:

CLEAR
EID=1
RECFOUND=0
CONFSAVE=’Y’
@1,8 TO 15,64
@2,10 SAY ‘LOAN SACTIONING SCREEN’
@3,30 GET EID VALID EDIT > 0
READ
USE EMPLOYEE
GO TOP
DO WHILE NOT EOF()
IF EMP_ID=EID

RECFOUND=1
EXIT
ENDIF
IF RECONO()+1 <= RECCOUNT()
GOTO RECNO()+1
ELSE
EXIT
ENDIF
ENDDO

IF RECFOUND=1
USE LOAN
GO BOTTOM
LID=0
LID=LOAN_COADE+1
RECFOUND=0
GO TOP
DO WHILE NOT EOF()
IF EMP_ID=EID
IF LOAN_AMT > PAID_AMT
RECFOUND=1
EXIT
ENDIF
ENDIF
IF RECON()+ 1 <= RECCOUNT()
GOTO RECNO()+1
ELSE
EXIT
ENDIF
ENDDO
CLOSE DATABSE
IF RECFOUND=0
LDATE=DATE()
LAMT=0
LDEDUCT=0
CLEAR
@1,8 TO 15,64
@2,10 SAY ‘LOAN SACTIONING SCREEN’
@4,10 SAY ‘LOAN’
@5,10 SAY ‘EMPLOYEE ID’
@6,10 SAY ‘SANCTION DATE’
@7,10 SAY ‘LOAN AMOUNT’
@8,10 SAY ‘DEDUCTION’
@4,30 SAY STR(LID)
@5,30 SAY STR(EID)
@6,30 GET LDATE
@7,30 GET LAMT VALID LAMT > 0
@8,30 GET LDEDUCT VALID LDEDUCT > 0 AND LDEDUCT <= LAMT
READ
USE LOAN
APPEND BLANK
REPLACE LOAN_CODE WITH LID
REPLACE EMP_ID WITH LID EID
REPLACE STDATE WITH LDATE
REPLACE LOAN_AMT WITH LAMT
REPLACE PAID_AMT WITH 0
REPLACE DEDUCT WITH LDEDUCT
CLOSE DATABASES
ELSE
@10,10 SAY “CANNOT SANCTION LAON.”
@11,10 SAY “EMPLOYEE ALREADY HAS AN OPEN ACCOUNT”
@12,10 SAY “WANT TO VIEW HIS RECORD [Y/N]”
@15,30 GET CONFSAVE VALID CONFSAVE=’Y’ .OR. CONFSAVE=’N’
READ
IF CONFSAVE=’Y’ THEN
USE LOAN
GO TOP
DO WHILE NOT EOF()
IF EMP_ID=EID
IF LOAN_AMT > PAID_AMT
LDATE=STDATE
LAMT=LOAN_AMT
LPAID=PAID_AMT
LDEDUCT=DEDUCT
EXIT
ENDIF
ENDIF
IF RECNO()+1 <= RECCOUNT()
GOTO RECNO()+1
ELSE
EXIT
ENDIF
ENDDO
CLEAR
@1,8 TO 15,64
@2,10 SAY ‘LOAN DETAILS SCREEN’
@4,10 SAY ‘LOAN CODE’
@5,10 SAY ‘EMPLOYEE ID’
@6,10 SAY ‘SANCTION DATE’
@7,10 SAY ‘LOAN AMOUNT’
@8,10 SAY ‘PAID AMOUNT’
@9,10 SAY ‘DEDUCTION’
@15,10 SAY ‘MODIFY [Y/N]’
@4,30 SAY STR(LID)
@5,30 SAY STR(EDI)
@6,30 SAY LDATE
@7,30 SAY LAMT
@8,30 SAY LPAID
@9,30 SAY LDEDUCT
@15,30 GET CONFSAVE VALID CONFSAVE=’Y’ .OR. CONFSAVE=’N’
READ
IF CONFSAVE=’Y’
@6,30 GET LDATE
@7,30 GET LAMT VALID LAMT > 0
@8,30 GET LPAD VALID LPAID > 0 AND LPAID <=LAMT
@9,30 GET LDEDUCT VALID LDEDUCT > 0 AND LDEDUCT <= LAMT
@15,10 SAY ‘SAVE CHANGES[Y/N]’
@15,30 GET CONFSAVE VALID CONFSAVE=’Y’ .OR. CONFSAVE=’N’
READ
IF CONFSAVE=’Y’
REPLACE LOAN_CODE WITH LID
REPLACE EMP_ID WITH EID
REPLACE STDATE WITH LDATE
REPLACE LOAN_AMT WITH LAMT
REPLACE PAID_AMT WITH 0
REPLACE DEDUCT WITH LDEDUCT
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
@12,10 SAY ‘INVALID EMPLOYEE IS’
READ
ENDIF
CLOSE DATABASE

OUTPUT
ENTERING LOAN DETAILS FOR AN EMPLOYEE

PAYROLL SYSTEM WILL SHOW ERROR IF EMPLOYEE HAS AN OPEN ACCOUNT

PAYROOL SYSTEM DISPLAYING LOAN DETAILS OF AN EMPLOYEE

MODIFY[Y/N] Y

End of Project


Back(Analysis)

TOP
 
Page : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   
Donation | Useful links | Link to Laynetworks.com | Legal
Copyright © 2000-2010 Lay Networks All rights reserved.