0% found this document useful (0 votes)
105 views

Absence and Calculation Card Details

The document contains code for archiving data, mapping data elements to columns, and returning values. It also includes several formulas for evaluating leave entitlements based on religion, calculating duration of annual leave by subtracting holidays from a date range, and returning salary amounts based on assignment or termination context values. The formulas use inputs like start and end dates, person IDs, and context variables to perform their calculations and return outputs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views

Absence and Calculation Card Details

The document contains code for archiving data, mapping data elements to columns, and returning values. It also includes several formulas for evaluating leave entitlements based on religion, calculating duration of annual leave by subtracting holidays from a date range, and returning salary amounts based on assignment or termination context values. The formulas use inputs like start and end dates, person IDs, and context variables to perform their calculations and return outputs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

)*/

l_cleared = ARCHIVE_CLEAR() /* Clear Record */


RETURN
)

/* Setup data element to flex column mapping array */


C = EMPTY_TEXT_TEXT
C['PROCESS_SAL'] = '100'
/* Completed setup of data element to flex column mapping array */

/* Archive Data */
I = D.FIRST(' ')
WHILE D.EXISTS(I) LOOP (
IF C.EXISTS(I) THEN l_archived = ARCHIVE_VALUE('ACTION_INFORMATION'+C[I],D[I])
I = D.NEXT(I,' ')
)
l_archived = ARCHIVE_FLUSH()
RETURN

/******************************************************************************
FORMULA NAME: BZ EIDA LEAVE QUALIFICATION FORMULA
FORMULA TYPE: GLOBAL ABSENCE PLAN ENTITLEMENT
DESCRIPTION: THIS FORMULA EVALUATES THE ENTITLEMENT BAND BASED ON RELIGION OF
WORKER
*******************************************************************************/
DEFAULT FOR IV_END_DATE IS '1951/01/01 00:00:00' (Date)
DEFAULT FOR IV_START_DATE IS '1951/01/01 00:00:00' (Date)
DEFAULT FOR PER_PERSON_ENTERPRISE_HIRE_DATE IS '1951/01/01 00:00:00' (Date)
DEFAULT FOR L_CHECK_DATE IS '1951/01/01 00:00:00' (Date)

INPUTS ARE IV_START_DATE,


IV_END_DATE

L_CHECK_DATE = GREATEST(IV_START_DATE,PER_PERSON_ENTERPRISE_HIRE_DATE)
L_DATE = TO_CHAR(L_CHECK_DATE,'YYYY/MM/DD')
L_PERSON_ID = TO_CHAR(GET_CONTEXT(PERSON_ID,0))
L_RELIGION = GET_VALUE_SET('BZ_GET_EMPLOYEE_RELIGION','|=P_PERSON_ID='''||
L_PERSON_ID||''''||'|P_DATE='''||L_DATE||'''')

IF UPPER(L_RELIGION) = 'MUSLIM' THEN


(BAND1PAYFACTOR = 100
BAND1ENTITLEMENT = 130)
ELSE
(BAND1PAYFACTOR = 100
BAND1ENTITLEMENT = 15)

RETURN BAND1PAYFACTOR, BAND1ENTITLEMENT

/******************************************************************************
FORMULA NAME: BZ ANNUAL LEAVE DURATION
FORMULA TYPE: Global Absence Type Duration Formula
*******************************************************************************/
DEFAULT FOR IV_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR IV_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR IV_START_TIME IS '00:00'
DEFAULT FOR IV_END_TIME IS '23:59'

INPUTS ARE IV_START_DATE (DATE), IV_END_DATE (DATE),


IV_START_TIME(TEXT),IV_END_TIME(TEXT)
LN_ENTRY_DURATION_D = 0
LN_UNROUNDED_DURATION_D = 0
L_HOLIDAYS = 0
L_DURATION_EXC_HOL = 0
L_DURATION_INC_HOL = 0
DAYS_INDEX = 1
L_HOLIDAY_DAYS = 0
LD_PERIOD_START_DATE = TO_DATE(TO_CHAR(IV_START_DATE,'DD/MM/RRRR'))
LD_PERIOD_END_DATE = TO_DATE(TO_CHAR(IV_END_DATE,'DD/MM/RRRR'))
UNPAID_DAYS = DAYS_BETWEEN(LD_PERIOD_END_DATE,LD_PERIOD_START_DATE) + 1

L_PERSON_ID = TO_CHAR(GET_CONTEXT(PERSON_ID,0))

CALL_FORMULA('BZ GET HOLIDAY DAYS COUNT',


LD_PERIOD_START_DATE > 'START_DATE',
LD_PERIOD_END_DATE > 'END_DATE',
L_PERSON_ID > 'L_PERSON_ID',
L_HOLIDAYS < 'L_COUNT' DEFAULT 0)

DURATION = (DAYS_BETWEEN(LD_PERIOD_END_DATE,LD_PERIOD_START_DATE) + 1) - L_HOLIDAYS

RETURN DURATION

DEFAULT for CMP_ASSIGNMENT_SALARY_ANNUAL_FULLTIME_AMOUNT IS 0


DEFAULT for CMP_TERM_SALARY_ANNUAL_FULLTIME_AMOUNT IS 0

rule_value = ' '

if CONTEXT_IS_SET(HR_ASSIGNMENT_ID) then (
IF CMP_ASSIGNMENT_SALARY_ANNUAL_FULLTIME_AMOUNT WAS NOT DEFAULTED THEN (
rule_value = TO_TEXT(CMP_ASSIGNMENT_SALARY_ANNUAL_FULLTIME_AMOUNT)
)
)
if rule_value = ' ' and CONTEXT_IS_SET(HR_TERM_ID) then (

You might also like