You are on page 1of 8

create or replace package body XXX_SIT_ELEMENT_ENTRY_PKG as

procedure XXX_SIT_ELEMT_ENTRY_P AS
V_DATE DATE ;
l_start_date_out date;
l_end_date_out date;
l_element_entry_id number;
l_PROCESS_FLAG CHAR;
NO_OF_INS NUMBER;
BS_AMT NUMBER;
CURSOR CC IS

SELECT
a.ID_FLEX_NUM,
FIS.ID_FLEX_STRUCTURE_CODE,
A.PERSON_ANALYSIS_ID , -- WILL STORE IN Element Entries Dff attribute4 and
attribute5='Y'
C.BUSINESS_GROUP_ID,
C.PERSON_ID,
C.EMPLOYEE_NUMBER,
C.FULL_NAME,
B.SEGMENT1 l_entry_value1 ,
B.SEGMENT2 l_entry_value2 ,
B.SEGMENT3 l_entry_value3 ,
B.SEGMENT4 l_entry_value4 ,
B.SEGMENT5 l_entry_value5 ,
B.SEGMENT6 l_entry_value6 ,
B.SEGMENT7 l_entry_value7 ,
B.SEGMENT8 l_entry_value8 ,
B.SEGMENT9 l_entry_value9 ,
B.SEGMENT10 l_entry_value10,
B.SEGMENT11 l_entry_value11,
B.SEGMENT12 l_entry_value12,
B.SEGMENT13 l_entry_value13,
B.SEGMENT14 l_entry_value14,
B.SEGMENT15 l_entry_value15,
NVL(COUNTRY.MEANING,COUNTRY2.MEANING), --- NATIONALITY DXB
xxhr_oig_payroll_all.GET_HOUSING_ALLOWANCE_V1 (
ASG.assignment_id ,
NVL(COUNTRY.MEANING,COUNTRY2.MEANING),
nvl(nvl(c.ATTRIBUTE23,pg.ATTRIBUTE1),'No'),
pg.name,
xxx_get_basic_sal( c.PERSON_ID,c.BUSINESS_GROUP_ID),
1
) housing_allowance

FROM PER_PERSON_ANALYSES A,
PER_ANALYSIS_CRITERIA B,
PER_ALL_PEOPLE_F C,
per_assignments_f ASG,
FND_ID_FLEX_STRUCTURES FIS,
(select lookup_code ,meaning from HR_LOOKUPS ff where ff.LOOKUP_TYPE =
'NATIONALITY' and ff.ENABLED_FLAG='Y' ) COUNTRY,
(select lookup_code ,meaning from HR_LOOKUPS ff where ff.LOOKUP_TYPE =
'AE_NATIONALITY' and ff.ENABLED_FLAG='Y' ) COUNTRY2,
per_grades pg
WHERE b.ID_FLEX_NUM =FIS.ID_FLEX_NUM
---(select ID_FLEX_NUM from FND_ID_FLEX_STRUCTURES where ID_FLEX_STRUCTURE_CODE =
'OIG_BUSINESS_TRIP')
and a.analysis_criteria_id = b.analysis_criteria_id
AND A.PERSON_ID=C.PERSON_ID
AND C.PERSON_ID=ASG.PERSON_ID
and asg.GRADE_ID=pg.GRADE_ID(+)
and asg.BUSINESS_GROUP_ID=pg.BUSINESS_GROUP_ID(+)
---AND C.EMPLOYEE_NUMBER IN ('800024','200322')
AND ASG.PRIMARY_FLAG='Y'
AND COUNTRY.lookup_code(+)=C.NATIONALITY
AND COUNTRY2.lookup_code(+)=C.PER_INFORMATION18
AND SYSDATE BETWEEN ASG.EFFECTIVE_START_DATE AND ASG.EFFECTIVE_END_DATE
AND SYSDATE BETWEEN c.EFFECTIVE_START_DATE AND c.EFFECTIVE_END_DATE
AND A.PERSON_ANALYSIS_ID NOT IN (SELECT NVL(FF.ATTRIBUTE15,0) PERSON_ANALYSIS_ID
FROM PER_PERSON_ANALYSES FF
WHERE FF.ATTRIBUTE15 IS NOT NULL)

