BDPYMST 6

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 16

!----------------------------------------------------------------------------!

! Report Name:BDPYMST.SQR !
!----------------------------------------------------------------------------!
! Description:Payroll Master Report:Employee Payroll Element Details !
! for a Calendar Group ID !
!****************************************************************************!

! !
! History Log !
!----------------------------------------------------------------------------!
! Mod-Date | Author | Purpose | Version !

!----------------------------------------------------------------------------!
! 01-MAR-2009 | L&T Infotech Ltd | Original Release | 1.0 !
!----------------------------------------------------------------------------!
! 30-JUN-2009 | L&T Infotech Ltd | Net amount rounded off | 1.1 !
!----------------------------------------------------------------------------!
!----------------------------------------------------------------------------!
! 01-SEP-2009 | L&T Infotech Ltd | Management Incentive should not be shown|
1.2!
! Termination date modified !
!----------------------------------------------------------------------------!
!----------------------------------------------------------------------------!
! 15-SEP-2009 | L&T Infotech Ltd | Modified to print PF number from PF |
1.3!
! Enrollment record GPIN_PF_ENROLL as prior!
! it was picked from PERS_NID and had the !
! format issue !
!----------------------------------------------------------------------------!
#include 'setenv.sqc' !Set environment
#include 'number.sqc' !Routines to format numbers
#include 'reset.sqc' !Reset Printer Procedure
#include 'curdttim.sqc' !Get Current Date Time
#include 'datemath.sqc' !SQR date arithmetic procedures
#include 'timemath.sqc' !SQR time arithmetic procedures
#include 'datetime.sqc' !Routines for date and time formatting
#include 'prcsapi.sqc' !Update Process Request API
#include 'prcsdef.sqc' !Routines to Update Run Status
#include 'stdapi.sqc' !Process Scheduler API
#define max 100

!***************************************************************************!

BEGIN-SETUP

create-array
name=header size={max}
field=pin:number:10

create-array
name=data size={max}
field=pin:number:10 field=amount:number:30

END-SETUP

!***************************************************************************!

BEGIN-PROGRAM
do Init-DateTime
do Init-Number
do Get-Current-DateTime
do Stdapi-Init
do Process-Main
Do Reset-Variables
do Stdapi-Term

END-PROGRAM

!***************************************************************************!
! Main Process for Procedure Calls
!***************************************************************************!
BEGIN-PROCEDURE Process-Main

Do Get-Input-Values
Let $RunDate = datenow()
Let $Execution_date = EDIT($rundate,'ddmmyyyy')
Show 'RunDate: ' $RunDate
Do Open-file
Do Reset-Variables
Do Print-Header
Do User_Accnt_Loc

if $input_acc_loc<>''
Do Check_Access
else
let #user_access=2
end-if

IF #user_access=1 or #user_access=2
Do Fetch_Employees
else
SHOW 'No Access to Accounting Location selected'
end-if
Do Reset-Variables
Close 1

END-PROCEDURE !Process-Main

!***************************************************************************!
! Open File
!***************************************************************************!

BEGIN-PROCEDURE Open-File

let $tab = chr(9)


let $lntfile = 'Payroll Master_'|| $Execution_date || '.csv'

BEGIN-SELECT
PRCSOUTPUTDIR &prcsoutputdir
LET $prcsoutputdir = &prcsoutputdir
let $prcsoutputdir = LTRIM(RTRIM($prcsoutputdir,' '),' ')
show 'Output Directory Path:' $prcsoutputdir
from PSPRCSPARMS
where PRCSINSTANCE= $prcs_process_instance
END-SELECT

let $cpprcs_filepath = $prcsoutputdir


let $output_file = $cpprcs_filepath || '\' || $lntfile
!let $output_file = 'C:\'|| $lntfile

OPEN $output_file as 1 for-writing record=20000:vary status=#filestat !Open the


file in Write mode
ENCODING = ANSI

if #filestat != 0 !if file not created stop execution with End-Of-Run


Display 'Cannot Open file...exiting...'
stop quiet
end-if
END-PROCEDURE

!***************************************************************************!
! Run Control Input Values Fetch
!***************************************************************************!

BEGIN-PROCEDURE Get-Input-Values

