Académique Documents
Professionnel Documents
Culture Documents
If FM runs successfully (i.e. sy-subrc = 0 and lv_run_prms_rec = 1). It runs form routines
prms_recovery and prms_recovery_sepd.
It executes only for payroll run and check pay type is not equal to A. It
executes following checks and conditions-
++ Check separation
Copy the data from internal table p0001[] to lt_pa0001 and sort the lt_pa0001
on descending order by perner and begda.
Read the first record of lt_pa0001 and store on work area ls_pa0001.if no record
found it executes the routine for error.
"++ check employees with more than 15 years of service in NTPC find joining
date
"read 9000 for 1B: selection of info type pa9000 where employee action type is 1B and
set the 1B action date for variable lv_joining_date. If returns no value then
it select the table pa0302 and set the 1B action date on variable
lv_joining_date.
Select the table pa9001 on internal table lt_pa9001 against persg, begda. (T,
lv_joining_date) and call error routine (report_error) if trainee is not found.
If trainee found, it reads 1C action date for trainee from pa9000 and set the
begda of pa9000 as joining date.
If 1C is not found in pa9000 then it selects the table pa0302 and on the
successful execution set the 1C action date as joining date otherwise call the
error routine.
FIMA_DECIMAL_MONTHS_AND_YEARS:
Function Module
get joining date and separation date difference in monts to check 15yrs or 180 months.
It takes input parameters as separation date and joining date against 1C
(lv_joindt, lv_seprdt) and output parameter as difference month (lv_dtdiff).
Check difference month of employee group for cmd directors (persg = C). If
difference is less than 180 month then it return the routine.
HRPAY_READ_T511K: this function module is used for getting PRMS deduction amount
from input parameter country group, constant, pay roll date (40, ZPRAL and aper-
enda) constant ZPRML and output parameter as
Special Compensatory Allowance - Tanda - Limit