and ID_FLEX_STRUCTURE_CODE in ('OIG_BUSINESS_TRIP',


'CBOB_DXB_SCHOOL_FEES_REIMB',
'CBOB_DXB_BUS_TRAVEL_EXPS',
'OIG_HOWSING_ALLOWANCE',
'CBOB_RUH_HOWSING_ALLOWANCE',
'CBOB_DXB_HOUSING_ALLOWANCE_ADV'
);

--SELECT NATIONALITY FROM PER_ALL_PEOPLE_F WHERE NATIONALITY IS NOT NULL AND


BUSINESS_GROUP_ID =82 PERSON_ID =99

BEGIN
FOR C IN CC LOOP
IF c.ID_FLEX_STRUCTURE_CODE='OIG_BUSINESS_TRIP' THEN
DBMS_OUTPUT.put_line('Start Date:'||C.l_entry_value1||' End Date:'||
C.l_entry_value2||' Region:'||C.l_entry_value8||' Country:'||C.l_entry_value9 );
--- P_ELEMENT_NAME =>'Business Trip Allowance',
XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME =>'Business Trip Allowance',
p_input_name_1 => 'Trip Start Date',
p_input_name_2 => 'Trip End Date',
p_input_name_7 =>'Country' ,
p_input_name_8 => 'Region Name',
p_input_value_1 => to_char(to_date(C.l_entry_value1,'yyyy/mm/dd
hh24:mi:ss'),'dd-mon-yyyy'),
p_input_value_2 => to_char(to_date(C.l_entry_value2,'yyyy/mm/dd
hh24:mi:ss'),'dd-mon-yyyy'),
p_input_value_8 => C.l_entry_value8,
p_input_value_7 =>C.l_entry_value9,

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);

ELSIF c.ID_FLEX_STRUCTURE_CODE='CBOB_DXB_SCHOOL_FEES_REIMB' THEN


DBMS_OUTPUT.put_line('Child Name:'||C.l_entry_value1||' Amount:'||
C.l_entry_value2||' Year:'||C.l_entry_value3||' Comments:'||C.l_entry_value4 );
-- P_ELEMENT_NAME =>'School Fees Reimbursement'
XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME =>'School Fees Reimbursement',
p_input_name_1 => 'Pay Value',
p_input_name_2 => 'Child Name',
p_input_name_3 => 'Year' ,
p_input_name_4 => 'Comments',
p_input_value_1 => C.l_entry_value2, --- PAY VALUE
p_input_value_2 => C.l_entry_value1, --- CHILDREN NAME
p_input_value_3 => C.l_entry_value3,
p_input_value_4 => C.l_entry_value4,

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);

ELSIF c.ID_FLEX_STRUCTURE_CODE='CBOB_DXB_BUS_TRAVEL_EXPS' THEN


DBMS_OUTPUT.put_line('Expense Date From:'||C.l_entry_value1||' Expense Date
To:'||C.l_entry_value2||' Amount:'||C.l_entry_value3||' Comments:'||
C.l_entry_value4 );
-- P_ELEMENT_NAME =>'School Fees Reimbursement'
XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME => 'Travel Expense',
p_input_name_1 => 'Expense From',
p_input_name_2 => 'Expense To',
p_input_name_3 => 'Pay Value' ,
p_input_name_4 => 'Currency',
p_input_name_5 => 'Expense Description',
p_input_value_1 => TO_CHAR(TO_DATE(TRIM(C.l_entry_value1),'YYYY/MM/DD
HH24:MI:SS'),'DD-MON-YYYY') , --- PAY VALUE
p_input_value_2 => TO_CHAR(TO_DATE(TRIM(C.l_entry_value2),'YYYY/MM/DD
HH24:MI:SS'),'DD-MON-YYYY') , --- CHILDREN NAME
p_input_value_3 => C.l_entry_value3,
p_input_value_4 => C.l_entry_value15,
p_input_value_5 => C.l_entry_value4,

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);
ELSIF c.ID_FLEX_STRUCTURE_CODE='CBOB_DXB_WORK_ON_OFF_DAY_APPRV' THEN
DBMS_OUTPUT.put_line('Expense Date From:'||C.l_entry_value1||' Expense Date
To:'||C.l_entry_value2||' Amount:'||C.l_entry_value3||' Comments:'||
C.l_entry_value4 );
-- P_ELEMENT_NAME =>'School Fees Reimbursement'
XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME => 'Compensatory Leave Plan Carried Over',
p_input_name_1 => 'Entry Effective Date',
p_input_name_2 => 'Expiration Date',
p_input_name_3 => 'Plan Days' ,
p_input_value_1 => TO_CHAR(TO_DATE(TRIM(C.l_entry_value2),'YYYY/MM/DD
HH24:MI:SS')+1,'DD-MON-YYYY') , --- PAY VALUE
p_input_value_2 => TO_CHAR(TO_DATE(TRIM(C.l_entry_value2),'YYYY/MM/DD
HH24:MI:SS')+365,'DD-MON-YYYY') , --- CHILDREN NAME

-- p_input_value_1 => to_char(to_date (C.l_entry_value2)+1,'DD-MON-YYY'),


--- Entry Effective Date (End date +1) to_char(to_date (C.l_entry_value2)+1,'DD-
MON-YYY')
--- p_input_value_2 => to_char(to_date (C.l_entry_value2)+365,'DD-MON-
YYY'), --- CHILDREN NAME
p_input_value_3 => C.l_entry_value3,

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);
ELSIF c.ID_FLEX_STRUCTURE_CODE='OIG_HOWSING_ALLOWANCE' THEN
IF C.l_entry_value1 ='Half Yearly' THEN
BS_AMT :=C.housing_allowance * 6;
NO_OF_INS :=6 ;
ELSE
BS_AMT :=C.housing_allowance * 12;
NO_OF_INS :=12 ;
END IF;

DBMS_OUTPUT.put_line('Housing Allowance:'||BS_AMT||' Instalment:'||


NO_OF_INS );
-- P_ELEMENT_NAME =>'School Fees Reimbursement'
XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME =>'Housing Allowance Advance',
-- p_input_name_1 => 'Pay Value',
p_input_name_1 => 'Override Value',
p_input_name_2 => 'Reason' ,
---p_input_name_4 => 'Comments',
p_input_value_1 => BS_AMT, --- Override VALUE
p_input_value_2 => C.l_entry_value2,
---p_input_value_3 => C.l_entry_value2,
-- p_input_value_4 => C.l_entry_value4,

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);

XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME =>'Housing Advance Recovery',
p_input_name_1 => 'Amount',
p_input_name_2 => 'Installment Amount',
p_input_name_3 => 'No Of Installments' ,
p_input_name_4 => 'Deduction Start Date',
-- p_input_name_5 => 'Total Recovered',
-- p_input_name_6 => 'Hold',
--- p_input_name_7 => 'Pay Value',
p_input_value_1 => BS_AMT, --- PAY VALUE
p_input_value_2 => c.housing_allowance, --- CHILDREN NAME
p_input_value_3 => NO_OF_INS,
p_input_value_4 => to_char(sysdate,'DD-MON-RRRR'),

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);

ELSIF c.ID_FLEX_STRUCTURE_CODE='CBOB_RUH_HOWSING_ALLOWANCE' THEN

dbms_output.put_line('CBOB_RUH_HOWSING_ALLOWANCE');
IF C.l_entry_value1 ='Yes' THEN
-- P_ELEMENT_NAME =>'School Fees Reimbursement'
XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME =>'Housing Allowance Advance',
-- p_input_name_1 => 'Pay Value',
p_input_name_1 => 'Override Value',
p_input_name_2 => 'Reason' ,
---p_input_name_4 => 'Comments',
p_input_value_1 => C.housing_allowance, --- Override VALUE
p_input_value_2 => C.l_entry_value2,
---p_input_value_3 => C.l_entry_value2,
-- p_input_value_4 => C.l_entry_value4,

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);

XXX_SIT_ELEMENT_ENTRIES
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
P_PERSON_ANALYSIS_ID =>C.PERSON_ANALYSIS_ID,
P_ELEMENT_NAME =>'Housing Advance Recovery',
p_input_name_1 => 'Amount',
p_input_name_2 => 'Installment Amount',
p_input_name_3 => 'No Of Installments' ,
p_input_name_4 => 'Deduction Start Date',
-- p_input_name_5 => 'Total Recovered',
-- p_input_name_6 => 'Hold',
--- p_input_name_7 => 'Pay Value',
p_input_value_1 => c.housing_allowance, --- PAY VALUE
p_input_value_2 => c.housing_allowance/12, --- CHILDREN NAME
p_input_value_3 => NO_OF_INS,
p_input_value_4 => to_char(sysdate,'DD-MON-RRRR'),

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);
end if;
end if;

END LOOP;

EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error 2:'||SQLERRM);
NULL;
END XXX_SIT_ELEMT_ENTRY_P;

procedure XXX_SIT_ELEMT_ENTRY_WOD AS
V_DATE DATE ;
l_start_date_out date;
l_end_date_out date;
l_element_entry_id number;
l_PROCESS_FLAG CHAR;
NO_OF_INS NUMBER;
BS_AMT NUMBER;
CURSOR CC IS

SELECT
a.ID_FLEX_NUM,
FIS.ID_FLEX_STRUCTURE_CODE,
decode (C.BUSINESS_GROUP_ID,101,'Compensatory Leave Plan Carried
Over',162,'Compensatory Leave Plan Carried Over','Compensation Leave Plan Carried
Over') Element_Name,
A.PERSON_ANALYSIS_ID , -- WILL STORE IN Element Entries Dff attribute4 and
attribute5='Y'
C.BUSINESS_GROUP_ID,
C.PERSON_ID,
C.EMPLOYEE_NUMBER,
C.FULL_NAME,
B.SEGMENT1 l_entry_value1 ,
B.SEGMENT2 l_entry_value2 ,
B.SEGMENT3 l_entry_value3 ,
B.SEGMENT4 l_entry_value4 ,
B.SEGMENT5 l_entry_value5 ,
B.SEGMENT6 l_entry_value6 ,
B.SEGMENT7 l_entry_value7 ,
B.SEGMENT8 l_entry_value8 ,
B.SEGMENT9 l_entry_value9 ,
B.SEGMENT10 l_entry_value10,
B.SEGMENT11 l_entry_value11,
B.SEGMENT12 l_entry_value12,
B.SEGMENT13 l_entry_value13,
B.SEGMENT14 l_entry_value14,
B.SEGMENT15 l_entry_value15,
NVL(COUNTRY.MEANING,COUNTRY2.MEANING), --- NATIONALITY DXB
xxhr_oig_payroll_all.GET_HOUSING_ALLOWANCE_V1 (
ASG.assignment_id ,
NVL(COUNTRY.MEANING,COUNTRY2.MEANING),
nvl(nvl(c.ATTRIBUTE23,pg.ATTRIBUTE1),'No'),
pg.name,
xxx_get_basic_sal( c.PERSON_ID,c.BUSINESS_GROUP_ID),
1
) housing_allowance

FROM PER_PERSON_ANALYSES A,
PER_ANALYSIS_CRITERIA B,
PER_ALL_PEOPLE_F C,
per_assignments_f ASG,
FND_ID_FLEX_STRUCTURES FIS,
(select lookup_code ,meaning from HR_LOOKUPS ff where ff.LOOKUP_TYPE =
'NATIONALITY' and ff.ENABLED_FLAG='Y' ) COUNTRY,
(select lookup_code ,meaning from HR_LOOKUPS ff where ff.LOOKUP_TYPE =
'AE_NATIONALITY' and ff.ENABLED_FLAG='Y' ) COUNTRY2,
per_grades pg
WHERE b.ID_FLEX_NUM =FIS.ID_FLEX_NUM
---(select ID_FLEX_NUM from FND_ID_FLEX_STRUCTURES where ID_FLEX_STRUCTURE_CODE =
'OIG_BUSINESS_TRIP')
and a.analysis_criteria_id = b.analysis_criteria_id
AND A.PERSON_ID=C.PERSON_ID
AND C.PERSON_ID=ASG.PERSON_ID
and asg.GRADE_ID=pg.GRADE_ID(+)
and asg.BUSINESS_GROUP_ID=pg.BUSINESS_GROUP_ID(+)
---AND C.EMPLOYEE_NUMBER IN ('800024','200322')
AND ASG.PRIMARY_FLAG='Y'
AND COUNTRY.lookup_code(+)=C.NATIONALITY
AND COUNTRY2.lookup_code(+)=C.PER_INFORMATION18
AND SYSDATE BETWEEN ASG.EFFECTIVE_START_DATE AND ASG.EFFECTIVE_END_DATE
AND SYSDATE BETWEEN c.EFFECTIVE_START_DATE AND c.EFFECTIVE_END_DATE
AND A.PERSON_ANALYSIS_ID NOT IN (SELECT NVL(FF.ATTRIBUTE15,0) PERSON_ANALYSIS_ID
FROM PER_PERSON_ANALYSES FF
WHERE FF.ATTRIBUTE15 IS NOT NULL)

and ID_FLEX_STRUCTURE_CODE in (

'CBOB_DXB_WORK_ON_OFF_DAY_APPRV'

);

--SELECT NATIONALITY FROM PER_ALL_PEOPLE_F WHERE NATIONALITY IS NOT NULL AND


BUSINESS_GROUP_ID =82 PERSON_ID =99

BEGIN
FOR C IN CC LOOP
IF c.ID_FLEX_STRUCTURE_CODE='CBOB_DXB_WORK_ON_OFF_DAY_APPRV' THEN
DBMS_OUTPUT.put_line('Expense Date From:'||C.l_entry_value1||' Expense Date
To:'||C.l_entry_value2||' Amount:'||C.l_entry_value3||' Comments:'||
C.l_entry_value4 );
-- P_ELEMENT_NAME =>'School Fees Reimbursement'
xxx_sit_element_entries_new
(
P_BUSINESS_GROUP_ID =>C.BUSINESS_GROUP_ID,
P_PERSON_ID =>C.PERSON_ID ,
p_eff_start_date =>TO_CHAR(TO_DATE(TRIM(C.l_entry_value2),'YYYY/MM/DD
HH24:MI:SS'),'DD-MON-YYYY') ,
P_ELEMENT_NAME => c.Element_Name , ---'Compensation Leave Plan Carried
Over',
p_input_name_1 => 'Entry Effective Date',
p_input_name_2 => 'Expiration Date',
p_input_name_3 => 'Plan Days' ,
p_input_value_1 => TO_CHAR(TO_DATE(TRIM(C.l_entry_value2),'YYYY/MM/DD
HH24:MI:SS')+1,'DD-MON-YYYY') , --- PAY VALUE
p_input_value_2 => TO_CHAR(TO_DATE(TRIM(C.l_entry_value2),'YYYY/MM/DD
HH24:MI:SS')+365,'DD-MON-YYYY') , --- CHILDREN NAME

-- p_input_value_1 => to_char(to_date (C.l_entry_value2)+1,'DD-MON-YYY'),


--- Entry Effective Date (End date +1) to_char(to_date (C.l_entry_value2)+1,'DD-
MON-YYY')
--- p_input_value_2 => to_char(to_date (C.l_entry_value2)+365,'DD-MON-
YYY'), --- CHILDREN NAME
p_input_value_3 => C.l_entry_value3,

--- out parameter ---


P_start_date_out =>l_start_date_out,
P_end_date_out =>l_end_date_out,
p_element_entry_id =>l_element_entry_id,
p_PROCESS_FLAG =>l_PROCESS_FLAG
);

end if;
UPDATE PER_PERSON_ANALYSES FF
SET FF.ATTRIBUTE15 =c.PERSON_ANALYSIS_ID -- p_PROCESS_FLAG
WHERE
PERSON_ANALYSIS_ID=c.PERSON_ANALYSIS_ID;
END LOOP;
commit;
EXCEPTION
WHEN OTHERS THEN
rollback;
dbms_output.put_line('Error 2:'||SQLERRM);

END XXX_SIT_ELEMT_ENTRY_WOD;

You might also like