| |
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
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]……:?
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
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
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
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)
|
 |