BEGIN-SELECT
LTRIM(RTRIM(INPUT.FROMDATE)) &period_bgn_dt
Let $period_bgn_dt = &period_bgn_dt
LTRIM(RTRIM(INPUT.DATE)) &period_end_dt
Let $period_end_dt = &period_end_dt
INPUT.DATE &check_dt
LTRIM(RTRIM(INPUT.GRADE)) &input_grade
Let $input_grade = &input_grade
SHOW 'Input Grade:'$input_grade
LTRIM(RTRIM(INPUT.BD_ACC_LOC)) &input_acc_loc
Let $input_acc_loc = &input_acc_loc
SHOW 'Input Accounting Location:'$input_acc_loc

from PS_BD_PAY_MAST INPUT


where INPUT.OPRID = $prcs_oprid
and INPUT.RUN_CNTL_ID = $prcs_run_cntl_id
END-SELECT

SHOW 'From Date: '$period_bgn_dt


SHOW 'To Date : '$period_end_dt
SHOW 'Elements to be displayed are picked from Section : EARNING RPT SEC'

END-PROCEDURE !Get-Input-Values

!************************************************************************!
! Print Header Row !
!************************************************************************!

BEGIN-PROCEDURE Print-Header

BEGIN-SELECT
LTRIM(RTRIM(INPUT.FROMDATE)) &perid_bgin_dt
Let $perid_bgin_dt = &perid_bgin_dt

from PS_BD_PAY_MAST INPUT


where INPUT.OPRID = $prcs_oprid
and INPUT.RUN_CNTL_ID = $prcs_run_cntl_id
END-SELECT

!SHOW 'From Date: '$perid_bgn_dt

!Let
#Month_Check=TO_NUMBER(DATETOSTR(STRTODATE(EDIT($period_bgn_dt,'mmddyyyy')),'MMM'))
Let $Month_Check = substr($perid_bgin_dt,0,3)
Let $Year_Check = substr($perid_bgin_dt,7,12)
Let $Run_Year = substr($Year_Check,0,5)

SHOW '$Month_Check: '$Month_Check


SHOW '$Year_Check: '$Year_Check
SHOW '$Run_Year: '$Run_Year

Let $header = 'Payroll Salary Register for the month of ' || $Month_Check || ',' ||
$Run_Year
Let $header1 = 'Report run date time ' || $RunDate

Let $header_str = 'Employee Code' || ',' || 'Last Name'|| ',' || 'First Name'|| ','
|| 'Grade'|| ',' || 'Accounting Location'|| ','|| 'Location'|| ',' || 'State'||
','|| 'Region'|| ','|| 'Paygroup'|| ','|| 'Department'|| ',' || 'PF No'|| ','
||'UAN No'|| ','|| 'ESIC No'|| ','||'PAN'||',' || 'Bank Account Number'|| ',' ||
'Account Name'|| ',' || 'IFSC CODE'|| ',' ||'Hire Date'|| ',' || 'Termination Date'
Let #a = 1
let #headerrows=0

write 1 from $header


! Added by Tripti to show run date
write 1 from $header1

