[Home] [Help]
PACKAGE: APPS.PAY_GB_ENROLL_PENSION
Source
1 PACKAGE PAY_GB_ENROLL_PENSION
2 /* $Header: pygbpaep.pkh 120.16.12020000.3 2013/03/28 10:22:13 rsadhana noship $ */
3 AUTHID CURRENT_USER AS
4 G_END_OF_TIME DATE :=fnd_date.canonical_to_date('4712/12/31 00:00:00');
5 G_ELEMENT_NAME CONSTANT PAY_ELEMENT_TYPES_F.ELEMENT_NAME%TYPE := 'Pensions Information';
6 G_QUALIFYING_SCHEME_NAME CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Qualifying Scheme Name';
7 G_AGG_EARNINGS_PENSIONS CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Aggregate Earnings';
8 G_AUTO_ENROLLMENT_DATE CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Auto Enrollment Date';
9 G_QUALIFYING_PS_EXISTS CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Qualifying scheme exists';
10 G_POSTPONEMENT_TYPE CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Postponement Type';
11 G_POSTPONEMENT_END_DATE CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Postponement End Date';
12 G_EMPLOYEE_CLASS CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Pension Classification';
13 G_OPT_IN_DATE CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Opt in Date';
14 G_OPT_OUT_DATE CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Opt Out Date';
15 G_OPT_OUT_END_DATE CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Opt Out Period End Date';
16 G_MAIN_ENTRY CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Main Entry for Aggregation';
17 G_TOTAL_EARNING_PRP CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Total Earning PRP';
18 G_ELIGIBLE_JH_DATE CONSTANT PAY_INPUT_VALUES_F.NAME%TYPE := 'Eligible Job Holder Date';
19
20 G_EXCEPTION_NO_UPDATE EXCEPTION;-- To be used only if error is to be raised, to be used after populate_run_msg
21 G_ERROR VARCHAR2(1):='N';
22 --Payroll Period
23 G_PAYROLL_START_DATE DATE;
24 G_PAYROLL_END_DATE DATE;
25 G_PAYROLL_DATE_PAID DATE;
26
27 G_PRP_START_DATE DATE;
28 G_PRP_END_DATE DATE;
29 G_PRP_DATE_PAID DATE;
30
31 G_EARN_START_DATE DATE;
32 G_EARN_END_DATE DATE;
33 G_EARN_DATE_PAID DATE;
34
35 G_MODE VARCHAR2(20);
36 G_TIME_PERIOD_ID PER_TIME_PERIODS.TIME_PERIOD_ID%TYPE;
37 G_PAYROLL_ACTION_ID NUMBER;
38 G_PAYROLL_PERIOD_TYPE PAY_PAYROLLS_F.PERIOD_TYPE%TYPE;
39 G_PAYROLL_ID PER_TIME_PERIODS.PAYROLL_ID%TYPE;
40 G_PAYROLL_NAME PAY_PAYROLLS_F.PAYROLL_NAME%TYPE;
41 G_PERIOD_NAME PER_TIME_PERIODS.PERIOD_NAME%TYPE;
42 G_BUSINESS_GROUP_ID PAY_PAYROLLS_F.BUSINESS_GROUP_ID%TYPE;
43 G_STATE_PENSION_AGE_MEN NUMBER := 65; -- Check
44 G_PENSION_STAGING_DATE HR_ORGANIZATION_INFORMATION.ORG_INFORMATION2%TYPE;
45 G_WORKER_POSTPONEMENT_RULE HR_ORGANIZATION_INFORMATION.ORG_INFORMATION3%TYPE;
46 G_ELIGIBLE_POSTPONEMENT_RULE HR_ORGANIZATION_INFORMATION.ORG_INFORMATION4%TYPE;
47 G_DEFINED_BALANCE_ID NUMBER := NULL;
48
49 G_EMPLOYER_COMPONENT PQP_GB_PENSION_SCHEMES_V.ELEMENT_NAME%TYPE :=NULL;
50 G_DEFAULT_SCHEME_NAME PQP_GB_PENSION_SCHEMES_V.ELEMENT_NAME%TYPE :=NULL;
51 G_DEFAULT_SCH_ELEMENT_NAME PQP_GB_PENSION_SCHEMES_V.PENSION_SCHEME_NAME%TYPE :=NULL;
52 --------------------
53 CURSOR C_DEF_BAL IS
54 SELECT PDB.DEFINED_BALANCE_ID
55 FROM
56 PAY_BALANCE_TYPES PBT,
57 PAY_DEFINED_BALANCES PDB,
58 PAY_BALANCE_DIMENSIONS PBD
59 WHERE PDB.BALANCE_TYPE_ID=PBT.BALANCE_TYPE_ID
60 AND PBT.BALANCE_NAME LIKE 'Pension Qualifying Earnings'
61 AND PBD.DATABASE_ITEM_SUFFIX='_ASG_RUN'
62 AND PBD.BALANCE_DIMENSION_ID=PDB.BALANCE_DIMENSION_ID;
63
64
65 --To fetch Pension information element data
66 CURSOR C_PENSION_ELEMENT_INF
67 IS
68 SELECT PETF.ELEMENT_TYPE_ID G_ELEMENT_TYPE_ID,
69 MAX(DECODE(TRIM(PIVF.NAME),G_QUALIFYING_SCHEME_NAME,PIVF.INPUT_VALUE_ID, NULL)) G_QUALIFYING_SCHEME_NAME_ID,
70 MAX(DECODE(TRIM(PIVF.NAME),G_AGG_EARNINGS_PENSIONS,PIVF.INPUT_VALUE_ID, NULL)) G_AGG_EARNINGS_PENSIONS_ID,
71 MAX(DECODE(TRIM(PIVF.NAME),G_AUTO_ENROLLMENT_DATE ,PIVF.INPUT_VALUE_ID, NULL)) G_AUTO_ENROLLMENT_DATE_ID,
72 MAX(DECODE(TRIM(PIVF.NAME),G_QUALIFYING_PS_EXISTS,PIVF.INPUT_VALUE_ID, NULL)) G_QUALIFYING_PS_EXISTS_ID,
73 MAX(DECODE(TRIM(PIVF.NAME),G_POSTPONEMENT_END_DATE,PIVF.INPUT_VALUE_ID, NULL)) G_POSTPONEMENT_END_DATE_ID,
74 MAX(DECODE(TRIM(PIVF.NAME),G_POSTPONEMENT_TYPE ,PIVF.INPUT_VALUE_ID, NULL)) G_POSTPONEMENT_TYPE_ID,
75 MAX(DECODE(TRIM(PIVF.NAME),G_EMPLOYEE_CLASS,PIVF.INPUT_VALUE_ID, NULL)) G_EMPLOYEE_CLASS_ID,
76 MAX(DECODE(TRIM(PIVF.NAME),G_OPT_IN_DATE,PIVF.INPUT_VALUE_ID, NULL)) G_OPT_IN_DATE_ID,
77 MAX(DECODE(TRIM(PIVF.NAME),G_OPT_OUT_DATE,PIVF.INPUT_VALUE_ID, NULL)) G_OPT_OUT_DATE_ID,
78 MAX(DECODE(TRIM(PIVF.NAME),G_OPT_OUT_END_DATE,PIVF.INPUT_VALUE_ID, NULL)) G_OPT_OUT_END_DATE_ID,
79 MAX(DECODE(TRIM(PIVF.NAME),G_MAIN_ENTRY,PIVF.INPUT_VALUE_ID, NULL)) G_MAIN_ENTRY_ID,
80 MAX(DECODE(TRIM(PIVF.NAME),G_TOTAL_EARNING_PRP,PIVF.INPUT_VALUE_ID, NULL)) G_TOTAL_EARNING_PRP_ID,
81 MAX(DECODE(TRIM(PIVF.NAME),G_ELIGIBLE_JH_DATE,PIVF.INPUT_VALUE_ID, NULL)) G_ELIGIBLE_JH_DATE_ID
82 FROM PAY_ELEMENT_TYPES_F PETF,
83 PAY_INPUT_VALUES_F PIVF
84 WHERE PETF.ELEMENT_NAME = G_ELEMENT_NAME
85 AND PETF.ELEMENT_TYPE_ID = PIVF.ELEMENT_TYPE_ID
86 -- AND G_PRP_END_DATE BETWEEN PETF.EFFECTIVE_START_DATE AND PETF.EFFECTIVE_END_DATE
87 -- AND G_PRP_END_DATE BETWEEN PIVF.EFFECTIVE_START_DATE AND PIVF.EFFECTIVE_END_DATE
88 AND G_PRP_END_DATE >= ALL(PETF.EFFECTIVE_START_DATE,PIVF.EFFECTIVE_START_DATE )
89 AND G_PRP_START_DATE <= ALL(PETF.EFFECTIVE_END_DATE,PIVF.EFFECTIVE_END_DATE )
90 GROUP BY PETF.ELEMENT_TYPE_ID;
91
92 -- Element Details -- Input Values' Id
93 G_ELEMENT_DETAILS C_PENSION_ELEMENT_INF%ROWTYPE;
94
95 CURSOR C_PENSION_INPUT_VALUES(L_ELEMENT_ENTRY_ID NUMBER)
96 IS
97 SELECT MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_QUALIFYING_SCHEME_NAME_ID,SCREEN_ENTRY_VALUE, NULL)) G_QUALIFYING_SCHEME_NAME,
98 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_AGG_EARNINGS_PENSIONS_ID,SCREEN_ENTRY_VALUE, NULL)) G_AGG_EARNINGS_PENSIONS,
99 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_AUTO_ENROLLMENT_DATE_ID,SCREEN_ENTRY_VALUE, NULL)) G_AUTO_ENROLLMENT_DATE ,
100 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_QUALIFYING_PS_EXISTS_ID,SCREEN_ENTRY_VALUE, NULL)) G_QUALIFYING_PS_EXISTS,
101 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_POSTPONEMENT_END_DATE_ID,SCREEN_ENTRY_VALUE, NULL)) G_POSTPONEMENT_END_DATE,
102 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_POSTPONEMENT_TYPE_ID,HR_GENERAL.DECODE_LOOKUP('GB_PENSION_POSTPONEMENT_TYPES',SCREEN_ENTRY_VALUE), NULL)) G_POSTPONEMENT_TYPE ,
103 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_EMPLOYEE_CLASS_ID,HR_GENERAL.DECODE_LOOKUP('GB_PENSION_WORKER_TYPES',SCREEN_ENTRY_VALUE), NULL)) G_EMPLOYEE_CLASS,
104 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_OPT_IN_DATE_ID,SCREEN_ENTRY_VALUE, NULL)) G_OPT_IN_DATE,
105 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_OPT_OUT_DATE_ID,SCREEN_ENTRY_VALUE, NULL)) G_OPT_OUT_DATE,
106 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_OPT_OUT_END_DATE_ID,SCREEN_ENTRY_VALUE, NULL)) G_OPT_OUT_END_DATE,
107 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_MAIN_ENTRY_ID,SCREEN_ENTRY_VALUE, NULL)) G_MAIN_ENTRY,
108 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_TOTAL_EARNING_PRP_ID,SCREEN_ENTRY_VALUE, NULL)) G_TOTAL_EARNING_PRP,
109 MAX(DECODE(TRIM(PEEVF.INPUT_VALUE_ID),G_ELEMENT_DETAILS.G_ELIGIBLE_JH_DATE_ID,SCREEN_ENTRY_VALUE, NULL)) G_ELIGIBLE_JH_DATE
110 FROM PAY_ELEMENT_ENTRY_VALUES_F PEEVF
111 WHERE PEEVF.INPUT_VALUE_ID IN (G_ELEMENT_DETAILS.G_QUALIFYING_SCHEME_NAME_ID ,
112 G_ELEMENT_DETAILS.G_AGG_EARNINGS_PENSIONS_ID ,
113 G_ELEMENT_DETAILS.G_AUTO_ENROLLMENT_DATE_ID ,
114 G_ELEMENT_DETAILS.G_QUALIFYING_PS_EXISTS_ID ,
115 G_ELEMENT_DETAILS.G_POSTPONEMENT_END_DATE_ID ,
116 G_ELEMENT_DETAILS.G_POSTPONEMENT_TYPE_ID ,
117 G_ELEMENT_DETAILS.G_EMPLOYEE_CLASS_ID ,
118 G_ELEMENT_DETAILS.G_OPT_IN_DATE_ID ,
119 G_ELEMENT_DETAILS.G_OPT_OUT_DATE_ID ,
120 G_ELEMENT_DETAILS.G_ELIGIBLE_JH_DATE_ID,
121 G_ELEMENT_DETAILS.G_OPT_OUT_END_DATE_ID,
122 G_ELEMENT_DETAILS.G_MAIN_ENTRY_ID,
123 G_ELEMENT_DETAILS.G_TOTAL_EARNING_PRP_ID)
124 AND PEEVF.ELEMENT_ENTRY_ID = L_ELEMENT_ENTRY_ID
125 -- AND G_PRP_END_DATE BETWEEN PEEVF.EFFECTIVE_START_DATE AND PEEVF.EFFECTIVE_END_DATE
126 AND G_PRP_END_DATE >= PEEVF.EFFECTIVE_START_DATE
127 AND G_PRP_START_DATE <= PEEVF.EFFECTIVE_END_DATE
128 GROUP BY PEEVF.ELEMENT_ENTRY_ID;
129
130 --Entry values for the assignment
131 P_PENSION_INPUT_VALUES C_PENSION_INPUT_VALUES%ROWTYPE;
132 P_PENSION_INPUT_VALUES_DUMMY C_PENSION_INPUT_VALUES%ROWTYPE;
133
134 --To get Global Values
135 CURSOR C_GET_GLOBAL_VALUE(P_EFFECTIVE_DATE DATE)
136 IS
137 SELECT MAX(DECODE(GLOBAL_NAME,'QE_WEEKLY_LT', GLOBAL_VALUE ,NULL)) G_QE_WEEKLY_LT ,
138 MAX(DECODE(GLOBAL_NAME,'QE_MONTHLY_LT', GLOBAL_VALUE ,NULL)) G_QE_MONTHLY_LT ,
139 MAX(DECODE(GLOBAL_NAME,'QE_ANNUAL_LT', GLOBAL_VALUE ,NULL)) G_QE_ANNUAL_LT ,
140 MAX(DECODE(GLOBAL_NAME,'QE_WEEKLY_UT', GLOBAL_VALUE ,NULL)) G_QE_WEEKLY_UT ,
141 MAX(DECODE(GLOBAL_NAME,'QE_MONTHLY_UT', GLOBAL_VALUE ,NULL)) G_QE_MONTHLY_UT ,
142 MAX(DECODE(GLOBAL_NAME,'QE_ANNUAL_UT', GLOBAL_VALUE ,NULL)) G_QE_ANNUAL_UT ,
143 MAX(DECODE(GLOBAL_NAME,'AUTO_ENROL_TRIG_WEEKLY', GLOBAL_VALUE ,NULL)) G_AUTO_ENROL_TRIG_WEEKLY ,
144 MAX(DECODE(GLOBAL_NAME,'AUTO_ENROL_TRIG_MONTHLY', GLOBAL_VALUE ,NULL)) G_AUTO_ENROL_TRIG_MONTHLY ,
145 MAX(DECODE(GLOBAL_NAME,'AUTO_ENROL_TRIG_ANNUAL', GLOBAL_VALUE ,NULL)) G_AUTO_ENROL_TRIG_ANNUAL,
146 MAX(DECODE(GLOBAL_NAME,'QE_BIWEEK_LT', GLOBAL_VALUE ,NULL)) G_QE_BIWEEK_LT,
147 MAX(DECODE(GLOBAL_NAME,'QE_LUNAR_LT', GLOBAL_VALUE ,NULL)) G_QE_LUNAR_LT,
148 MAX(DECODE(GLOBAL_NAME,'QE_QUARTERLY_LT', GLOBAL_VALUE ,NULL)) G_QE_QUARTERLY_LT,
149 MAX(DECODE(GLOBAL_NAME,'QE_SEMIYEAR_LT', GLOBAL_VALUE ,NULL)) G_QE_SEMIYEAR_LT,
150 MAX(DECODE(GLOBAL_NAME,'QE_BIWEEK_UT', GLOBAL_VALUE ,NULL)) G_QE_BIWEEK_UT,
151 MAX(DECODE(GLOBAL_NAME,'QE_LUNAR_UT', GLOBAL_VALUE ,NULL)) G_QE_LUNAR_UT,
152 MAX(DECODE(GLOBAL_NAME,'QE_QUARTERLY_UT', GLOBAL_VALUE ,NULL)) G_QE_QUARTERLY_UT,
153 MAX(DECODE(GLOBAL_NAME,'QE_SEMIYEAR_UT', GLOBAL_VALUE ,NULL)) G_QE_SEMIYEAR_UT,
154 MAX(DECODE(GLOBAL_NAME,'AUTO_ENROL_TRIG_BIWEEK', GLOBAL_VALUE ,NULL)) G_AUTO_ENROL_TRIG_BIWEEK,
155 MAX(DECODE(GLOBAL_NAME,'AUTO_ENROL_TRIG_LUNAR', GLOBAL_VALUE ,NULL)) G_AUTO_ENROL_TRIG_LUNAR,
156 MAX(DECODE(GLOBAL_NAME,'AUTO_ENROL_TRIG_QUARTERLY', GLOBAL_VALUE ,NULL)) G_AUTO_ENROL_TRIG_QUARTERLY,
157 MAX(DECODE(GLOBAL_NAME,'AUTO_ENROL_TRIG_SEMIYEAR', GLOBAL_VALUE ,NULL)) G_AUTO_ENROL_TRIG_SEMIYEAR
158 FROM FF_GLOBALS_F FGF
159 WHERE GLOBAL_NAME IN ('QE_ANNUAL_LT', 'QE_WEEKLY_LT', 'QE_MONTHLY_LT', 'QE_ANNUAL_UT', 'QE_WEEKLY_UT', 'QE_MONTHLY_UT', 'AUTO_ENROL_TRIG_ANNUAL', 'AUTO_ENROL_TRIG_WEEKLY', 'AUTO_ENROL_TRIG_MONTHLY',
160 'QE_BIWEEK_LT','QE_LUNAR_LT','QE_QUARTERLY_LT','QE_SEMIYEAR_LT',
161 'QE_BIWEEK_UT','QE_LUNAR_UT','QE_QUARTERLY_UT','QE_SEMIYEAR_UT',
162 'AUTO_ENROL_TRIG_BIWEEK','AUTO_ENROL_TRIG_LUNAR','AUTO_ENROL_TRIG_QUARTERLY','AUTO_ENROL_TRIG_SEMIYEAR')
163 --AND G_PRP_END_DATE BETWEEN FGF.EFFECTIVE_START_DATE AND FGF.EFFECTIVE_END_DATE;
164 -- AND G_PRP_END_DATE >= FGF.EFFECTIVE_START_DATE
165 -- AND G_PRP_START_DATE <= FGF.EFFECTIVE_END_DATE;
166 AND P_EFFECTIVE_DATE BETWEEN FGF.EFFECTIVE_START_DATE AND FGF.EFFECTIVE_END_DATE;
167
168 --Fetch the Elements details that will contribute to the Seeded Balance for the given assignment
169 CURSOR C_ELEMENT_DETAILS(P_DATE_EARNED DATE , P_ASSIGNMENT_ID NUMBER, P_ELEMENT_TYPE_ID NUMBER)
170 IS
171 SELECT PEEF.ELEMENT_ENTRY_ID,
172 PEEF.ELEMENT_TYPE_ID
173 FROM PAY_ELEMENT_ENTRIES_F PEEF
174 WHERE PEEF.ASSIGNMENT_ID = P_ASSIGNMENT_ID
175 AND PEEF.ELEMENT_TYPE_ID IN
176 ( SELECT DISTINCT ELEMENT_TYPE_ID
177 FROM pay_sub_classification_rules_f PSCR ,
178 PAY_ELEMENT_CLASSIFICATIONS PEC
179 WHERE PSCR.CLASSIFICATION_ID = PEC.CLASSIFICATION_ID
180 AND PEC.CLASSIFICATION_NAME = 'Pension Qualifying Earnings'
181 AND P_DATE_EARNED BETWEEN PSCR.EFFECTIVE_START_DATE AND PSCR.EFFECTIVE_END_DATE
182 )
183 AND NVL(P_ELEMENT_TYPE_ID,PEEF.ELEMENT_TYPE_ID)=PEEF.ELEMENT_TYPE_ID
184 AND P_DATE_EARNED BETWEEN PEEF.EFFECTIVE_START_DATE AND PEEF.EFFECTIVE_END_DATE;
185 --Fetch Screen entry value, if any, attached to the element
186 CURSOR C_SCREEN_ENTRY_VALUE(P_ELEMENT_ENTRY_ID VARCHAR2,P_EFFECTIVE_DATE DATE)
187 IS
188 SELECT PEEVF.SCREEN_ENTRY_VALUE
189 FROM PAY_ELEMENT_ENTRY_VALUES_F PEEVF ,
190 PAY_INPUT_VALUES_F PIVF
191 WHERE PEEVF.ELEMENT_ENTRY_ID = P_ELEMENT_ENTRY_ID
192 AND PIVF.NAME ='Pay Value'
193 AND PEEVF.INPUT_VALUE_ID =PIVF.INPUT_VALUE_ID
194 AND P_EFFECTIVE_DATE BETWEEN PIVF.EFFECTIVE_START_DATE AND PIVF.EFFECTIVE_END_DATE
195 AND P_EFFECTIVE_DATE BETWEEN PEEVF.EFFECTIVE_START_DATE AND PEEVF.EFFECTIVE_END_DATE;
196 --Fetch formula, if any, attached to the element
197 CURSOR C_PENSIONS_FORMULA_ID(P_ELEMENT_TYPE_ID VARCHAR2,P_EFFECTIVE_DATE DATE)
198 IS
199 SELECT PSPF.FORMULA_ID, PSPF.STATUS_PROCESSING_RULE_ID
200 FROM PAY_STATUS_PROCESSING_RULES_F PSPF
201 WHERE PSPF.ELEMENT_TYPE_ID = P_ELEMENT_TYPE_ID
202 AND PSPF.ASSIGNMENT_STATUS_TYPE_ID is NULL
203 AND P_EFFECTIVE_DATE BETWEEN PSPF.EFFECTIVE_START_DATE AND PSPF.EFFECTIVE_END_DATE;
204 --Fetch Screen Entry value for an input value
205 CURSOR ELE_SCREEN_VALUE (P_ELEM_ENTRY_ID NUMBER)
206 IS
207 SELECT PEEF.SCREEN_ENTRY_VALUE, PEEF.INPUT_VALUE_ID, UPPER(REPLACE(PIVF.NAME,' ','_')) NAME
208 FROM PAY_ELEMENT_ENTRY_VALUES_F PEEF, PAY_INPUT_VALUES_F PIVF
209 WHERE PEEF.ELEMENT_ENTRY_ID = P_ELEM_ENTRY_ID
210 AND PEEF.INPUT_VALUE_ID = PIVF.INPUT_VALUE_ID
211 AND G_PRP_END_DATE >= ALL(PEEF.EFFECTIVE_START_DATE,PIVF.EFFECTIVE_START_DATE )
212 AND G_PRP_START_DATE <= ALL(PEEF.EFFECTIVE_END_DATE,PIVF.EFFECTIVE_END_DATE ) ;
213 --and G_PRP_END_DATE BETWEEN peef.EFFECTIVE_START_DATE and peef.EFFECTIVE_END_DATE
214 --and G_PRP_END_DATE BETWEEN pivf.EFFECTIVE_START_DATE and pivf.EFFECTIVE_END_DATE ;
215 --To fetch Earnings Period Dates
216 CURSOR C_EARN_PERIOD_DETAILS (P_PAYROLL_ID NUMBER)
217 IS
218 SELECT TIME_PERIOD_ID,
219 START_DATE,
220 END_DATE
221 , REGULAR_PAYMENT_DATE
222 FROM PER_TIME_PERIODS PTP
223 WHERE PTP.PAYROLL_ID = P_PAYROLL_ID
224 AND REGULAR_PAYMENT_DATE BETWEEN G_PRP_START_DATE AND G_PRP_END_DATE
225 ORDER BY START_DATE;
226
227 G_GLOBAL_VALUE C_GET_GLOBAL_VALUE%ROWTYPE;
228
229 --To get all the Pension associated Element names that are classified as QUALIFYING
230 CURSOR C_GET_QUALIFYING_PENSION_INFO
231 IS
232 SELECT DISTINCT PPSV.ELEMENT_NAME
233 FROM PQP_GB_PENSION_SCHEMES_V PPSV,
234 PQP_CONFIGURATION_VALUES PCV
235 WHERE PCV_INFORMATION_CATEGORY = 'PAY_GB_QUALIFIED_PENSIONS_INFO'
236 AND PCV.BUSINESS_GROUP_ID = G_BUSINESS_GROUP_ID
237 AND PCV.PCV_INFORMATION2 = PPSV.ELEMENT_NAME ; --CHECK
238
239
240 --To get the Default Pension details
241 CURSOR C_GET_DEFAULT_PENSION_INFO
242 IS
243 SELECT PCV.PCV_INFORMATION1,
244 PCV.PCV_INFORMATION2,PCV.PCV_INFORMATION3
245 FROM PQP_CONFIGURATION_VALUES PCV
246 WHERE PCV.PCV_INFORMATION_CATEGORY = 'PAY_GB_DEFAULT_PENSIONS_INFO'
247 AND PCV.BUSINESS_GROUP_ID = G_BUSINESS_GROUP_ID ;
248
249 G_DEFAULT_PENSION PQP_CONFIGURATION_VALUES.PCV_INFORMATION2%TYPE; -- To hold Default Pension Scheme Name
250 G_DEFAULT_ELEMENT_ER PAY_ELEMENT_TYPES_F.ELEMENT_NAME%TYPE;--Employer Element
251 G_DEFAULT_ELEMENT_EE PAY_ELEMENT_TYPES_F.ELEMENT_NAME%TYPE; --To hold Default Pension Scheme's Element Name
252 G_DEFAULT_PENSION_DUMMY PAY_ELEMENT_TYPE_EXTRA_INFO.EEI_INFORMATION1%TYPE;
253 G_DEFAULT_ELEMENT_DUMMY PAY_ELEMENT_TYPES_F.ELEMENT_NAME%TYPE;
254
255 CURSOR get_assignment_number (p_assignment_id number)
256 is
257 select assignment_number from per_all_assignments_f
258 where assignment_id=p_assignment_id
259 AND G_PRP_END_DATE >= EFFECTIVE_START_DATE
260 AND G_PRP_START_DATE <= EFFECTIVE_END_DATE;
261 --and G_PRP_END_DATE between effective_start_date and effective_end_date;
262
263 PROCEDURE archinit ( p_payroll_action_id IN NUMBER);
264
265 PROCEDURE range_cursor (pactid IN NUMBER,
266 sqlstr OUT NOCOPY VARCHAR2);
267
268 PROCEDURE action_creation (pactid in number,
269 stperson in number,
270 endperson in number,
271 chunk in number);
272
273 PROCEDURE archive_code (p_assactid IN NUMBER,
274 p_effective_date IN DATE);
275
276 PROCEDURE deinitialization_code(pactid IN NUMBER);
277 FUNCTION GET_PROFILE_OPTION(p_profile_option_name in varchar)
278 RETURN VARCHAR;
279
280 FUNCTION GET_AGGREGATED_EARNINGS(
281 P_ASSIGNMENT_ID IN NUMBER,
282 P_REGULAR_PAYMENT_DATE IN DATE,
283 P_PQE_ASG_RUN IN NUMBER)
287 IS
284 RETURN NUMBER;
285 -- Cursor to get Pension Scheme's Elements' Names for the Pension Scheme Name
286 CURSOR C_GET_PENSION_ELEMENTS(P_PENSION_SCHEME_NAME VARCHAR2)
288 SELECT PCV.PCV_INFORMATION2,PCV.PCV_INFORMATION3
289 FROM PQP_CONFIGURATION_VALUES PCV
290 WHERE PCV_INFORMATION_CATEGORY = 'PAY_GB_QUALIFIED_PENSIONS_INFO'
291 AND PCV.BUSINESS_GROUP_ID = G_BUSINESS_GROUP_ID
292 AND PCV.PCV_INFORMATION1 = P_PENSION_SCHEME_NAME;
293 --ER 14126545
294 TYPE eligiblity_table IS TABLE OF
295 VARCHAR2(2000)
296 INDEX BY VARCHAR2(150);
297
298 TYPE seg_collection_table IS TABLE OF
299 VARCHAR2(150)
300 INDEX BY BINARY_INTEGER;
301
302 TYPE collection_table IS TABLE OF
303 eligiblity_table
304 INDEX BY BINARY_INTEGER;
305
306 TYPE people_group_id_tab IS TABLE OF
307 number
308 INDEX BY BINARY_INTEGER;
309 g_collecttab collection_table;
310 G_DEF_FLAG VARCHAR2(1);
311 --ER 14126545
312 END PAY_GB_ENROLL_PENSION;