BEGIN-SELECT
distinct (RST.PIN_NUM) &headerpin
PIN.PIN_CODE &headerpincode ! added on 01-SEP-09-start-do
not process for management inc.
Let $headerpincode = &headerpincode
!SHOW 'headerpincode: ' $headerpincode
IF $headerpincode <> 'MGMT INC IND'
Let #headerpin = &headerpin
Let header.pin(#a) = #headerpin
Let #a = #a +1
Let #headerrows=#a -1

LTRIM(RTRIM(PIN.DESCR )) &headerdescr
DTL.SEQ_NUM5 &seqnum

Let $headerdescr = &headerdescr


Let $header_str = $header_str || ',' || $headerdescr
END-IF ! added on 01-SEP-09-end
!FROM SOAIS ABD TUNNING
!PS_GP_RSLT_ERN_DED RST,PS_GP_PIN PIN,PS_GP_PYE_PRC_STAT MN,PS_GP_SECTION_DTL DTL
!WHERE MN.PRD_END_DT BETWEEN $period_bgn_dt AND $period_end_dt
!AND PIN.PIN_NUM=RST.PIN_NUM
!AND MN.CALC_TYPE='P'
!AND MN.RSLT_VER_NUM=1
!AND MN.RSLT_REV_NUM=1
!AND MN.ORIG_CAL_RUN_ID = MN.CAL_RUN_ID
!AND MN.CAL_RUN_ID=RST.CAL_RUN_ID
!AND MN.CAL_ID=RST.CAL_ID
!AND DTL.PIN_ELEM_NUM=RST.PIN_NUM
!AND DTL.PIN_NUM=(SELECT PIN_NUM FROM PS_GP_PIN WHERE PIN_CODE ='EARNING RPT SEC
IND' AND COUNTRY='IND')
!ORDER BY SEQ_NUM5
FROM
PS_GP_PYE_PRC_STAT MN,PS_GP_RSLT_ERN_DED RST,PS_GP_PIN PIN,PS_GP_SECTION_DTL DTL
WHERE MN.EMPLID=RST.EMPLID
AND MN.PRD_END_DT BETWEEN $period_bgn_dt AND $period_end_dt
AND MN.CALC_TYPE='P'
AND MN.RSLT_VER_NUM=1
AND MN.RSLT_REV_NUM=1
AND MN.ORIG_CAL_RUN_ID = MN.CAL_RUN_ID
AND PIN.PIN_NUM=RST.PIN_NUM
AND RST.CAL_RUN_ID=MN.CAL_RUN_ID
AND RST.CAL_ID=MN.CAL_ID
AND DTL.PIN_ELEM_NUM=RST.PIN_NUM
AND DTL.PIN_NUM='220390'
ORDER BY SEQ_NUM5

END-SELECT
Let $header_str = $header_str || ',' || 'Net'|| ',' || 'Gross'
write 1 from $header_str
END-PROCEDURE !Print-Header

!************************************************************************!
! Compare Input Accounting Location and !
!************************************************************************!

BEGIN-PROCEDURE Check_Access
Let #user_access=0

BEGIN-SELECT DISTINCT

ACC.BD_ACC_LOC &acc_loc_access
let #user_access=1

FROM PS_BD_GP_ACC_SETUP ACC


WHERE ACC.USER_CHAR2 = $prcs_oprid
and ACC.BD_ACC_LOC=$input_acc_loc
END-SELECT

END-PROCEDURE !Check_Access
!************************************************************************!
! Fetch User Accounting Location to Apply Accounting Location Security !
!************************************************************************!

BEGIN-PROCEDURE User_Accnt_Loc
let $useraccnt = '('
BEGIN-SELECT DISTINCT

ACC.BD_ACC_LOC &acc_loc
let $acc_loc=&acc_loc
Let $useraccnt = $useraccnt||''''||&acc_loc||''''||','

FROM PS_BD_GP_ACC_SETUP ACC


WHERE ACC.USER_CHAR2 = $prcs_oprid
END-SELECT

Let $useraccnt=rtrim($useraccnt,',')
Let $useraccnt=$useraccnt||')'
show 'User has access to Accounting Locations= ' $useraccnt
END-PROCEDURE !User_Accnt_Loc

!************************************************************************!
! Fetch Employees Resolved for the Calendar Group !
!************************************************************************!

BEGIN-PROCEDURE Fetch_Employees
let #count = 0

if #user_access=2
let $whereaccnting =''
Let $whereaccnting=$whereaccnting||'AND ACC.BD_ACC_LOC IN' || $useraccnt
else
let $whereaccnting =''
let $whereaccnting ='AND ACC.BD_ACC_LOC=''' ||$input_acc_loc||''''
end-if

IF $input_grade<>''
Let $whereinputgrd=''
Let $whereinputgrd='AND JOB.GRADE=''' ||$input_grade||''''
ELSE
Let $whereinputgrd=''
END-IF
SHOW $whereinputgrd

BEGIN-SELECT DISTINCT

LTRIM(RTRIM(STAT.EMPLID)) &emplid_main
let $emplid_main=&emplid_main
LTRIM(RTRIM(STAT.EMPL_RCD)) &empl_rcd_main
let $empl_rcd_main=&empl_rcd_main
LTRIM(RTRIM(STAT.GP_PAYGROUP)) &paygroup_main
let $paygroup_main=&paygroup_main

show 'Fetched Employees: ' $emplid_main


Do Fetch_Employees_Job
IF $emplid_main = $jobemplid !Added by SOAIS on 24-9-18
Do Fetch_Employees_Payroll

IF #payrollrows<>0 ! added on 20th June LnT Infotech


Do Element_Data
Do Get-Net-Gross
END-IF ! added on 20th June LnT Infotech
END-IF !Added by SOAIS on 24-9-18

FROM
PS_GP_PYE_PRC_STAT STAT, PS_GP_PYE_SEG_STAT SEG,PS_JOB JOB,PS_BD_JOB ACC,
PSROLEUSER R,PSOPRDEFN OPR
WHERE STAT.PRD_END_DT BETWEEN $period_bgn_dt AND $period_end_dt
AND STAT.CALC_TYPE='P'
and STAT.CAL_ID=SEG.CAL_ID
AND SEG.CAL_RUN_ID=STAT.CAL_RUN_ID
AND SEG.EMPLID=STAT.EMPLID
AND SEG.EMPL_RCD=STAT.EMPL_RCD
AND SEG.GP_PAYGROUP=STAT.GP_PAYGROUP
and JOB.EFFDT = (SELECT MAX(B_ED.EFFDT) FROM PS_JOB B_ED
WHERE JOB.EMPLID = B_ED.EMPLID
AND JOB.EMPL_RCD = B_ED.EMPL_RCD
AND B_ED.EFFDT <= $period_end_dt)
AND JOB.EFFSEQ =
(SELECT MAX(B_ES.EFFSEQ) FROM PS_JOB B_ES
WHERE JOB.EMPLID = B_ES.EMPLID
AND JOB.EMPL_RCD = B_ES.EMPL_RCD
AND JOB.EFFDT = B_ES.EFFDT)
AND ACC.EMPLID=JOB.EMPLID
AND ACC.EMPL_RCD=JOB.EMPL_RCD
AND ACC.EFFSEQ=JOB.EFFSEQ
AND ACC.EFFDT=JOB.EFFDT
and STAT.EMPLID=JOB.EMPLID
AND STAT.EMPL_RCD=JOB.EMPL_RCD
!AND STAT.GP_PAYGROUP=JOB.GP_PAYGROUP
AND SEG.RSLT_VER_NUM=1
AND SEG.RSLT_REV_NUM=1
AND OPR.OPRID=R.ROLEUSER
AND (CASE WHEN R.ROLEUSER = $prcs_oprid AND R.ROLENAME = 'BD_PAYROLL_USER' THEN 1
WHEN R.ROLEUSER = $prcs_oprid AND R.ROLENAME <> 'BD_PAYROLL_USER' AND
JOB.GRADE NOT IN (SELECT DISTINCT GRADE FROM PS_BD_CONF_GRD_TBL) THEN 1 END) = 1
[$whereinputgrd]
[$whereaccnting]
END-SELECT

show '#count' #count


END-PROCEDURE !Fetch_Employees

!************************************************************************!
! Fetch Job Data !
!************************************************************************!

BEGIN-PROCEDURE Fetch_Employees_Job

BEGIN-SELECT DISTINCT
JOB.EMPLID &jobemplid
Let $jobemplid = &jobemplid
LTRIM(RTRIM(JOB.EMPL_RCD)) &empl_rcd
Let $empl_rcd = &empl_rcd
LTRIM(RTRIM(N.LAST_NAME)) &lname
Let $lname = &lname
LTRIM(RTRIM(N.FIRST_NAME)) &fname
Let $fname = &fname
JOB.BUSINESS_UNIT &bu
Let $bu = &bu
JOB.DEPTID &dept
Let $dept = &dept
LTRIM(RTRIM(DEPT.DESCR)) &deptdescr
Let $deptdescr = &deptdescr
JOB.LOCATION &location
Let $location = &location
LTRIM(RTRIM(LOC.DESCR)) &locdescr
Let $locdescr = &locdescr
LTRIM(RTRIM(JOB.GP_PAYGROUP)) &paygroup
Let $paygroup = &paygroup
LTRIM(RTRIM(JOB.GP_ELIG_GRP)) &eliggrp
Let $eliggrp = &eliggrp
LTRIM(RTRIM(JOB.HIRE_DT)) &hire_dt
Let $hire_dt = &hire_dt
Let $hire_dt = EDIT($hire_dt,'dd-mon-yyyy')
!LTRIM(RTRIM(JOB.TERMINATION_DT)) &term_dt
! Let $term_dt = &term_dt
! Let $term_dt = EDIT($term_dt,'dd-mon-yyyy')

ACC.BD_ACC_LOC &accnt_loc
Let $accnt_loc = &accnt_loc
LTRIM(RTRIM(JOB.GRADE)) &grade
Let $grade = &grade

Do Termination_date !ADDED ON 1-SEP-09


Do Business_Unit
Do PF
Do ESIC
Do Bank_Details
Do PAN !ADDED ON 21-DEC-20 BY ABD
Do STATE !ADDED ON 23-DEC-20 BY ABD

FROM PS_JOB JOB,PS_LOCATION_TBL LOC,PS_BD_JOB ACC


,PS_NAMES N,PS_DEPT_TBL DEPT

WHERE JOB.EFFDT = (SELECT MAX(B_ED.EFFDT) FROM PS_JOB B_ED


WHERE JOB.EMPLID = B_ED.EMPLID
AND JOB.EMPL_RCD = B_ED.EMPL_RCD
AND B_ED.EFFDT <= $period_end_dt)
AND JOB.EFFSEQ =
(SELECT MAX(B_ES.EFFSEQ) FROM PS_JOB B_ES
WHERE JOB.EMPLID = B_ES.EMPLID
AND JOB.EMPL_RCD = B_ES.EMPL_RCD
AND JOB.EFFDT = B_ES.EFFDT)
AND JOB.EMPLID=N.EMPLID
AND N.NAME_TYPE='PRI'
AND N.EFFDT=(SELECT MAX(N1.EFFDT) FROM PS_NAMES N1 WHERE N.EMPLID=N1.EMPLID AND
N1.NAME_TYPE='PRI' AND N1.EFF_STATUS='A'
)AND N.NAME_TYPE='PRI' AND N.EFF_STATUS='A'
AND LOC.LOCATION=JOB.LOCATION
AND LOC.EFFDT=(SELECT MAX(LOC1.EFFDT) FROM PS_LOCATION_TBL LOC1 WHERE
LOC.LOCATION=LOC1.LOCATION AND LOC.SETID=LOC1.SETID)
AND LOC.EFF_STATUS='A'
AND JOB.DEPTID=DEPT.DEPTID AND DEPT.EFFDT=(SELECT MAX(D1.EFFDT) FROM PS_DEPT_TBL D1
WHERE D1.DEPTID=DEPT.DEPTID AND DEPT.SETID=D1.SETID )
AND DEPT.SETID=JOB.SETID_DEPT
AND JOB.EMPLID=$emplid_main
AND JOB.EMPL_RCD=$empl_rcd_main
!AND JOB.GP_PAYGROUP=$paygroup_main
AND ACC.EMPLID=JOB.EMPLID
AND ACC.EMPL_RCD=JOB.EMPL_RCD
AND ACC.EFFSEQ=JOB.EFFSEQ
AND ACC.EFFDT=JOB.EFFDT
END-SELECT
END-PROCEDURE !Fetch_Employees_Job

!************************************************************************!
! Procedure Termination date Description !
!************************************************************************!

BEGIN-PROCEDURE Termination_date

let $term_effdt = dateadd(&check_dt,'DAY',1)


show '$term_effdt:' $term_effdt

BEGIN-SELECT
LTRIM(RTRIM(MAX(J.TERMINATION_DT))) &term_dt
Let $term_dt = &term_dt
Let $term_dt = EDIT($term_dt,'dd-mon-yyyy')

FROM PS_JOB J
WHERE J.EMPLID=$emplid_main AND J.EMPL_RCD=$empl_rcd_main AND J.EFFDT<=$term_effdt

END-SELECT
END-PROCEDURE !Termination_date

!************************************************************************!
! Procedure Business Unit Description !
!************************************************************************!

BEGIN-PROCEDURE Business_Unit
Let $budescr=''

BEGIN-SELECT
BUS.DESCR &budescr
let $budescr=&budescr
FROM PS_BUS_UNIT_TBL_HR BUS WHERE BUSINESS_UNIT=$bu
END-SELECT
END-PROCEDURE !Business_Unit

!************************************************************************!
! Procedure National ID- Provident Fund !
!************************************************************************!

BEGIN-PROCEDURE PF
Let $pf = ''

!BEGIN-SELECT

!NID.NATIONAL_ID &pf
! Let $pf = &pf
!
!from PS_PERS_NID NID WHERE NID.NATIONAL_ID_TYPE='PF' AND NID.COUNTRY='IND'
!and NID.EMPLID= $emplid_main
!END-SELECT

Begin-Select
ENROLL.GPIN_REG_NBR &pf
Let $pf = &pf
ENROLL.Z_UAN_NO &uan
Let $uan = &uan
FROM PS_GPIN_PF_ENROLL ENROLL
WHERE ENROLL.EMPLID = $emplid_main

End-Select

END-PROCEDURE !PF

!************************************************************************!
! Procedure National ID- ESIC No !
!************************************************************************!

BEGIN-PROCEDURE ESIC
Let $esic=''
BEGIN-SELECT

NID.GPIN_REG_NBR &esic

Let $esic = &esic

from PS_GPIN_ESI_ENROLL NID WHERE NID.EFF_STATUS='A' AND NID.EMPLID= $emplid_main


AND NID.EFFDT=(SELECT MAX(B.EFFDT) FROM PS_GPIN_ESI_ENROLL B WHERE
NID.EMPLID=B.EMPLID)
END-SELECT
END-PROCEDURE !ESIC
!************************************************************************!
! Procedure National ID- PAN No !
!************************************************************************!
BEGIN-PROCEDURE PAN
Let $pan=''
BEGIN-SELECT

PAN.BD_PAN_NUMBER &pan

Let $pan = &pan

from PS_BD_EMPL_ATTACH PAN WHERE PAN.STATUS_CHANGE_ID='Approved'


and PAN.EMPLID= $emplid_main
END-SELECT
END-PROCEDURE !PAN

!************************************************************************!
! Procedure STATE !
!************************************************************************!

BEGIN-PROCEDURE STATE
Let $state=''
BEGIN-SELECT

ST.DESCR &state

Let $state = &state

from PS_LOCATION_TBL LOC,PS_STATE_TBL ST


WHERE LOC.STATE=ST.STATE
and LOC.LOCATION=$location
and ST.COUNTRY='IND'
END-SELECT
END-PROCEDURE !STATE
!************************************************************************!
! Procedure Bank Details !
!************************************************************************!

BEGIN-PROCEDURE Bank_Details
let $accnt_no = ''
Let $bank_cd =''
Let $ifsc =''
BEGIN-SELECT

BANK.ACCOUNT_EC_ID &accnt_no
Let $accnt_no = &accnt_no
BANK.ACCOUNT_NAME &bank_cd
Let $bank_cd = &bank_cd
IFSC.BANK_CD &ifsc
Let $ifsc = &ifsc

FROM PS_PYE_BANKACCT BANK ,PS_BD_PYE_BANK_ACT IFSC WHERE BANK.EMPLID=IFSC.EMPLID


AND IFSC.ACCOUNT_ID=1 AND BANK.EMPLID=$emplid_main AND BANK.EFF_STATUS='A'
AND BANK.ACCOUNT_ID=(SELECT MIN(BANK1.ACCOUNT_ID)FROM PS_PYE_BANKACCT BANK1
WHERE BANK1.EMPLID=BANK.EMPLID)
END-SELECT
END-PROCEDURE !Bank_Details

!************************************************************************!
! Procedure Payroll Data !
!************************************************************************!

BEGIN-PROCEDURE Fetch_Employees_Payroll
Let #payrollrows=0
Let #resetrows=0
Let #c=1
SHOW $jobemplid
SHOW $empl_rcd
SHOW $period_bgn_dt
SHOW $period_end_dt
SHOW $paygroup_main

BEGIN-SELECT
LTRIM(RTRIM(JOB.EMPLID)) &payemplid
Let $payemplid = &payemplid
LTRIM(RTRIM(JOB.EMPL_RCD)) &payemplrcd
LTRIM(RTRIM(PIN.PIN_TYPE)) &paypintype
Let $paypintype = &paypintype
PIN.PIN_NUM &paypinno
let #paypinno=&paypinno
PIN.PIN_CODE &paypincode ! added on 01-SEP-09
Let $paypincode = &paypincode ! added on 01-SEP-09
SUM(ED.CALC_RSLT_VAL + ED.CALC_ADJ_VAL) &payamount
let #payamount=&payamount

!show 'Employee-Payroll'$payemplid
!show 'Employee-RCD'&payemplrcd
!show 'Pin No-Payroll'#paypinno
!show 'Pay Amount' #payamount
!show 'Pay Pin code '$paypincode

IF $paypincode <> 'MGMT INC IND' ! added on 01-SEP-09


Let data.pin(#c) = #paypinno
Let data.amount(#c)=#payamount
Let #c = #c +1
Let #payrollrows=#c -1
Let #resetrows=#payrollrows

SHOW 'payroll rows' #payrollrows


END-IF ! added on 01-SEP-09

FROM PS_GP_RSLT_ERN_DED ED, PS_GP_PIN PIN, PS_JOB JOB, PS_GP_PYE_PRC_STAT ST


WHERE JOB.EMPLID=$jobemplid
and JOB.EMPL_RCD=$empl_rcd
AND JOB.EMPLID = ED.EMPLID
AND ED.PIN_NUM = PIN.PIN_NUM
AND ED.ORIG_CAL_RUN_ID = ED.CAL_RUN_ID
!AND JOB.EMPLID = ED.EMPLID ABD TUNING
!and JOB.EMPL_RCD=$empl_rcd ABD TUNING
AND JOB.EFFDT = (SELECT MAX(X.EFFDT) FROM PS_JOB X WHERE X.EMPLID = JOB.EMPLID
AND X.EMPL_RCD = JOB.EMPL_RCD AND X.EFFDT <= $period_end_dt)
AND JOB.EFFSEQ = (SELECT MAX(X1.EFFSEQ) FROM PS_JOB X1 WHERE X1.EMPLID = JOB.EMPLID
AND X1.EMPL_RCD = JOB.EMPL_RCD AND X1.EFFDT = JOB.EFFDT)
AND ED.EMPLID = ST.EMPLID
AND ED.CAL_RUN_ID = ST.CAL_RUN_ID
AND ED.EMPL_RCD = ST.EMPL_RCD
AND ED.EMPL_RCD=JOB.EMPL_RCD
AND ED.GP_PAYGROUP = ST.GP_PAYGROUP
AND ED.CAL_ID = ST.CAL_ID
AND ED.ORIG_CAL_RUN_ID = ST.ORIG_CAL_RUN_ID
AND ST.RSLT_VER_NUM = 1
AND ST.RSLT_REV_NUM = 1
AND ST.PRD_END_DT BETWEEN $period_bgn_dt AND $period_end_dt
!AND JOB.EMPLID=$jobemplid !ABD TUNING 23-05-2019
AND ST.CALC_TYPE='P'
!AND JOB.GP_PAYGROUP=$paygroup_main
GROUP BY JOB.EMPLID,PIN.PIN_TYPE ,PIN.PIN_NM,PIN.PIN_NUM,PIN.PIN_CODE,JOB.EMPL_RCD
! added on 01-SEP-09-pincode
END-SELECT

END-PROCEDURE !Fetch_Employees_Payroll

!************************************************************************!
! Get Element Amount !
!************************************************************************!

BEGIN-PROCEDURE Element_Data
let #count = #count + 1
! Remove any commas in the string
LET $locdescr =REPLACE($locdescr,',',' ')
LET $paygroup =REPLACE($paygroup,',',' ')
LET $budescr =REPLACE($budescr,',',' ')
LET $deptdescr =REPLACE($deptdescr,',',' ')
LET $lname =REPLACE($lname,',',' ')
LET $fname =REPLACE($fname,',',' ')
let $accnt_loc = '='||'"'||$accnt_loc||'"'
IF $accnt_no <> ''
let $accnt_no = '''' ||$accnt_no
else
let $accnt_no = ''
END-If

Let $data_str = $jobemplid || ',' || $lname|| ',' || $fname || ',' ||$grade|| ','
|| $accnt_loc || ',' || $location || ',' ||$state|| ',' ||$budescr|| ',' ||
$paygroup || ',' || $deptdescr|| ',' ||$pf|| ',' ||$uan|| ',' ||$esic|| ',' ||
$pan|| ',' ||$accnt_no|| ',' ||$bank_cd|| ',' ||$ifsc|| ',' || $hire_dt|| ',' ||
$term_dt
let #d=1
let #e=1
let #payrollpin=0
let #headerpin=0
let #printdata=''
let $found=''
!show 'Get Elements'
while #d<=#headerrows
let #headerpin=header.pin(#d)
!SHOW 'the header pin :'#headerpin
let #e=1
let $found=''
while #e<=#payrollrows
let #payrollpin=data.pin(#e)
!SHOW 'the payroll pin :'#payrollpin
if #headerpin=#payrollpin
let $found='1'
let $printdata=data.amount(#e)
Let $data_str = $data_str || ',' || $printdata
!show 'when found'$data_str
end-if
let #e=#e+1
end-while

if $found=''
let $blank='0'
Let $data_str = $data_str || ',' || $blank
end-if
let #d=#d+1
end-while

END-PROCEDURE Element_Data

!************************************************************************!
! Print Final String with Net and Gross !
!************************************************************************!

BEGIN-PROCEDURE Get-Net-Gross
Let #netamount=0
Let #grossamount=0

BEGIN-SELECT DISTINCT
SUM(ACC.PIN_NET_VAL ) &net
Let #net = &net
SUM(ACC.PIN_GROSS_VAL ) &gross
Let #gross = &gross

!show 'printing Net Gross'


let #netamount=#netamount+ #net
let #grossamount=#grossamount+ #gross

from PS_GP_PYE_SEG_STAT ACC ,PS_GP_PYE_PRC_STAT STAT


where ACC.EMPLID=$jobemplid
AND ACC.RSLT_VER_NUM=1
AND ACC.RSLT_REV_NUM=1
AND ACC.CAL_RUN_ID=ACC.ORIG_CAL_RUN_ID
AND ACC.EMPL_RCD=$empl_rcd
and ACC.GP_PAYGROUP=$paygroup_main
AND STAT.CALC_TYPE='P'
AND STAT.RSLT_VER_NUM=1
AND STAT.RSLT_REV_NUM=1
AND STAT.ORIG_CAL_RUN_ID = STAT.CAL_RUN_ID
and STAT.EMPLID=ACC.EMPLID
AND STAT.CAL_RUN_ID=ACC.CAL_RUN_ID
AND STAT.EMPL_RCD=ACC.EMPL_RCD
AND STAT.GP_PAYGROUP=ACC.GP_PAYGROUP
AND STAT.CAL_ID=ACC.CAL_ID
AND STAT.ORIG_CAL_RUN_ID=ACC.ORIG_CAL_RUN_ID
AND STAT.PRD_END_DT BETWEEN $period_bgn_dt AND $period_end_dt
GROUP BY STAT.EMPLID

END-SELECT

Let $netamount=round(#netamount,0)
Let $grossamount=#grossamount
Let $data_str = $data_str || ',' || $netamount|| ',' ||$grossamount
write 1 from $data_str
DO Reset-Data-Array
let $data_str = ''
END-PROCEDURE !Get-Net-Gross

!************************************************************************!
! Reset Data Array
!************************************************************************!

BEGIN-PROCEDURE Reset-Data-Array

let #r=1
let #reset=0
while #resetrows>=1
Let data.pin(#r)=#reset
Let data.amount(#r)=#reset
LET #TEST=data.amount(#r)
let #resetrows=#presetrows -1
let #r=#r+1
end-while

END-PROCEDURE !Reset-Data-Array

!************************************************************************!
! Reset Variables !
!************************************************************************!

BEGIN-PROCEDURE Reset-Variables

Let $payemplid =''


Let $paypintype =''
Let #payamount =''
Let #paypinno =''
Let $jobemplid =''
Let $lname =''
Let $fname =''
Let $bu =''
Let $dept =''
Let $deptdescr =''
Let $location =''
Let $locdescr =''
Let $paygroup =''
Let #net =''
Let #gross =''
let #prcgross =''
let #prcnet =''
let $empl_rcd =''
let $eliggrp =''
Let $calid =''
let $paygroup_main =''
let $paygroup_seg =''
let $empl_rcd_main =''
let $cal_id_main =''
let $emplid_main =''
let $bgn_dt_seg =''
let $hire_dt =''
let $term_dt =''
let $accnt_loc =''
let $prd_end_dt =''
let $grade =''
Let $pf =''
Let $uan =''
let $esic =''
Let $accnt_no =''
Let $useraccnt =''

END-PROCEDURE !Reset-Variables

You might also like