[Home] [Help]
PACKAGE BODY: APPS.GHR_US_NFC_EXTRACTS
Source
1 PACKAGE BODY GHR_US_NFC_EXTRACTS AS
2 /* $Header: ghrusnfcpa.pkb 120.32 2006/02/15 00:38:42 sumarimu noship $ */
3
4 -- =============================================================================
5 -- ~ Package body variables
6 -- =============================================================================
7
8 g_proc_name constant varchar2(200) :='GHR_US_NFC_Extracts.';
9 g_debug boolean;
10 g_remark_cnt NUMBER;
11 g_assignment_id NUMBER;
12 -- =============================================================================
13 -- ~ Package body cursors
14 -- =============================================================================
15
16 -- Cursor to check has a valid personnel action within the extract date range
17 -- Bug 4923586
18 CURSOR csr_ghr_per (c_person_id in number
19 ,c_assignment_id in number
20 ,c_ext_start_date in date
21 ,c_ext_end_date in date) is
22 SELECT gpr.person_id
23 ,gpr.employee_assignment_id
24 ,gpr.effective_date
25 ,gpr.last_update_date
26 ,gpr.pa_request_id
27 ,gpr.pa_notification_id
28 ,gpr.first_noa_code
29 ,gpr.second_noa_code
30 FROM ghr_pa_requests gpr
31 WHERE
32 (TRUNC(gpr.effective_date) between c_ext_start_date
33 and c_ext_end_date
34 or
35 /* TRUNC(gpr.last_update_date) between c_ext_start_date
36 and c_ext_end_date */
37 TRUNC(gpr.approval_date) between c_ext_start_date
38 and c_ext_end_date
39 )
40 AND TRUNC(gpr.effective_date) <= c_ext_end_date
41 AND gpr.person_id = c_person_id
42 AND(gpr.first_noa_code NOT IN (825,840,841,842,843,844,
43 845,846,847,848,878,879)
44 --or
45 AND
46 (--gpr.second_noa_code IS NOT NULL AND -- Bug 5031363
47 NVL(gpr.second_noa_code,-1) NOT IN (825,840,841,842,843,844,
48 845,846,847,848,878,879))
49 )
50 AND gpr.pa_notification_id IS NOT NULL
51 ORDER BY effective_date;
52 --AND gpr.employee_assignment_id = c_assignment_id;
53 -- Bug 4629647
54 --Added by Gattu
55 -- =============================================================================
56 -- Cursor to get the extract record id
57 -- =============================================================================
58 CURSOR csr_ext_rcd_id(c_hide_flag IN VARCHAR2
59 ,c_rcd_type_cd IN VARCHAR2) IS
60 SELECT rcd.ext_rcd_id
61 FROM ben_ext_rcd rcd
62 ,ben_ext_rcd_in_file rin
63 ,ben_ext_dfn dfn
64 WHERE dfn.ext_dfn_id = ben_ext_thread.g_ext_dfn_id
65 AND rin.ext_file_id = dfn.ext_file_id
66 AND rin.hide_flag = c_hide_flag -- Y=Hidden, N=Not Hidden
67 AND rin.ext_rcd_id = rcd.ext_rcd_id
68 AND rcd.rcd_type_cd = c_rcd_type_cd; --S- Sub Header D=Detail,H=Header,F=Footer
69
70 -- =============================================================================
71 -- Used to get the concurrent request id
72 -- =============================================================================
73 CURSOR csr_org_req (c_ext_dfn_id IN NUMBER
74 ,c_ext_rslt_id IN NUMBER
75 ,c_business_group_id IN NUMBER) IS
76 SELECT bba.request_id
77 FROM ben_benefit_actions bba
78 WHERE bba.pl_id = c_ext_rslt_id
79 AND bba.pgm_id = c_ext_dfn_id
80 AND bba.business_group_id = c_business_group_id;
81
82 -- Cursor to check has a valid Processed Individual Award within
83 -- the extract date range
84 CURSOR csr_ghr_awd (c_person_id in number
85 ,c_assignment_id in number
86 ,c_ext_start_date in date
87 ,c_ext_end_date in date) is
88 SELECT gpr.person_id
89 ,gpr.employee_assignment_id
90 ,gpr.effective_date
91 ,gpr.last_update_date
92 ,gpr.pa_request_id
93 ,gpr.pa_notification_id
94 ,gpr.first_noa_code
95 ,gpr.second_noa_code
96 FROM ghr_pa_requests gpr
97 WHERE(TRUNC(gpr.effective_date) between c_ext_start_date
98 and c_ext_end_date
99 or
100 /* TRUNC(gpr.last_update_date) between c_ext_start_date
101 and c_ext_end_date */
102 TRUNC(gpr.approval_date) between c_ext_start_date
103 and c_ext_end_date
104 )
105 AND TRUNC(gpr.effective_date) <= c_ext_end_date
106 AND(gpr.first_noa_code in (825,840,841,842,843,844,
107 845,846,847,848,878,879)
108 or
109 (gpr.second_noa_code is not null and
110 gpr.second_noa_code in (825,840,841,842,843,844,
111 845,846,847,848,878,879)
112 )
113 )
114 AND gpr.pa_notification_id is not null
115 AND gpr.person_id = c_person_id
116 AND gpr.employee_assignment_id = c_assignment_id;
117
118 --Cursor to get address only when the rpa is appointment
119 CURSOR csr_per_add_apt (c_person_id in number
120 ,c_ext_end_date in date) is
121 SELECT gph.*
122 FROM ghr_addresses_h_v gph
123 WHERE gph.person_id = c_person_id
124 AND (gph.primary_flag='Y' OR gph.address_type = 'M') -- Bug 5037078
125 AND gph.business_group_id = g_business_group_id
126 AND gph.effective_date <= c_ext_end_date
127 ORDER by gph.pa_history_id desc;
128
129
130 -- Cursor to check if the person has an address change within the extract
131 -- date range.
132 CURSOR csr_per_add(c_person_id in number
133 ,c_ext_start_date in date
134 ,c_ext_end_date in date) is
135 SELECT gph.*
136 FROM ghr_addresses_h_v gph
137 WHERE gph.person_id = c_person_id
138 AND (gph.primary_flag='Y' OR gph.address_type = 'M') -- Bug 5037078
139 AND gph.business_group_id = g_business_group_id
140 AND(TRUNC(gph.effective_date) between c_ext_start_date
141 and c_ext_end_date
142 or
143 TRUNC(gph.process_date) between c_ext_start_date
144 and c_ext_end_date
145 )
146 AND TRUNC(gph.effective_date) <= c_ext_end_date
147 ORDER by gph.pa_history_id desc;
148
149 -- Cursor to get the remarks for a given RPA id
150 CURSOR csr_rem (c_request_id in number
151 ,c_effective_date date) is
152 SELECT gpr.remark_id
153 ,gpr.pa_request_id
154 ,gpr.pa_remark_id
155 ,code
156 FROM ghr_pa_remarks gpr
157 ,ghr_remarks gr
158 WHERE pa_request_id = c_request_id
159 AND gr.remark_id=gpr.remark_id
160 AND c_effective_date between gr.date_from
161 and NVL(gr.date_to,to_date('12/31/4712','MM/DD/YYYY'))
162 ORDER BY remark_id;
163
164 -- Cursor to get the enter record for a given pa_request_id
165 CURSOR csr_rpa_rec(c_pa_request_id in number) is
166 SELECT gpr.*
167 FROM ghr_pa_requests gpr
168 WHERE pa_request_id = c_pa_request_id;
169
170 -- Cursor to get the extract record id
171 CURSOR csr_ext_rcd(c_hide_flag in varchar2
172 ,c_rcd_type_cd in varchar2
173 ) is
174 SELECT rcd.ext_rcd_id
175 FROM ben_ext_rcd rcd
176 ,ben_ext_rcd_in_file rin
177 ,ben_ext_dfn dfn
178 WHERE dfn.ext_dfn_id = Ben_Ext_Thread.g_ext_dfn_id -- The extract executing currently
179 AND rin.ext_file_id = dfn.ext_file_id
180 AND rin.hide_flag = c_hide_flag -- Y=Hidden, N=Not Hidden
181 AND rin.ext_rcd_id = rcd.ext_rcd_id
182 AND rcd.rcd_type_cd = c_rcd_type_cd; -- D=Detail,H=Header,F=Footer
183
184 -- Cursor to get the extract result dtl record for a person id
185 CURSOR csr_rslt_dtl(c_person_id in number
186 ,c_ext_rslt_id in number
187 ,c_ext_dtl_rcd_id in number ) is
188 SELECT *
189 FROM ben_ext_rslt_dtl dtl
190 WHERE dtl.ext_rslt_id = c_ext_rslt_id
191 AND dtl.person_id = c_person_id
192 AND dtl.ext_rcd_id = c_ext_dtl_rcd_id;
193
194 -- Get the benefit action details
195 CURSOR csr_ben (c_ext_dfn_id in number
196 ,c_ext_rslt_id in number
197 ,c_business_group_id in number) is
198 SELECT ben.pgm_id
199 ,ben.pl_id
200 ,ben.benefit_action_id
201 ,ben.business_group_id
202 ,ben.process_date
203 ,ben.request_id
204 FROM ben_benefit_actions ben
205 WHERE ben.pl_id = c_ext_rslt_id
206 AND ben.pgm_id = c_ext_dfn_id
207 AND ben.business_group_id = c_business_group_id;
208
209
210
211 --============================================================================
212 --get_rpa_extra_info_val
213 --===========================================================================
214 FUNCTION get_rpa_extra_info_val (p_rpa_req_id IN NUMBER
215 ,p_info_type IN VARCHAR2
216 )
217 RETURN ghr_pa_request_extra_info%ROWTYPE IS
218
219 CURSOR c_get_val (cp_rpa_req_id NUMBER
220 ,cp_info_type ghr_pa_request_extra_info.information_type%TYPE
221 )
222 IS
223 SELECT *
224 FROM ghr_pa_request_extra_info gpre
225 WHERE gpre.pa_request_id=cp_rpa_req_id
226 AND information_type=cp_info_type;
227
228 l_get_val ghr_pa_request_extra_info%ROWTYPE;
229
230 BEGIN
231
232 OPEN c_get_val (p_rpa_req_id
233 ,p_info_type
234 );
235 FETCH c_get_val INTO l_get_val;
236 CLOSE c_get_val;
237
238 RETURN (l_get_val);
239 END;
240
241 --============================================================================
242 --Get generic pay period number
243 --============================================================================
244
245 FUNCTION get_gen_pay_period_number (p_payroll_id IN NUMBER
246 ,p_business_group_id IN NUMBER
247 ,p_effective_date IN DATE
248 ,p_start_date IN DATE
249 ,p_end_date IN DATE
250 )
251 RETURN NUMBER IS
252
253 CURSOR c_get_period_num (cp_payroll_id NUMBER
254 ,cp_business_group_id NUMBER
255 ,cp_effective_date DATE
256 )
257 IS
258 SELECT ptp.period_num
259 FROM per_time_periods ptp
260 WHERE ptp.payroll_id=p_payroll_id
261 AND cp_effective_date BETWEEN ptp.start_date
262 AND ptp.end_date;
263
264 l_get_period_num c_get_period_num%ROWTYPE;
265 BEGIN
266
267 OPEN c_get_period_num( p_payroll_id
268 ,p_business_group_id
269 ,p_effective_date
270 );
271 FETCH c_get_period_num INTO l_get_period_num;
272 CLOSE c_get_period_num;
273 RETURN(NVL(l_get_period_num.period_num,-1));
274
275 END;
276 --============================================================================
277 --Get pay period number
278 --============================================================================
279
280 FUNCTION get_pay_period_number (p_person_id IN NUMBER
281 ,p_assignment_id IN NUMBER
282 ,p_business_group_id IN NUMBER
283 ,p_effective_date IN DATE
284 ,p_position_id OUT NOCOPY NUMBER
285 ,p_start_date OUT NOCOPY DATE
286 ,p_end_date OUT NOCOPY DATE
287 )
288 RETURN NUMBER IS
289 CURSOR c_get_period_num (cp_assignment_id NUMBER
290 ,cp_business_group_id NUMBER
291 ,cp_effective_date DATE
292 )
293 IS
294 SELECT ptp.period_num
295 ,ptp.start_date start_date
296 ,ptp.end_date end_date
297 ,paa.position_id
298 FROM per_time_periods ptp
299 ,per_all_assignments_f paa
300 WHERE paa.assignment_id = cp_assignment_id
301 AND paa.business_group_id = cp_business_group_id
302 AND cp_effective_date BETWEEN paa.effective_start_date
303 AND paa.effective_end_date
304 AND paa.payroll_id =ptp.payroll_id
305 AND cp_effective_date BETWEEN ptp.start_date
306 AND ptp.end_date;
307 i per_all_assignments_f.business_group_id%TYPE;
308 l_get_period_num c_get_period_num%ROWTYPE;
309 l_get_period_num_temp c_get_period_num%ROWTYPE;
310 l_start_date DATE;
311 l_end_date DATE;
312 BEGIN
313 l_get_period_num_temp:=NULL;
314 IF p_assignment_id IS NOT NULL AND p_assignment_id <>-1 THEN
315 OPEN c_get_period_num( p_assignment_id
316 ,p_business_group_id
317 ,p_effective_date
318 );
319 FETCH c_get_period_num INTO l_get_period_num;
320 CLOSE c_get_period_num;
321 l_start_date := l_get_period_num.start_date;
322 l_end_date := l_get_period_num.end_date;
323 p_position_id := l_get_period_num.position_id;
324
325 END IF;
326
327 i := g_business_group_id;
328
329 IF l_get_period_num.period_num IS NULL THEN
330 l_get_period_num.period_num:=
331 get_gen_pay_period_number (p_payroll_id =>g_extract_params(i).payroll_id
332 ,p_business_group_id =>p_business_group_id
333 ,p_effective_date =>p_effective_date
334 ,p_start_date =>l_start_date
335 ,p_end_date =>l_end_date
336 );
337 END IF;
338 p_start_date:=l_start_date;
339 p_end_date :=l_end_date;
340 IF l_get_period_num.period_num = 1 THEN
341 --Get previous max pay period
342 OPEN c_get_period_num( p_assignment_id
343 ,p_business_group_id
344 ,l_start_date-1
345 );
346 FETCH c_get_period_num INTO l_get_period_num_temp;
347 CLOSE c_get_period_num;
348 IF l_get_period_num_temp.period_num IS NULL THEN
349 l_get_period_num_temp.period_num:=26;
350 END IF;
351 RETURN (l_get_period_num_temp.period_num);
352 ELSE
353 RETURN((l_get_period_num.period_num-1));
354 END IF;
355 --RETURN(l_get_period_num.period_num);
356
357 END;
358
359 --==============================================================================
360 --Determine_address_chk
361 --==============================================================================
362
363 PROCEDURE Determine_address_chk ( p_person_id NUMBER
364 ,p_assignment_id NUMBER
365 ,p_business_group_id NUMBER
366 ,p_effective_date DATE
367 ,p_request_id NUMBER
368 ,p_addr_type VARCHAR2
369 )
370 IS
371 CURSOR c_get_pr_add (cp_person_id NUMBER
372 ,cp_ext_end_date Date)
373 IS
374 SELECT gph.*
375 FROM ghr_addresses_h_v gph
376 WHERE gph.person_id = cp_person_id
377 AND gph.primary_flag='Y'
378 AND gph.business_group_id = g_business_group_id
379 AND gph.effective_date <= cp_ext_end_date
380 ORDER BY gph.effective_date desc,gph.pa_history_id desc;
381
382 CURSOR c_get_m_add (cp_person_id NUMBER
383 ,cp_ext_end_date Date)
384 IS
385 SELECT gph.*
386 FROM ghr_addresses_h_v gph
387 WHERE gph.person_id = cp_person_id
388 AND gph.address_type='M'
389 AND gph.business_group_id = g_business_group_id
390 AND gph.effective_date <= cp_ext_end_date
391 ORDER by gph.effective_date desc,gph.pa_history_id desc;
392
393 CURSOR c_get_state (cp_effective_date DATE
394 ,cp_state VARCHAR2
395 )
396 IS
397 SELECT SUBSTR(duty_station_code,1,2) state_code
398 FROM ghr_duty_stations_f dut
399 WHERE duty_station_code LIKE '%0000000' AND
400 (
401 (substr(duty_station_code,1,1)
402 IN ('1','2','3','4','5','6','7','8','9','0')
403 AND substr (duty_station_code,2,1)
404 IN ('1','2','3','4','5','6','7','8','9','0'))
405 OR substr(duty_station_code,1,2)
406 IN ('AQ','GQ','RM','PS','VQ','FM','CQ','RQ') )
407 AND trunc(cp_effective_date)
408 BETWEEN effective_Start_date AND effective_end_date
409 AND EXISTS (SELECT 'X' FROM hr_lookups hrl WHERE lookup_type='US_STATE'
410 AND UPPER(hrl.MEANING)=dut.name
411 AND hrl.lookup_code=cp_state);
412
413 /*CURSOR c_get_county (cp_state_code VARCHAR2
414 ,cp_effective_date DATE
415 ,cp_county_name VARCHAR2)
416 IS
417 SELECT SUBSTR(duty_station_code,7,3) county_code
418 FROM ghr_duty_stations_f dut
419 WHERE duty_station_code like cp_state_code || '0000%'
420 AND substr(duty_station_code,7,3) <> '000'
421 AND cp_effective_date BETWEEN
422 effective_Start_date and effective_end_Date
423 AND dut.name=UPPER(cp_county_name);*/
424
425
426 CURSOR c_get_county (cp_state_code VARCHAR2
427 ,cp_effective_date DATE
428 ,cp_city_name VARCHAR2)
429 IS
430
431 SELECT dut.duty_station_code county_code
432 FROM ghr_duty_stations_f dut
433 WHERE
434 dut.duty_station_code IN (
435 SELECT SUBSTR(dut1.duty_station_code,0,2)||'0000'||SUBSTR(dut1.duty_station_code,7,3)
436 FROM ghr_duty_stations_f dut1,ghr_duty_stations_f dut2
437 WHERE dut1.name= UPPER(cp_city_name) AND dut2.duty_station_code =cp_state_code||'0000000'
438 AND SUBSTR(dut1.duty_station_code,0,2) = SUBSTR(dut2.duty_station_code,0,2)
439 AND substr(dut2.duty_station_code,3,7) = '0000000'
440 AND cp_effective_date BETWEEN dut1.effective_start_date
441 AND dut1.effective_end_date
442 AND cp_effective_date BETWEEN dut2.effective_start_date
443 AND dut2.effective_end_date
444 )
445 AND cp_effective_date BETWEEN dut.effective_start_date
446 AND dut.effective_end_date;
447
448
449 CURSOR c_get_city (cp_state_code VARCHAR2
450 ,cp_county_code VARCHAR2
451 ,cp_effective_date DATE
452 ,cp_city_name VARCHAR2
453 )
454 IS
455 SELECT substr(duty_station_code,3,4) city_code
456 FROM ghr_duty_stations_f dut
457 WHERE duty_station_code LIKE
458 cp_state_code || '%' || cp_county_code
459 AND substr(duty_station_code,3,4) <> '0000'
460 and trunc(cp_effective_date)
461 BETWEEN effective_Start_date and effective_end_Date
462 AND dut.name=UPPER(cp_city_name);
463
464
465 l_get_state c_get_state%ROWTYPE;
466 l_get_county c_get_county%ROWTYPE;
467 l_get_city c_get_city%ROWTYPE;
468 l_get_pr_add c_get_m_add%ROWTYPE;
469 BEGIN
470 IF p_addr_type='N' THEN
471 g_rpa_add_attr(p_assignment_id).address_line1_chk :=g_address_rec(p_assignment_id).address_line1;
472 g_rpa_add_attr(p_assignment_id).address_line2_chk :=g_address_rec(p_assignment_id).address_line2;
473 g_rpa_add_attr(p_assignment_id).address_line3_chk :=g_address_rec(p_assignment_id).address_line3;
474 g_rpa_add_attr(p_assignment_id).add_county_chk :=g_address_rec(p_assignment_id).region_1;
475 g_rpa_add_attr(p_assignment_id).zip_cd_chk :=g_address_rec(p_assignment_id).postal_code;
476 IF g_address_rec(p_assignment_id).region_2='AA' THEN
477 g_rpa_add_attr(p_assignment_id).add_state_chk :='91';
478
479 ELSIF g_address_rec(p_assignment_id).region_2='AE' THEN
480 g_rpa_add_attr(p_assignment_id).add_state_chk :='92';
481
482 ELSIF g_address_rec(p_assignment_id).region_2='AP' THEN
483 g_rpa_add_attr(p_assignment_id).add_state_chk :='98' ;
484 ELSE
485 IF g_address_rec(p_assignment_id).region_2='FM' THEN
486
487 g_rpa_add_attr(p_assignment_id).add_state_chk :='FM';
488
489 ELSIF g_address_rec(p_assignment_id).region_2='MP' THEN
490
491 g_rpa_add_attr(p_assignment_id).add_state_chk :='CQ';
492
493 ELSE
494 OPEN c_get_state (p_effective_date
495 ,g_address_rec(p_assignment_id).region_2
496 );
497 FETCH c_get_state INTO l_get_state;
498 CLOSE c_get_state;
499
500 g_rpa_add_attr(p_assignment_id).add_state_chk:=l_get_state.state_code;
501 END IF;
502
503 IF g_address_rec(p_assignment_id).region_1 IS NULL THEN
504 OPEN c_get_county (g_rpa_add_attr(p_assignment_id).add_state_chk
505 ,p_effective_date
506 ,g_address_rec(p_assignment_id).town_or_city);
507 FETCH c_get_county INTO l_get_county;
508 CLOSE c_get_county;
509
510 g_rpa_add_attr(p_assignment_id).add_county_chk :=l_get_county.county_code;
511 g_address_rec(p_assignment_id).region_1:=l_get_county.county_code;
512 END IF;
513 OPEN c_get_city (g_rpa_add_attr(p_assignment_id).add_state_chk
514 ,SUBSTR (g_address_rec(p_assignment_id).region_1,7,3)
515 ,p_effective_date
516 ,g_address_rec(p_assignment_id).town_or_city
517 );
518 FETCH c_get_city INTO l_get_city;
519 CLOSE c_get_city;
520
521 g_rpa_add_attr(p_assignment_id).add_city_chk :=l_get_city.city_code;
522
523 END IF;
524 ELSE
525 OPEN c_get_m_add (p_person_id
526 ,p_effective_date);
527 FETCH c_get_m_add INTO l_get_pr_add;
528 CLOSE c_get_m_add;
529
530 g_rpa_add_attr(p_assignment_id).address_line1_chk :=l_get_pr_add.address_line1;
531 g_rpa_add_attr(p_assignment_id).address_line2_chk :=l_get_pr_add.address_line2;
532 g_rpa_add_attr(p_assignment_id).address_line3_chk :=l_get_pr_add.address_line3;
533 g_rpa_add_attr(p_assignment_id).add_county_chk :=l_get_pr_add.region_1;
534 g_rpa_add_attr(p_assignment_id).zip_cd_chk :=l_get_pr_add.postal_code;
535 IF l_get_pr_add.region_2='AA' THEN
536 g_rpa_add_attr(p_assignment_id).add_state_chk :='91';
537
538 ELSIF l_get_pr_add.region_2='AE' THEN
539 g_rpa_add_attr(p_assignment_id).add_state_chk :='92';
540
541 ELSIF l_get_pr_add.region_2='AP' THEN
542 g_rpa_add_attr(p_assignment_id).add_state_chk :='98' ;
543 ELSE
544 IF l_get_pr_add.region_2='FM' THEN
545
546 g_rpa_add_attr(p_assignment_id).add_state_chk :='FM';
547
548 ELSIF l_get_pr_add.region_2='MP' THEN
549
550 g_rpa_add_attr(p_assignment_id).add_state_chk :='CQ';
551
552 ELSE
553 OPEN c_get_state (p_effective_date
554 ,l_get_pr_add.region_2
555 );
556 FETCH c_get_state INTO l_get_state;
557 CLOSE c_get_state;
558
559 g_rpa_add_attr(p_assignment_id).add_state_chk:=l_get_state.state_code;
560 END IF;
561
562 IF l_get_pr_add.region_1 IS NULL THEN
563 OPEN c_get_county (g_rpa_add_attr(p_assignment_id).add_state_chk
564 ,p_effective_date
565 ,l_get_pr_add.town_or_city);
566 FETCH c_get_county INTO l_get_county;
567 CLOSE c_get_county;
568
569 g_rpa_add_attr(p_assignment_id).add_county_chk :=l_get_county.county_code;
570 l_get_pr_add.region_1:=l_get_county.county_code;
571 END IF;
572 OPEN c_get_city (g_rpa_add_attr(p_assignment_id).add_state_chk
573 ,SUBSTR (l_get_pr_add.region_1,7,3)
574 ,p_effective_date
575 ,l_get_pr_add.town_or_city
576 );
577 FETCH c_get_city INTO l_get_city;
578 CLOSE c_get_city;
579
580 g_rpa_add_attr(p_assignment_id).add_city_chk :=l_get_city.city_code;
581
582 END IF;
583 END IF;
584 END;
585
586
587
588
589
590
591 --==============================================================================
592 --Determine_address_primary
593 --==============================================================================
594
595 PROCEDURE Determine_address_pr ( p_person_id NUMBER
596 ,p_assignment_id NUMBER
597 ,p_business_group_id NUMBER
598 ,p_effective_date DATE
599 ,p_request_id NUMBER
600 ,p_addr_type VARCHAR2
601 )
602 IS
603 CURSOR c_get_pr_add (cp_person_id NUMBER
604 ,cp_ext_end_date Date)
605 IS
606 SELECT gph.*
607 FROM ghr_addresses_h_v gph
608 WHERE gph.person_id = cp_person_id
609 AND gph.primary_flag='Y'
610 AND gph.business_group_id = g_business_group_id
611 AND gph.effective_date <= cp_ext_end_date
612 ORDER by gph.effective_date desc,gph.pa_history_id desc;
613
614 CURSOR c_get_m_add (cp_person_id NUMBER
615 ,cp_ext_end_date Date)
616 IS
617 SELECT gph.*
618 FROM ghr_addresses_h_v gph
619 WHERE gph.person_id = cp_person_id
620 AND gph.address_type='M'
621 AND gph.business_group_id = g_business_group_id
622 AND gph.effective_date <= cp_ext_end_date
623 ORDER by gph.effective_date desc,gph.pa_history_id desc;
624
625 CURSOR c_get_state (cp_effective_date DATE
626 ,cp_state VARCHAR2
627 )
628 IS
629 SELECT SUBSTR(duty_station_code,1,2) state_code
630 FROM ghr_duty_stations_f dut
631 WHERE duty_station_code LIKE '%0000000' AND
632 (
633 (substr(duty_station_code,1,1)
634 IN ('1','2','3','4','5','6','7','8','9','0')
635 AND substr (duty_station_code,2,1)
636 IN ('1','2','3','4','5','6','7','8','9','0'))
637 OR substr(duty_station_code,1,2)
638 IN ('AQ','GQ','RM','PS','VQ','FM','CQ','RQ') )
639 AND trunc(cp_effective_date)
640 BETWEEN effective_Start_date AND effective_end_date
641 AND EXISTS (SELECT 'X' FROM hr_lookups hrl WHERE lookup_type='US_STATE'
642 AND UPPER(hrl.MEANING)=dut.name
643 AND hrl.lookup_code=cp_state);
644
645 /*CURSOR c_get_county (cp_state_code VARCHAR2
646 ,cp_effective_date DATE
647 ,cp_county_name VARCHAR2)
648 IS
649 SELECT SUBSTR(duty_station_code,7,3) county_code
650 FROM ghr_duty_stations_f dut
651 WHERE duty_station_code like cp_state_code || '0000%'
652 AND substr(duty_station_code,7,3) <> '000'
653 AND cp_effective_date BETWEEN
654 effective_Start_date and effective_end_Date
655 AND dut.name=UPPER(cp_county_name);*/
656
657 CURSOR c_get_county (cp_state_code VARCHAR2
658 ,cp_effective_date DATE
659 ,cp_city_name VARCHAR2)
660 IS
661
662 SELECT dut.duty_station_code county_code
663 FROM ghr_duty_stations_f dut
664 WHERE
665 dut.duty_station_code IN (
666 SELECT SUBSTR(dut1.duty_station_code,0,2)||'0000'||SUBSTR(dut1.duty_station_code,7,3)
667 FROM ghr_duty_stations_f dut1,ghr_duty_stations_f dut2
668 WHERE dut1.name= UPPER(cp_city_name) AND dut2.duty_station_code =cp_state_code||'0000000'
669 AND SUBSTR(dut1.duty_station_code,0,2) = SUBSTR(dut2.duty_station_code,0,2)
670 AND substr(dut2.duty_station_code,3,7) = '0000000'
671 AND cp_effective_date BETWEEN dut1.effective_start_date
672 AND dut1.effective_end_date
673 AND cp_effective_date BETWEEN dut2.effective_start_date
674 AND dut2.effective_end_date
675 )
676 AND cp_effective_date BETWEEN dut.effective_start_date
677 AND dut.effective_end_date;
678
679
680 CURSOR c_get_city (cp_state_code VARCHAR2
681 ,cp_county_code VARCHAR2
682 ,cp_effective_date DATE
683 ,cp_city_name VARCHAR2
684 )
685 IS
686 SELECT substr(duty_station_code,3,4) city_code
687 FROM ghr_duty_stations_f dut
688 WHERE duty_station_code LIKE
689 cp_state_code || '%' || cp_county_code
690 AND substr(duty_station_code,3,4) <> '0000'
691 and trunc(cp_effective_date)
692 BETWEEN effective_Start_date and effective_end_Date
693 AND dut.name=UPPER(cp_city_name);
694
695
696 l_get_state c_get_state%ROWTYPE;
697 l_get_county c_get_county%ROWTYPE;
698 l_get_city c_get_city%ROWTYPE;
699 l_get_pr_add c_get_pr_add%ROWTYPE;
700 BEGIN
701
702
703 IF p_addr_type='Y' THEN
704 hr_utility.set_location('Entering pr 1' , 1234);
705 g_rpa_add_attr(p_assignment_id).address_line1 :=g_address_rec(p_assignment_id).address_line1;
706 g_rpa_add_attr(p_assignment_id).address_line2 :=g_address_rec(p_assignment_id).address_line2;
707 g_rpa_add_attr(p_assignment_id).address_line3 :=g_address_rec(p_assignment_id).address_line3;
708 g_rpa_add_attr(p_assignment_id).zip_cd :=g_address_rec(p_assignment_id).postal_code;
709 -- g_rpa_add_attr(p_assignment_id).add_county :=g_address_rec(p_assignment_id).region_1;
710
711 hr_utility.set_location('pr Add 1' || g_address_rec(p_assignment_id).address_line1, 1234);
712
713 IF g_address_rec(p_assignment_id).region_2='AA' THEN
714 g_rpa_add_attr(p_assignment_id).add_state :='91';
715 ELSIF g_address_rec(p_assignment_id).region_2='AE' THEN
716 g_rpa_add_attr(p_assignment_id).add_state :='92';
717 ELSIF g_address_rec(p_assignment_id).region_2='AP' THEN
718 g_rpa_add_attr(p_assignment_id).add_state :='98' ;
719 ELSIF g_address_rec(p_assignment_id).region_2='FM' THEN
720 g_rpa_add_attr(p_assignment_id).add_state :='FM';
721 ELSIF g_address_rec(p_assignment_id).region_2='MP' THEN
722 g_rpa_add_attr(p_assignment_id).add_state :='CQ';
723 ELSE
724 OPEN c_get_state (p_effective_date
725 ,g_address_rec(p_assignment_id).region_2
726 );
727 FETCH c_get_state INTO l_get_state;
728 CLOSE c_get_state;
729 g_rpa_add_attr(p_assignment_id).add_state:=l_get_state.state_code;
730 END IF; -- IF g_address_rec(p_assignment_id).region_2='AA'
731
732 hr_utility.set_location('State ' || g_rpa_add_attr(p_assignment_id).add_state,1001);
733
734 hr_utility.set_location('County ' || g_address_rec(p_assignment_id).region_1,1001);
735
736 -- IF g_address_rec(p_assignment_id).region_1 IS NULL THEN
737 OPEN c_get_county (g_rpa_add_attr(p_assignment_id).add_state
738 ,p_effective_date
739 ,g_address_rec(p_assignment_id).town_or_city);
740 FETCH c_get_county INTO l_get_county;
741 CLOSE c_get_county;
742 g_address_rec(p_assignment_id).region_1:=l_get_county.county_code;
743 g_rpa_add_attr(p_assignment_id).add_county := l_get_county.county_code;
744 -- END IF;
745 hr_utility.set_location('County ' || g_rpa_add_attr(p_assignment_id).add_county,1001);
746
747 OPEN c_get_city (g_rpa_add_attr(p_assignment_id).add_state
748 ,SUBSTR (g_address_rec(p_assignment_id).region_1,7,3)
749 ,p_effective_date
750 ,g_address_rec(p_assignment_id).town_or_city
751 );
752 FETCH c_get_city INTO l_get_city;
753 CLOSE c_get_city;
754 g_rpa_add_attr(p_assignment_id).add_city :=l_get_city.city_code;
755 hr_utility.set_location('City ' || g_rpa_add_attr(p_assignment_id).add_city,1001);
756
757 ELSE -- IF p_addr_type='Y' THEN
758
759 hr_utility.set_location('Entering pr 2' , 1234);
760
761 OPEN c_get_pr_add (p_person_id
762 ,p_effective_date);
763 FETCH c_get_pr_add INTO l_get_pr_add;
764 CLOSE c_get_pr_add;
765
766 hr_utility.set_location('Entering pr 2' || l_get_pr_add.address_line1, 1234);
767 g_rpa_add_attr(p_assignment_id).address_line1 :=l_get_pr_add.address_line1;
768 g_rpa_add_attr(p_assignment_id).address_line2 :=l_get_pr_add.address_line2;
769 g_rpa_add_attr(p_assignment_id).address_line3 :=l_get_pr_add.address_line3;
770 g_rpa_add_attr(p_assignment_id).add_county :=l_get_pr_add.region_1;
771 g_rpa_add_attr(p_assignment_id).zip_cd :=l_get_pr_add.postal_code;
772
773 IF l_get_pr_add.region_2='AA' THEN
774 g_rpa_add_attr(p_assignment_id).add_state :='91';
775 ELSIF l_get_pr_add.region_2='AE' THEN
776 g_rpa_add_attr(p_assignment_id).add_state :='92';
777 ELSIF l_get_pr_add.region_2='AP' THEN
778 g_rpa_add_attr(p_assignment_id).add_state :='98' ;
779 ELSE
780 IF l_get_pr_add.region_2='FM' THEN
781 g_rpa_add_attr(p_assignment_id).add_state :='FM';
782 ELSIF l_get_pr_add.region_2='MP' THEN
783 g_rpa_add_attr(p_assignment_id).add_state :='CQ';
784 ELSE
785 OPEN c_get_state (p_effective_date
786 ,l_get_pr_add.region_2
787 );
788 FETCH c_get_state INTO l_get_state;
789 CLOSE c_get_state;
790 g_rpa_add_attr(p_assignment_id).add_state:=l_get_state.state_code;
791 END IF; -- IF l_get_pr_add.region_2='FM'
792
793 IF l_get_pr_add.region_1 IS NOT NULL THEN
794 OPEN c_get_county (g_rpa_add_attr(p_assignment_id).add_state
795 ,p_effective_date
796 ,l_get_pr_add.town_or_city);
797 FETCH c_get_county INTO l_get_county;
798 CLOSE c_get_county;
799 l_get_pr_add.region_1:=l_get_county.county_code;
800 g_rpa_add_attr(p_assignment_id).add_county := l_get_county.county_code;
801 END IF;
802
803 OPEN c_get_city (g_rpa_add_attr(p_assignment_id).add_state
804 ,SUBSTR (l_get_pr_add.region_1,7,3)
805 ,p_effective_date
806 ,l_get_pr_add.town_or_city
807 );
808 FETCH c_get_city INTO l_get_city;
809 CLOSE c_get_city;
810 g_rpa_add_attr(p_assignment_id).add_city :=l_get_city.city_code;
811 END IF; -- IF l_get_pr_add.region_2='AA'
812 END IF; -- IF p_addr_type='Y' THEN
813
814
815 END Determine_address_pr;
816 -- =============================================================================
817 -- Populate_add_attr
818 -- ============================================================================
819 PROCEDURE populate_add_attr (p_person_id NUMBER
820 ,p_assignment_id NUMBER
821 ,p_business_group_id NUMBER
822 ,p_effective_date DATE
823 ,p_request_id NUMBER
824 )
825 IS
826 CURSOR c_get_asg_info
827 IS
828 SELECT position_id
829 FROM per_all_assignments_f paa
830 WHERE paa.assignment_id=p_assignment_id
831 AND paa.business_group_id=p_business_group_id
832 AND p_effective_date BETWEEN paa.effective_start_date
833 and paa.effective_end_date;
834
835 CURSOR c_ssn (cp_person_id NUMBER
836 ,cp_business_group_id NUMBER
837 ,cp_effective_date DATE
838 )
839 IS
840 SELECT national_identifier
841 FROM per_all_people_f ppf
842 WHERE person_id=cp_person_id
843 AND ppf.business_group_id=p_business_group_id
844 AND p_effective_date BETWEEN ppf.effective_start_date
845 AND ppf.effective_end_date;
846
847 CURSOR c_get_pos_info (cp_position_id NUMBER
848 ,cp_business_group_id NUMBER
849 ,cp_effective_date DATE
850 )
851 IS
852 SELECT pdf.segment3 NFC_Agency_Code,
853 pdf.segment4 POI,
854 pdf.segment7 Grade
855 FROM hr_all_positions_f pos, per_position_definitions pdf
856 WHERE pos.position_definition_id = pdf.position_definition_id
857 AND pos.position_id = cp_position_id
858 AND cp_effective_date between pos.effective_start_date
859 AND pos.effective_end_date
860 AND pos.business_group_id=cp_business_group_id;
861
862
863
864 CURSOR c_get_state (cp_effective_date DATE
865 ,cp_state VARCHAR2
866 )
867 IS
868 SELECT SUBSTR(duty_station_code,1,2) state_code
869 FROM ghr_duty_stations_f dut
870 WHERE duty_station_code LIKE '%0000000' AND
871 (
872 (substr(duty_station_code,1,1)
873 IN ('1','2','3','4','5','6','7','8','9','0')
874 AND substr (duty_station_code,2,1)
875 IN ('1','2','3','4','5','6','7','8','9','0'))
876 OR substr(duty_station_code,1,2)
877 IN ('AQ','GQ','RM','PS','VQ','FM','CQ','RQ') )
878 AND trunc(cp_effective_date)
879 BETWEEN effective_Start_date AND effective_end_date
880 AND EXISTS (SELECT 'X' FROM hr_lookups hrl WHERE lookup_type='US_STATE'
881 AND UPPER(hrl.MEANING)=dut.name
882 AND hrl.lookup_code=cp_state);
883
884 /*CURSOR c_get_county (cp_state_code VARCHAR2
885 ,cp_effective_date DATE
886 ,cp_county_name VARCHAR2)
887 IS
888 SELECT SUBSTR(duty_station_code,7,3) county_code
889 FROM ghr_duty_stations_f dut
890 WHERE duty_station_code like cp_state_code || '0000%'
891 AND substr(duty_station_code,7,3) <> '000'
892 AND cp_effective_date BETWEEN
893 effective_Start_date and effective_end_Date
894 AND dut.name=UPPER(cp_county_name);*/
895
896
897 CURSOR c_get_county (cp_state_code VARCHAR2
898 ,cp_effective_date DATE
899 ,cp_city_name VARCHAR2)
900 IS
901
902 SELECT dut.duty_station_code county_code
903 FROM ghr_duty_stations_f dut
904 WHERE
905 dut.duty_station_code IN (
906 SELECT SUBSTR(dut1.duty_station_code,0,2)||'0000'||SUBSTR(dut1.duty_station_code,7,3)
907 FROM ghr_duty_stations_f dut1,ghr_duty_stations_f dut2
908 WHERE dut1.name= UPPER(cp_city_name) AND dut2.duty_station_code =cp_state_code||'0000000'
909 AND SUBSTR(dut1.duty_station_code,0,2) = SUBSTR(dut2.duty_station_code,0,2)
910 AND substr(dut2.duty_station_code,3,7) = '0000000'
911 AND cp_effective_date BETWEEN dut1.effective_start_date
912 AND dut1.effective_end_date
913 AND cp_effective_date BETWEEN dut2.effective_start_date
914 AND dut2.effective_end_date
915 )
916 AND cp_effective_date BETWEEN dut.effective_start_date
917 AND dut.effective_end_date;
918
919
920 CURSOR c_get_city (cp_state_code VARCHAR2
921 ,cp_county_code VARCHAR2
922 ,cp_effective_date DATE
923 ,cp_city_name VARCHAR2
924 )
925 IS
926 SELECT substr(duty_station_code,3,4) city_code
927 FROM ghr_duty_stations_f dut
928 WHERE duty_station_code LIKE
929 cp_state_code || '%' || cp_county_code
930 AND substr(duty_station_code,3,4) <> '0000'
931 and trunc(cp_effective_date)
932 BETWEEN effective_Start_date and effective_end_Date
933 AND dut.name=UPPER(cp_city_name);
934
935
936
937
938 l_get_state c_get_state%ROWTYPE;
939 l_get_county c_get_county%ROWTYPE;
940 l_get_city c_get_city%ROWTYPE;
941 l_get_pos_info c_get_pos_info%ROWTYPE;
942 l_get_asg_info c_get_asg_info%ROWTYPE;
943 l_pos_ag_code VARCHAR2(30);
944 l_start_date DATE;
945 l_end_date DATE;
946 l_position_id NUMBER;
947 l_posi_extra_info per_position_extra_info%ROWTYPE;
948 l_proc_name constant varchar2(150) := g_proc_name ||'populate_add_attr';
949 l_ssn c_ssn%ROWTYPE;
950 BEGIN
951 hr_utility.set_location ('Enter '||l_proc_name,5);
952
953 /* OPEN c_ssn (p_person_id
954 ,p_business_group_id
955 ,p_effective_date
956 );
957 FETCH c_ssn INTO l_ssn;
958 CLOSE c_ssn;*/
959 OPEN c_get_asg_info;
960 FETCH c_get_asg_info INTO l_get_asg_info;
961 CLOSE c_get_asg_info;
962
963 g_rpa_add_attr(p_assignment_id).assignment_id := p_assignment_id;
964 g_rpa_add_attr(p_assignment_id).request_id := p_request_id;
965
966 hr_utility.set_location (l_proc_name,10);
967 g_rpa_add_attr(p_assignment_id).pay_per_num:=
968 get_pay_period_number
969 (p_person_id => p_person_id
970 ,p_assignment_id =>p_assignment_id
971 ,p_business_group_id =>p_business_group_id
972 ,p_effective_date =>p_effective_date
973 ,p_position_id =>l_position_id
974 ,p_start_date =>l_start_date
975 ,p_end_date =>l_end_date
976 );
977 --g_rpa_add_attr(p_assignment_id).ssn:=l_ssn.national_identifier;
978
979 hr_utility.set_location (l_proc_name,15);
980 ghr_history_fetch.fetch_positionei
981 ( p_position_id => l_position_id
982 ,p_information_type =>'GHR_US_POS_GRP3'
983 ,p_date_effective => p_effective_date
984 ,p_pos_ei_data => l_posi_extra_info);
985
986 g_rpa_add_attr(p_assignment_id).nfc_agency_code := l_posi_extra_info.poei_information21;
987
988 hr_utility.set_location (l_proc_name,20);
989 ghr_history_fetch.fetch_positionei
990 ( p_position_id => l_position_id
991 ,p_information_type =>'GHR_US_POS_GRP1'
992 ,p_date_effective => p_effective_date
993 ,p_pos_ei_data => l_posi_extra_info);
994
995 g_rpa_add_attr(p_assignment_id).poi := l_posi_extra_info.poei_information1;
996
997 IF g_rpa_add_attr(p_assignment_id).nfc_agency_code IS NULL OR
998 g_rpa_add_attr(p_assignment_id).poi IS NULL THEN
999
1000
1001 OPEN c_get_pos_info( l_position_id
1002 ,p_business_group_id
1003 ,p_effective_date
1004 );
1005 FETCH c_get_pos_info INTO l_get_pos_info;
1006 CLOSE c_get_pos_info;
1007
1008 IF g_rpa_add_attr(p_assignment_id).nfc_agency_code IS NULL THEN
1009 g_rpa_add_attr(p_assignment_id).nfc_agency_code :=l_get_pos_info.nfc_agency_code;
1010 END IF;
1011 IF g_rpa_add_attr(p_assignment_id).poi IS NULL THEN
1012 g_rpa_add_attr(p_assignment_id).poi := l_get_pos_info.poi;
1013 END IF;
1014 END IF;
1015 hr_utility.set_location (l_proc_name,25);
1016 l_pos_ag_code :=ghr_api.get_position_agency_code_pos
1017 (p_position_id =>l_position_id
1018 ,p_business_group_id =>p_business_group_id
1019 ,p_effective_date =>p_effective_date) ;
1020
1021 g_rpa_add_attr(p_assignment_id).dept_code := SUBSTR(l_pos_ag_code,0,2);
1022
1023
1024 hr_utility.set_location (l_proc_name,30);
1025
1026 ---This part fetches code from duty station table for state
1027 --county and city.
1028
1029 IF g_address_rec(p_assignment_id).primary_flag='Y' THEN
1030 Determine_address_pr ( p_person_id =>p_person_id
1031 ,p_assignment_id =>p_assignment_id
1032 ,p_business_group_id =>p_business_group_id
1033 ,p_effective_date =>p_effective_date
1034 ,p_request_id =>p_request_id
1035 ,p_addr_type =>'Y'
1036 );
1037 Determine_address_chk ( p_person_id =>p_person_id
1038 ,p_assignment_id =>p_assignment_id
1039 ,p_business_group_id =>p_business_group_id
1040 ,p_effective_date =>p_effective_date
1041 ,p_request_id =>p_request_id
1042 ,p_addr_type =>'Y'
1043 );
1044 ELSE
1045 Determine_address_pr ( p_person_id =>p_person_id
1046 ,p_assignment_id =>p_assignment_id
1047 ,p_business_group_id =>p_business_group_id
1048 ,p_effective_date =>p_effective_date
1049 ,p_request_id =>p_request_id
1050 ,p_addr_type =>'N'
1051 );
1052 Determine_address_chk ( p_person_id =>p_person_id
1053 ,p_assignment_id =>p_assignment_id
1054 ,p_business_group_id =>p_business_group_id
1055 ,p_effective_date =>p_effective_date
1056 ,p_request_id =>p_request_id
1057 ,p_addr_type =>'N'
1058 );
1059
1060 END IF;
1061 hr_utility.set_location (l_proc_name,60);
1062
1063 END;
1064
1065
1066 -- =============================================================================
1067 -- Populate_awd_attr
1068 -- ============================================================================
1069 PROCEDURE populate_awd_attr (p_person_id NUMBER
1070 ,p_assignment_id NUMBER
1071 ,p_business_group_id NUMBER
1072 ,p_effective_date DATE
1073 ,p_first_noa_cd VARCHAR2
1074 ,p_sec_noa_cd VARCHAR2
1075 ,p_request_id NUMBER
1076 ,p_notification_id NUMBER
1077 )
1078 IS
1079
1080 l_posi_extra_info per_position_extra_info%rowtype;
1081 l_pos_ag_code VARCHAR2(30);
1082 l_start_date DATE;
1083 l_end_date DATE;
1084 l_temp NUMBER;
1085
1086 CURSOR c_get_city (cp_state_code VARCHAR2
1087 ,cp_city_code VARCHAR2
1088 ,cp_date DATE
1089 )
1090 IS
1091 SELECT dut.name
1092 FROM ghr_duty_stations_f dut
1093 WHERE substr(duty_station_code,3,4) = cp_city_code
1094 AND substr(duty_station_code,0,2)= cp_state_code
1095 AND cp_date BETWEEN effective_Start_date
1096 AND effective_end_Date;
1097
1098 CURSOR c_get_state (cp_state_code VARCHAR2
1099 ,cp_date DATE
1100 )
1101 IS
1102 SELECT pus.state_abbrev name
1103 FROM pay_us_states pus
1104 WHERE UPPER(pus.state_name)=
1105 (SELECT dut.name
1106 FROM ghr_duty_stations_f dut
1107 WHERE duty_station_code like '%0000000' AND
1108 (
1109 (SUBSTR(duty_station_code,1,1) in ('1','2','3','4','5','6','7','8','9','0')
1110 AND SUBSTR (duty_station_code,2,1) in ('1','2','3','4','5','6','7','8','9','0'))
1111 OR SUBSTR(duty_station_code,1,2) in ('AQ','GQ','RM','PS','VQ','FM','CQ') )
1112 AND cp_date BETWEEN effective_Start_date and effective_end_Date
1113 AND SUBSTR(duty_station_code,0,2)= cp_state_code);
1114
1115 CURSOR c_get_extra_info (cp_request_id NUMBER
1116 ,cp_information_type VARCHAR2
1117 )
1118 IS
1119 SELECT *
1120 FROM ghr_pa_request_extra_info gpre
1121 --WHERE gpre.request_id = cp_request_id Bug 4641232 Sundar
1122 WHERE gpre.pa_request_id = cp_request_id
1123 AND gpre.information_type = cp_information_type;
1124
1125 CURSOR c_get_addr_info (cp_person_id NUMBER
1126 ,cp_business_group_id NUMBER
1127 ,cp_effective_date DATE
1128 )
1129 IS
1130 SELECT *
1131 FROM per_addresses pa
1132 WHERE pa.person_id = cp_person_id
1133 AND pa.business_group_id=cp_business_group_id
1134 AND cp_effective_date BETWEEN pa.date_from
1135 AND NVL(pa.date_to,TO_DATE('12/31/4712','MM/DD/YYYY'))
1136 AND pa.primary_flag='Y';
1137
1138 /*CURSOR c_get_auth_date(c_person_id ghr_pa_requests.person_id%TYPE,
1139 c_effective_date ghr_pa_requests.effective_date%TYPE)
1140 IS
1141 SELECT pa_request_id, (effective_date+rownum)-1 auth_date
1142 FROM ghr_pa_requests
1143 WHERE person_id = c_person_id
1144 AND first_noa_code NOT IN ('001','002')
1145 AND pa_notification_id IS NOT NULL
1146 AND effective_date = c_effective_date
1147 ORDER BY last_update_date ASC;
1148 */
1149
1150 CURSOR c_get_auth_date(c_person_id ghr_pa_requests.person_id%TYPE,
1151 c_effective_date ghr_pa_requests.effective_date%TYPE)
1152 IS
1153 SELECT pa_request_id, (effective_date+rownum)-1 auth_date, noa_code
1154 FROM
1155 (
1156 SELECT pa_request_id, effective_date, last_update_date,first_noa_code noa_code
1157 FROM ghr_pa_requests
1158 WHERE person_id = c_person_id
1159 AND first_noa_code NOT IN ('001','002')
1160 AND pa_notification_id IS NOT NULL
1161 AND effective_date = c_effective_date
1162 UNION ALL
1163 SELECT pa_request_id, effective_date, last_update_date,second_noa_code noa_code
1164 FROM ghr_pa_requests
1165 WHERE person_id = c_person_id
1166 AND first_noa_code = '317'
1167 AND second_noa_code = '825'
1168 AND pa_notification_id IS NOT NULL
1169 AND effective_date = c_effective_date
1170 ORDER BY last_update_date
1171 ) par;
1172
1173
1174
1175 CURSOR c_rpas_on_date(c_person_id ghr_pa_requests.person_id%TYPE,
1176 c_effective_date ghr_pa_requests.effective_date%TYPE)
1177 IS
1178 SELECT COUNT(*) auth_date
1179 FROM
1180 (
1181 SELECT pa_request_id, effective_date, last_update_date,first_noa_code noa_code
1182 FROM ghr_pa_requests
1183 WHERE person_id = c_person_id
1184 AND first_noa_code NOT IN ('001','002')
1185 AND pa_notification_id IS NOT NULL
1186 AND effective_date = c_effective_date
1187 UNION ALL
1188 SELECT pa_request_id, effective_date, last_update_date,second_noa_code noa_code
1189 FROM ghr_pa_requests
1190 WHERE person_id = c_person_id
1191 AND first_noa_code = '317'
1192 AND second_noa_code = '825'
1193 AND pa_notification_id IS NOT NULL
1194 AND effective_date = c_effective_date
1195 ORDER BY last_update_date
1196 ) par;
1197
1198 l_no_rpa_count BOOLEAN;
1199 l_auth_date date;
1200 l_noa_code ghr_pa_requests.first_noa_code%type;
1201
1202 l_get_addr_info c_get_addr_info%ROWTYPE;
1203
1204 l_get_extra_info c_get_extra_info%ROWTYPE;
1205 l_temp1 varchar2(80);
1206 l_get_state c_get_state%ROWTYPE;
1207 l_get_city c_get_city%ROWTYPE;
1208 l_get_ei_val ghr_pa_request_extra_info%ROWTYPE;
1209 BEGIN
1210
1211 l_no_rpa_count := FALSE;
1212 g_rpa_awd_attr(p_request_id).assignment_id := p_assignment_id;
1213 g_rpa_awd_attr(p_request_id).request_id := p_request_id;
1214
1215 IF g_awd_rec(p_request_id).to_position_id IS NULL then
1216 g_awd_rec(p_request_id).to_position_id := g_awd_rec(p_request_id).from_position_id;
1217 END IF;
1218
1219 ghr_history_fetch.fetch_positionei
1220 ( p_position_id => g_awd_rec(p_request_id).to_position_id
1221 ,p_information_type =>'GHR_US_POS_GRP3'
1222 ,p_date_effective => p_effective_date
1223 ,p_pos_ei_data => l_posi_extra_info);
1224
1225 g_rpa_awd_attr(p_request_id).nfc_agency_code := l_posi_extra_info.poei_information21;
1226
1227 l_pos_ag_code :=ghr_api.get_position_agency_code_pos
1228 (p_position_id =>g_awd_rec(p_request_id).to_position_id
1229 ,p_business_group_id =>p_business_group_id
1230 ,p_effective_date =>p_effective_date) ;
1231
1232 g_rpa_awd_attr(p_request_id).dept_code := SUBSTR(l_pos_ag_code,0,2);
1233
1234 g_rpa_awd_attr(p_request_id).pay_per_num:=
1235 get_pay_period_number
1236 (p_person_id => p_person_id
1237 ,p_assignment_id =>p_assignment_id
1238 ,p_business_group_id =>p_business_group_id
1239 ,p_effective_date =>p_effective_date
1240 ,p_position_id => l_temp
1241 ,p_start_date =>l_start_date
1242 ,p_end_date =>l_end_date
1243 );
1244 g_rpa_awd_attr(p_request_id).dt_cash_awd_from := l_start_date;
1245 g_rpa_awd_attr(p_request_id).dt_cash_awd_to := l_end_date;
1246
1247 OPEN c_get_extra_info (p_request_id
1248 ,'GHR_US_PAR_AWARDS_BONUS'
1249 );
1250 FETCH c_get_extra_info INTO l_get_extra_info;
1251 CLOSE c_get_extra_info;
1252
1253 g_rpa_awd_attr(p_request_id).cash_award_agency := l_get_extra_info.rei_information3;
1254 IF
1255 --g_awd_rec(p_request_id).first_noa_code = '300'
1256 -- AND g_awd_rec(p_request_id).first_noa_code <= '399'
1257 -- Above code commented by Sundar Bug 4641232
1258 g_awd_rec(p_request_id).noa_family_code = 'SEPARATION'
1259 AND g_awd_rec(p_request_id).second_noa_code = '825'
1260 THEN
1261 g_rpa_awd_attr(p_request_id).nat_act_2nd_3pos := '825';
1262 g_rpa_awd_attr(p_request_id).csc_auth_code_2nd_noa:= g_awd_rec(p_request_id).second_action_la_code1;
1263 g_rpa_awd_attr(p_request_id).csc_auth_2ndcode_2nd_noa := g_awd_rec(p_request_id).second_action_la_code2;
1264 ELSIF g_awd_rec(p_request_id).first_noa_code ='001'
1265 OR g_awd_rec(p_request_id).first_noa_code ='002' THEN
1266 g_rpa_awd_attr(p_request_id).nat_act_2nd_3pos := g_awd_rec(p_request_id).second_noa_code;
1267 g_rpa_awd_attr(p_request_id).nat_act_1st_3_pos := g_awd_rec(p_request_id).first_noa_code;
1268 g_rpa_awd_attr(p_request_id).csc_auth_code_2nd_noa:= g_awd_rec(p_request_id).first_action_la_code1;
1269 g_rpa_awd_attr(p_request_id).csc_auth_2ndcode_2nd_noa := g_awd_rec(p_request_id).first_action_la_code2;
1270 null;
1271 ELSE
1272 g_rpa_awd_attr(p_request_id).nat_act_2nd_3pos := g_awd_rec(p_request_id).first_noa_code;
1273 g_rpa_awd_attr(p_request_id).csc_auth_code_2nd_noa:= g_awd_rec(p_request_id).first_action_la_code1;
1274 g_rpa_awd_attr(p_request_id).csc_auth_2ndcode_2nd_noa := g_awd_rec(p_request_id).first_action_la_code2;
1275 null;
1276 END IF;
1277
1278 OPEN c_get_addr_info (p_person_id
1279 ,p_business_group_id
1280 ,p_effective_date
1281 );
1282 FETCH c_get_addr_info INTO l_get_addr_info;
1283 CLOSE c_get_addr_info;
1284
1285 IF g_awd_rec(p_request_id).award_uom='M' THEN
1286 g_rpa_awd_attr(p_request_id).current_cash_award := LPAD(REPLACE(g_awd_rec(p_request_id).award_amount,'.'),7,'0');
1287 ELSIF g_awd_rec(p_request_id).award_uom='H' THEN
1288
1289 g_rpa_awd_attr(p_request_id).current_cash_award := LPAD(g_awd_rec(p_request_id).award_amount,7,'0');
1290 END IF;
1291
1292 --derive city and state
1293 --commented due to change in address storage format
1294 --uncommented temporarily
1295 /* OPEN c_get_state (l_get_addr_info.region_2
1296 ,p_effective_date
1297 );
1298 FETCH c_get_state INTO l_get_state;
1299 CLOSE c_get_state;
1300
1301 OPEN c_get_city (l_get_addr_info.region_2
1302 ,l_get_addr_info.town_or_city
1303 ,p_effective_date
1304 );
1305 FETCH c_get_city INTO l_get_city;
1306 CLOSE c_get_city;*/
1307
1308 g_rpa_awd_attr(p_request_id).chk_mail_addr_ln1 := l_get_addr_info.address_line1;
1309 g_rpa_awd_attr(p_request_id).chk_mail_addr_ln2 := l_get_addr_info.address_line2;
1310 g_rpa_awd_attr(p_request_id).chk_mail_addr_city_name :=l_get_addr_info.town_or_city; --l_get_city.name;
1311 g_rpa_awd_attr(p_request_id).chk_mail_addr_state_name := l_get_addr_info.region_2; --l_get_state.name;
1312 g_rpa_awd_attr(p_request_id).chk_mail_addr_zip_5 := SUBSTR(l_get_addr_info.postal_code,0,5);
1313 IF LENGTH(LTRIM(RTRIM(l_get_addr_info.postal_code)))>5 THEN
1314 /*g_rpa_awd_attr(p_request_id).chk_mail_addr_zip_4 := SUBSTR(l_get_addr_info.postal_code,
1315 INSTR(REPLACE(l_get_addr_info.postal_code,' ','-'),'-'),5);*/
1316
1317 g_rpa_awd_attr(p_request_id).chk_mail_addr_zip_4:=SUBSTR(REPLACE(REPLACE (l_get_addr_info.postal_code,
1318 (substr(l_get_addr_info.postal_code, 0,5))),'-'),0,4);
1319 END IF;
1320 g_rpa_awd_attr(p_request_id).chk_mail_addr_zip_2 := NULL; --SUBSTR(l_get_addr_info.postal_code,4,5);
1321
1322 --derive Authentication Date
1323 /* l_get_ei_val:=get_rpa_extra_info_val (p_request_id
1324 ,'GHR_US_PAR_NFC_INFO'
1325 ); */
1326 -- Bug 4990382 Get Authentication date.
1327 FOR l_no_rpas IN c_rpas_on_date(p_person_id,p_effective_date) LOOP
1328 l_no_rpa_count := TRUE;
1329 END LOOP;
1330
1331 IF g_awd_rec(p_request_id).noa_family_code = 'SEPARATION'
1332 AND g_awd_rec(p_request_id).second_noa_code = '825' THEN
1333 l_noa_code := '825';
1334 ELSE
1335 l_noa_code := p_first_noa_cd;
1336 END IF;
1337
1338 IF l_no_rpa_count = TRUE THEN
1339 FOR l_get_auth_date IN c_get_auth_date(p_person_id,p_effective_date) LOOP
1340 IF p_request_id = l_get_auth_date.pa_request_id
1341 AND l_noa_code = l_get_auth_date.noa_code THEN
1342 l_auth_date := l_get_auth_date.auth_date;
1343 END IF;
1344 END LOOP;
1345 END IF;
1346
1347 IF l_no_rpa_count = FALSE THEN
1348 l_auth_date := p_effective_date;
1349 END IF;
1350
1351 l_no_rpa_count := FALSE;
1352 -- End Bug 4990382
1353
1354 g_rpa_awd_attr(p_request_id).authentication_dt := fnd_date.date_to_canonical(l_auth_date);
1355 l_get_ei_val:=NULL;
1356
1357 l_get_ei_val:=get_rpa_extra_info_val (p_request_id
1358 ,'GHR_US_PAR_NFC_AWARD_INFO'
1359 );
1360
1361
1362 g_rpa_awd_attr(p_request_id).awd_case_num :=l_get_ei_val.rei_information3;
1363 g_rpa_awd_attr(p_request_id).awd_store_act_ind :=l_get_ei_val.rei_information4;
1364 g_rpa_awd_attr(p_request_id).awd_csh_awd_typ_cd :=l_get_ei_val.rei_information5;
1365 g_rpa_awd_attr(p_request_id).awd_fir_yr_sav :=l_get_ei_val.rei_information6;
1366 g_rpa_awd_attr(p_request_id).awd_csh_awd_pay_cd :=l_get_ei_val.rei_information7;
1367 g_rpa_awd_attr(p_request_id).awd_no_per_csh_awd :=l_get_ei_val.rei_information8;
1368 g_rpa_awd_attr(p_request_id).awd_acctg_dist_fisyr_cd :=l_get_ei_val.rei_information9;
1369 g_rpa_awd_attr(p_request_id).awd_acctg_dist_appn_cd :=l_get_ei_val.rei_information10;
1370 g_rpa_awd_attr(p_request_id).awd_acctg_dist_slev_cd :=l_get_ei_val.rei_information11;
1371 g_rpa_awd_attr(p_request_id).awd_csh_awd_accst_chg :=l_get_ei_val.rei_information12;
1372 g_rpa_awd_attr(p_request_id).awd_csh_awd_cd :=l_get_ei_val.rei_information13;
1373
1374
1375
1376 END;
1377
1378 -- =============================================================================
1379 -- Populate_attr
1380 -- ============================================================================
1381 PROCEDURE populate_attr (p_person_id NUMBER
1382 ,p_assignment_id NUMBER
1383 ,p_business_group_id NUMBER
1384 ,p_effective_date DATE
1385 ,p_first_noa_cd VARCHAR2
1386 ,p_sec_noa_cd VARCHAR2
1387 ,p_request_id NUMBER
1388 ,p_notification_id NUMBER
1389 )
1390 IS
1391 l_per_ei_data per_people_extra_info%rowtype;
1392 l_pay_det VARCHAR2(10);
1393 l_pos_ag_code VARCHAR2(30);
1394 l_posi_extra_info per_position_extra_info%rowtype;
1395 l_mrn VARCHAR2(40);
1396 l_start_date DATE;
1397 l_end_date DATE;
1398 l_temp NUMBER;
1399 l_proc_name constant varchar2(150) := g_proc_name ||'populate_attr';
1400 CURSOR c_get_pos_id IS
1401 SELECT ppf.sex
1402 FROM per_all_people_f ppf
1403 WHERE p_effective_date BETWEEN
1404 ppf.effective_start_date
1405 AND ppf.effective_end_date
1406 AND ppf.business_group_id=p_business_group_id
1407 AND ppf.person_id =p_person_id;
1408 l_get_pos_id c_get_pos_id%ROWTYPE;
1409
1410 CURSOR c_get_asg_extra_info (cp_assignment_id VARCHAR2
1411 ,cp_info_type VARCHAR2
1412 )
1413 IS
1414 SELECT *
1415 FROM per_assignment_extra_info paei
1416 WHERE paei.assignment_id= cp_assignment_id
1417 AND paei.information_type=cp_info_type;
1418
1419 CURSOR c_mast_pos (cp_position_id NUMBER
1420 ,cp_effective_date DATE
1421 ,cp_business_group_id NUMBER
1422 )
1423 IS
1424 SELECT hap.information6 mrn
1425 FROM hr_all_positions_f hap
1426 WHERE hap.position_id =cp_position_id
1427 AND cp_effective_date BETWEEN hap.effective_start_date
1428 AND hap.effective_end_date
1429 AND hap.business_group_id =cp_business_group_id;
1430
1431
1432 CURSOR c_get_default_values
1433 (cp_position_id IN Number
1434 ,cp_effective_date IN Date) IS
1435 SELECT pdf.segment3 NFC_Agency_Code,
1436 pdf.segment4 Personnel_Office_ID,
1437 pdf.segment7 Grade
1438 FROM hr_all_positions_f pos, per_position_definitions pdf
1439 WHERE pos.position_definition_id = pdf.position_definition_id
1440 AND pos.position_id = cp_position_id
1441 AND cp_effective_date between pos.effective_start_date and pos.effective_end_date;
1442
1443 /*
1444 CURSOR c_get_auth_date(c_person_id ghr_pa_requests.person_id%TYPE,
1445 c_effective_date ghr_pa_requests.effective_date%TYPE)
1446 IS
1447 SELECT pa_request_id, (effective_date+rownum)-1 auth_date
1448 FROM ghr_pa_requests
1449 WHERE person_id = c_person_id
1450 AND first_noa_code NOT IN ('001','002')
1451 AND pa_notification_id IS NOT NULL
1452 AND effective_date = c_effective_date
1453 ORDER BY last_update_date ASC;*/
1454
1455 CURSOR c_get_auth_date(c_person_id ghr_pa_requests.person_id%TYPE,
1456 c_effective_date ghr_pa_requests.effective_date%TYPE)
1457 IS
1458 SELECT pa_request_id, (effective_date+rownum)-1 auth_date, noa_code
1459 FROM
1460 (
1461 SELECT pa_request_id, effective_date, last_update_date,first_noa_code noa_code
1462 FROM ghr_pa_requests
1463 WHERE person_id = c_person_id
1464 AND first_noa_code NOT IN ('001','002')
1465 AND pa_notification_id IS NOT NULL
1466 AND effective_date = c_effective_date
1467 UNION ALL
1468 SELECT pa_request_id, effective_date, last_update_date,second_noa_code noa_code
1469 FROM ghr_pa_requests
1470 WHERE person_id = c_person_id
1471 AND first_noa_code = '317'
1472 AND second_noa_code = '825'
1473 AND pa_notification_id IS NOT NULL
1474 AND effective_date = c_effective_date
1475 ORDER BY last_update_date
1476 ) par;
1477
1478 CURSOR c_rpas_on_date(c_person_id ghr_pa_requests.person_id%TYPE,
1479 c_effective_date ghr_pa_requests.effective_date%TYPE)
1480 IS
1481 SELECT COUNT(*) auth_date
1482 FROM
1483 (
1484 SELECT pa_request_id, effective_date, last_update_date,first_noa_code noa_code
1485 FROM ghr_pa_requests
1486 WHERE person_id = c_person_id
1487 AND first_noa_code NOT IN ('001','002')
1488 AND pa_notification_id IS NOT NULL
1489 AND effective_date = c_effective_date
1490 UNION ALL
1491 SELECT pa_request_id, effective_date, last_update_date,second_noa_code noa_code
1492 FROM ghr_pa_requests
1493 WHERE person_id = c_person_id
1494 AND first_noa_code = '317'
1495 AND second_noa_code = '825'
1496 AND pa_notification_id IS NOT NULL
1497 AND effective_date = c_effective_date
1498 ORDER BY last_update_date
1499 ) par;
1500
1501 l_no_rpa_count BOOLEAN;
1502 l_auth_date DATE;
1503 l_get_default_values c_get_default_values%ROWTYPE;
1504 l_get_asg_extra_info c_get_asg_extra_info%ROWTYPE;
1505 l_mast_pos c_mast_pos%ROWTYPE;
1506 l_position_id hr_all_positions_f.position_id%TYPE;
1507 l_out_val pay_element_entry_values_f.screen_entry_value%type;
1508 l_pos_num VARCHAR2(20);
1509 l_get_ei_val ghr_pa_request_extra_info%ROWTYPE;
1510 l_temp_var NUMBER;
1511 BEGIN
1512
1513 build_rules;
1514 l_per_ei_data:=NULL;
1515 l_no_rpa_count := FALSE;
1516
1517 hr_utility.set_location ('Enter'||l_proc_name,05);
1518 g_rpa_attr(p_request_id).assignment_id := p_assignment_id;
1519 g_rpa_attr(p_request_id).request_id := p_request_id;
1520
1521
1522 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1523 ,p_information_type =>'GHR_US_PER_GROUP1'
1524 ,p_date_effective =>p_effective_date
1525 ,p_per_ei_data =>l_per_ei_data
1526 );
1527
1528
1529 hr_utility.set_location (l_proc_name,10);
1530 -- g_rpa_attr(p_request_id).Previous_agency_code :=l_per_ei_data.pei_information7;
1531
1532 IF p_first_noa_cd LIKE '1%' OR p_first_noa_cd LIKE '2%' OR p_first_noa_cd LIKE '5%'
1533 OR p_first_noa_cd LIKE '7%' OR p_first_noa_cd='866' OR p_sec_noa_cd LIKE '1%' OR
1534 p_sec_noa_cd LIKE '2%' OR p_sec_noa_cd LIKE '5%' OR p_sec_noa_cd LIKE '7%' OR
1535 p_sec_noa_cd = '866' THEN
1536 IF l_per_ei_data.pei_information6 IS NOT NULL THEN
1537 g_rpa_attr(p_request_id).Date_entered_present_grade :=l_per_ei_data.pei_information6;
1538 ELSE
1539 g_rpa_attr(p_request_id).Date_entered_present_grade := fnd_date.date_to_canonical
1540 (g_rpa_rec(p_request_id).effective_date);
1541 END IF;
1542
1543 ELSE
1544 g_rpa_attr(p_request_id).Date_entered_present_grade :=NULL;
1545
1546 END IF;
1547 g_rpa_attr(p_request_id).phy_handicap_code :=l_per_ei_data.pei_information11;
1548 g_rpa_attr(p_request_id).race :=l_per_ei_data.pei_information5;
1549
1550 BEGIN
1551 l_temp_var :=to_number(l_per_ei_data.pei_information3);
1552 g_rpa_attr(p_request_id).typ_apt_cd := g_apt_cd(l_temp_var);
1553 EXCEPTION
1554 WHEN OTHERS THEN
1555 NULL;
1556 END;
1557
1558
1559 hr_utility.set_location (l_proc_name,15);
1560 --modify
1561 l_per_ei_data:=NULL;
1562 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1563 ,p_information_type =>'GHR_US_PER_SEPARATE_RETIRE'
1564 ,p_date_effective =>p_effective_date
1565 ,p_per_ei_data =>l_per_ei_data
1566 );
1567
1568
1569 hr_utility.set_location (l_proc_name||p_first_noa_cd,20);
1570
1571 IF g_psr_month.exists(p_first_noa_cd) THEN
1572 g_rpa_attr(p_request_id).Date_last_pay_status_retired :=l_per_ei_data.pei_information21;
1573 hr_utility.set_location (l_proc_name,25);
1574 END IF;
1575 g_rpa_attr(p_request_id).Frozen_CSRS_service :=l_per_ei_data.pei_information5;
1576 g_rpa_attr(p_request_id).CSRS_coverage_at_appointment :=l_per_ei_data.pei_information4;
1577
1578 hr_utility.set_location (l_proc_name,30);
1579 l_per_ei_data:=NULL;
1580
1581 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1582 ,p_information_type =>'GHR_US_PER_LEAVE_INFO'
1583 ,p_date_effective =>p_effective_date
1584 ,p_per_ei_data =>l_per_ei_data
1585 );
1586
1587
1588 IF g_sler_month.exists(p_first_noa_cd) THEN
1589 g_rpa_attr(p_request_id).Date_sick_leave_exp_ret :=l_per_ei_data.pei_information5;
1590 hr_utility.set_location (l_proc_name,35);
1591 END IF;
1592
1593 g_rpa_attr(p_request_id).Annual_leave_category :=NVL(l_per_ei_data.pei_information3,'0');
1594 -- g_rpa_attr(p_request_id).Annual_leave_45_day_code :=l_per_ei_data.pei_information4;
1595 g_rpa_attr(p_request_id).Leave_ear_stat_py_period :=l_per_ei_data.pei_information6;
1596
1597 hr_utility.set_location (l_proc_name,40);
1598
1599 l_per_ei_data:=NULL;
1600 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1601 ,p_information_type =>'GHR_US_PER_SCD_INFORMATION'
1602 ,p_date_effective =>p_effective_date
1603 ,p_per_ei_data =>l_per_ei_data
1604 );
1605
1606 g_rpa_attr(p_request_id).Date_SCD_CSR :=l_per_ei_data.pei_information7;
1607 g_rpa_attr(p_request_id).Date_SCD_RIF :=l_per_ei_data.pei_information5;
1608 g_rpa_attr(p_request_id).Date_TSP_vested :=l_per_ei_data.pei_information6;
1609 g_rpa_attr(p_request_id).Date_SCD_SES :=l_per_ei_data.pei_information8;
1610
1611 hr_utility.set_location (l_proc_name,45);
1612
1613 l_per_ei_data:=NULL;
1614 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1615 ,p_information_type =>'GHR_US_PER_PROBATIONS'
1616 ,p_date_effective =>p_effective_date
1617 ,p_per_ei_data =>l_per_ei_data
1618 );
1619 g_rpa_attr(p_request_id).Date_Spvr_Mgr_Prob_Ends :=l_per_ei_data.pei_information5;
1620 g_rpa_attr(p_request_id).Date_Supv_Mgr_Prob :=l_per_ei_data.pei_information8;
1621 g_rpa_attr(p_request_id).Date_Prob_period_start :=l_per_ei_data.pei_information3;
1622 g_rpa_attr(p_request_id).Supv_mgr_prob_period_req :=l_per_ei_data.pei_information6;
1623
1624 hr_utility.set_location (l_proc_name,50);
1625
1626 l_per_ei_data:=NULL;
1627 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1628 ,p_information_type =>'GHR_US_PER_CONVERSIONS'
1629 ,p_date_effective =>p_effective_date
1630 ,p_per_ei_data =>l_per_ei_data
1631 );
1632 g_rpa_attr(p_request_id).Date_Career_perma_Ten_St :=l_per_ei_data.pei_information3;
1633
1634 l_per_ei_data:=NULL;
1635 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1636 ,p_information_type =>'GHR_US_RETAINED_GRADE'
1637 ,p_date_effective =>p_effective_date
1638 ,p_per_ei_data =>l_per_ei_data
1639 );
1640 l_pay_det :=g_rpa_rec(p_request_id).pay_rate_determinant;
1641
1642 IF l_pay_det ='A' OR l_pay_det ='B'
1643 OR l_pay_det = 'E' OR l_pay_det ='F'
1644 OR l_pay_det='U' OR l_pay_det ='V' THEN
1645 g_rpa_attr(p_request_id).Date_Ret_Rght_end :=null ;
1646 g_rpa_attr(p_request_id).date_retain_rate_exp :=l_per_ei_data.pei_information2 ;
1647 g_rpa_attr(p_request_id).Saved_Grd_Pay_Plan :=l_per_ei_data.pei_information5;
1648 g_rpa_attr(p_request_id).Saved_Grade :=l_per_ei_data.pei_information3;
1649 null;
1650 END IF;
1651
1652 l_per_ei_data:=NULL;
1653 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1654 ,p_information_type =>'GHR_US_PER_SF52'
1655 ,p_date_effective =>p_effective_date
1656 ,p_per_ei_data =>l_per_ei_data
1657 );
1658 g_rpa_attr(p_request_id).Citizenship_code :=l_per_ei_data.pei_information3;
1659
1660
1661 l_per_ei_data:=NULL;
1662 ghr_history_fetch.fetch_peopleei(p_person_id =>p_person_id
1663 ,p_information_type =>'GHR_US_PER_UNIFORMED_SERVICES'
1664 ,p_date_effective =>p_effective_date
1665 ,p_per_ei_data =>l_per_ei_data
1666 );
1667
1668
1669
1670
1671 g_rpa_attr(p_request_id).Uniform_Svc_Status :=l_per_ei_data.pei_information19;
1672 g_rpa_attr(p_request_id).Creditable_Military_Svc :=l_per_ei_data.pei_information5;
1673 g_rpa_attr(p_request_id).Date_Ret_Military :=l_per_ei_data.pei_information6;
1674
1675 IF p_first_noa_cd ='002' THEN
1676
1677 g_rpa_attr(p_request_id).Date_Corr_NoA :=p_effective_date;
1678
1679 END IF;
1680
1681 IF g_NTE_SF50.exists(p_first_noa_cd)
1682 OR (p_first_noa_cd='002' AND g_NTE_SF50.exists(p_sec_noa_cd)) THEN
1683
1684 g_rpa_attr(p_request_id).Date_NTE_SF50 :=g_rpa_rec(p_request_id).first_noa_information1;
1685 END IF;
1686
1687
1688 -- IF g_retention.exists(p_first_noa_cd) THEN -- Bug 4922145
1689 g_rpa_attr(p_request_id).Retention_Percent := g_rpa_rec(p_request_id).to_retention_allow_percentage;
1690 g_rpa_attr(p_request_id).Retention_allowance := g_rpa_rec(p_request_id).to_retention_allowance;
1691 -- END IF;
1692
1693 IF p_first_noa_cd=780 THEN
1694 g_rpa_attr(p_request_id).Name_Corr_code := 'Y';
1695 ELSE
1696 g_rpa_attr(p_request_id).Name_Corr_code := 'N';
1697 END IF;
1698 --Need to add Old SSNO and Name changed attr
1699
1700 --IF g_recruitment.exists(p_first_noa_cd) THEN
1701 g_rpa_attr(p_request_id).Recruitment_Percent := g_rpa_rec(p_request_id).award_percentage;
1702 g_rpa_attr(p_request_id).Recruitment_bonus := g_rpa_rec(p_request_id).award_amount;
1703
1704 -- END IF;
1705
1706 --IF g_relocation.exists(p_first_noa_cd) THEN
1707 g_rpa_attr(p_request_id).Relocation_percent := g_rpa_rec(p_request_id).award_percentage;
1708 g_rpa_attr(p_request_id).Relocation_bonus := g_rpa_rec(p_request_id).award_amount;
1709 null;
1710 -- END IF;
1711
1712 -- IF g_Supervisory.exists(p_first_noa_cd) THEN
1713 g_rpa_attr(p_request_id).Supervisory_Percent :=g_rpa_rec(p_request_id).to_supervisory_diff_percentage;
1714 g_rpa_attr(p_request_id).Supervisory_Differential_Rate :=g_rpa_rec(p_request_id).to_supervisory_differential;
1715 -- END IF;
1716
1717 --Derive TSP eligilibilty code
1718 IF ( p_first_noa_cd like '1%' OR
1719 (p_sec_noa_cd='02' AND p_first_noa_cd like '1%') )
1720 OR
1721 ( p_first_noa_cd like '5%' OR
1722 (p_sec_noa_cd='02' AND p_first_noa_cd like '5%') )
1723 OR
1724 ( p_first_noa_cd ='803' OR
1725 (p_sec_noa_cd='02' AND p_first_noa_cd ='803') )
1726 THEN
1727 IF (g_rpa_rec(p_request_id).retirement_plan='K'
1728 OR g_rpa_rec(p_request_id).retirement_plan='L'
1729 OR g_rpa_rec(p_request_id).retirement_plan='M'
1730 OR g_rpa_rec(p_request_id).retirement_plan='N'
1731 OR g_rpa_rec(p_request_id).retirement_plan='P'
1732 OR g_rpa_rec(p_request_id).retirement_plan='D')
1733 THEN
1734 g_rpa_attr(p_request_id).tsp_elig_cd := '2';
1735 ELSIF (g_rpa_rec(p_request_id).retirement_plan='2'
1736 OR g_rpa_rec(p_request_id).retirement_plan='5'
1737 OR g_rpa_rec(p_request_id).retirement_plan='Y'
1738 OR g_rpa_rec(p_request_id).retirement_plan='Z'
1739 OR g_rpa_rec(p_request_id).retirement_plan='4'
1740 )
1741 THEN
1742 g_rpa_attr(p_request_id).tsp_elig_cd := '6';
1743 ELSE
1744 g_rpa_attr(p_request_id).tsp_elig_cd := '3';
1745 END IF;
1746
1747 ELSE
1748 g_rpa_attr(p_request_id).tsp_elig_cd :=NULL;
1749 END IF;
1750
1751 IF (TO_NUMBER(p_first_noa_cd) >= 100 AND TO_NUMBER(p_first_noa_cd) <=199)
1752 OR (p_first_noa_cd = '002' AND (TO_NUMBER(p_sec_noa_cd) >= 100 AND TO_NUMBER(p_sec_noa_cd) <=199 )) THEN
1753 OPEN c_get_asg_extra_info (p_assignment_id
1754 ,'GHR_US_ASG_NON_SF52'
1755 );
1756 FETCH c_get_asg_extra_info INTO l_get_asg_extra_info;
1757 CLOSE c_get_asg_extra_info;
1758 g_rpa_attr(p_request_id).special_emp_code := NVL(l_get_asg_extra_info.aei_information12,'00');
1759 g_rpa_attr(p_request_id).action_code := 1;
1760
1761 ghr_history_fetch.fetch_element_entry_value
1762 (p_element_name =>'Health Benefits',
1763 p_input_value_name =>'Enrollment',
1764 p_assignment_id =>p_assignment_id,
1765 p_date_effective =>p_effective_date,
1766 p_screen_entry_value =>l_out_val
1767 ) ;
1768 IF l_out_val IS NULL THEN
1769 ghr_history_fetch.fetch_element_entry_value
1770 (p_element_name =>'Health Benefits Pre tax',
1771 p_input_value_name =>'Enrollment',
1772 p_assignment_id =>p_assignment_id,
1773 p_date_effective =>p_effective_date,
1774 p_screen_entry_value =>l_out_val
1775 ) ;
1776 END IF;
1777
1778 IF l_out_val='Z' THEN
1779 l_out_val:='2' ;
1780 ELSIF l_out_val='Y' THEN
1781 l_out_val:='3' ;
1782 ELSE
1783 l_out_val:='4' ;
1784 END IF;
1785
1786 g_rpa_attr(p_request_id).fehb_cov_cd := l_out_val;
1787 l_out_val:=NULL;
1788 ELSIF TO_NUMBER(p_first_noa_cd) >=300 AND TO_NUMBER(p_first_noa_cd) <= 399
1789 OR (p_first_noa_cd = '002' AND (TO_NUMBER(p_sec_noa_cd) >= 300 AND TO_NUMBER(p_sec_noa_cd) <=399 )) THEN
1790 g_rpa_attr(p_request_id).action_code :=3;
1791 ELSIF TO_NUMBER(p_first_noa_cd) >= 500 AND TO_NUMBER(p_first_noa_cd) <=599 THEN
1792
1793 g_rpa_attr(p_request_id).action_code:= ghr_utility.get_nfc_conv_action_code (p_request_id);
1794 ELSIF
1795 p_first_noa_cd = '002' AND (TO_NUMBER(p_sec_noa_cd) >= 500 AND TO_NUMBER(p_sec_noa_cd) <=599 ) THEN
1796 g_rpa_attr(p_request_id).action_code:=ghr_utility.get_nfc_conv_action_code (p_sec_noa_cd);
1797
1798 ELSE
1799 g_rpa_attr(p_request_id).action_code :=2;
1800
1801 END IF;
1802
1803 IF g_rpa_rec(p_request_id).to_position_id IS NULL THEN
1804 hr_utility.set_location ('Inside null',05);
1805 g_rpa_rec(p_request_id).to_position_id := g_rpa_rec(p_request_id).from_position_id;
1806 END IF;
1807
1808 l_pos_ag_code :=ghr_api.get_position_agency_code_pos
1809 (p_position_id =>g_rpa_rec(p_request_id).to_position_id
1810 ,p_business_group_id =>p_business_group_id
1811 ,p_effective_date =>p_effective_date) ;
1812
1813 g_rpa_attr(p_request_id).pmso_dept := SUBSTR(l_pos_ag_code,0,2);
1814
1815
1816 --get MRN using the positionid and get from master pos.
1817
1818 OPEN c_mast_pos (g_rpa_rec(p_request_id).to_position_id
1819 ,p_effective_date
1820 ,p_business_group_id
1821 );
1822 FETCH c_mast_pos INTO l_mast_pos;
1823 CLOSE c_mast_pos;
1824 l_position_id := TO_NUMBER(l_mast_pos.mrn);
1825
1826 l_mrn :=ghr_api.get_position_desc_no_pos
1827 (p_position_id =>l_position_id
1828 ,p_business_group_id =>p_business_group_id
1829 ,p_effective_date =>p_effective_date
1830 ) ;
1831
1832
1833 g_rpa_attr(p_request_id).mrn := l_mrn;
1834 l_pos_num:=ghr_api.get_position_desc_no_pos
1835 (p_position_id =>g_rpa_rec(p_request_id).to_position_id
1836 ,p_business_group_id =>p_business_group_id
1837 ,p_effective_date =>p_effective_date
1838 );
1839
1840 g_rpa_attr(p_request_id).pos_num := l_pos_num;
1841
1842 /*ghr_history_fetch.fetch_positionei
1843 ( p_position_id => l_position_id
1844 ,p_information_type =>'GHR_US_POS_GRP3'
1845 ,p_date_effective => p_effective_date
1846 ,p_pos_ei_data => l_posi_extra_info);*/
1847
1848
1849 hr_utility.set_location ('p_effective_date'||p_effective_date,05);
1850
1851 OPEN c_get_default_values (l_position_id
1852 ,p_effective_date);
1853 FETCH c_get_default_values INTO l_get_default_values;
1854 CLOSE c_get_default_values;
1855
1856 hr_utility.set_location ('l_get_default_values.nfc_agency_code'||l_get_default_values.nfc_agency_code,05);
1857 hr_utility.set_location ('p_request_id'||p_request_id,05);
1858
1859
1860 g_rpa_attr(p_request_id).nfc_agency := l_get_default_values.nfc_agency_code;
1861
1862 l_posi_extra_info:=NULL;
1863 /*ghr_history_fetch.fetch_positionei
1864 ( p_position_id => l_position_id
1865 ,p_information_type =>'GHR_US_POS_GRP1'
1866 ,p_date_effective => p_effective_date
1867 ,p_pos_ei_data => l_posi_extra_info);*/
1868 g_rpa_attr(p_request_id).poi := l_get_default_values.personnel_office_id;
1869 l_posi_extra_info:=NULL;
1870 l_get_default_values:=NULL;
1871 /*ghr_history_fetch.fetch_positionei
1872 ( p_position_id => g_rpa_rec(p_request_id).to_position_id
1873 ,p_information_type =>'GHR_US_POS_GRP3'
1874 ,p_date_effective => p_effective_date
1875 ,p_pos_ei_data => l_posi_extra_info);*/
1876
1877
1878 OPEN c_get_default_values (g_rpa_rec(p_request_id).to_position_id
1879 ,p_effective_date);
1880 FETCH c_get_default_values INTO l_get_default_values;
1881 CLOSE c_get_default_values;
1882 g_rpa_attr(p_request_id).pmso_agency := l_get_default_values.nfc_agency_code;
1883
1884 /*ghr_history_fetch.fetch_positionei
1885 ( p_position_id =>g_rpa_rec(p_request_id).to_position_id
1886 ,p_information_type =>'GHR_US_POS_GRP1'
1887 ,p_date_effective => p_effective_date
1888 ,p_pos_ei_data => l_posi_extra_info);*/
1889 --g_rpa_attr(p_request_id).pmso_poi := l_posi_extra_info.poei_information1;
1890 g_rpa_attr(p_request_id).pmso_poi := l_get_default_values.personnel_office_id;
1891 l_posi_extra_info:=NULL;
1892 l_get_default_values:=NULL;
1893 --get gender code
1894 OPEN c_get_pos_id;
1895 FETCH c_get_pos_id INTO l_get_pos_id;
1896 CLOSE c_get_pos_id;
1897
1898
1899 g_rpa_attr(p_request_id).gender_code := l_get_pos_id.sex;
1900
1901 --get payperiod num
1902
1903 g_rpa_attr(p_request_id).pay_period_num :=
1904 get_pay_period_number
1905 (p_person_id => p_person_id
1906 ,p_assignment_id =>p_assignment_id
1907 ,p_business_group_id =>p_business_group_id
1908 ,p_effective_date =>p_effective_date
1909 ,p_position_id => l_temp
1910 ,p_start_date =>l_start_date
1911 ,p_end_date =>l_end_date
1912 );
1913
1914
1915
1916 ghr_history_fetch.fetch_element_entry_value
1917 (p_element_name =>'Retirement Annuity',
1918 p_input_value_name =>'Sum',
1919 p_assignment_id =>p_assignment_id,
1920 p_date_effective =>p_effective_date,
1921 p_screen_entry_value =>l_out_val
1922 ) ;
1923
1924 g_rpa_attr(p_request_id).civil_service_annuitant_share := TO_NUMBER(l_out_val);
1925 l_out_val :=NULL;
1926 ghr_history_fetch.fetch_element_entry_value
1927 (p_element_name =>'Within Grade Increase',
1928 p_input_value_name =>'Last Equivalent Increase',
1929 p_assignment_id =>p_assignment_id,
1930 p_date_effective =>p_effective_date,
1931 p_screen_entry_value =>l_out_val
1932 ) ;
1933
1934 g_rpa_attr(p_request_id).dt_scd_wgi := l_out_val;
1935 l_out_val :=NULL;
1936
1937 --derive Authentication Date
1938 FOR l_no_rpas IN c_rpas_on_date(p_person_id,p_effective_date) LOOP
1939 l_no_rpa_count := TRUE;
1940 END LOOP;
1941
1942 IF l_no_rpa_count = TRUE THEN
1943 FOR l_get_auth_date IN c_get_auth_date(p_person_id,p_effective_date) LOOP
1944 IF p_request_id = l_get_auth_date.pa_request_id
1945 AND p_first_noa_cd = l_get_auth_date.noa_code THEN
1946 l_auth_date := l_get_auth_date.auth_date;
1947 END IF;
1948 END LOOP;
1949 END IF;
1950
1951 IF l_no_rpa_count = FALSE THEN
1952 l_auth_date := p_effective_date;
1953 END IF;
1954
1955 l_no_rpa_count := FALSE;
1956
1957 g_rpa_attr(p_request_id).authentication_dt := fnd_date.date_to_canonical(l_auth_date);
1958
1959 /*l_get_ei_val:=get_rpa_extra_info_val (p_request_id
1960 ,'GHR_US_PAR_NFC_INFO'
1961 ); */
1962 -- g_rpa_attr(p_request_id).authentication_dt :=l_get_ei_val.rei_information3;
1963 --derive previous nature of action code
1964 IF p_first_noa_cd='001' THEN
1965 g_rpa_attr(p_request_id).nat_act_prev :=
1966 ghr_utility.get_nfc_prev_noa(
1967 p_person_id => p_person_id
1968 ,p_pa_notification_id => p_notification_id
1969 ,p_effective_date => p_effective_date);
1970 END IF;
1971
1972 IF p_first_noa_cd='001' OR p_first_noa_cd='002' THEN
1973 ghr_utility.get_nfc_auth_codes(
1974 p_person_id =>p_person_id,
1975 p_pa_notification_id => p_notification_id ,
1976 p_effective_date =>p_effective_date,
1977 p_first_auth_code => g_rpa_attr(p_request_id).csc_auth_prev_noa,
1978 p_second_auth_code => g_rpa_attr(p_request_id).csc_auth_prev_2noa);
1979
1980 END IF;
1981 IF g_rpa_rec (p_request_id).veterans_status='X'
1982 AND g_rpa_rec (p_request_id).veterans_preference='1'
1983 AND g_rpa_rec (p_request_id).veterans_pref_for_rif ='Y' THEN
1984
1985 g_rpa_attr(p_request_id).veterans_pref_for_rif :='5';
1986
1987 ELSIF g_rpa_rec (p_request_id).veterans_status='X'
1988 AND g_rpa_rec (p_request_id).veterans_preference='1'
1989 AND g_rpa_rec (p_request_id).veterans_pref_for_rif ='N' THEN
1990
1991 g_rpa_attr(p_request_id).veterans_pref_for_rif := '3' ;
1992
1993 ELSIF g_rpa_rec (p_request_id).veterans_status <> 'X'
1994 AND (g_rpa_rec (p_request_id).veterans_preference = '2' OR
1995 g_rpa_rec (p_request_id).veterans_preference = '3' OR
1996 g_rpa_rec (p_request_id).veterans_preference = '4' OR
1997 g_rpa_rec (p_request_id).veterans_preference = '5' )
1998 AND g_rpa_rec (p_request_id).veterans_pref_for_rif ='Y' THEN
1999
2000 g_rpa_attr(p_request_id).veterans_pref_for_rif := '2' ;
2001 ELSIF g_rpa_rec (p_request_id).veterans_status <> 'X'
2002 AND (g_rpa_rec (p_request_id).veterans_preference = '2' OR
2003 g_rpa_rec (p_request_id).veterans_preference = '3' OR
2004 g_rpa_rec (p_request_id).veterans_preference = '4' OR
2005 g_rpa_rec (p_request_id).veterans_preference = '5' OR
2006 g_rpa_rec (p_request_id).veterans_preference = '6' )
2007 AND g_rpa_rec (p_request_id).veterans_pref_for_rif ='N' THEN
2008
2009 g_rpa_attr(p_request_id).veterans_pref_for_rif := '2' ;
2010
2011 ELSIF g_rpa_rec (p_request_id).veterans_status <>'X'
2012 AND g_rpa_rec (p_request_id).veterans_preference='1'
2013 AND g_rpa_rec (p_request_id).veterans_pref_for_rif ='N' THEN
2014
2015 g_rpa_attr(p_request_id).veterans_pref_for_rif := '3' ;
2016
2017 ELSIF g_rpa_rec (p_request_id).veterans_status <>'X'
2018 AND g_rpa_rec (p_request_id).veterans_preference='1'
2019 AND g_rpa_rec (p_request_id).veterans_pref_for_rif ='Y' THEN
2020
2021 g_rpa_attr(p_request_id).veterans_pref_for_rif := '2' ;
2022
2023 ELSIF g_rpa_rec (p_request_id).veterans_status <>'X'
2024 AND g_rpa_rec (p_request_id).veterans_preference='6'
2025 AND g_rpa_rec (p_request_id).veterans_pref_for_rif ='Y' THEN
2026
2027 g_rpa_attr(p_request_id).veterans_pref_for_rif := '1' ;
2028 END IF;
2029
2030 hr_utility.set_location ('Populate Attr Position Class Code ',54);
2031 IF (TO_NUMBER(p_first_noa_cd) >=300 AND TO_NUMBER(p_first_noa_cd) <= 399)
2032 OR (TO_NUMBER(p_sec_noa_cd) >=300 AND TO_NUMBER(p_sec_noa_cd) <= 399)
2033 --OR (TO_NUMBER(p_first_noa_cd)=507 OR TO_NUMBER(p_sec_noa_cd) =507)
2034 OR (TO_NUMBER(p_first_noa_cd)=713 OR TO_NUMBER(p_sec_noa_cd) =713)
2035 OR (TO_NUMBER(p_first_noa_cd)=740 OR TO_NUMBER(p_sec_noa_cd)=740)
2036 OR (TO_NUMBER(p_first_noa_cd)=741 OR TO_NUMBER(p_sec_noa_cd)=741)
2037 OR
2038 ( g_rpa_rec(p_request_id).from_position_id IS NOT NULL AND
2039 g_rpa_rec(p_request_id).from_position_id <>
2040 NVL(g_rpa_rec(p_request_id).to_position_id,hr_api.g_number) -- Bug 5026388
2041 )
2042 THEN
2043 g_rpa_attr(p_request_id).position_class_cd:='0';
2044 ELSE
2045 g_rpa_attr(p_request_id).position_class_cd:=NULL;
2046 END IF;
2047
2048 l_get_default_values:=NULL;
2049 IF (p_first_noa_cd LIKE '5%' OR p_sec_noa_cd LIKE '5%' )
2050 AND g_rpa_rec(p_request_id).from_position_id <> g_rpa_rec(p_request_id).to_position_id
2051 AND g_rpa_rec(p_request_id).from_position_id IS NOT NULL AND
2052 g_rpa_rec(p_request_id).to_position_id IS NOT NULL THEN
2053 OPEN c_get_default_values (g_rpa_rec(p_request_id).from_position_id
2054 ,p_effective_date);
2055 FETCH c_get_default_values INTO l_get_default_values;
2056 CLOSE c_get_default_values;
2057
2058 g_rpa_attr(p_request_id).Previous_agency_code:=l_get_default_values.nfc_agency_code;
2059 END IF;
2060
2061
2062
2063 ---Gain or Lose attribute
2064 --Annual leave 45 day code
2065 l_get_ei_val:=NULL;
2066 IF (p_first_noa_cd LIKE '1%' AND p_first_noa_cd <> '130'
2067 AND p_first_noa_cd <> '132' ) OR
2068 ( p_sec_noa_cd LIKE '1%' AND p_sec_noa_cd <> '130'
2069 AND p_sec_noa_cd <> '132' )
2070 THEN
2071
2072 l_get_ei_val:=get_rpa_extra_info_val (p_request_id
2073 ,'GHR_US_PAR_APPT_INFO'
2074 );
2075
2076 g_rpa_attr(p_request_id).gain_lose_dept_non_usda:=NVL(l_get_ei_val.rei_information21,'1B');
2077 g_rpa_attr(p_request_id).Annual_leave_45_day_code :=NVL(l_get_ei_val.rei_information20,'N');
2078 ELSIF p_first_noa_cd LIKE '3%' OR p_sec_noa_cd LIKE '3%' THEN
2079 ---this clause is used for Agency use and gain lose dept.
2080
2081 l_get_ei_val:=NULL;
2082 l_get_ei_val:=get_rpa_extra_info_val (p_request_id
2083 ,'GHR_US_PAR_NFC_SEPARATION_INFO'
2084 );
2085
2086 g_rpa_attr(p_request_id).gain_lose_dept_non_usda:=NVL(l_get_ei_val.rei_information12,'1B');
2087
2088 g_rpa_attr(p_request_id).agency_use:=NVL(l_get_ei_val.rei_information3,' ')
2089 ||NVL(l_get_ei_val.rei_information4,' ')
2090 ||NVL(l_get_ei_val.rei_information5,' ')
2091 ||NVL(l_get_ei_val.rei_information6,' ')
2092 ||NVL(l_get_ei_val.rei_information7,' ')
2093 ||NVL(l_get_ei_val.rei_information8,' ')
2094 ||NVL(l_get_ei_val.rei_information9,' ')
2095 ||NVL(l_get_ei_val.rei_information10,' ')
2096 ||NVL(l_get_ei_val.rei_information11,' ');
2097 ELSIF (p_first_noa_cd = '130' OR p_first_noa_cd = '132')
2098 OR ( p_sec_noa_cd = '130' OR p_sec_noa_cd = '132') THEN
2099 --Annual leave 45 day code
2100 l_get_ei_val:=NULL;
2101 l_get_ei_val:=get_rpa_extra_info_val (p_request_id
2102 ,'GHR_US_PAR_APPT_TRANSFER'
2103 );
2104 g_rpa_attr(p_request_id).gain_lose_dept_non_usda:=NVL(l_get_ei_val.rei_information23,'1B');
2105 g_rpa_attr(p_request_id).Annual_leave_45_day_code :=NVL(l_get_ei_val.rei_information22,'N');
2106 END IF;
2107
2108 --Annual leave 45 day code
2109 IF p_first_noa_cd LIKE '5%' OR p_sec_noa_cd LIKE '5%' THEN
2110 l_get_ei_val:=NULL;
2111 l_get_ei_val:=get_rpa_extra_info_val (p_request_id
2112 ,'GHR_US_PAR_CONV_APP'
2113 );
2114 g_rpa_attr(p_request_id).Annual_leave_45_day_code :=NVL(l_get_ei_val.rei_information22,'N');
2115 END IF;
2116
2117 --Special employee program code
2118
2119 IF p_first_noa_cd = '100' OR p_sec_noa_cd = '100' THEN
2120 g_rpa_attr(p_request_id).special_emp_prg_code := l_get_asg_extra_info.aei_information13;
2121 IF g_rpa_attr(p_request_id).special_emp_prg_code IS NULL THEN
2122 l_get_ei_val:=NULL;
2123 l_get_ei_val:=get_rpa_extra_info_val (p_request_id
2124 ,'GHR_US_PAR_APPT_INFO'
2125 );
2126 g_rpa_attr(p_request_id).special_emp_prg_code := l_get_ei_val.rei_information22;
2127 END IF;
2128
2129 END IF;
2130 hr_utility.set_location ('Leaving Populate Attr',55);
2131 END populate_attr;
2132 -- =============================================================================
2133 -- Build_rules:
2134 -- =============================================================================
2135 PROCEDURE build_rules
2136 IS
2137 a number;
2138 BEGIN
2139
2140 --for attribute Date Last Pay Status Retired Month
2141 g_psr_month(300) :=300;
2142 g_psr_month(301) :=301;
2143 g_psr_month(302) :=302;
2144 g_psr_month(303) :=303;
2145 g_psr_month(304) :=304;
2146 g_psr_month(350) :=350;
2147
2148 ---for attribute Date Sick Leave Expired Retired Month
2149 g_sler_month(300) := 300;
2150 g_sler_month(301) := 301;
2151 g_sler_month(302) := 302;
2152 g_sler_month(303) := 303;
2153 g_sler_month(304) := 304;
2154 g_sler_month(350) := 350;
2155
2156 ---attribute Date NTE SF50 Month
2157
2158 g_NTE_SF50(108) :=108;
2159 g_NTE_SF50(115) :=115;
2160 g_NTE_SF50(117) :=117;
2161 g_NTE_SF50(122) :=122;
2162 g_NTE_SF50(148) :=148;
2163 g_NTE_SF50(149) :=149;
2164 g_NTE_SF50(153) :=153;
2165 g_NTE_SF50(154) :=154;
2166 g_NTE_SF50(171) :=171;
2167 g_NTE_SF50(190) :=190;
2168 g_NTE_SF50(198) :=198;
2169 g_NTE_SF50(199) :=199;
2170 g_NTE_SF50(450) :=450;
2171 g_NTE_SF50(460) :=460;
2172 g_NTE_SF50(462) :=462;
2173 g_NTE_SF50(472) :=472;
2174 g_NTE_SF50(480) :=480;
2175 g_NTE_SF50(508) :=508;
2176 g_NTE_SF50(515) :=515;
2177 g_NTE_SF50(517) :=517;
2178 g_NTE_SF50(522) :=522;
2179 g_NTE_SF50(548) :=548;
2180 g_NTE_SF50(553) :=553;
2181 g_NTE_SF50(554) :=554;
2182 g_NTE_SF50(571) :=571;
2183 g_NTE_SF50(590) :=590;
2184 g_NTE_SF50(703) :=703;
2185 g_NTE_SF50(741) :=741;
2186 g_NTE_SF50(750) :=750;
2187 g_NTE_SF50(760) :=760;
2188 g_NTE_SF50(761) :=761;
2189 g_NTE_SF50(762) :=762;
2190 g_NTE_SF50(765) :=765;
2191 g_NTE_SF50(769) :=769;
2192 g_NTE_SF50(770) :=770;
2193 g_NTE_SF50(772) :=772;
2194 g_NTE_SF50(773) :=773;
2195
2196 --attr for retention
2197 g_retention(810):=810;
2198 --for attr recruitment
2199 g_recruitment(815) :=815;
2200
2201
2202 --for attr g_relocation
2203 g_relocation(816) :=816;
2204
2205
2206 --for attr g_Supervisory
2207 g_Supervisory(810) :=810;
2208 --g_apt_cd
2209 g_apt_cd(10) := '01';
2210 g_apt_cd(15) := '02';
2211 g_apt_cd(20) := '03';
2212 g_apt_cd(30) := '06';
2213 g_apt_cd(32) := '06';
2214 g_apt_cd(34) := '06';
2215 g_apt_cd(36) := '06';
2216 g_apt_cd(38) := '06';
2217 g_apt_cd(40) := '09';
2218 g_apt_cd(42) := '09';
2219 g_apt_cd(44) := '09';
2220 g_apt_cd(46) := '09';
2221 g_apt_cd(48) := '09';
2222 g_apt_cd(50) := '01';
2223 g_apt_cd(55) := '06';
2224 g_apt_cd(60) := '09';
2225 g_apt_cd(65) := '08';
2226
2227 END;
2228
2229
2230 -- =============================================================================
2231 -- ~ Get_Rcds_Details:
2232 -- =============================================================================
2233 procedure Get_Rcds_Details is
2234
2235 -- Cursor to get the seq num of the
2236 cursor csr_seq (c_ext_rcd_id in number) is
2237 select eir.seq_num
2238 ,elm.string_val
2239 from ben_ext_data_elmt elm,
2240 ben_ext_data_elmt_in_rcd eir
2241 where elm.ext_data_elmt_id = eir.ext_data_elmt_id
2242 and elm.data_elmt_typ_cd = 'R'
2243 and elm.string_val in ('RPA_REQ_ID', 'RPA_AWARD_ID',
2244 'RPA_REMARK_ID','RPA_ADD_ID')
2245 and eir.ext_rcd_id = c_ext_rcd_id;
2246
2247 l_proc constant varchar2(150) := g_proc_name||'Get_Rcds_Details';
2248 l_col_value varchar2(600);
2249 begin
2250 Hr_Utility.set_location('Entering'||l_proc, 5);
2251 for rcd_rec in csr_ext_rcd
2252 (c_hide_flag => 'N'
2253 ,c_rcd_type_cd => 'D')
2254 loop
2255 for eir in csr_seq(rcd_rec.ext_rcd_id)
2256 loop
2257 if eir.seq_num < 10 then
2258 l_col_value := 'val_0'|| eir.seq_num;
2259 else
2260 l_col_value := 'val_'|| eir.seq_num;
2261 end if;
2262 g_ext_rcd(rcd_rec.ext_rcd_id).data_value := eir.string_val;
2263 g_ext_rcd(rcd_rec.ext_rcd_id).seq_num := eir.seq_num;
2264 g_ext_rcd(rcd_rec.ext_rcd_id).col_name := l_col_value;
2265 Hr_Utility.set_location(' ext_rcd_id: '||rcd_rec.ext_rcd_id, 5);
2266 Hr_Utility.set_location(' data_value: '||eir.string_val, 5);
2267 Hr_Utility.set_location(' seq_num : '||eir.seq_num, 5);
2268 Hr_Utility.set_location(' col_name : '||l_col_value, 5);
2269 end loop;
2270 end loop;
2271 Hr_Utility.set_location('Leaving'||l_proc, 80);
2272
2273 end Get_Rcds_Details;
2274 -- =============================================================================
2275 -- ~ Write_Warning:
2276 -- =============================================================================
2277 procedure Write_Warning
2278 (p_err_name in varchar2,
2279 p_err_no in number default null,
2280 p_element in varchar2 default null ) is
2281
2282 l_proc constant varchar2(150) := g_proc_name||'Write_Warning';
2283 l_err_name varchar2(2000);
2284 l_err_no number;
2285
2286 begin
2287 Hr_Utility.set_location('Entering'||l_proc, 5);
2288 l_err_name := p_err_name ;
2289 l_err_no := p_err_no ;
2290 --
2291 if p_err_no is null then
2292 -- Assumed the name is Error Name
2293 l_err_no := To_Number(Substr(p_err_name,5,5)) ;
2294 l_err_name := null ;
2295 end if ;
2296 -- If element name is sent get the message to write
2297 if p_err_no is not null and p_element is not null then
2298 l_err_name := Ben_Ext_Fmt.get_error_msg(p_err_no,
2299 p_err_name,
2300 p_element ) ;
2301 end if ;
2302 --
2303 if g_business_group_id is not null then
2304 Ben_Ext_Util.write_err
2305 (p_err_num => l_err_no,
2306 p_err_name => l_err_name,
2307 p_typ_cd => 'W',
2308 p_person_id => g_person_id,
2309 p_business_group_id => g_business_group_id,
2310 p_ext_rslt_id => Ben_Extract.g_ext_rslt_id);
2311 end if;
2312 --
2313 Hr_Utility.set_location('Exiting'||l_proc, 15);
2314 --
2315
2316 end Write_Warning;
2317
2318 -- =============================================================================
2319 -- ~ Write_Error:
2320 -- =============================================================================
2321 procedure Write_Error
2322 (p_err_name in varchar2,
2323 p_err_no in number default null,
2324 p_element in varchar2 default null ) is
2325 --
2326 l_proc constant varchar2(72) := g_proc_name||'Write_Error';
2327 l_err_name varchar2(2000);
2328 l_err_no number;
2329 l_err_num number(15);
2330 --
2331 cursor err_cnt_c is
2332 select count(*) from ben_ext_rslt_err
2333 where ext_rslt_id = ben_extract.g_ext_rslt_id
2334 and typ_cd <> 'W';
2335 --
2336 begin
2337 --
2338 Hr_Utility.set_location('Entering'||l_proc, 5);
2339 l_err_name := p_err_name ;
2340 l_err_no := p_err_no ;
2341 if p_err_no is null then
2342 -- Assumed the name is Error Name
2343 l_err_no := To_Number(Substr(p_err_name,5,5)) ;
2344 l_err_name := null ;
2345 end if ;
2346 -- If element name is sent get the message to write
2347 if p_err_no is not null and p_element is not null then
2348 l_err_name := Ben_Ext_Fmt.get_error_msg(p_err_no,
2349 p_err_name,
2350 p_element );
2351 end if ;
2352 open err_cnt_c;
2353 fetch err_cnt_c into l_err_num;
2354 close err_cnt_c;
2355 if l_err_num >= ben_ext_thread.g_max_errors_allowed then
2356 ben_ext_thread.g_err_num := 91947;
2357 ben_ext_thread.g_err_name := 'BEN_91947_EXT_MX_ERR_NUM';
2358 raise ben_ext_thread.g_job_failure_error;
2359 end if;
2360
2361 if g_business_group_id is not null then
2362 Ben_Ext_Util.write_err
2363 (p_err_num => l_err_no,
2364 p_err_name => l_err_name,
2365 p_typ_cd => 'E',
2366 p_person_id => g_person_id,
2367 p_business_group_id => g_business_group_id,
2368 p_ext_rslt_id => Ben_Extract.g_ext_rslt_id);
2369 end if;
2370 Hr_Utility.set_location('Exiting'||l_proc, 15);
2371 end Write_Error;
2372
2373 -- =============================================================================
2374 -- ~ Extract_Exception:
2375 -- =============================================================================
2376 function Extract_Exception
2377 (p_assignment_id in number
2378 ,p_business_group_id in number
2379 ,p_effective_date in date
2380 ,p_msg_type in out nocopy varchar2
2381 ,p_msg_code in out nocopy varchar2
2382 ,p_msg_text in out nocopy varchar2
2383 )
2384 return varchar2 is
2385
2386 l_proc constant varchar2(72) := g_proc_name||'Write_Warning';
2387 l_ext_rslt_id number;
2388 l_person_id number;
2389 l_error_text varchar2(2000);
2390 l_return_value varchar2(50);
2391
2392 begin
2393 l_ext_rslt_id:= ben_extract.g_ext_rslt_id;
2394 l_return_value := '0';
2395 if g_debug then
2396 Hr_Utility.set_location('Entering : '||l_proc, 5);
2397 Hr_Utility.set_location(' l_ext_rslt_id : '||l_ext_rslt_id, 5);
2398 Hr_Utility.set_location(' p_msg_type : ' ||p_msg_type, 5);
2399 Hr_Utility.set_location(' p_msg_code : ' ||p_msg_code, 5);
2400 end if;
2401
2402 if p_assignment_id <> -1 and
2403 l_ext_rslt_id <> -1 then
2404 if p_msg_type = 'E' then
2405 Write_Error
2406 (p_err_name => p_msg_text
2407 ,p_err_no => p_msg_code
2408 ,p_element => Nvl(Ben_Ext_Person.g_elmt_name
2409 ,Ben_Ext_Fmt.g_elmt_name)
2410 );
2411 elsif p_msg_type = 'W' then
2412 Write_Warning
2413 (p_err_name => p_msg_text
2414 ,p_err_no => p_msg_code
2415 ,p_element => Nvl(Ben_Ext_Person.g_elmt_name
2416 ,Ben_Ext_Fmt.g_elmt_name)
2417 );
2418 end if;
2419 end if;
2420 Hr_Utility.set_location('Leaving: '||l_proc, 80);
2421 return l_return_value;
2422
2423 end Extract_Exception;
2424 -- =============================================================================
2425 -- Exclude_Person:
2426 -- =============================================================================
2427 procedure Exclude_Person
2428 (p_person_id in number
2429 ,p_business_group_id in number
2430 ,p_benefit_action_id in number
2431 ,p_flag_thread in varchar2) is
2432
2433
2434 cursor csr_ben_per (c_person_id in number
2435 ,c_benefit_action_id in number) is
2436 select *
2437 from ben_person_actions bpa
2438 where bpa.benefit_action_id = c_benefit_action_id
2439 and bpa.person_id = c_person_id;
2440
2441 l_ben_per csr_ben_per%rowtype;
2442
2443 cursor csr_rng (c_benefit_action_id in number
2444 ,c_person_action_id in number) is
2445 select 'x'
2446 from ben_batch_ranges
2447 where benefit_action_id = c_benefit_action_id
2448 and c_person_action_id between starting_person_action_id
2449 and ending_person_action_id;
2450 l_conc_reqest_id number(20);
2451 l_exists varchar2(2);
2452 l_proc_name constant varchar2(150) := g_proc_name ||'Exclude_Person';
2453 begin
2454
2455 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
2456 open csr_ben_per (c_person_id => p_person_id
2457 ,c_benefit_action_id => p_benefit_action_id);
2458 fetch csr_ben_per into l_ben_per;
2459 close csr_ben_per;
2460
2461 update ben_person_actions bpa
2462 set bpa.action_status_cd = 'U'
2463 where bpa.benefit_action_id = p_benefit_action_id
2464 and bpa.person_id = p_person_id;
2465
2466 if p_flag_thread = 'Y' then
2467
2468 open csr_rng (c_benefit_action_id => p_benefit_action_id
2469 ,c_person_action_id => l_ben_per.person_action_id);
2470 fetch csr_rng into l_exists;
2471 close csr_rng;
2472
2473 update ben_batch_ranges bbr
2474 set bbr.range_status_cd = 'E'
2475 where bbr.benefit_action_id = p_benefit_action_id
2476 and l_ben_per.person_action_id
2477 between bbr.starting_person_action_id
2478 and bbr.ending_person_action_id;
2479 end if;
2480 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
2481
2482 end Exclude_Person;
2483
2484 -- =============================================================================
2485 -- ~ Extract_Post_Process:
2486 -- =============================================================================
2487 function Extract_Post_Process
2488 (p_business_group_id in number
2489 )return varchar2 is
2490
2491 cursor csr_err (c_bg_id in number
2492 ,c_ext_rslt_id in number) is
2493 select err.person_id
2494 ,err.typ_cd
2495 ,err.ext_rslt_id
2496 from ben_ext_rslt_err err
2497 where err.business_group_id = c_bg_id
2498 and err.typ_cd = 'E'
2499 and err.ext_rslt_id = c_ext_rslt_id;
2500
2501 --Added by Gattu
2502 CURSOR csr_get_record_count(c_ext_rcd_id IN NUMBER) IS
2503 SELECT Count(dtl.ext_rslt_dtl_id)
2504 FROM ben_ext_rslt_dtl dtl
2505 WHERE dtl.ext_rslt_id = Ben_Ext_Thread.g_ext_rslt_id
2506 AND dtl.ext_rcd_id NOT IN(c_ext_rcd_id);
2507
2508 l_record_count Number := 0;
2509 l_rc VARCHAr2(8);
2510 l_ben_params csr_ben%rowtype;
2511 l_conc_reqest_id ben_ext_rslt.request_id%TYPE;
2512 l_proc_name constant varchar2(150):= g_proc_name||'Extract_Post_Process';
2513 l_return_value varchar2(2000);
2514
2515 begin
2516 Hr_Utility.set_location('Entering :'||l_proc_name, 5);
2517 l_return_value := '0';
2518 -- Get the record id for the Hidden Detail record
2519 Hr_Utility.set_location('..Get the hidden record for extract running..',10);
2520 for csr_rcd_rec in csr_ext_rcd
2521 (c_hide_flag => 'Y' -- Y=Record is hidden one
2522 ,c_rcd_type_cd => 'D')-- D=Detail, T=Total, H-Header
2523 -- Loop through each detail record for the extract
2524 loop
2525 -- Delete all hidden detail records for the all persons
2526 delete
2527 from ben_ext_rslt_dtl
2528 where ext_rcd_id = csr_rcd_rec.ext_rcd_id
2529 and ext_rslt_id = Ben_Ext_Thread.g_ext_rslt_id
2530 and business_group_id = p_business_group_id;
2531 end loop;
2532 -- Get the benefit action id for the extract
2533 open csr_ben (c_ext_dfn_id => Ben_Ext_Thread.g_ext_dfn_id
2534 ,c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id
2535 ,c_business_group_id => p_business_group_id);
2536 fetch csr_ben into l_ben_params;
2537 close csr_ben;
2538 -- Flag the person in ben_person_actions and ben_batch_ranges
2539 -- as Unporcessed and errored.
2540 for err_rec in csr_err(c_bg_id => p_business_group_id
2541 ,c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id)
2542 loop
2543 Exclude_Person
2544 (p_person_id => err_rec.person_id
2545 ,p_business_group_id => p_business_group_id
2546 ,p_benefit_action_id => l_ben_params.benefit_action_id
2547 ,p_flag_thread => 'Y');
2548
2549 delete
2550 from ben_ext_rslt_dtl dtl
2551 where dtl.ext_rslt_id = Ben_Ext_Thread.g_ext_rslt_id
2552 and dtl.person_id = err_rec.person_id
2553 and dtl.business_group_id = p_business_group_id;
2554 end loop;
2555
2556
2557
2558
2559 OPEN csr_org_req(c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id
2560 ,c_ext_dfn_id => Ben_Ext_Thread.g_ext_dfn_id
2561 ,c_business_group_id => p_business_group_id);
2562 FETCH csr_org_req INTO l_conc_reqest_id;
2563 CLOSE csr_org_req;
2564
2565
2566
2567 ghr_nfc_error_proc.chk_same_day_act(p_request_id =>l_conc_reqest_id
2568 ,p_rslt_id =>Ben_Ext_Thread.g_ext_rslt_id);
2569
2570
2571 --Error handling call
2572 ghr_nfc_error_proc.chk_for_err_data_pa (p_request_id =>l_conc_reqest_id
2573 ,p_rslt_id =>Ben_Ext_Thread.g_ext_rslt_id);
2574
2575 --Handling Total Record Count,removing the header count from total
2576 FOR csr_header_rcd_id IN csr_ext_rcd_id(c_hide_flag => 'N' -- Y=Record is hidden one
2577 ,c_rcd_type_cd => 'H') --Header
2578 LOOP
2579 OPEN csr_get_record_count(c_ext_rcd_id =>csr_header_rcd_id.ext_rcd_id);
2580 FETCH csr_get_record_count INTO l_record_count;
2581 CLOSE csr_get_record_count;
2582
2583 Hr_Utility.set_location('Header Record ID ' ||csr_header_rcd_id.ext_rcd_id, 5);
2584 l_rc :=l_record_count;
2585 UPDATE ben_ext_rslt_dtl set val_06 = LPAD(l_rc,8,'0')
2586 WHERE ext_rcd_id = csr_header_rcd_id.ext_rcd_id
2587 AND ext_rslt_id = Ben_Ext_Thread.g_ext_rslt_id
2588 AND business_group_id= p_business_group_id;
2589
2590 END LOOP;
2591
2592 -- Notifications call
2593 GHR_WF.initiate_notification (p_request_id =>l_conc_reqest_id
2594 ,p_result_id =>Ben_Ext_Thread.g_ext_rslt_id
2595 ,p_role =>g_extract_params(p_business_group_id).notify);
2596
2597 Hr_Utility.set_location('Leaving :'||l_proc_name, 25);
2598
2599 return l_return_value;
2600
2601 exception
2602 when Others then
2603 Hr_Utility.set_location('..Exception when others raised..', 20);
2604 Hr_Utility.set_location('Leaving :'||l_proc_name, 25);
2605 l_return_value := '1';
2606 return l_return_value;
2607
2608 end Extract_Post_Process;
2609
2610 -- =============================================================================
2611 -- ~ NFC_Extract_Process:
2612 -- =============================================================================
2613 PROCEDURE NFC_Extract_Process
2614 (errbuf OUT NOCOPY VARCHAR2
2615 ,retcode OUT NOCOPY VARCHAR2
2616 ,p_business_group_id IN NUMBER
2617 ,p_benefit_action_id IN NUMBER
2618 ,p_ext_dfn_id IN NUMBER
2619 ,p_ext_jcl_id IN NUMBER
2620 ,p_ext_dfn_typ_id IN VARCHAR2
2621 ,p_ext_dfn_data_typ IN VARCHAR2
2622 ,p_transmission_type IN VARCHAR2
2623 ,p_date_criteria IN VARCHAR2
2624 ,p_dummy1 IN VARCHAR2
2625 ,p_dummy2 IN VARCHAR2
2626 ,p_dummy3 IN VARCHAR2
2627 ,p_from_date IN VARCHAR2
2628 ,p_to_date IN VARCHAR2
2629 ,p_agency_code IN VARCHAR2
2630 ,p_personnel_office_id IN VARCHAR2
2631 ,p_transmission_indicator IN VARCHAR2
2632 ,p_signon_identification IN VARCHAR2
2633 ,p_user_id IN VARCHAR2
2634 ,p_dept_code IN VARCHAR2
2635 ,p_payroll_id IN NUMBER
2636 ,p_notify IN VARCHAR2
2637 ,p_ext_rslt_id IN NUMBER DEFAULT NULL ) IS
2638
2639 l_errbuff VARCHAR2(3000);
2640 l_retcode NUMBER;
2641 l_session_id NUMBER;
2642 l_proc_name VARCHAR2(150) := g_proc_name ||'Pension_Extract_Process';
2643
2644 BEGIN
2645 hr_utility.set_location('Entering: '||l_proc_name, 5);
2646
2647 ben_ext_thread.process
2648 (errbuf => l_errbuff,
2649 retcode => l_retcode,
2650 p_benefit_action_id => NULL,
2651 p_ext_dfn_id => p_ext_dfn_id,
2652 p_effective_date => p_to_date,
2653 p_business_group_id => p_business_group_id);
2654
2655 hr_utility.set_location('Leaving: '||l_proc_name, 80);
2656 EXCEPTION
2657 WHEN Others THEN
2658 hr_utility.set_location('Leaving: '||l_proc_name, 90);
2659 RAISE;
2660 END NFC_Extract_Process;
2661 -- =============================================================================
2662 -- ~ Get_Remarks_Id:
2663 -- =============================================================================
2664 function Get_Remarks_Id
2665 (p_assignment_id in number
2666 ,p_input_value in varchar2
2667 ,p_error_code in out nocopy varchar2
2668 ,p_error_message in out nocopy varchar2
2669 ) return varchar2 is
2670 l_return_value varchar2(2000);
2671 l_pa_req_id number(15);
2672 l_proc_name constant varchar2(250) := g_proc_name ||'Get_Remarks_Id';
2673 begin
2674 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
2675 l_return_value := null;
2676
2677 IF g_pa_req.EXISTS(p_assignment_id) THEN
2678 l_pa_req_id := g_pa_req(p_assignment_id).pa_request_id;
2679 END IF;
2680
2681
2682 Hr_Utility.set_location(' l_pa_req_id: '||l_pa_req_id, 6);
2683 if l_pa_req_id is not null and
2684 g_pa_req_remark.exists(l_pa_req_id) then
2685
2686 IF p_input_value = 'RPA_RC01' then
2687 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_1;
2688 ELSIF p_input_value = 'RPA_RC02' then
2689 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_2;
2690 ELSIF p_input_value = 'RPA_RC03' then
2691 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_3;
2692 ELSIF p_input_value = 'RPA_RC04'then
2693 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_4;
2694 ELSIF p_input_value = 'RPA_RC05' then
2695 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_5;
2696 ELSIF p_input_value = 'RPA_RC06' then
2697 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_6;
2698 ELSIF p_input_value = 'RPA_RC07' then
2699 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_7;
2700 ELSIF p_input_value = 'RPA_RC08'then
2701 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_8;
2702 ELSIF p_input_value = 'RPA_RC09' then
2703 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_9;
2704 ELSIF p_input_value = 'RPA_RC10' then
2705 l_return_value := g_pa_req_remark(l_pa_req_id).remark_code_10;
2706 END IF;
2707 END IF;
2708 Hr_Utility.set_location('l_return_value: '||l_return_value, 79);
2709 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
2710 return l_return_value;
2711 exception
2712 when others then
2713 p_error_code := sqlcode;
2714 p_error_message := NULL;
2715 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
2716 return l_return_value;
2717
2718 end Get_Remarks_Id;
2719
2720 -- =============================================================================
2721 -- ~ Get_RPA_Data:
2722 -- =============================================================================
2723 function Get_RPA_Data
2724 (p_assignment_id in number
2725 ,p_input_value in varchar2
2726 ,p_error_code in out nocopy varchar2
2727 ,p_error_message in out nocopy varchar2
2728 ) return varchar2 is
2729 l_return_value varchar2(2000);
2730 l_pa_request_id number;
2731 l_proc_name constant varchar2(250) := g_proc_name ||'Get_RPA_Data';
2732
2733 begin
2734 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
2735 l_return_value := null;
2736
2737 if g_pa_req.exists(p_assignment_id) then
2738 l_pa_request_id := g_pa_req(p_assignment_id).pa_request_id;
2739 end if;
2740 Hr_Utility.set_location(' l_pa_request_id: '||l_pa_request_id, 6);
2741 Hr_Utility.set_location(' p_input_value: '||p_input_value, 6);
2742
2743 if (l_pa_request_id is not null and
2744 g_rpa_rec.exists(l_pa_request_id))then
2745
2746 if p_input_value ='RPA_DOB' then
2747
2748 l_return_value :=fnd_date.date_to_canonical(
2749 g_rpa_rec(l_pa_request_id).employee_date_of_birth);
2750
2751 elsif p_input_value ='RPA_MNAME' then
2752
2753 l_return_value := g_rpa_rec(l_pa_request_id).employee_middle_names;
2754
2755 elsif p_input_value ='RPA_FNAME' then
2756
2757 l_return_value := g_rpa_rec(l_pa_request_id).employee_first_name;
2758
2759 elsif p_input_value ='RPA_LNAME' then
2760
2761 l_return_value := g_rpa_rec(l_pa_request_id).employee_last_name;
2762
2763 elsif p_input_value ='RPA_SSN' then
2764
2765 l_return_value := REPLACE(g_rpa_rec(l_pa_request_id).employee_national_identifier,'-');
2766
2767 elsif p_input_value ='RPA_POI' then
2768
2769 l_return_value := g_rpa_rec(l_pa_request_id).personnel_office_id;
2770
2771 elsif p_input_value ='RPA_ED_LEVEL' then
2772
2773 l_return_value := g_rpa_rec(l_pa_request_id).education_level;
2774
2775 elsif p_input_value ='RPA_POS_STAT_CSC' then
2776
2777 l_return_value := g_rpa_rec(l_pa_request_id).position_occupied;
2778
2779 elsif p_input_value ='RPA_ANN_INDIC' then
2780
2781 l_return_value := g_rpa_rec(l_pa_request_id).annuitant_indicator;
2782 elsif p_input_value ='RPA_ALT_REQ' then
2783
2784 l_return_value := g_rpa_rec(l_pa_request_id).altered_pa_request_id;
2785 elsif p_input_value ='RPA_SCD_LEAVE' then
2786 l_return_value := fnd_date.date_to_canonical(
2787 g_rpa_rec(l_pa_request_id).service_comp_date);
2788 elsif p_input_value ='RPA_CSC_AUTH_CODE_1NOA' then
2789 l_return_value := g_rpa_rec(l_pa_request_id).first_action_la_code1;
2790 elsif p_input_value ='RPA_CSC_AUTH_2CODE_1NOA' then
2791 l_return_value := g_rpa_rec(l_pa_request_id).first_action_la_code2;
2792 elsif p_input_value ='RPA_CSC_AUTH_CODE_2NOA' then
2793 l_return_value := g_rpa_rec(l_pa_request_id).second_action_la_code1;
2794 elsif p_input_value ='RPA_CSC_AUTH_2CODE_2NOA' then
2795 l_return_value := g_rpa_rec(l_pa_request_id).second_action_la_code2;
2796
2797 elsif p_input_value ='RPA_VET_PREF_CD' then
2798 l_return_value := g_rpa_rec(l_pa_request_id).veterans_preference;
2799 elsif p_input_value ='RPA_VET_PREF_RIF' then
2800 l_return_value := g_rpa_attr(l_pa_request_id).veterans_pref_for_rif;
2801 elsif p_input_value ='RPA_TENURE_GRP' then
2802 l_return_value := g_rpa_rec(l_pa_request_id).tenure;
2803 elsif p_input_value ='RPA_RETIRE_PLN' then
2804 l_return_value := g_rpa_rec(l_pa_request_id).retirement_plan;
2805 elsif p_input_value ='RPA_FIRST_NOA_CD' then
2806 l_return_value := g_rpa_rec(l_pa_request_id).first_noa_code;
2807 elsif p_input_value ='RPA_SEC_NOA_CD' then
2808 l_return_value := g_rpa_rec(l_pa_request_id).second_noa_code;
2809 elsif p_input_value ='RPA_EFF_DATE' then
2810 l_return_value := fnd_date.date_to_canonical(
2811 g_rpa_rec(l_pa_request_id).effective_date);
2812 elsif p_input_value ='RPA_CSC_OTH_LEG_AUTH' then
2813 l_return_value := g_rpa_rec(l_pa_request_id).first_action_la_desc1;
2814 elsif p_input_value ='RPA_CSC_OTH_LEG_AUTH2' then
2815 l_return_value := g_rpa_rec(l_pa_request_id).first_action_la_desc2;
2816 elsif p_input_value ='RPA_WRK_SCH' then
2817 l_return_value := g_rpa_rec(l_pa_request_id).work_schedule;
2818 elsif p_input_value ='RPA_GRADE' then
2819 l_return_value := g_rpa_rec(l_pa_request_id).to_grade_or_level;
2820 elsif p_input_value ='RPA_STEP' then
2821 l_return_value := g_rpa_rec(l_pa_request_id).to_step_or_rate;
2822 elsif p_input_value ='RPA_SCH_SAL' then
2823 IF INSTR (g_rpa_rec(l_pa_request_id).to_basic_pay,'.') > 0 THEN
2824 l_return_value := LPAD(REPLACE(g_rpa_rec(l_pa_request_id).to_basic_pay,'.'),8,'0');
2825 ELSE
2826 IF g_rpa_rec(l_pa_request_id).to_basic_pay IS NOT NULL THEN
2827 l_return_value := LPAD((g_rpa_rec(l_pa_request_id).to_basic_pay||'00'),8,'0');
2828 END IF;
2829 END IF;
2830 elsif p_input_value ='RPA_PAY_RAISE_SAL' then
2831 IF INSTR (g_rpa_rec(l_pa_request_id).from_basic_pay,'.') > 0 THEN
2832 l_return_value := LPAD(REPLACE(g_rpa_rec(l_pa_request_id).from_basic_pay,'.'),8,'0');
2833 ELSE
2834 IF g_rpa_rec(l_pa_request_id).from_basic_pay IS NOT NULL THEN
2835 l_return_value := LPAD(g_rpa_rec(l_pa_request_id).from_basic_pay||'00',8,'0');
2836 END IF;
2837 END IF;
2838
2839 elsif p_input_value ='RPA_SAL_RATE_CD' then
2840 l_return_value := g_rpa_rec(l_pa_request_id).to_pay_basis;
2841 elsif p_input_value ='RPA_PAY_RT_DET' then
2842 l_return_value := g_rpa_rec(l_pa_request_id).pay_rate_determinant;
2843 elsif p_input_value ='RPA_VET_STAT' then
2844 l_return_value := g_rpa_rec(l_pa_request_id).veterans_status;
2845 elsif p_input_value ='RPA_TOUR_DUTY_HRS' then
2846 l_return_value := LPAD(g_rpa_rec(l_pa_request_id).part_time_hours,4,'0');
2847 elsif p_input_value ='RPA_FLSA_CAT' then
2848 l_return_value := g_rpa_rec(l_pa_request_id).flsa_category;
2849 elsif p_input_value ='RPA_INST_PRG' then
2850 l_return_value := g_rpa_rec(l_pa_request_id).academic_discipline;
2851 elsif p_input_value ='RPA_FEGLI_CD' then
2852 l_return_value := g_rpa_rec(l_pa_request_id).fegli;
2853 elsif p_input_value ='RPA_DEG_CERT_REC' then
2854 l_return_value := g_rpa_rec(l_pa_request_id).year_degree_attained;
2855 elsif p_input_value ='RPA_RPA_PREV_AG_CD' then
2856 l_return_value :=g_rpa_attr(l_pa_request_id).Previous_agency_code;
2857 elsif p_input_value ='RPA_DT_ENT_PRES_GRADE' then
2858 l_return_value :=(
2859 g_rpa_attr(l_pa_request_id).Date_entered_present_grade);
2860 elsif p_input_value ='RPA_PHY_HANDICAP_CD' then
2861 l_return_value :=g_rpa_attr(l_pa_request_id).phy_handicap_code;
2862 elsif p_input_value ='RPA_DT_LST_PAY_RET' then
2863 l_return_value :=(
2864 g_rpa_attr(l_pa_request_id).Date_last_pay_status_retired);
2865 elsif p_input_value ='RPA_FRZN_CSRS_SER' then
2866 l_return_value :=g_rpa_attr(l_pa_request_id).Frozen_CSRS_service;
2867 elsif p_input_value ='RPA_CSRS_COV_AT_APT' then
2868 l_return_value :=g_rpa_attr(l_pa_request_id).CSRS_coverage_at_appointment;
2869 elsif p_input_value ='RPA_DATE_SICK_LEAVE_EXP_RET' then
2870 /*l_return_value :=fnd_date.date_to_canonical(
2871 g_rpa_attr(l_pa_request_id).Date_sick_leave_exp_ret);*/
2872 l_return_value :=(
2873 g_rpa_attr(l_pa_request_id).Date_sick_leave_exp_ret);
2874 elsif p_input_value ='RPA_ANNUAL_LEAVE_CATEGORY' then
2875 l_return_value :=g_rpa_attr(l_pa_request_id).Annual_leave_category;
2876 elsif p_input_value ='RPA_ANNUAL_LEAVE_45_DAY_CODE' then
2877 l_return_value :=g_rpa_attr(l_pa_request_id).Annual_leave_45_day_code ;
2878 elsif p_input_value ='RPA_LEAVE_EAR_STAT_PY_PERIOD' then
2879 l_return_value :=g_rpa_attr(l_pa_request_id).Leave_ear_stat_py_period ;
2880 elsif p_input_value ='RPA_DATE_SCD_CSR' then
2881 l_return_value :=(
2882 g_rpa_attr(l_pa_request_id).Date_SCD_CSR);
2883 elsif p_input_value ='RPA_DATE_SCD_RIF' then
2884 l_return_value := (
2885 g_rpa_attr(l_pa_request_id).Date_SCD_RIF);
2886 elsif p_input_value ='RPA_DATE_TSP_VESTE' then
2887 l_return_value := (
2888 g_rpa_attr(l_pa_request_id).Date_TSP_vested) ;
2889 elsif p_input_value ='RPA_DATE_SCD_SES' then
2890 l_return_value := g_rpa_attr(l_pa_request_id).Date_SCD_SES;
2891 elsif p_input_value ='RPA_DATE_SUPV_MGR_PROB' then
2892 l_return_value := (
2893 g_rpa_attr(l_pa_request_id).Date_Supv_Mgr_Prob);
2894 elsif p_input_value ='RPA_DATE_SPVR_MGR_PROB_ENDS' then
2895 l_return_value := g_rpa_attr(l_pa_request_id).Date_Spvr_Mgr_Prob_Ends;
2896 elsif p_input_value ='RPA_DATE_PROB_PERIOD_START' then
2897 /*l_return_value := fnd_date.date_to_canonical(
2898 g_rpa_attr(l_pa_request_id).Date_Prob_period_start) ;*/
2899 l_return_value := (
2900 g_rpa_attr(l_pa_request_id).Date_Prob_period_start) ;
2901 elsif p_input_value ='RPA_SUPV_MGR_PROB_PERIOD_REQ' then
2902 l_return_value := g_rpa_attr(l_pa_request_id).Supv_mgr_prob_period_req ;
2903 elsif p_input_value ='RPA_DATE_CAREER_PERMA_TEN_ST' then
2904 /* l_return_value := fnd_date.date_to_canonical(
2905 g_rpa_attr(l_pa_request_id).Date_Career_perma_Ten_St) ; */
2906 l_return_value := (
2907 g_rpa_attr(l_pa_request_id).Date_Career_perma_Ten_St) ;
2908 elsif p_input_value ='RPA_DATE_RET_RGHT_END' then
2909 l_return_value := (
2910 g_rpa_attr(l_pa_request_id).Date_Ret_Rght_end) ;
2911 elsif p_input_value ='RPA_DATE_RET_RATE_EXP' then
2912 l_return_value := (
2913 g_rpa_attr(l_pa_request_id).date_retain_rate_exp) ;
2914 elsif p_input_value ='RPA_CITIZENSHIP_CODE' then
2915 l_return_value := g_rpa_attr(l_pa_request_id).Citizenship_code ;
2916 elsif p_input_value ='RPA_UNIFORM_SVC_STATUS' then
2917 l_return_value := g_rpa_attr(l_pa_request_id).Uniform_Svc_Status ;
2918 elsif p_input_value ='RPA_CREDITABLE_MILITARY_SVC' then
2919 l_return_value := g_rpa_attr(l_pa_request_id).Creditable_Military_Svc ;
2920 elsif p_input_value ='RPA_DATE_RET_MILITARY' then
2921 l_return_value := (
2922 g_rpa_attr(l_pa_request_id).Date_Ret_Military) ;
2923 elsif p_input_value ='RPA_SAVED_GRD_PAY_PLAN' then
2924 l_return_value := g_rpa_attr(l_pa_request_id).Saved_Grd_Pay_Plan ;
2925 elsif p_input_value ='RPA_SAVED_GRADE' then
2926 l_return_value := g_rpa_attr(l_pa_request_id).Saved_Grade ;
2927 elsif p_input_value ='RPA_DATE_CORR_NOA' then
2928 l_return_value := fnd_date.date_to_canonical(
2929 g_rpa_attr(l_pa_request_id).Date_Corr_NoA) ;
2930 elsif p_input_value ='RPA_DATE_NTE_SF50' then
2931 l_return_value := (
2932 g_rpa_attr(l_pa_request_id).Date_NTE_SF50) ;
2933 elsif p_input_value ='RPA_RETENTION_PERCENT' then
2934
2935 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).Retention_Percent,2,'0') ;
2936 elsif p_input_value ='RPA_RETENTION_ALLOWANCE' then
2937 IF INSTR(g_rpa_attr(l_pa_request_id).Retention_allowance,'.') > 0 THEN
2938 l_return_value := LPAD(REPLACE( g_rpa_attr(l_pa_request_id).Retention_allowance,'.'),7,'0') ;
2939 ELSE
2940 IF g_rpa_attr(l_pa_request_id).Retention_allowance IS NOT NULL THEN
2941 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).Retention_allowance||'00',7,'0') ;
2942 END IF;
2943 END IF;
2944 elsif p_input_value ='RPA_NAME_CORR_CODE' then
2945 l_return_value := g_rpa_attr(l_pa_request_id).Name_Corr_code;
2946 elsif p_input_value ='RPA_SSNO_OLD' then
2947 l_return_value := g_rpa_attr(l_pa_request_id).SSNO_Old ;
2948 elsif p_input_value ='RPA_RECRUITMENT_PERCENT' then
2949 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).Recruitment_Percent,2,'0');
2950 elsif p_input_value ='RPA_RECRUITMENT_BONUS' then
2951 IF INSTR(g_rpa_attr(l_pa_request_id).Recruitment_bonus,'.') > 0 THEN
2952 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).Recruitment_bonus,'.'),8,'0');
2953 ELSE
2954 IF g_rpa_attr(l_pa_request_id).Recruitment_bonus IS NOT NULL THEN
2955 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).Recruitment_bonus||'00',8,'0');
2956 END IF;
2957 END IF;
2958 elsif p_input_value ='RPA_RELOCATION_PERCENT' then
2959 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).Relocation_percent,2,'0');
2960 elsif p_input_value ='RPA_RELOCATION_BONUS' then
2961 IF INSTR(g_rpa_attr(l_pa_request_id).Relocation_bonus,'.') > 0 THEN
2962 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).Relocation_bonus,'.'),8,'0') ;
2963 ELSE
2964 IF g_rpa_attr(l_pa_request_id).Relocation_bonus IS NOT NULL THEN
2965 l_return_value :=LPAD( g_rpa_attr(l_pa_request_id).Relocation_bonus||'00',8,'0') ;
2966 END IF;
2967 END IF;
2968 elsif p_input_value ='RPA_SUPERVISORY_PERCENT' then
2969 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).Supervisory_Percent,2,'0');
2970 elsif p_input_value ='RPA_SUPERVISORY_DIFFERENTIAL_RATE' then
2971 IF INSTR(g_rpa_attr(l_pa_request_id).Supervisory_Differential_Rate,'.') > 0 THEN
2972 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).Supervisory_Differential_Rate,'.'),8,'0') ;
2973 ELSE
2974 IF g_rpa_attr(l_pa_request_id).Supervisory_Differential_Rate IS NOT NULL THEN
2975 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).Supervisory_Differential_Rate||'00',8,'0') ;
2976 END IF;
2977 END IF;
2978 elsif p_input_value ='RPA_ACTION_CODE' then
2979 l_return_value := g_rpa_attr(l_pa_request_id).action_code ;
2980 elsif p_input_value ='RPA_POI' then
2981 l_return_value := g_rpa_attr(l_pa_request_id).poi ;
2982 elsif p_input_value ='RPA_PMSO_POI' then
2983 l_return_value := g_rpa_attr(l_pa_request_id).pmso_poi ;
2984 elsif p_input_value ='RPA_NFC_AGENCY' then
2985 l_return_value := g_rpa_attr(l_pa_request_id).nfc_agency ;
2986 Hr_Utility.set_location(' l_return_value: '||l_return_value, 6);
2987 elsif p_input_value ='RPA_PMSO_AGENCY' then
2988 l_return_value := g_rpa_attr(l_pa_request_id).pmso_agency ;
2989 elsif p_input_value ='RPA_POS_NUM' then
2990 l_return_value := g_rpa_attr(l_pa_request_id).pos_num ;
2991 elsif p_input_value ='RPA_PMSO_DEPT' then
2992 l_return_value := g_rpa_attr(l_pa_request_id).pmso_dept ;
2993 elsif p_input_value ='RPA_DEPT_CODE' then
2994 l_return_value := g_rpa_attr(l_pa_request_id).pmso_dept ;
2995 elsif p_input_value ='RPA_GENDER_CODE' then
2996 l_return_value := g_rpa_attr(l_pa_request_id).gender_code ;
2997 elsif p_input_value ='RPA_PAY_PERIOD_NUM' then
2998 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).pay_period_num,2,'0');
2999 elsif p_input_value ='RPA_MRN' then
3000 l_return_value := g_rpa_attr(l_pa_request_id).mrn;
3001 elsif p_input_value ='RPA_RACE' then
3002 l_return_value := g_rpa_attr(l_pa_request_id).race;
3003
3004 elsif p_input_value ='RPA_CVL_SERV_ANNUIT_SHRE' then
3005 IF INSTR (g_rpa_attr(l_pa_request_id).civil_service_annuitant_share,'.') > 0 THEN
3006 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).civil_service_annuitant_share,'.'),7,'0');
3007 ELSE
3008 IF g_rpa_attr(l_pa_request_id).civil_service_annuitant_share IS NOT NULL THEN
3009 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).civil_service_annuitant_share||'00',7,'0');
3010 END IF;
3011 END IF;
3012
3013 elsif p_input_value ='RPA_DATE_SCD_WGI' then
3014 /*l_return_value := fnd_date.date_to_canonical(
3015 g_rpa_attr(l_pa_request_id).dt_scd_wgi);*/
3016 l_return_value := (
3017 g_rpa_attr(l_pa_request_id).dt_scd_wgi);
3018 elsif p_input_value ='RPA_AUTH_DT' then
3019 l_return_value := (
3020 g_rpa_attr(l_pa_request_id).authentication_dt);
3021 elsif p_input_value ='RPA_NAT_ACT_PREV' then
3022 l_return_value := g_rpa_attr(l_pa_request_id).nat_act_prev;
3023 elsif p_input_value ='RPA_FEHB_COV_CD' then
3024 l_return_value := g_rpa_attr(l_pa_request_id).fehb_cov_cd;
3025 elsif p_input_value ='RPA_GAIN_LOSE_DEPT_NUSDA' then
3026 l_return_value := g_rpa_attr(l_pa_request_id).gain_lose_dept_non_usda;
3027
3028 elsif p_input_value ='RPA_CSC_AUTH_PREV_NOA' then
3029 l_return_value := g_rpa_attr(l_pa_request_id).csc_auth_prev_noa;
3030 elsif p_input_value ='RPA_CSC_AUTH_PREV_2NOA' then
3031 l_return_value := g_rpa_attr(l_pa_request_id).csc_auth_prev_2noa;
3032 /* elsif p_input_value ='RPA_DATE_RET_RATE_EXP' then
3033 l_return_value := g_rpa_attr(l_pa_request_id).date_retain_rate_exp;*/
3034 elsif p_input_value ='RPA_SPECIAL_EMP_CD' then
3035 l_return_value := g_rpa_attr(l_pa_request_id).special_emp_code;
3036 elsif p_input_value ='RPA_SPEC_EMP_PRG_CD' then
3037 l_return_value := g_rpa_attr(l_pa_request_id).special_emp_prg_code;
3038 elsif p_input_value ='RPA_TSP_ELIG_CD' then
3039 l_return_value := g_rpa_attr(l_pa_request_id).tsp_elig_cd;
3040 elsif p_input_value ='RPA_TYP_APT_CD' then
3041 l_return_value := g_rpa_attr(l_pa_request_id).typ_apt_cd;
3042
3043 elsif p_input_value ='RPA_APP_DT' then
3044 l_return_value := TRUNC(g_rpa_rec(l_pa_request_id).approval_date);
3045
3046
3047 elsif p_input_value ='RPA_FOR_LANG_PERC' then
3048 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).for_lang_perc,2,'0');
3049 elsif p_input_value ='RPA_FOR_LANG_ALL' then
3050 IF INSTR (g_rpa_attr(l_pa_request_id).for_lang_all,'.') > 0 THEN
3051 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).for_lang_all,'.'),7,'0');
3052 ELSE
3053 IF g_rpa_attr(l_pa_request_id).for_lang_all IS NOT NULL THEN
3054 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).for_lang_all||'00',7,'0');
3055 END IF;
3056 END IF;
3057 elsif p_input_value ='RPA_WAGE_GRD_SHFT_VAR' then
3058 l_return_value := g_rpa_attr(l_pa_request_id).wage_grd_shft_var;
3059 elsif p_input_value ='RPA_COOP_EMP_CTRL_CD' then
3060 l_return_value := g_rpa_attr(l_pa_request_id).coop_emp_ctrl_cd;
3061 elsif p_input_value ='RPA_COOP_ANN_SHR_CD' then
3062 l_return_value := g_rpa_attr(l_pa_request_id).coop_ann_shr_cd;
3063 elsif p_input_value ='RPA_COOP_ST_SHR_SAL' then
3064 IF INSTR (g_rpa_attr(l_pa_request_id).coop_st_shr_sal,'.') > 0 THEN
3065 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).coop_st_shr_sal,'.'),7,'0');
3066 ELSE
3067 IF g_rpa_attr(l_pa_request_id).coop_st_shr_sal IS NOT NULL THEN
3068 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).coop_st_shr_sal||'00',7,'0');
3069 END IF;
3070 END IF;
3071 elsif p_input_value ='RPA_COOP_EMP_OTRT_FUR' then
3072 IF INSTR (g_rpa_attr(l_pa_request_id).coop_emp_otrt_fur,'.') > 0 THEN
3073 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).coop_emp_otrt_fur,'.'),7,'0');
3074 ELSE
3075 IF g_rpa_attr(l_pa_request_id).coop_emp_otrt_fur IS NOT NULL THEN
3076 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).coop_emp_otrt_fur||'00',7,'0');
3077 END IF;
3078 END IF;
3079 l_return_value := g_rpa_attr(l_pa_request_id).coop_emp_otrt_fur;
3080 elsif p_input_value ='RPA_COOP_EMP_HOLRT_FUR' then
3081 IF INSTR (g_rpa_attr(l_pa_request_id).coop_emp_holrt_fur,'.') > 0 THEN
3082 l_return_value := LPAD(REPLACE(g_rpa_attr(l_pa_request_id).coop_emp_holrt_fur,'.'),7,'0');
3083 ELSE
3084 IF g_rpa_attr(l_pa_request_id).coop_emp_holrt_fur IS NOT NULL THEN
3085 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).coop_emp_holrt_fur||'00',7,'0');
3086 END IF;
3087 END IF;
3088 elsif p_input_value ='RPA_QUART_DED_RT' then
3089 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).quart_ded_rt,5,'0');
3090 elsif p_input_value ='RPA_QUART_DED_CD' then
3091 l_return_value := g_rpa_attr(l_pa_request_id).quart_ded_cd;
3092 elsif p_input_value ='RPA_ENV_DIFF_RT' then
3093 l_return_value := LPAD(g_rpa_attr(l_pa_request_id).env_diff_rt,4,'0');
3094 /* elsif p_input_value ='RPA_STAFF_PERC' then
3095 l_return_value := g_rpa_rec(l_pa_request_id).staff_perc;*/
3096 elsif p_input_value ='RPA_SAV_GRD_OCC_SER' then
3097 l_return_value := g_rpa_attr(l_pa_request_id).sav_grd_occ_ser;
3098 elsif p_input_value ='RPA_SAV_GRD_OCC_SER_FUNCD' then
3099 l_return_value := g_rpa_attr(l_pa_request_id).sav_grd_occ_ser_funcd;
3100
3101 elsif p_input_value ='RPA_AGENCY_USE' then
3102 l_return_value := g_rpa_attr(l_pa_request_id).agency_use;
3103 elsif p_input_value ='RPA_POSITION_CLASS_CD' then
3104 l_return_value := g_rpa_attr(l_pa_request_id).position_class_cd;
3105
3106 end if;
3107 end if;
3108
3109 Hr_Utility.set_location(' l_return_value: '||l_return_value, 79);
3110 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
3111
3112 return l_return_value;
3113
3114 exception
3115 when others then
3116 p_error_code := sqlcode;
3117 p_error_message :=p_input_value; --sqlerrm;
3118 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
3119 return l_return_value;
3120
3121 end Get_RPA_Data;
3122 -- =============================================================================
3123 -- ~ Get_Remarks_Data:
3124 -- =============================================================================
3125 function Get_Remarks_Data
3126 (p_assignment_id in number
3127 ,p_input_value in varchar2
3128 ,p_error_code in out nocopy varchar2
3129 ,p_error_message in out nocopy varchar2
3130 ) return varchar2 is
3131
3132 /*cursor csr_rem_dsc(c_pa_remark_id in number) is
3133 select description
3134 from ghr_pa_remarks
3135 where pa_remark_id = c_pa_remark_id;*/
3136
3137
3138 CURSOR csr_rem_dsc(c_pa_remark_id number
3139 ,c_request_id number
3140 ,c_effective_date date) is
3141 SELECT gpr.remark_id
3142 ,gpr.description
3143 ,gr.code
3144 FROM ghr_pa_remarks gpr
3145 ,ghr_remarks gr
3146 WHERE gpr.pa_remark_id = c_pa_remark_id
3147 AND pa_request_id = c_request_id
3148 AND gr.remark_id=gpr.remark_id
3149 AND c_effective_date between gr.date_from
3150 and NVL(gr.date_to,to_date('12/31/4712','MM/DD/YYYY'))
3151 ORDER BY remark_id;
3152
3153 l_csr_rem_dsc csr_rem_dsc%ROWTYPE;
3154 l_return_value VARCHAR2(4000);
3155 l_value VARCHAR2(4000);
3156 l_pa_request_id NUMBER;
3157 l_proc_name CONSTANT VARCHAR2(250) := g_proc_name ||'Get_Remarks_Data';
3158 l_rpa_rec_exists BOOLEAN;
3159 l_rem_exists BOOLEAN;
3160 l_awd_rec_exists BOOLEAN;
3161 l_rem_code VARCHAR2(3);
3162 begin
3163
3164 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
3165 l_return_value := null;
3166 l_rpa_rec_exists := false; l_rem_exists := false;
3167
3168
3169 if g_pa_req.exists(p_assignment_id) then
3170 Hr_Utility.set_location(' entering g_pa_req if', 6);
3171 l_pa_request_id := g_pa_req(p_assignment_id).pa_request_id;
3172 l_rpa_rec_exists := g_rpa_rec.exists(l_pa_request_id);
3173 l_rem_exists := g_pa_req_remark.exists(l_pa_request_id);
3174 end if;
3175
3176 Hr_Utility.set_location(' l_pa_request_id: '||l_pa_request_id, 6);
3177 Hr_Utility.set_location(' p_input_value: '||p_input_value, 6);
3178
3179 if (l_rpa_rec_exists and
3180 l_rem_exists )then
3181 Hr_Utility.set_location(' entering first if', 6);
3182
3183 open csr_rem_dsc(g_pa_req(p_assignment_id).pa_remark_id
3184 ,l_pa_request_id
3185 ,g_rpa_rec(l_pa_request_id).effective_date);
3186 fetch csr_rem_dsc into l_csr_rem_dsc;
3187 l_value := l_csr_rem_dsc.description ;
3188 l_rem_code :=l_csr_rem_dsc.code;
3189
3190 close csr_rem_dsc;
3191 if p_input_value ='REM_POI' then
3192
3193 l_return_value :=
3194 g_rpa_rec(l_pa_request_id).personnel_office_id;
3195 elsif p_input_value ='REM_AGNCY_CD' THEN
3196 l_return_value := g_rpa_attr(l_pa_request_id).nfc_agency ;
3197
3198 elsif p_input_value ='REM_DEPT_CD' THEN
3199 l_return_value := g_rpa_attr(l_pa_request_id).pmso_dept ;
3200 elsif p_input_value ='REM_ALT_REQ' then
3201
3202 l_return_value :=
3203 g_rpa_rec(l_pa_request_id).altered_pa_request_id;
3204 elsif p_input_value ='REM_PA_DATE' then
3205
3206 l_return_value :=fnd_date.date_to_canonical(g_rpa_rec(l_pa_request_id).effective_date);
3207 -- FND_DATE.CANONICAL_TO_DATE(g_rpa_rec(l_pa_request_id).effective_date);
3208
3209 elsif p_input_value ='REM_DESC_0109' then
3210 --Hr_Utility.set_location(' p_input_value: '||p_input_value, 6);
3211 l_return_value :=SUBSTR(l_value,0,524);
3212 elsif p_input_value ='REM_DESC_01' then
3213 l_return_value :=SUBSTR(l_value,0,222);
3214 elsif p_input_value ='REM_DESC_02' then
3215 l_return_value :=SUBSTR(l_value,223,222);
3216 elsif p_input_value ='REM_DESC_03' then
3217 l_return_value :=SUBSTR(l_value,445,222);
3218 elsif p_input_value ='REM_DESC_04' then
3219 l_return_value :=SUBSTR(l_value,75,149);
3220 elsif p_input_value ='REM_DESC_05' then
3221 l_return_value :=SUBSTR(l_value,150,224);
3222 elsif p_input_value ='REM_DESC_06' then
3223 l_return_value :=SUBSTR(l_value,225,299);
3224 elsif p_input_value ='REM_DESC_07' then
3225 l_return_value :=SUBSTR(l_value,300,374);
3226 elsif p_input_value ='REM_DESC_08' then
3227 l_return_value :=SUBSTR(l_value,375,449);
3228 elsif p_input_value ='REM_DESC_09' then
3229 l_return_value :=SUBSTR(l_value,450,524);
3230 elsif p_input_value ='REM_SSN' then
3231 l_return_value :=
3232 REPLACE(g_rpa_rec(l_pa_request_id).employee_national_identifier,'-');
3233 elsif p_input_value ='REM_LN_OCCUR' then
3234 IF l_value IS NOT NULL THEN
3235 l_return_value :=LPAD(CEIL(LENGTH(l_value)/74),2,'0');
3236 ELSE
3237 l_return_value :='0';
3238 END IF;
3239 elsif p_input_value ='REM_CODE' then
3240 l_return_value := g_pa_req(p_assignment_id).remark_code;
3241 elsif p_input_value ='REM_FIR_NOA_CD' then
3242 l_return_value :=
3243 g_rpa_rec(l_pa_request_id).first_noa_code;
3244 elsif p_input_value ='REM_SEC_NOA_CD' then
3245 l_return_value :=
3246 g_rpa_rec(l_pa_request_id).second_noa_code;
3247 elsif p_input_value ='REM_PAY_PER_NUM' then
3248 l_return_value :=
3249 LPAD(g_rpa_attr(l_pa_request_id).pay_period_num,2,'0');
3250 elsif p_input_value ='REM_RMK_NUM' then
3251 l_return_value := l_rem_code ; --g_remark_cnt;
3252 end if;
3253 end if;
3254
3255
3256 -- For awards
3257 l_awd_rec_exists := false; l_rem_exists := false;
3258
3259 if g_aw_req.exists(p_assignment_id) then
3260 Hr_Utility.set_location(' entering g_aw_req if', 6);
3261 l_pa_request_id := g_aw_req(p_assignment_id).pa_request_id;
3262 l_awd_rec_exists := g_awd_rec.exists(l_pa_request_id);
3263 l_rem_exists := g_pa_req_remark.exists(l_pa_request_id);
3264 end if;
3265
3266 Hr_Utility.set_location(' l_pa_request_id: '||l_pa_request_id, 16);
3267 Hr_Utility.set_location(' p_input_value: '||p_input_value, 16);
3268
3269 if (l_awd_rec_exists and
3270 l_rem_exists )then
3271 Hr_Utility.set_location(' entering first if', 6);
3272 open csr_rem_dsc(g_aw_req(p_assignment_id).pa_remark_id
3273 ,l_pa_request_id
3274 ,g_awd_rec(l_pa_request_id).effective_date);
3275 fetch csr_rem_dsc into l_csr_rem_dsc;
3276 l_value := l_csr_rem_dsc.description ;
3277 l_rem_code :=l_csr_rem_dsc.code;
3278
3279 close csr_rem_dsc;
3280 if p_input_value ='REM_POI' then
3281
3282 l_return_value :=
3283 g_awd_rec(l_pa_request_id).personnel_office_id;
3284 elsif p_input_value ='REM_AGNCY_CD' THEN
3285 l_return_value := g_rpa_awd_attr(l_pa_request_id).nfc_agency_code ;
3286
3287 elsif p_input_value ='REM_DEPT_CD' THEN
3288 l_return_value := g_rpa_awd_attr(l_pa_request_id).dept_code ;
3289 elsif p_input_value ='REM_ALT_REQ' then
3290
3291 l_return_value :=
3292 g_awd_rec(l_pa_request_id).altered_pa_request_id;
3293 elsif p_input_value ='REM_PA_DATE' then
3294
3295 l_return_value :=FND_DATE.date_to_canonical(g_awd_rec(l_pa_request_id).effective_date);
3296 -- FND_DATE.CANONICAL_TO_DATE(g_rpa_rec(l_pa_request_id).effective_date);
3297
3298 elsif p_input_value ='REM_DESC_0109' then
3299 --Hr_Utility.set_location(' p_input_value: '||p_input_value, 6);
3300 l_return_value :=SUBSTR(l_value,0,524);
3301 elsif p_input_value ='REM_DESC_01' then
3302 l_return_value :=SUBSTR(l_value,0,222);
3303 elsif p_input_value ='REM_DESC_02' then
3304 l_return_value :=SUBSTR(l_value,223,222);
3305 elsif p_input_value ='REM_DESC_03' then
3306 l_return_value :=SUBSTR(l_value,445,222);
3307 elsif p_input_value ='REM_DESC_04' then
3308 l_return_value :=SUBSTR(l_value,75,149);
3309 elsif p_input_value ='REM_DESC_05' then
3310 l_return_value :=SUBSTR(l_value,150,224);
3311 elsif p_input_value ='REM_DESC_06' then
3312 l_return_value :=SUBSTR(l_value,225,299);
3313 elsif p_input_value ='REM_DESC_07' then
3314 l_return_value :=SUBSTR(l_value,300,374);
3315 elsif p_input_value ='REM_DESC_08' then
3316 l_return_value :=SUBSTR(l_value,375,449);
3317 elsif p_input_value ='REM_DESC_09' then
3318 l_return_value :=SUBSTR(l_value,450,524);
3319 elsif p_input_value ='REM_SSN' then
3320 l_return_value :=
3321 REPLACE(g_awd_rec(l_pa_request_id).employee_national_identifier,'-');
3322 elsif p_input_value ='REM_LN_OCCUR' then
3323 IF l_value IS NOT NULL THEN
3324 l_return_value :=LPAD(CEIL(LENGTH(l_value)/74),2,'0');
3325 ELSE
3326 l_return_value :='0';
3327 END IF;
3328 elsif p_input_value ='REM_CODE' then
3329 l_return_value := g_aw_req(p_assignment_id).remark_code;
3330 elsif p_input_value ='REM_FIR_NOA_CD' then
3331 l_return_value :=
3332 g_rpa_awd_attr(l_pa_request_id).nat_act_2nd_3pos;
3333 elsif p_input_value ='REM_SEC_NOA_CD' then
3334 l_return_value :=
3335 g_rpa_awd_attr(l_pa_request_id).nat_act_1st_3_pos;
3336 elsif p_input_value ='REM_PAY_PER_NUM' then
3337 l_return_value :=
3338 LPAD(g_rpa_awd_attr(l_pa_request_id).pay_per_num,2,'0');
3339 elsif p_input_value ='REM_RMK_NUM' then
3340 l_return_value := l_rem_code ; --g_remark_cnt;
3341 end if;
3342 end if;
3343
3344 -- End awards
3345
3346 Hr_Utility.set_location(' l_return_value: '||l_return_value, 79);
3347 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
3348
3349 return l_return_value;
3350
3351 exception
3352 when others then
3353 p_error_code := sqlcode;
3354 p_error_message := NULL;
3355 Hr_Utility.set_location('SQLERRM: '||sqlerrm, 90);
3356 Hr_Utility.set_location('error Leaving: '||l_proc_name, 90);
3357 return l_return_value;
3358
3359 end Get_Remarks_Data;
3360
3361 -- =============================================================================
3362 -- ~ Get_Award_Data:
3363 -- =============================================================================
3364 function Get_Award_Data
3365 (p_assignment_id in number
3366 ,p_input_value in varchar2
3367 ,p_error_code in out nocopy varchar2
3368 ,p_error_message in out nocopy varchar2
3369 ) return varchar2 is
3370 l_return_value varchar2(2000);
3371 l_proc_name constant varchar2(250) := g_proc_name ||'Get_Award_Data';
3372 l_pa_request_id number(15);
3373 begin
3374 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
3375
3376 l_return_value := null;
3377 if g_aw_req.exists(p_assignment_id) then
3378 l_pa_request_id := g_aw_req(p_assignment_id).pa_request_id;
3379 end if;
3380
3381 Hr_Utility.set_location(' l_pa_request_id: '||l_pa_request_id, 6);
3382 Hr_Utility.set_location(' p_input_value: '||p_input_value, 6);
3383
3384
3385 if (l_pa_request_id is not null and
3386 g_awd_rec.exists(l_pa_request_id))then
3387
3388 if p_input_value ='AWD_POI' then
3389
3390 l_return_value := g_awd_rec(l_pa_request_id).personnel_office_id;
3391 elsif p_input_value ='AWD_ALT_REQ' then
3392
3393 l_return_value := g_awd_rec(l_pa_request_id).altered_pa_request_id;
3394 elsif p_input_value ='AWD_SSN' then
3395
3396 l_return_value := REPLACE(g_awd_rec(l_pa_request_id).employee_national_identifier,'-');
3397
3398 elsif p_input_value ='RPA_AWARD_ID' then
3399
3400 l_return_value := l_pa_request_id;
3401 elsif p_input_value ='AWD_AGCY' then
3402 l_return_value := g_rpa_awd_attr(l_pa_request_id).nfc_agency_code;
3403
3404 elsif p_input_value ='AWD_PAY_PER_NUM' then
3405
3406 l_return_value := LPAD(g_rpa_awd_attr(l_pa_request_id).pay_per_num,2,'0');
3407
3408 elsif p_input_value ='AWD_CAW' then
3409 IF INSTR( g_rpa_awd_attr(l_pa_request_id).current_cash_award,'.') > 0 THEN
3410 l_return_value := LPAD(REPLACE(g_rpa_awd_attr(l_pa_request_id).current_cash_award,'.'),7,'0');
3411 ELSE
3412 IF g_rpa_awd_attr(l_pa_request_id).current_cash_award IS NOT NULL THEN
3413 l_return_value := LPAD(g_rpa_awd_attr(l_pa_request_id).current_cash_award||'00',7,'0');
3414 END IF;
3415 END IF;
3416
3417
3418 elsif p_input_value ='AWD_PERS_EFF_DT' then
3419
3420 l_return_value := FND_DATE.date_to_canonical(g_awd_rec(l_pa_request_id).effective_date);
3421
3422 elsif p_input_value ='AWD_CSC_OTH_LEG_AUTH' then
3423
3424 l_return_value := g_awd_rec(l_pa_request_id).FIRST_ACTION_LA_DESC1;
3425 elsif p_input_value ='AWD_CSC_OTH_LEG_AUTH2' then
3426
3427 l_return_value := g_awd_rec(l_pa_request_id).FIRST_ACTION_LA_DESC2;
3428
3429 elsif p_input_value ='AWD_DEPT_CD' then
3430
3431 l_return_value := g_rpa_awd_attr(l_pa_request_id).dept_code;
3432
3433 elsif p_input_value ='AWD_DT_CSH_AWD_FRM' then
3434 l_return_value := fnd_date.date_to_canonical(g_rpa_awd_attr(l_pa_request_id).dt_cash_awd_from);
3435
3436 elsif p_input_value ='AWD_DT_CSH_AWD_TO' then
3437
3438 l_return_value := fnd_date.date_to_canonical(g_rpa_awd_attr(l_pa_request_id).dt_cash_awd_to) ;
3439 elsif p_input_value ='AWD_TANG_BEN' then
3440
3441 l_return_value := g_rpa_awd_attr(l_pa_request_id).tangible_ben ;
3442
3443 elsif p_input_value ='AWD_FIR_YR_SAV' then
3444 IF INSTR(g_rpa_awd_attr(l_pa_request_id).awd_fir_yr_sav,'.')> 0 THEN
3445 l_return_value := LPAD(REPLACE(g_rpa_awd_attr(l_pa_request_id).awd_fir_yr_sav,'.'),10,'0') ;
3446 ELSE
3447 IF g_rpa_awd_attr(l_pa_request_id).awd_fir_yr_sav IS NOT NULL THEN
3448 l_return_value := LPAD(g_rpa_awd_attr(l_pa_request_id).awd_fir_yr_sav||'00',10,'0') ;
3449 END IF;
3450 END IF;
3451
3452 elsif p_input_value ='AWD_INTANG_BEN' then
3453
3454 l_return_value := g_rpa_awd_attr(l_pa_request_id).intangible_ben ;
3455
3456
3457 elsif p_input_value ='AWD_CSH_AWD_AGNCY' then
3458
3459 l_return_value := g_rpa_awd_attr(l_pa_request_id).cash_award_agency ;
3460
3461 elsif p_input_value ='AWD_NAT_ACT_POS2' then
3462
3463 l_return_value := g_rpa_awd_attr(l_pa_request_id).nat_act_2nd_3pos ;
3464
3465 elsif p_input_value ='AWD_CSC_AUTH_CD_NOA2' then
3466
3467 l_return_value := g_rpa_awd_attr(l_pa_request_id).csc_auth_code_2nd_noa ;
3468
3469 elsif p_input_value ='AWD_CSC_AUTH_CD_NOA22' then
3470
3471 l_return_value := g_rpa_awd_attr(l_pa_request_id).csc_auth_2ndcode_2nd_noa ;
3472
3473 elsif p_input_value ='AWD_CSH_AWD_CD' then
3474
3475 l_return_value := g_rpa_awd_attr(l_pa_request_id).awd_csh_awd_cd ;
3476
3477 /* elsif p_input_value ='AWD_CSH_AWD_PAY_CD' then
3478
3479 l_return_value := '0' ;*/
3480
3481 elsif p_input_value ='AWD_CHK_MAIL_ADDR_IND' then
3482
3483 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_ind ;
3484
3485 elsif p_input_value ='AWD_CHK_MAIL_ADDR_LN1' then
3486
3487 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_ln1 ;
3488
3489 elsif p_input_value ='AWD_CHK_MAIL_DES_AGNT' then
3490
3491 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_desg_agnt ;
3492 elsif p_input_value ='AWD_CHK_MAIL_ADDR_LN2' then
3493
3494 l_return_value :=g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_ln2 ;
3495
3496 elsif p_input_value ='AWD_NAT_ACT_POS1' then
3497
3498 l_return_value :=g_rpa_awd_attr(l_pa_request_id).nat_act_1st_3_pos ;
3499
3500 elsif p_input_value ='AWD_CSC_AUTH_CD_NOA12' then
3501
3502 l_return_value := g_rpa_awd_attr(l_pa_request_id).csc_auth_code_2nd_noa1 ;
3503
3504 elsif p_input_value ='AWD_CSC_AUTH_CD_NOA122' then
3505
3506 l_return_value := g_rpa_awd_attr(l_pa_request_id).csc_auth_2ndcode_2nd_noa1 ;
3507
3508 elsif p_input_value ='AWD_CHK_MAIL_ADDR_CITY' then
3509
3510 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_city_name ;
3511
3512 elsif p_input_value ='AWD_CHK_MAIL_ADDR_STATE' then
3513
3514 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_state_name ;
3515
3516 elsif p_input_value ='AWD_CHK_MAIL_ADDR_ZIP5' then
3517
3518 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_zip_5 ;
3519
3520 elsif p_input_value ='AWD_CHK_MAIL_ADDR_ZIP4' then
3521
3522 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_zip_4 ;
3523
3524 elsif p_input_value ='AWD_CHK_MAIL_ADDR_ZIP2' then
3525
3526 l_return_value := g_rpa_awd_attr(l_pa_request_id).chk_mail_addr_zip_2 ;
3527
3528 elsif p_input_value ='AWD_CASE_NUM' then
3529 l_return_value := g_rpa_awd_attr(l_pa_request_id).awd_case_num ;
3530 elsif p_input_value ='AWD_STORE_ACT_IND' then
3531 l_return_value :=g_rpa_awd_attr(l_pa_request_id).awd_store_act_ind;
3532 elsif p_input_value ='AWD_CSH_AWD_TYP_CD' then
3533 l_return_value :=g_rpa_awd_attr(l_pa_request_id).awd_csh_awd_typ_cd;
3534 elsif p_input_value ='AWD_CSH_AWD_PAY_CD' then
3535 l_return_value :=g_rpa_awd_attr(l_pa_request_id).awd_csh_awd_pay_cd ;
3536 elsif p_input_value ='AWD_NO_PER_CSH_AWD' then
3537 l_return_value :=LPAD(g_rpa_awd_attr(l_pa_request_id).awd_no_per_csh_awd,3,'0');
3538 elsif p_input_value ='AWD_ACCTG_DIST_FISYR_CD' then
3539 l_return_value :=g_rpa_awd_attr(l_pa_request_id).awd_acctg_dist_fisyr_cd;
3540 elsif p_input_value ='AWD_ACCTG_DIST_APPN_CD' then
3541 l_return_value :=g_rpa_awd_attr(l_pa_request_id).awd_acctg_dist_appn_cd;
3542 elsif p_input_value ='AWD_AUTH_DT' then
3543 l_return_value :=g_rpa_awd_attr(l_pa_request_id).authentication_dt;
3544 elsif p_input_value ='AWD_CSH_AWD_ACCST_CHG' then
3545 l_return_value :=g_rpa_awd_attr(l_pa_request_id).awd_csh_awd_accst_chg;
3546 elsif p_input_value ='AWD_APP_DT' then
3547 l_return_value := TRUNC(g_awd_rec(l_pa_request_id).approval_date);
3548 -- Bug 4641232 For elements pos-one-two and pos-three-four
3549 elsif p_input_value = 'AWD_POS_ONE_TWO' then
3550 l_return_value := '67';
3551 elsif p_input_value = 'AWD_POS_THREE_FOUR' then
3552 l_return_value := '00';
3553 end if;
3554 end if;
3555 return l_return_value;
3556 exception
3557 when others then
3558 p_error_code := sqlcode;
3559 p_error_message := p_input_value;--sqlerrm;
3560 Hr_Utility.set_location('SQLERRM: '||sqlerrm, 90);
3561 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
3562 return l_return_value;
3563
3564 end Get_Award_Data;
3565 -- =============================================================================
3566 -- ~ Get_Address_Data:
3567 -- =============================================================================
3568 function Get_Address_Data
3569 (p_assignment_id in number
3570 ,p_input_value in varchar2
3571 ,p_error_code in out nocopy varchar2
3572 ,p_error_message in out nocopy varchar2
3573 ) return varchar2 is
3574
3575 l_return_value varchar2(2000);
3576 l_address_id number;
3577 l_proc_name constant varchar2(250) := g_proc_name ||'Get_Address_Data';
3578
3579 begin
3580 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
3581 l_return_value := null;
3582 if g_address_rec.exists(p_assignment_id) then
3583 l_address_id := g_address_rec(p_assignment_id).address_id;
3584 end if;
3585
3586
3587 if g_debug then
3588 Hr_Utility.set_location(' p_input_value: '||p_input_value, 6);
3589 Hr_Utility.set_location(' l_address_id: '||l_address_id, 6);
3590 end if;
3591
3592 Hr_Utility.set_location(' p_input_value: '||p_input_value, 6);
3593 Hr_Utility.set_location(' l_address_id: '||l_address_id, 6);
3594
3595 if (l_address_id is not null )then
3596
3597 if p_input_value ='ADD_EFF_DATE' then
3598
3599 l_return_value := fnd_date.date_to_canonical(
3600 g_address_rec(p_assignment_id).effective_date);
3601
3602 elsif p_input_value ='ADD_LINE1' then
3603
3604 l_return_value := g_rpa_add_attr(p_assignment_id).address_line1;
3605
3606 elsif p_input_value ='ADD_LINE2' then
3607
3608 l_return_value := g_rpa_add_attr(p_assignment_id).address_line2;
3609
3610 elsif p_input_value ='ADD_LINE3' then
3611
3612 l_return_value := g_rpa_add_attr(p_assignment_id).address_line3;
3613
3614 elsif p_input_value ='ADD_CITY' then
3615
3616 -- l_return_value := g_address_rec(p_assignment_id).town_or_city;
3617 l_return_value := g_rpa_add_attr(p_assignment_id).add_city;
3618
3619 elsif p_input_value ='ADD_STATE' then
3620
3621 -- l_return_value := g_address_rec(p_assignment_id).region_2;
3622
3623 l_return_value := g_rpa_add_attr(p_assignment_id).add_state;
3624
3625 elsif p_input_value ='ADD_COUNTY' then
3626
3627 -- l_return_value := SUBSTR (g_address_rec(p_assignment_id).region_1,7,3);
3628 -- l_return_value := g_rpa_add_attr(p_assignment_id).add_county;
3629 l_return_value := SUBSTR(g_rpa_add_attr(p_assignment_id).add_county,7,3);
3630
3631 elsif p_input_value ='ADD_ZIPCODE' then
3632
3633 l_return_value :=SUBSTR( g_rpa_add_attr(p_assignment_id).zip_cd,0,5);
3634
3635 elsif p_input_value ='ADD_ZIP_CD_4' then
3636 --IF LENGTH(g_rpa_add_attr(p_assignment_id).zip_cd) >=9 THEN
3637
3638 l_return_value := SUBSTR(g_rpa_add_attr(p_assignment_id).zip_cd,LENGTH(g_rpa_add_attr(p_assignment_id).zip_cd)-3);
3639 --END IF;
3640
3641 elsif p_input_value ='ADD_AGNCY_CD' then
3642
3643 Hr_Utility.set_location(' Inside Agency CD: '||p_input_value, 6);
3644
3645 l_return_value :=g_rpa_add_attr(p_assignment_id).nfc_agency_code;
3646
3647 Hr_Utility.set_location(' l_return_value: '||l_return_value, 6);
3648
3649 elsif p_input_value ='ADD_POI' then
3650
3651 l_return_value := g_rpa_add_attr(p_assignment_id).poi;
3652 elsif p_input_value ='ADD_PAY_PER_NUM' then
3653
3654 l_return_value := LPAD(g_rpa_add_attr(p_assignment_id).pay_per_num,2,'0');
3655 elsif p_input_value ='ADD_DEPT_CODE' then
3656
3657 l_return_value := g_rpa_add_attr(p_assignment_id).dept_code;
3658 elsif p_input_value ='ADD_SSN' then
3659 l_return_value := g_rpa_add_attr(p_assignment_id).ssn;
3660
3661
3662
3663
3664
3665 elsif p_input_value ='ADD_LINE_CHK1' then
3666 l_return_value := g_rpa_add_attr(p_assignment_id).address_line1_chk;
3667
3668 elsif p_input_value ='ADD_LINE_CHK2' then
3669
3670 l_return_value := g_rpa_add_attr(p_assignment_id).address_line2_chk;
3671
3672 elsif p_input_value ='ADD_LINE_CHK3' then
3673
3674 l_return_value := g_rpa_add_attr(p_assignment_id).address_line3_chk;
3675
3676 elsif p_input_value ='ADD_CITY_CHK' then
3677
3678 -- l_return_value := g_address_rec(p_assignment_id).town_or_city;
3679 l_return_value := g_rpa_add_attr(p_assignment_id).add_city_chk;
3680
3681 elsif p_input_value ='ADD_STATE_CHK' then
3682
3683 -- l_return_value := g_address_rec(p_assignment_id).region_2;
3684
3685 l_return_value := g_rpa_add_attr(p_assignment_id).add_state_chk;
3686
3687 elsif p_input_value ='ADD_COUNTY_CHK' then
3688
3689 --SUBSTR (g_address_rec(p_assignment_id).region_1,7,3);
3690 l_return_value := SUBSTR(g_rpa_add_attr(p_assignment_id).add_county_chk,7,3);
3691 elsif p_input_value ='ADD_ZIPCODE_CHK' then
3692
3693 l_return_value :=SUBSTR( g_rpa_add_attr(p_assignment_id).zip_cd_chk,0,5);
3694
3695 elsif p_input_value ='ADD_ZIP_CD_CHK4' then
3696 --IF LENGTH(g_rpa_add_attr(p_assignment_id).zip_cd_chk) >=9 THEN
3697
3698 l_return_value := SUBSTR(g_rpa_add_attr(p_assignment_id).zip_cd_chk
3699 ,LENGTH(g_rpa_add_attr(p_assignment_id).zip_cd_chk)-3);
3700 --END IF;
3701
3702
3703
3704
3705
3706
3707 end if;
3708
3709 end if;
3710
3711 if g_debug then
3712 Hr_Utility.set_location(' l_return_value: '||l_return_value, 79);
3713 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
3714 end if;
3715 Hr_Utility.set_location(' l_return_value: '||l_return_value, 79);
3716 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
3717
3718
3719 return l_return_value;
3720
3721 exception
3722 when others then
3723 p_error_code := sqlcode;
3724 p_error_message := p_input_value;--sqlerrm;
3725 Hr_Utility.set_location('SQLERRM: '||sqlerrm, 90);
3726 Hr_Utility.set_location('error Leaving: '||l_proc_name, 90);
3727 return l_return_value;
3728
3729 end Get_Address_Data;
3730 -- =============================================================================
3731 -- ~ Get_Elmt_Val:
3732 -- =============================================================================
3733 function Get_Elmt_Val
3734 (p_rslt_dtl_id in number
3735 ,p_rslt_id in number
3736 ,p_rcd_id in number
3737 ,p_person_id in number
3738 ,p_col_name in varchar2
3739 ) return varchar2 as
3740
3741 type valtyp is ref cursor;
3742 ele_cur valtyp;
3743
3744 l_sel_stmt varchar2(2000);
3745 l_elmt_value varchar2(2000);
3746 l_proc_name constant varchar2(150) := g_proc_name ||'Get_Elmt_Val';
3747
3748 begin
3749 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
3750 l_sel_stmt := 'select '||p_col_name ||
3751 ' from ben_ext_rslt_dtl
3752 where ext_rslt_id = :1
3753 and ext_rslt_dtl_id = :2
3754 and ext_rcd_id = :3
3755 and person_id = :4';
3756
3757 open ele_cur for l_sel_stmt
3758 using p_rslt_id
3759 ,p_rslt_dtl_id
3760 ,p_rcd_id
3761 ,p_person_id;
3762 fetch ele_cur into l_elmt_value;
3763 close ele_cur;
3764 Hr_Utility.set_location(' p_col_name : '||p_col_name, 79);
3765 Hr_Utility.set_location(' l_elmt_value: '||l_elmt_value, 79);
3766 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
3767 return l_elmt_value;
3768
3769 end Get_Elmt_Val;
3770 -- =============================================================================
3771 -- ~ Update_Record_Values :
3772 -- =============================================================================
3773 procedure Update_Record_Values
3774 (p_ext_rcd_id in ben_ext_rcd.ext_rcd_id%type
3775 ,p_ext_data_element_name in ben_ext_data_elmt.name%type
3776 ,p_data_element_value in ben_ext_rslt_dtl.val_01%type
3777 ,p_data_ele_seqnum in number
3778 ,p_ext_dtl_rec in out nocopy ben_ext_rslt_dtl%rowtype
3779 ) is
3780 cursor csr_seqnum (c_ext_rcd_id in ben_ext_rcd.ext_rcd_id%type
3781 ,c_ext_data_element_name in ben_ext_data_elmt.name%type
3782 ) is
3783 select der.ext_data_elmt_id,
3784 der.seq_num,
3785 ede.name
3786 from ben_ext_data_elmt_in_rcd der
3787 ,ben_ext_data_elmt ede
3788 where der.ext_rcd_id = c_ext_rcd_id
3789 and ede.ext_data_elmt_id = der.ext_data_elmt_id
3790 and ede.name like '%'|| c_ext_data_element_name
3791 order by seq_num;
3792
3793 l_seqnum_rec csr_seqnum%rowtype;
3794 l_proc_name varchar2(150):= g_proc_name||'Update_Record_Values';
3795 l_ext_dtl_rec_nc ben_ext_rslt_dtl%rowtype;
3796 begin
3797 Hr_Utility.set_location('Entering :'||l_proc_name, 5);
3798 -- nocopy changes
3799 l_ext_dtl_rec_nc := p_ext_dtl_rec;
3800
3801 if p_data_ele_seqnum is null then
3802 open csr_seqnum ( c_ext_rcd_id => p_ext_rcd_id
3803 ,c_ext_data_element_name => p_ext_data_element_name);
3804 fetch csr_seqnum into l_seqnum_rec;
3805 if csr_seqnum%notfound then
3806 close csr_seqnum;
3807 else
3808 close csr_seqnum;
3809 end if;
3810 else
3811 l_seqnum_rec.seq_num := p_data_ele_seqnum;
3812 end if;
3813
3814 if l_seqnum_rec.seq_num = 1 then
3815 p_ext_dtl_rec.val_01 := p_data_element_value;
3816 elsif l_seqnum_rec.seq_num = 2 then
3817 p_ext_dtl_rec.val_02 := p_data_element_value;
3818 elsif l_seqnum_rec.seq_num = 3 then
3819 p_ext_dtl_rec.val_03 := p_data_element_value;
3820 elsif l_seqnum_rec.seq_num = 4 then
3821 p_ext_dtl_rec.val_04 := p_data_element_value;
3822 elsif l_seqnum_rec.seq_num = 5 then
3823 p_ext_dtl_rec.val_05 := p_data_element_value;
3824 elsif l_seqnum_rec.seq_num = 6 then
3825 p_ext_dtl_rec.val_06 := p_data_element_value;
3826 elsif l_seqnum_rec.seq_num = 7 then
3827 p_ext_dtl_rec.val_07 := p_data_element_value;
3828 elsif l_seqnum_rec.seq_num = 8 then
3829 p_ext_dtl_rec.val_08 := p_data_element_value;
3830 elsif l_seqnum_rec.seq_num = 9 then
3831 p_ext_dtl_rec.val_09 := p_data_element_value;
3832 elsif l_seqnum_rec.seq_num = 10 then
3833 p_ext_dtl_rec.val_10 := p_data_element_value;
3834 elsif l_seqnum_rec.seq_num = 11 then
3835 p_ext_dtl_rec.val_11 := p_data_element_value;
3836 elsif l_seqnum_rec.seq_num = 12 then
3837 p_ext_dtl_rec.val_12 := p_data_element_value;
3838 elsif l_seqnum_rec.seq_num = 13 then
3839 p_ext_dtl_rec.val_13 := p_data_element_value;
3840 elsif l_seqnum_rec.seq_num = 14 then
3841 p_ext_dtl_rec.val_14 := p_data_element_value;
3842 elsif l_seqnum_rec.seq_num = 15 then
3843 p_ext_dtl_rec.val_15 := p_data_element_value;
3844 elsif l_seqnum_rec.seq_num = 16 then
3845 p_ext_dtl_rec.val_16 := p_data_element_value;
3846 elsif l_seqnum_rec.seq_num = 17 then
3847 p_ext_dtl_rec.val_17 := p_data_element_value;
3848 elsif l_seqnum_rec.seq_num = 18 then
3849 p_ext_dtl_rec.val_18 := p_data_element_value;
3850 elsif l_seqnum_rec.seq_num = 19 then
3851 p_ext_dtl_rec.val_19 := p_data_element_value;
3852 elsif l_seqnum_rec.seq_num = 20 then
3853 p_ext_dtl_rec.val_20 := p_data_element_value;
3854 elsif l_seqnum_rec.seq_num = 21 then
3855 p_ext_dtl_rec.val_21 := p_data_element_value;
3856 elsif l_seqnum_rec.seq_num = 22 then
3857 p_ext_dtl_rec.val_22 := p_data_element_value;
3858 elsif l_seqnum_rec.seq_num = 23then
3859 p_ext_dtl_rec.val_23 := p_data_element_value;
3860 elsif l_seqnum_rec.seq_num = 24 then
3861 p_ext_dtl_rec.val_24 := p_data_element_value;
3862 elsif l_seqnum_rec.seq_num = 25 then
3863 p_ext_dtl_rec.val_25 := p_data_element_value;
3864 elsif l_seqnum_rec.seq_num = 26 then
3865 p_ext_dtl_rec.val_26 := p_data_element_value;
3866 elsif l_seqnum_rec.seq_num = 27 then
3867 p_ext_dtl_rec.val_27 := p_data_element_value;
3868 elsif l_seqnum_rec.seq_num = 28 then
3869 p_ext_dtl_rec.val_28 := p_data_element_value;
3870 elsif l_seqnum_rec.seq_num = 29 then
3871 p_ext_dtl_rec.val_29 := p_data_element_value;
3872 elsif l_seqnum_rec.seq_num = 30 then
3873 p_ext_dtl_rec.val_30 := p_data_element_value;
3874 elsif l_seqnum_rec.seq_num = 31 then
3875 p_ext_dtl_rec.val_31 := p_data_element_value;
3876 elsif l_seqnum_rec.seq_num = 32 then
3877 p_ext_dtl_rec.val_32 := p_data_element_value;
3878 elsif l_seqnum_rec.seq_num = 33 then
3879 p_ext_dtl_rec.val_33 := p_data_element_value;
3880 elsif l_seqnum_rec.seq_num = 34 then
3881 p_ext_dtl_rec.val_34 := p_data_element_value;
3882 elsif l_seqnum_rec.seq_num = 35 then
3883 p_ext_dtl_rec.val_35 := p_data_element_value;
3884 elsif l_seqnum_rec.seq_num = 36 then
3885 p_ext_dtl_rec.val_36 := p_data_element_value;
3886 elsif l_seqnum_rec.seq_num = 37 then
3887 p_ext_dtl_rec.val_37 := p_data_element_value;
3888 elsif l_seqnum_rec.seq_num = 38 then
3889 p_ext_dtl_rec.val_38 := p_data_element_value;
3890 elsif l_seqnum_rec.seq_num = 39 then
3891 p_ext_dtl_rec.val_39 := p_data_element_value;
3892 elsif l_seqnum_rec.seq_num = 40 then
3893 p_ext_dtl_rec.val_40 := p_data_element_value;
3894 elsif l_seqnum_rec.seq_num = 41 then
3895 p_ext_dtl_rec.val_41 := p_data_element_value;
3896 elsif l_seqnum_rec.seq_num = 42 then
3897 p_ext_dtl_rec.val_42 := p_data_element_value;
3898 elsif l_seqnum_rec.seq_num = 43 then
3899 p_ext_dtl_rec.val_43 := p_data_element_value;
3900 elsif l_seqnum_rec.seq_num = 44 then
3901 p_ext_dtl_rec.val_44 := p_data_element_value;
3902 elsif l_seqnum_rec.seq_num = 45 then
3903 p_ext_dtl_rec.val_45 := p_data_element_value;
3904 elsif l_seqnum_rec.seq_num = 46 then
3905 p_ext_dtl_rec.val_46 := p_data_element_value;
3906 elsif l_seqnum_rec.seq_num = 47 then
3907 p_ext_dtl_rec.val_47 := p_data_element_value;
3908 elsif l_seqnum_rec.seq_num = 48 then
3909 p_ext_dtl_rec.val_48 := p_data_element_value;
3910 elsif l_seqnum_rec.seq_num = 49 then
3911 p_ext_dtl_rec.val_49 := p_data_element_value;
3912 elsif l_seqnum_rec.seq_num = 50 then
3913 p_ext_dtl_rec.val_50 := p_data_element_value;
3914 elsif l_seqnum_rec.seq_num = 51 then
3915 p_ext_dtl_rec.val_51 := p_data_element_value;
3916 elsif l_seqnum_rec.seq_num = 52 then
3917 p_ext_dtl_rec.val_52 := p_data_element_value;
3918 elsif l_seqnum_rec.seq_num = 53 then
3919 p_ext_dtl_rec.val_53 := p_data_element_value;
3920 elsif l_seqnum_rec.seq_num = 54 then
3921 p_ext_dtl_rec.val_54 := p_data_element_value;
3922 elsif l_seqnum_rec.seq_num = 55 then
3923 p_ext_dtl_rec.val_55 := p_data_element_value;
3924 elsif l_seqnum_rec.seq_num = 56 then
3925 p_ext_dtl_rec.val_56 := p_data_element_value;
3926 elsif l_seqnum_rec.seq_num = 57 then
3927 p_ext_dtl_rec.val_57 := p_data_element_value;
3928 elsif l_seqnum_rec.seq_num = 58 then
3929 p_ext_dtl_rec.val_58 := p_data_element_value;
3930 elsif l_seqnum_rec.seq_num = 58 then
3931 p_ext_dtl_rec.val_58 := p_data_element_value;
3932 elsif l_seqnum_rec.seq_num = 59 then
3933 p_ext_dtl_rec.val_59 := p_data_element_value;
3934 elsif l_seqnum_rec.seq_num = 60 then
3935 p_ext_dtl_rec.val_60 := p_data_element_value;
3936 elsif l_seqnum_rec.seq_num = 61 then
3937 p_ext_dtl_rec.val_61 := p_data_element_value;
3938 elsif l_seqnum_rec.seq_num = 62 then
3939 p_ext_dtl_rec.val_62 := p_data_element_value;
3940 elsif l_seqnum_rec.seq_num = 63 then
3941 p_ext_dtl_rec.val_63 := p_data_element_value;
3942 elsif l_seqnum_rec.seq_num = 64 then
3943 p_ext_dtl_rec.val_64 := p_data_element_value;
3944 elsif l_seqnum_rec.seq_num = 65 then
3945 p_ext_dtl_rec.val_65 := p_data_element_value;
3946 elsif l_seqnum_rec.seq_num = 66 then
3947 p_ext_dtl_rec.val_66 := p_data_element_value;
3948 elsif l_seqnum_rec.seq_num = 67 then
3949 p_ext_dtl_rec.val_67 := p_data_element_value;
3950 elsif l_seqnum_rec.seq_num = 68 then
3951 p_ext_dtl_rec.val_68 := p_data_element_value;
3952 elsif l_seqnum_rec.seq_num = 69 then
3953 p_ext_dtl_rec.val_69 := p_data_element_value;
3954 elsif l_seqnum_rec.seq_num = 70 then
3955 p_ext_dtl_rec.val_70 := p_data_element_value;
3956 elsif l_seqnum_rec.seq_num = 71 then
3957 p_ext_dtl_rec.val_71 := p_data_element_value;
3958 elsif l_seqnum_rec.seq_num = 72 then
3959 p_ext_dtl_rec.val_72 := p_data_element_value;
3960 elsif l_seqnum_rec.seq_num = 73 then
3961 p_ext_dtl_rec.val_73 := p_data_element_value;
3962 elsif l_seqnum_rec.seq_num = 74 then
3963 p_ext_dtl_rec.val_74 := p_data_element_value;
3964 elsif l_seqnum_rec.seq_num = 75 then
3965 p_ext_dtl_rec.val_75 := p_data_element_value;
3966 elsif l_seqnum_rec.seq_num = 76 then
3967 p_ext_dtl_rec.val_76 := p_data_element_value;
3968 elsif l_seqnum_rec.seq_num = 77 then
3969 p_ext_dtl_rec.val_77 := p_data_element_value;
3970 elsif l_seqnum_rec.seq_num = 78 then
3971 p_ext_dtl_rec.val_78 := p_data_element_value;
3972 elsif l_seqnum_rec.seq_num = 79 then
3973 p_ext_dtl_rec.val_79 := p_data_element_value;
3974 elsif l_seqnum_rec.seq_num = 80 then
3975 p_ext_dtl_rec.val_80 := p_data_element_value;
3976 elsif l_seqnum_rec.seq_num = 81 then
3977 p_ext_dtl_rec.val_81 := p_data_element_value;
3978 elsif l_seqnum_rec.seq_num = 82 then
3979 p_ext_dtl_rec.val_82 := p_data_element_value;
3980 elsif l_seqnum_rec.seq_num = 83 then
3981 p_ext_dtl_rec.val_83 := p_data_element_value;
3982 elsif l_seqnum_rec.seq_num = 84 then
3983 p_ext_dtl_rec.val_84 := p_data_element_value;
3984 elsif l_seqnum_rec.seq_num = 85 then
3985 p_ext_dtl_rec.val_85 := p_data_element_value;
3986 elsif l_seqnum_rec.seq_num = 86 then
3987 p_ext_dtl_rec.val_86 := p_data_element_value;
3988 elsif l_seqnum_rec.seq_num = 87 then
3989 p_ext_dtl_rec.val_87 := p_data_element_value;
3990 elsif l_seqnum_rec.seq_num = 88 then
3991 p_ext_dtl_rec.val_88 := p_data_element_value;
3992 elsif l_seqnum_rec.seq_num = 89 then
3993 p_ext_dtl_rec.val_89 := p_data_element_value;
3994 elsif l_seqnum_rec.seq_num = 90 then
3995 p_ext_dtl_rec.val_90 := p_data_element_value;
3996 elsif l_seqnum_rec.seq_num = 91 then
3997 p_ext_dtl_rec.val_91 := p_data_element_value;
3998 elsif l_seqnum_rec.seq_num = 92 then
3999 p_ext_dtl_rec.val_92 := p_data_element_value;
4000 elsif l_seqnum_rec.seq_num = 93 then
4001 p_ext_dtl_rec.val_93 := p_data_element_value;
4002 elsif l_seqnum_rec.seq_num = 94 then
4003 p_ext_dtl_rec.val_94 := p_data_element_value;
4004 elsif l_seqnum_rec.seq_num = 95 then
4005 p_ext_dtl_rec.val_95 := p_data_element_value;
4006 elsif l_seqnum_rec.seq_num = 96 then
4007 p_ext_dtl_rec.val_96 := p_data_element_value;
4008 elsif l_seqnum_rec.seq_num = 97 then
4009 p_ext_dtl_rec.val_97 := p_data_element_value;
4010 elsif l_seqnum_rec.seq_num = 98 then
4011 p_ext_dtl_rec.val_98 := p_data_element_value;
4012 elsif l_seqnum_rec.seq_num = 99 then
4013 p_ext_dtl_rec.val_99 := p_data_element_value;
4014 elsif l_seqnum_rec.seq_num = 100 then
4015 p_ext_dtl_rec.val_100 := p_data_element_value;
4016 elsif l_seqnum_rec.seq_num = 101 then
4017 p_ext_dtl_rec.val_101 := p_data_element_value;
4018 elsif l_seqnum_rec.seq_num = 102 then
4019 p_ext_dtl_rec.val_102 := p_data_element_value;
4020 elsif l_seqnum_rec.seq_num = 103 then
4021 p_ext_dtl_rec.val_103 := p_data_element_value;
4022 elsif l_seqnum_rec.seq_num = 104 then
4023 p_ext_dtl_rec.val_104 := p_data_element_value;
4024 elsif l_seqnum_rec.seq_num = 105 then
4025 p_ext_dtl_rec.val_105 := p_data_element_value;
4026 elsif l_seqnum_rec.seq_num = 106 then
4027 p_ext_dtl_rec.val_106 := p_data_element_value;
4028 elsif l_seqnum_rec.seq_num = 107 then
4029 p_ext_dtl_rec.val_107 := p_data_element_value;
4030 elsif l_seqnum_rec.seq_num = 108 then
4031 p_ext_dtl_rec.val_108 := p_data_element_value;
4032 elsif l_seqnum_rec.seq_num = 109 then
4033 p_ext_dtl_rec.val_109 := p_data_element_value;
4034 elsif l_seqnum_rec.seq_num = 110 then
4035 p_ext_dtl_rec.val_110 := p_data_element_value;
4036 elsif l_seqnum_rec.seq_num = 111 then
4037 p_ext_dtl_rec.val_111 := p_data_element_value;
4038 elsif l_seqnum_rec.seq_num = 112 then
4039 p_ext_dtl_rec.val_112 := p_data_element_value;
4040 elsif l_seqnum_rec.seq_num = 113 then
4041 p_ext_dtl_rec.val_113 := p_data_element_value;
4042 elsif l_seqnum_rec.seq_num = 114 then
4043 p_ext_dtl_rec.val_114 := p_data_element_value;
4044 elsif l_seqnum_rec.seq_num = 115 then
4045 p_ext_dtl_rec.val_115 := p_data_element_value;
4046 elsif l_seqnum_rec.seq_num = 116 then
4047 p_ext_dtl_rec.val_116 := p_data_element_value;
4048 elsif l_seqnum_rec.seq_num = 117 then
4049 p_ext_dtl_rec.val_117 := p_data_element_value;
4050 elsif l_seqnum_rec.seq_num = 118 then
4051 p_ext_dtl_rec.val_118 := p_data_element_value;
4052 elsif l_seqnum_rec.seq_num = 119 then
4053 p_ext_dtl_rec.val_119 := p_data_element_value;
4054 elsif l_seqnum_rec.seq_num = 120 then
4055 p_ext_dtl_rec.val_120 := p_data_element_value;
4056 elsif l_seqnum_rec.seq_num = 121 then
4057 p_ext_dtl_rec.val_121 := p_data_element_value;
4058 elsif l_seqnum_rec.seq_num = 122 then
4059 p_ext_dtl_rec.val_122 := p_data_element_value;
4060 elsif l_seqnum_rec.seq_num = 123 then
4061 p_ext_dtl_rec.val_123 := p_data_element_value;
4062 elsif l_seqnum_rec.seq_num = 124 then
4063 p_ext_dtl_rec.val_124 := p_data_element_value;
4064 elsif l_seqnum_rec.seq_num = 125 then
4065 p_ext_dtl_rec.val_125 := p_data_element_value;
4066 elsif l_seqnum_rec.seq_num = 126 then
4067 p_ext_dtl_rec.val_126 := p_data_element_value;
4068 elsif l_seqnum_rec.seq_num = 127 then
4069 p_ext_dtl_rec.val_127 := p_data_element_value;
4070 elsif l_seqnum_rec.seq_num = 128 then
4071 p_ext_dtl_rec.val_128 := p_data_element_value;
4072 elsif l_seqnum_rec.seq_num = 129 then
4073 p_ext_dtl_rec.val_129 := p_data_element_value;
4074 elsif l_seqnum_rec.seq_num = 130 then
4075 p_ext_dtl_rec.val_130 := p_data_element_value;
4076 elsif l_seqnum_rec.seq_num = 131 then
4077 p_ext_dtl_rec.val_131 := p_data_element_value;
4078 elsif l_seqnum_rec.seq_num = 132 then
4079 p_ext_dtl_rec.val_132 := p_data_element_value;
4080 elsif l_seqnum_rec.seq_num = 133 then
4081 p_ext_dtl_rec.val_133 := p_data_element_value;
4082 elsif l_seqnum_rec.seq_num = 134 then
4083 p_ext_dtl_rec.val_134 := p_data_element_value;
4084 elsif l_seqnum_rec.seq_num = 135 then
4085 p_ext_dtl_rec.val_135 := p_data_element_value;
4086 elsif l_seqnum_rec.seq_num = 136 then
4087 p_ext_dtl_rec.val_136 := p_data_element_value;
4088 elsif l_seqnum_rec.seq_num = 137 then
4089 p_ext_dtl_rec.val_137 := p_data_element_value;
4090 elsif l_seqnum_rec.seq_num = 138 then
4091 p_ext_dtl_rec.val_138 := p_data_element_value;
4092 elsif l_seqnum_rec.seq_num = 139 then
4093 p_ext_dtl_rec.val_139 := p_data_element_value;
4094 elsif l_seqnum_rec.seq_num = 140 then
4095 p_ext_dtl_rec.val_140 := p_data_element_value;
4096 elsif l_seqnum_rec.seq_num = 141 then
4097 p_ext_dtl_rec.val_141 := p_data_element_value;
4098 elsif l_seqnum_rec.seq_num = 142 then
4099 p_ext_dtl_rec.val_142 := p_data_element_value;
4100 elsif l_seqnum_rec.seq_num = 143 then
4101 p_ext_dtl_rec.val_143 := p_data_element_value;
4102 elsif l_seqnum_rec.seq_num = 144 then
4103 p_ext_dtl_rec.val_144 := p_data_element_value;
4104 elsif l_seqnum_rec.seq_num = 145 then
4105 p_ext_dtl_rec.val_145 := p_data_element_value;
4106 elsif l_seqnum_rec.seq_num = 146 then
4107 p_ext_dtl_rec.val_146 := p_data_element_value;
4108 elsif l_seqnum_rec.seq_num = 147 then
4109 p_ext_dtl_rec.val_147 := p_data_element_value;
4110 elsif l_seqnum_rec.seq_num = 148 then
4111 p_ext_dtl_rec.val_148 := p_data_element_value;
4112 elsif l_seqnum_rec.seq_num = 149 then
4113 p_ext_dtl_rec.val_149 := p_data_element_value;
4114 elsif l_seqnum_rec.seq_num = 150 then
4115 p_ext_dtl_rec.val_150 := p_data_element_value;
4116 end if;
4117
4118 Hr_Utility.set_location('Leaving :'||l_proc_name, 25);
4119 return;
4120 exception
4121 when Others then
4122 -- nocopy changes
4123 p_ext_dtl_rec := l_ext_dtl_rec_nc;
4124 raise;
4125
4126 end Update_Record_Values;
4127 -- =============================================================================
4128 -- Copy_Rec_Values :
4129 -- =============================================================================
4130 procedure Copy_Rec_Values
4131 (p_rslt_rec in ben_ext_rslt_dtl%rowtype
4132 ,p_val_tab in out NOCOPY ValTabTyp) is
4133
4134 l_proc_name varchar2(150) := g_proc_name ||'Copy_Rec_Values ';
4135 begin
4136 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
4137
4138 p_val_tab(1) := p_rslt_rec.val_01;
4139 p_val_tab(2) := p_rslt_rec.val_02;
4140 p_val_tab(3) := p_rslt_rec.val_03;
4141 p_val_tab(4) := p_rslt_rec.val_04;
4142 p_val_tab(5) := p_rslt_rec.val_05;
4143 p_val_tab(6) := p_rslt_rec.val_06;
4144 p_val_tab(7) := p_rslt_rec.val_07;
4145 p_val_tab(8) := p_rslt_rec.val_08;
4146 p_val_tab(9) := p_rslt_rec.val_09;
4147
4148 p_val_tab(10) := p_rslt_rec.val_10;
4149 p_val_tab(11) := p_rslt_rec.val_11;
4150 p_val_tab(12) := p_rslt_rec.val_12;
4151 p_val_tab(13) := p_rslt_rec.val_13;
4152 p_val_tab(14) := p_rslt_rec.val_14;
4153 p_val_tab(15) := p_rslt_rec.val_15;
4154 p_val_tab(16) := p_rslt_rec.val_16;
4155 p_val_tab(17) := p_rslt_rec.val_17;
4156 p_val_tab(18) := p_rslt_rec.val_18;
4157 p_val_tab(19) := p_rslt_rec.val_19;
4158
4159 p_val_tab(20) := p_rslt_rec.val_20;
4160 p_val_tab(21) := p_rslt_rec.val_21;
4161 p_val_tab(22) := p_rslt_rec.val_22;
4162 p_val_tab(23) := p_rslt_rec.val_23;
4163 p_val_tab(24) := p_rslt_rec.val_24;
4164 p_val_tab(25) := p_rslt_rec.val_25;
4165 p_val_tab(26) := p_rslt_rec.val_26;
4166 p_val_tab(27) := p_rslt_rec.val_27;
4167 p_val_tab(28) := p_rslt_rec.val_28;
4168 p_val_tab(29) := p_rslt_rec.val_29;
4169
4170 p_val_tab(30) := p_rslt_rec.val_30;
4171 p_val_tab(31) := p_rslt_rec.val_31;
4172 p_val_tab(32) := p_rslt_rec.val_32;
4173 p_val_tab(33) := p_rslt_rec.val_33;
4174 p_val_tab(34) := p_rslt_rec.val_34;
4175 p_val_tab(35) := p_rslt_rec.val_35;
4176 p_val_tab(36) := p_rslt_rec.val_36;
4177 p_val_tab(37) := p_rslt_rec.val_37;
4178 p_val_tab(38) := p_rslt_rec.val_38;
4179 p_val_tab(39) := p_rslt_rec.val_39;
4180
4181 p_val_tab(40) := p_rslt_rec.val_40;
4182 p_val_tab(41) := p_rslt_rec.val_41;
4183 p_val_tab(42) := p_rslt_rec.val_42;
4184 p_val_tab(43) := p_rslt_rec.val_43;
4185 p_val_tab(44) := p_rslt_rec.val_44;
4186 p_val_tab(45) := p_rslt_rec.val_45;
4187 p_val_tab(46) := p_rslt_rec.val_46;
4188 p_val_tab(47) := p_rslt_rec.val_47;
4189 p_val_tab(48) := p_rslt_rec.val_48;
4190 p_val_tab(49) := p_rslt_rec.val_49;
4191
4192 p_val_tab(50) := p_rslt_rec.val_50;
4193 p_val_tab(51) := p_rslt_rec.val_51;
4194 p_val_tab(52) := p_rslt_rec.val_52;
4195 p_val_tab(53) := p_rslt_rec.val_53;
4196 p_val_tab(54) := p_rslt_rec.val_54;
4197 p_val_tab(55) := p_rslt_rec.val_55;
4198 p_val_tab(56) := p_rslt_rec.val_56;
4199 p_val_tab(57) := p_rslt_rec.val_57;
4200 p_val_tab(58) := p_rslt_rec.val_58;
4201 p_val_tab(59) := p_rslt_rec.val_59;
4202
4203 p_val_tab(60) := p_rslt_rec.val_60;
4204 p_val_tab(61) := p_rslt_rec.val_61;
4205 p_val_tab(62) := p_rslt_rec.val_62;
4206 p_val_tab(63) := p_rslt_rec.val_63;
4207 p_val_tab(64) := p_rslt_rec.val_64;
4208 p_val_tab(65) := p_rslt_rec.val_65;
4209 p_val_tab(66) := p_rslt_rec.val_66;
4210 p_val_tab(67) := p_rslt_rec.val_67;
4211 p_val_tab(68) := p_rslt_rec.val_68;
4212 p_val_tab(69) := p_rslt_rec.val_69;
4213
4214 p_val_tab(70) := p_rslt_rec.val_70;
4215 p_val_tab(71) := p_rslt_rec.val_71;
4216 p_val_tab(72) := p_rslt_rec.val_72;
4217 p_val_tab(73) := p_rslt_rec.val_73;
4218 p_val_tab(74) := p_rslt_rec.val_74;
4219 p_val_tab(75) := p_rslt_rec.val_75;
4220
4221 p_val_tab(76) := p_rslt_rec.val_76;
4222 p_val_tab(77) := p_rslt_rec.val_77;
4223 p_val_tab(78) := p_rslt_rec.val_78;
4224 p_val_tab(79) := p_rslt_rec.val_79;
4225 p_val_tab(80) := p_rslt_rec.val_80;
4226
4227 p_val_tab(81) := p_rslt_rec.val_81;
4228 p_val_tab(82) := p_rslt_rec.val_82;
4229 p_val_tab(83) := p_rslt_rec.val_83;
4230 p_val_tab(84) := p_rslt_rec.val_84;
4231 p_val_tab(85) := p_rslt_rec.val_85;
4232
4233 p_val_tab(86) := p_rslt_rec.val_86;
4234 p_val_tab(87) := p_rslt_rec.val_87;
4235 p_val_tab(88) := p_rslt_rec.val_88;
4236 p_val_tab(89) := p_rslt_rec.val_89;
4237 p_val_tab(90) := p_rslt_rec.val_90;
4238
4239 p_val_tab(91) := p_rslt_rec.val_91;
4240 p_val_tab(92) := p_rslt_rec.val_92;
4241 p_val_tab(93) := p_rslt_rec.val_93;
4242 p_val_tab(94) := p_rslt_rec.val_94;
4243 p_val_tab(95) := p_rslt_rec.val_95;
4244
4245 p_val_tab(96) := p_rslt_rec.val_96;
4246 p_val_tab(97) := p_rslt_rec.val_97;
4247 p_val_tab(98) := p_rslt_rec.val_98;
4248 p_val_tab(99) := p_rslt_rec.val_99;
4249 p_val_tab(100) := p_rslt_rec.val_100;
4250
4251 p_val_tab(101) := p_rslt_rec.val_101;
4252 p_val_tab(102) := p_rslt_rec.val_102;
4253 p_val_tab(103) := p_rslt_rec.val_103;
4254 p_val_tab(104) := p_rslt_rec.val_104;
4255 p_val_tab(105) := p_rslt_rec.val_105;
4256
4257 p_val_tab(106) := p_rslt_rec.val_106;
4258 p_val_tab(107) := p_rslt_rec.val_107;
4259 p_val_tab(108) := p_rslt_rec.val_108;
4260 p_val_tab(109) := p_rslt_rec.val_109;
4261 p_val_tab(110) := p_rslt_rec.val_110;
4262
4263 p_val_tab(111) := p_rslt_rec.val_111;
4264 p_val_tab(112) := p_rslt_rec.val_112;
4265 p_val_tab(113) := p_rslt_rec.val_113;
4266 p_val_tab(114) := p_rslt_rec.val_114;
4267 p_val_tab(115) := p_rslt_rec.val_115;
4268
4269 p_val_tab(116) := p_rslt_rec.val_116;
4270 p_val_tab(117) := p_rslt_rec.val_117;
4271 p_val_tab(118) := p_rslt_rec.val_118;
4272 p_val_tab(119) := p_rslt_rec.val_119;
4273 p_val_tab(120) := p_rslt_rec.val_120;
4274
4275 p_val_tab(121) := p_rslt_rec.val_121;
4276 p_val_tab(122) := p_rslt_rec.val_122;
4277 p_val_tab(123) := p_rslt_rec.val_123;
4278 p_val_tab(124) := p_rslt_rec.val_124;
4279 p_val_tab(125) := p_rslt_rec.val_125;
4280
4281 p_val_tab(126) := p_rslt_rec.val_126;
4282 p_val_tab(127) := p_rslt_rec.val_127;
4283 p_val_tab(128) := p_rslt_rec.val_128;
4284 p_val_tab(129) := p_rslt_rec.val_129;
4285 p_val_tab(130) := p_rslt_rec.val_130;
4286
4287 p_val_tab(131) := p_rslt_rec.val_131;
4288 p_val_tab(132) := p_rslt_rec.val_132;
4289 p_val_tab(133) := p_rslt_rec.val_133;
4290 p_val_tab(134) := p_rslt_rec.val_134;
4291 p_val_tab(135) := p_rslt_rec.val_135;
4292
4293 p_val_tab(136) := p_rslt_rec.val_136;
4294 p_val_tab(137) := p_rslt_rec.val_137;
4295 p_val_tab(138) := p_rslt_rec.val_138;
4296 p_val_tab(139) := p_rslt_rec.val_139;
4297 p_val_tab(140) := p_rslt_rec.val_140;
4298
4299 p_val_tab(141) := p_rslt_rec.val_141;
4300 p_val_tab(142) := p_rslt_rec.val_142;
4301 p_val_tab(143) := p_rslt_rec.val_143;
4302 p_val_tab(144) := p_rslt_rec.val_144;
4303 p_val_tab(145) := p_rslt_rec.val_145;
4304
4305 p_val_tab(146) := p_rslt_rec.val_146;
4306 p_val_tab(147) := p_rslt_rec.val_147;
4307 p_val_tab(148) := p_rslt_rec.val_148;
4308 p_val_tab(149) := p_rslt_rec.val_149;
4309 p_val_tab(150) := p_rslt_rec.val_150;
4310
4311 Hr_Utility.set_location('Leaving: '||l_proc_name, 15);
4312
4313 end Copy_Rec_Values;
4314 -- =============================================================================
4315 -- Data_Elmt_In_Rcd:
4316 -- =============================================================================
4317 procedure Data_Elmt_In_Rcd
4318 (p_ext_rcd_id in number
4319 ,p_val_tab in out NOCOPY ValTabTyp
4320 ,p_exclude_this_rcd_flag out NOCOPY boolean
4321 ,p_raise_warning out NOCOPY boolean
4322 ,p_rollback_person out NOCOPY boolean) is
4323 --
4324 cursor c_xer(p_ext_rcd_id in number) is
4325 select xer.seq_num,
4326 xer.sprs_cd,
4327 xer.ext_data_elmt_in_rcd_id,
4328 xdm.name
4329 from ben_ext_data_elmt_in_rcd xer,
4330 ben_ext_data_elmt xdm
4331 where ext_rcd_id = p_ext_rcd_id
4332 and xer.sprs_cd is not null
4333 and xer.ext_data_elmt_id = xdm.ext_data_elmt_id ;
4334 --
4335 cursor c_xwc(p_ext_data_elmt_in_rcd_id in number) is
4336 select xwc.oper_cd,
4337 xwc.val,
4338 xwc.and_or_cd,
4339 xer.seq_num
4340 from ben_ext_where_clause xwc,
4341 ben_ext_data_elmt_in_rcd xer
4342 where xwc.ext_data_elmt_in_rcd_id = p_ext_data_elmt_in_rcd_id
4343 and xwc.cond_ext_data_elmt_in_rcd_id = xer.ext_data_elmt_in_rcd_id
4344 order by xwc.seq_num;
4345 --
4346 l_proc varchar2(72) := g_proc_name||'Data_Elmt_In_Rcd';
4347 l_condition varchar2(1);
4348 l_cnt number;
4349 l_value_without_quotes varchar2(500);
4350 l_dynamic_condition varchar2(9999);
4351 --
4352 l_val_tab_mirror ValTabTyp;
4353 begin
4354 Hr_Utility.set_location('Entering'||l_proc, 5);
4355 p_exclude_this_rcd_flag := false;
4356 p_raise_warning := false;
4357 p_rollback_person := false;
4358 -- Make mirror image of table for evaluation, since values in
4359 -- the real table are changing (being nullified).
4360 l_val_tab_mirror := p_val_tab;
4361 --
4362 for xer in c_xer(p_ext_rcd_id) loop
4363 --
4364 l_cnt := 0;
4365 l_dynamic_condition := 'begin If ';
4366 for xwc in c_xwc(xer.ext_data_elmt_in_rcd_id) loop
4367 l_cnt := l_cnt +1;
4368 -- strip all quotes out of any values.
4369 l_value_without_quotes := REPLACE(l_val_tab_mirror(xwc.seq_num),'''');
4370 l_dynamic_condition := l_dynamic_condition || '''' ||
4371 l_value_without_quotes || '''' || ' ' ||
4372 xwc.oper_cd || ' ' ||
4373 xwc.val || ' ' ||
4374 xwc.and_or_cd || ' ';
4375 end loop;-- FOR xwc IN c_xwc
4376
4377 -- If there is no data for advanced conditions, bypass rest of this program.
4378 if l_cnt > 0 then
4379 l_dynamic_condition := l_dynamic_condition ||
4380 ' then :l_condition := ''T''; else :l_condition := ''F''; end if; end;';
4381 begin
4382 execute immediate l_dynamic_condition Using out l_condition;
4383 exception
4384 when Others then
4385 -- this needs replaced with a message for translation.
4386 Fnd_File.put_line(Fnd_File.Log,
4387 'Error in Advanced Conditions while processing this dynamic sql statement: ');
4388 Fnd_File.put_line(Fnd_File.Log, l_dynamic_condition);
4389 raise; -- such that the error processing in ben_ext_thread occurs.
4390 end;
4391 --
4392 if l_condition = 'T' then
4393 if xer.sprs_cd = 'A' then
4394 -- Rollback Record
4395 p_exclude_this_rcd_flag := true;
4396 exit;
4397 elsif xer.sprs_cd = 'B' then
4398 -- Rollback Person
4399 p_exclude_this_rcd_flag := true;
4400 p_rollback_person := true;
4401 elsif xer.sprs_cd = 'C' then
4402 -- Rollback person and error
4403 p_exclude_this_rcd_flag := true;
4404 p_rollback_person := true;
4405 elsif xer.sprs_cd = 'G' then
4406 -- Nullify Data Element
4407 p_val_tab(xer.seq_num) := null;
4408 elsif xer.sprs_cd = 'H' then
4409 -- Signal Warning
4410 p_raise_warning := false;
4411 Write_Warning ('BEN_92313_EXT_USER_DEFINED_WRN'
4412 ,92313
4413 ,xer.name);
4414 elsif xer.sprs_cd = 'I' then
4415 -- Nullify Data Element and Signal Warning
4416 p_val_tab(xer.seq_num) := null;
4417 p_raise_warning := false;
4418 Write_Warning ('BEN_92313_EXT_USER_DEFINED_WRN'
4419 ,92313
4420 ,xer.name);
4421 end if; --IF xer.sprs_cd = 'A'
4422
4423 else -- l_condition = 'F'
4424 if xer.sprs_cd = 'D' then
4425 -- Rollback record
4426 p_exclude_this_rcd_flag := true;
4427 exit;
4428 elsif xer.sprs_cd = 'E' then
4429 -- Rollback person
4430 p_exclude_this_rcd_flag := true;
4431 p_rollback_person := true;
4432 elsif xer.sprs_cd = 'F' then
4433 -- Rollback person and error
4434 p_exclude_this_rcd_flag := true;
4435 p_rollback_person := true;
4436 elsif xer.sprs_cd = 'J' then
4437 -- Nullify data element
4438 p_val_tab(xer.seq_num) := null;
4439 elsif xer.sprs_cd = 'K' then
4440 -- Signal warning
4441 p_raise_warning := false;
4442 Write_Warning ('BEN_92313_EXT_USER_DEFINED_WRN'
4443 ,92313
4444 ,xer.name);
4445 elsif xer.sprs_cd = 'L' then
4446 -- Nullify data element and signal warning
4447 p_val_tab(xer.seq_num) := null;
4448 p_raise_warning := false;
4449 Write_Warning ('BEN_92313_EXT_USER_DEFINED_WRN'
4450 ,92313
4451 ,xer.name);
4452 end if; --IF xer.sprs_cd = 'D'
4453 --
4454 end if; -- IF l_condition = 'T'
4455 --
4456 end if;-- IF l_cnt > 0 THEN
4457 --
4458 end loop; -- FOR xer IN c_xer
4459 --
4460 Hr_Utility.set_location('Exiting'||l_proc, 15);
4461 --
4462 end Data_Elmt_In_Rcd;
4463
4464 -- =============================================================================
4465 -- Rcd_In_File:
4466 -- =============================================================================
4467 procedure Rcd_In_File
4468 (p_ext_rcd_in_file_id in number
4469 ,p_sprs_cd in varchar2
4470 ,p_val_tab in out NOCOPY ValTabTyp
4471 ,p_exclude_this_rcd_flag out NOCOPY boolean
4472 ,p_raise_warning out NOCOPY boolean
4473 ,p_rollback_person out NOCOPY boolean) is
4474
4475 cursor c_xwc(p_ext_rcd_in_file_id in number) is
4476 select xwc.oper_cd,
4477 xwc.val,
4478 xwc.and_or_cd,
4479 xer.seq_num,
4480 xrc.name,
4481 Substr(xel.frmt_mask_cd,1,1) xel_frmt_mask_cd,
4482 xel.data_elmt_typ_cd,
4483 xel.data_elmt_rl,
4484 xel.ext_fld_id,
4485 fld.frmt_mask_typ_cd
4486 from ben_ext_where_clause xwc,
4487 ben_ext_data_elmt_in_rcd xer,
4488 ben_ext_rcd xrc,
4489 ben_ext_data_elmt xel,
4490 ben_ext_fld fld
4491 where xwc.ext_rcd_in_file_id = p_ext_rcd_in_file_id
4492 and xwc.cond_ext_data_elmt_in_rcd_id = xer.ext_data_elmt_in_rcd_id
4493 and xer.ext_rcd_id = xrc.ext_rcd_id
4494 and xel.ext_data_elmt_id = xer.ext_data_elmt_id
4495 and xel.ext_fld_id = fld.ext_fld_id(+)
4496 order by xwc.seq_num;
4497 --
4498 l_proc varchar2(72) := g_proc_name||'Rcd_In_File';
4499 l_condition varchar2(1);
4500 l_cnt number;
4501 l_value_without_quotes varchar2(500);
4502 l_dynamic_condition varchar2(9999);
4503 l_rcd_name ben_ext_rcd.name%type ;
4504 --
4505 --
4506 begin
4507 --
4508 Hr_Utility.set_location('Entering'||l_proc, 5);
4509 --
4510 p_exclude_this_rcd_flag := false;
4511 p_raise_warning := false;
4512 p_rollback_person := false;
4513 if p_sprs_cd = null then
4514 return;
4515 end if;
4516 --
4517 l_cnt := 0;
4518 l_dynamic_condition := 'begin If ';
4519 for xwc in c_xwc(p_ext_rcd_in_file_id) loop
4520 l_cnt := l_cnt +1;
4521 -- Strip all quotes out of any values.
4522 l_value_without_quotes := REPLACE(p_val_tab(xwc.seq_num),'''');
4523 --
4524 if (xwc.frmt_mask_typ_cd = 'N' or
4525 xwc.xel_frmt_mask_cd = 'N' or
4526 xwc.data_elmt_typ_cd = 'R')
4527 and
4528 l_value_without_quotes is not null
4529 then
4530 begin
4531 -- Test for numeric value
4532 if xwc.oper_cd = 'IN' then
4533 l_dynamic_condition := l_dynamic_condition ||''''||
4534 l_value_without_quotes||'''';
4535 else
4536 l_dynamic_condition := l_dynamic_condition ||
4537 To_Number(l_value_without_quotes);
4538 end if;
4539
4540 exception when Others then
4541 -- Quotes needed, not numeric value
4542 l_dynamic_condition := l_dynamic_condition || '''' ||
4543 l_value_without_quotes|| '''';
4544 end;
4545 else
4546 -- Quotes needed, not Numeric value
4547 l_dynamic_condition := l_dynamic_condition || '''' ||
4548 l_value_without_quotes|| '''';
4549 end if;
4550
4551 l_dynamic_condition := l_dynamic_condition || ' ' || xwc.oper_cd ||
4552 ' ' || xwc.val ||
4553 ' ' || xwc.and_or_cd ||
4554 ' ';
4555
4556 l_rcd_name := xwc.name ;
4557 end loop;
4558 -- if there is no data for advanced conditions, exit this program.
4559 if l_cnt = 0 then
4560 return;
4561 end if;
4562 l_dynamic_condition := l_dynamic_condition ||
4563 ' then :l_condition := ''T''; else :l_condition := ''F''; end if; end;';
4564 begin
4565 execute immediate l_dynamic_condition Using out l_condition;
4566 exception
4567 when Others then
4568 Fnd_File.put_line(Fnd_File.Log,
4569 'Error in Advanced Conditions while processing this dynamic sql statement: ');
4570 Fnd_File.put_line(Fnd_File.Log, l_dynamic_condition);
4571 raise; -- such that the error processing in ben_ext_thread occurs.
4572 end;
4573 --
4574 if l_condition = 'T' then
4575 if p_sprs_cd = 'A' then
4576 -- Rollback Record
4577 p_exclude_this_rcd_flag := true;
4578 elsif p_sprs_cd = 'B' then
4579 -- Rollback Person
4580 p_exclude_this_rcd_flag := true;
4581 p_rollback_person := true;
4582 elsif p_sprs_cd = 'C' then
4583 -- Rollback Person and Error
4584 p_exclude_this_rcd_flag := true;
4585 p_rollback_person := true;
4586
4587 Write_Error
4588 (p_err_name => 'BEN_92679_EXT_USER_DEFINED_ERR'
4589 ,p_err_no => 92679
4590 ,p_element => l_rcd_name);
4591
4592 elsif p_sprs_cd = 'H' then
4593 -- Signal Warning
4594 p_raise_warning := true;
4595
4596 Write_Warning ('BEN_92678_EXT_USER_DEFINED_WRN'
4597 ,92678
4598 ,l_rcd_name);
4599
4600 elsif p_sprs_cd = 'M' then
4601 -- Rollback Record and Signal Warning
4602 p_raise_warning := true;
4603
4604 Write_Warning ('BEN_92678_EXT_USER_DEFINED_WRN'
4605 ,92678
4606 ,l_rcd_name);
4607
4608 p_exclude_this_rcd_flag := true;
4609 end if; -- IF p_sprs_cd = 'A'
4610
4611 else -- l_condition = 'F'
4612
4613 if p_sprs_cd = 'D' then
4614 -- Rollback Record
4615 p_exclude_this_rcd_flag := true;
4616 elsif p_sprs_cd = 'E' then
4617 -- Rollback Person
4618 p_exclude_this_rcd_flag := true;
4619 p_rollback_person := true;
4620 elsif p_sprs_cd = 'F' then
4621 -- Rollback Person and Error
4622 p_exclude_this_rcd_flag := true;
4623 p_rollback_person := true;
4624
4625 Write_Error
4626 (p_err_name => 'BEN_92679_EXT_USER_DEFINED_ERR'
4627 ,p_err_no => 92679
4628 ,p_element => l_rcd_name);
4629
4630 elsif p_sprs_cd = 'K' then
4631 -- Signal Warning
4632 p_raise_warning := true;
4633 Write_Warning ('BEN_92678_EXT_USER_DEFINED_WRN'
4634 ,92678
4635 ,l_rcd_name);
4636 elsif p_sprs_cd = 'N' then
4637 -- Rollback Record and Signal warning
4638 Write_Warning ('BEN_92678_EXT_USER_DEFINED_WRN'
4639 ,92678
4640 ,l_rcd_name);
4641 p_raise_warning := true;
4642 p_exclude_this_rcd_flag := true;
4643 end if; -- IF p_sprs_cd = 'D'
4644 --
4645 end if; -- IF l_condition = 'T'
4646 --
4647 Hr_Utility.set_location('Exiting'||l_proc, 15);
4648 --
4649 end Rcd_In_File;
4650 -- =============================================================================
4651 -- ~ Ins_Rslt_Dtl : Inserts a record into the results detail record.
4652 -- =============================================================================
4653 procedure Ins_Rslt_Dtl
4654 (p_dtl_rec in out NOCOPY ben_ext_rslt_dtl%rowtype
4655 ,p_val_tab in ValTabTyp
4656 ,p_rslt_dtl_id out NOCOPY number
4657 ) is
4658
4659 l_proc_name varchar2(150) := g_proc_name||'Ins_Rslt_Dtl';
4660 l_dtl_rec_nc ben_ext_rslt_dtl%rowtype;
4661
4662 begin -- ins_rslt_dtl
4663 Hr_Utility.set_location('Entering :'||l_proc_name, 5);
4664 -- nocopy changes
4665 l_dtl_rec_nc := p_dtl_rec;
4666 -- Get the next sequence NUMBER to insert a record into the table
4667 select ben_ext_rslt_dtl_s.nextval into p_dtl_rec.ext_rslt_dtl_id from dual;
4668 insert into ben_ext_rslt_dtl
4669 (ext_rslt_dtl_id
4670 ,ext_rslt_id
4671 ,business_group_id
4672 ,ext_rcd_id
4673 ,person_id
4674 ,val_01
4675 ,val_02
4676 ,val_03
4677 ,val_04
4678 ,val_05
4679 ,val_06
4680 ,val_07
4681 ,val_08
4682 ,val_09
4683 ,val_10
4684 ,val_11
4685 ,val_12
4686 ,val_13
4687 ,val_14
4688 ,val_15
4689 ,val_16
4690 ,val_17
4691 ,val_19
4692 ,val_18
4693 ,val_20
4694 ,val_21
4695 ,val_22
4696 ,val_23
4697 ,val_24
4698 ,val_25
4699 ,val_26
4700 ,val_27
4701 ,val_28
4702 ,val_29
4703 ,val_30
4704 ,val_31
4705 ,val_32
4706 ,val_33
4707 ,val_34
4708 ,val_35
4709 ,val_36
4710 ,val_37
4711 ,val_38
4712 ,val_39
4713 ,val_40
4714 ,val_41
4715 ,val_42
4716 ,val_43
4717 ,val_44
4718 ,val_45
4719 ,val_46
4720 ,val_47
4721 ,val_48
4722 ,val_49
4723 ,val_50
4724 ,val_51
4725 ,val_52
4726 ,val_53
4727 ,val_54
4728 ,val_55
4729 ,val_56
4730 ,val_57
4731 ,val_58
4732 ,val_59
4733 ,val_60
4734 ,val_61
4735 ,val_62
4736 ,val_63
4737 ,val_64
4738 ,val_65
4739 ,val_66
4740 ,val_67
4741 ,val_68
4742 ,val_69
4743 ,val_70
4744 ,val_71
4745 ,val_72
4746 ,val_73
4747 ,val_74
4748 ,val_75
4749 ,val_76
4750 ,val_77
4751 ,val_78
4752 ,val_79
4753 ,val_80
4754 ,val_81
4755 ,val_82
4756 ,val_83
4757 ,val_84
4758 ,val_85
4759 ,val_86
4760 ,val_87
4761 ,val_88
4762 ,val_89
4763 ,val_90
4764 ,val_91
4765 ,val_92
4766 ,val_93
4767 ,val_94
4768 ,val_95
4769 ,val_96
4770 ,val_97
4771 ,val_98
4772 ,val_99
4773 ,val_100
4774 ,val_101
4775 ,val_102
4776 ,val_103
4777 ,val_104
4778 ,val_105
4779 ,val_106
4780 ,val_107
4781 ,val_108
4782 ,val_109
4783 ,val_110
4784 ,val_111
4785 ,val_112
4786 ,val_113
4787 ,val_114
4788 ,val_115
4789 ,val_116
4790 ,val_117
4791 ,val_118
4792 ,val_119
4793 ,val_120
4794 ,val_121
4795 ,val_122
4796 ,val_123
4797 ,val_124
4798 ,val_125
4799 ,val_126
4800 ,val_127
4801 ,val_128
4802 ,val_129
4803 ,val_130
4804 ,val_131
4805 ,val_132
4806 ,val_133
4807 ,val_134
4808 ,val_135
4809 ,val_136
4810 ,val_137
4811 ,val_138
4812 ,val_139
4813 ,val_140
4814 ,val_141
4815 ,val_142
4816 ,val_143
4817 ,val_144
4818 ,val_145
4819 ,val_146
4820 ,val_147
4821 ,val_148
4822 ,val_149
4823 ,val_150
4824 ,created_by
4825 ,creation_date
4826 ,last_update_date
4827 ,last_updated_by
4828 ,last_update_login
4829 ,program_application_id
4830 ,program_id
4831 ,program_update_date
4832 ,request_id
4833 ,object_version_number
4834 ,prmy_sort_val
4835 ,scnd_sort_val
4836 ,thrd_sort_val
4837 ,trans_seq_num
4838 ,rcrd_seq_num
4839 )
4840 values
4841 (p_dtl_rec.ext_rslt_dtl_id
4842 ,p_dtl_rec.ext_rslt_id
4843 ,p_dtl_rec.business_group_id
4844 ,p_dtl_rec.ext_rcd_id
4845 ,p_dtl_rec.person_id
4846 ,p_val_tab(1)
4847 ,p_val_tab(2)
4848 ,p_val_tab(3)
4849 ,p_val_tab(4)
4850 ,p_val_tab(5)
4851 ,p_val_tab(6)
4852 ,p_val_tab(7)
4853 ,p_val_tab(8)
4854 ,p_val_tab(9)
4855 ,p_val_tab(10)
4856 ,p_val_tab(11)
4857 ,p_val_tab(12)
4858 ,p_val_tab(13)
4859 ,p_val_tab(14)
4860 ,p_val_tab(15)
4861 ,p_val_tab(16)
4862 ,p_val_tab(17)
4863 ,p_val_tab(19)
4864 ,p_val_tab(18)
4865 ,p_val_tab(20)
4866 ,p_val_tab(21)
4867 ,p_val_tab(22)
4868 ,p_val_tab(23)
4869 ,p_val_tab(24)
4870 ,p_val_tab(25)
4871 ,p_val_tab(26)
4872 ,p_val_tab(27)
4873 ,p_val_tab(28)
4874 ,p_val_tab(29)
4875 ,p_val_tab(30)
4876 ,p_val_tab(31)
4877 ,p_val_tab(32)
4878 ,p_val_tab(33)
4879 ,p_val_tab(34)
4880 ,p_val_tab(35)
4881 ,p_val_tab(36)
4882 ,p_val_tab(37)
4883 ,p_val_tab(38)
4884 ,p_val_tab(39)
4885 ,p_val_tab(40)
4886 ,p_val_tab(41)
4887 ,p_val_tab(42)
4888 ,p_val_tab(43)
4889 ,p_val_tab(44)
4890 ,p_val_tab(45)
4891 ,p_val_tab(46)
4892 ,p_val_tab(47)
4893 ,p_val_tab(48)
4894 ,p_val_tab(49)
4895 ,p_val_tab(50)
4896 ,p_val_tab(51)
4897 ,p_val_tab(52)
4898 ,p_val_tab(53)
4899 ,p_val_tab(54)
4900 ,p_val_tab(55)
4901 ,p_val_tab(56)
4902 ,p_val_tab(57)
4903 ,p_val_tab(58)
4904 ,p_val_tab(59)
4905 ,p_val_tab(60)
4906 ,p_val_tab(61)
4907 ,p_val_tab(62)
4908 ,p_val_tab(63)
4909 ,p_val_tab(64)
4910 ,p_val_tab(65)
4911 ,p_val_tab(66)
4912 ,p_val_tab(67)
4913 ,p_val_tab(68)
4914 ,p_val_tab(69)
4915 ,p_val_tab(70)
4916 ,p_val_tab(71)
4917 ,p_val_tab(72)
4918 ,p_val_tab(73)
4919 ,p_val_tab(74)
4920 ,p_val_tab(75)
4921 ,p_val_tab(76)
4922 ,p_val_tab(77)
4923 ,p_val_tab(78)
4924 ,p_val_tab(79)
4925 ,p_val_tab(80)
4926 ,p_val_tab(81)
4927 ,p_val_tab(82)
4928 ,p_val_tab(83)
4929 ,p_val_tab(84)
4930 ,p_val_tab(85)
4931 ,p_val_tab(86)
4932 ,p_val_tab(87)
4933 ,p_val_tab(88)
4934 ,p_val_tab(89)
4935 ,p_val_tab(90)
4936 ,p_val_tab(91)
4937 ,p_val_tab(92)
4938 ,p_val_tab(93)
4939 ,p_val_tab(94)
4940 ,p_val_tab(95)
4941 ,p_val_tab(96)
4942 ,p_val_tab(97)
4943 ,p_val_tab(98)
4944 ,p_val_tab(99)
4945 ,p_val_tab(100)
4946 ,p_val_tab(101)
4947 ,p_val_tab(102)
4948 ,p_val_tab(103)
4949 ,p_val_tab(104)
4950 ,p_val_tab(105)
4951 ,p_val_tab(106)
4952 ,p_val_tab(107)
4953 ,p_val_tab(108)
4954 ,p_val_tab(109)
4955 ,p_val_tab(110)
4956 ,p_val_tab(111)
4957 ,p_val_tab(112)
4958 ,p_val_tab(113)
4959 ,p_val_tab(114)
4960 ,p_val_tab(115)
4961 ,p_val_tab(116)
4962 ,p_val_tab(117)
4963 ,p_val_tab(118)
4964 ,p_val_tab(119)
4965 ,p_val_tab(120)
4966 ,p_val_tab(121)
4967 ,p_val_tab(122)
4968 ,p_val_tab(123)
4969 ,p_val_tab(124)
4970 ,p_val_tab(125)
4971 ,p_val_tab(126)
4972 ,p_val_tab(127)
4973 ,p_val_tab(128)
4974 ,p_val_tab(129)
4975 ,p_val_tab(130)
4976 ,p_val_tab(131)
4977 ,p_val_tab(132)
4978 ,p_val_tab(133)
4979 ,p_val_tab(134)
4980 ,p_val_tab(135)
4981 ,p_val_tab(136)
4982 ,p_val_tab(137)
4983 ,p_val_tab(138)
4984 ,p_val_tab(139)
4985 ,p_val_tab(140)
4986 ,p_val_tab(141)
4987 ,p_val_tab(142)
4988 ,p_val_tab(143)
4989 ,p_val_tab(144)
4990 ,p_val_tab(145)
4991 ,p_val_tab(146)
4992 ,p_val_tab(147)
4993 ,p_val_tab(148)
4994 ,p_val_tab(149)
4995 ,p_val_tab(150)
4996 ,p_dtl_rec.created_by
4997 ,p_dtl_rec.creation_date
4998 ,p_dtl_rec.last_update_date
4999 ,p_dtl_rec.last_updated_by
5000 ,p_dtl_rec.last_update_login
5001 ,p_dtl_rec.program_application_id
5002 ,p_dtl_rec.program_id
5003 ,p_dtl_rec.program_update_date
5004 ,p_dtl_rec.request_id
5005 ,p_dtl_rec.object_version_number
5006 ,p_dtl_rec.prmy_sort_val
5007 ,p_dtl_rec.scnd_sort_val
5008 ,p_dtl_rec.thrd_sort_val
5009 ,p_dtl_rec.trans_seq_num
5010 ,p_dtl_rec.rcrd_seq_num
5011 );
5012 Hr_Utility.set_location('Leaving :'||l_proc_name, 25);
5013 return;
5014
5015 exception
5016 when Others then
5017 Hr_Utility.set_location('Leaving :'||l_proc_name, 25);
5018 p_dtl_rec := l_dtl_rec_nc;
5019 raise;
5020 end Ins_Rslt_Dtl;
5021 -- =============================================================================
5022 -- ~Upd_Rslt_Dtl : Updates the primary assignment record in results detail table
5023 -- =============================================================================
5024 procedure Upd_Rslt_Dtl
5025 (p_dtl_rec in ben_ext_rslt_dtl%rowtype
5026 ,p_val_tab in ValTabTyp ) is
5027
5028 l_proc_name varchar2(150):= g_proc_name||'upd_rslt_dtl';
5029
5030 begin -- Upd_Rslt_Dtl
5031 update ben_ext_rslt_dtl
5032 set val_01 = p_val_tab(1)
5033 ,val_02 = p_val_tab(2)
5034 ,val_03 = p_val_tab(3)
5035 ,val_04 = p_val_tab(4)
5036 ,val_05 = p_val_tab(5)
5037 ,val_06 = p_val_tab(6)
5038 ,val_07 = p_val_tab(7)
5039 ,val_08 = p_val_tab(8)
5040 ,val_09 = p_val_tab(9)
5041 ,val_10 = p_val_tab(10)
5042 ,val_11 = p_val_tab(11)
5043 ,val_12 = p_val_tab(12)
5044 ,val_13 = p_val_tab(13)
5045 ,val_14 = p_val_tab(14)
5046 ,val_15 = p_val_tab(15)
5047 ,val_16 = p_val_tab(16)
5048 ,val_17 = p_val_tab(17)
5049 ,val_19 = p_val_tab(19)
5050 ,val_18 = p_val_tab(18)
5051 ,val_20 = p_val_tab(20)
5052 ,val_21 = p_val_tab(21)
5053 ,val_22 = p_val_tab(22)
5054 ,val_23 = p_val_tab(23)
5055 ,val_24 = p_val_tab(24)
5056 ,val_25 = p_val_tab(25)
5057 ,val_26 = p_val_tab(26)
5058 ,val_27 = p_val_tab(27)
5059 ,val_28 = p_val_tab(28)
5060 ,val_29 = p_val_tab(29)
5061 ,val_30 = p_val_tab(30)
5062 ,val_31 = p_val_tab(31)
5063 ,val_32 = p_val_tab(32)
5064 ,val_33 = p_val_tab(33)
5065 ,val_34 = p_val_tab(34)
5066 ,val_35 = p_val_tab(35)
5067 ,val_36 = p_val_tab(36)
5068 ,val_37 = p_val_tab(37)
5069 ,val_38 = p_val_tab(38)
5070 ,val_39 = p_val_tab(39)
5071 ,val_40 = p_val_tab(40)
5072 ,val_41 = p_val_tab(41)
5073 ,val_42 = p_val_tab(42)
5074 ,val_43 = p_val_tab(43)
5075 ,val_44 = p_val_tab(44)
5076 ,val_45 = p_val_tab(45)
5077 ,val_46 = p_val_tab(46)
5078 ,val_47 = p_val_tab(47)
5079 ,val_48 = p_val_tab(48)
5080 ,val_49 = p_val_tab(49)
5081 ,val_50 = p_val_tab(50)
5082 ,val_51 = p_val_tab(51)
5083 ,val_52 = p_val_tab(52)
5084 ,val_53 = p_val_tab(53)
5085 ,val_54 = p_val_tab(54)
5086 ,val_55 = p_val_tab(55)
5087 ,val_56 = p_val_tab(56)
5088 ,val_57 = p_val_tab(57)
5089 ,val_58 = p_val_tab(58)
5090 ,val_59 = p_val_tab(59)
5091 ,val_60 = p_val_tab(60)
5092 ,val_61 = p_val_tab(61)
5093 ,val_62 = p_val_tab(62)
5094 ,val_63 = p_val_tab(63)
5095 ,val_64 = p_val_tab(64)
5096 ,val_65 = p_val_tab(65)
5097 ,val_66 = p_val_tab(66)
5098 ,val_67 = p_val_tab(67)
5099 ,val_68 = p_val_tab(68)
5100 ,val_69 = p_val_tab(69)
5101 ,val_70 = p_val_tab(70)
5102 ,val_71 = p_val_tab(71)
5103 ,val_72 = p_val_tab(72)
5104 ,val_73 = p_val_tab(73)
5105 ,val_74 = p_val_tab(74)
5106 ,val_75 = p_val_tab(75)
5107 ,val_76 = p_val_tab(76)
5108 ,val_77 = p_val_tab(77)
5109 ,val_78 = p_val_tab(78)
5110 ,val_79 = p_val_tab(79)
5111 ,val_80 = p_val_tab(80)
5112 ,val_81 = p_val_tab(81)
5113 ,val_82 = p_val_tab(82)
5114 ,val_83 = p_val_tab(83)
5115 ,val_84 = p_val_tab(84)
5116 ,val_85 = p_val_tab(85)
5117 ,val_86 = p_val_tab(86)
5118 ,val_87 = p_val_tab(87)
5119 ,val_88 = p_val_tab(88)
5120 ,val_89 = p_val_tab(89)
5121 ,val_90 = p_val_tab(90)
5122 ,val_91 = p_val_tab(91)
5123 ,val_92 = p_val_tab(92)
5124 ,val_93 = p_val_tab(93)
5125 ,val_94 = p_val_tab(94)
5126 ,val_95 = p_val_tab(95)
5127 ,val_96 = p_val_tab(96)
5128 ,val_97 = p_val_tab(97)
5129 ,val_98 = p_val_tab(98)
5130 ,val_99 = p_val_tab(99)
5131 ,val_100 = p_val_tab(100)
5132 ,val_101 = p_val_tab(101)
5133 ,val_102 = p_val_tab(102)
5134 ,val_103 = p_val_tab(103)
5135 ,val_104 = p_val_tab(104)
5136 ,val_105 = p_val_tab(105)
5137 ,val_106 = p_val_tab(106)
5138 ,val_107 = p_val_tab(107)
5139 ,val_108 = p_val_tab(108)
5140 ,val_109 = p_val_tab(109)
5141 ,val_110 = p_val_tab(110)
5142 ,val_111 = p_val_tab(111)
5143 ,val_112 = p_val_tab(112)
5144 ,val_113 = p_val_tab(113)
5145 ,val_114 = p_val_tab(114)
5146 ,val_115 = p_val_tab(115)
5147 ,val_116 = p_val_tab(116)
5148 ,val_117 = p_val_tab(117)
5149 ,val_118 = p_val_tab(118)
5150 ,val_119 = p_val_tab(119)
5151 ,val_120 = p_val_tab(120)
5152 ,val_121 = p_val_tab(121)
5153 ,val_122 = p_val_tab(122)
5154 ,val_123 = p_val_tab(123)
5155 ,val_124 = p_val_tab(124)
5156 ,val_125 = p_val_tab(125)
5157 ,val_126 = p_val_tab(126)
5158 ,val_127 = p_val_tab(127)
5159 ,val_128 = p_val_tab(128)
5160 ,val_129 = p_val_tab(129)
5161 ,val_130 = p_val_tab(130)
5162 ,val_131 = p_val_tab(131)
5163 ,val_132 = p_val_tab(132)
5164 ,val_133 = p_val_tab(133)
5165 ,val_134 = p_val_tab(134)
5166 ,val_135 = p_val_tab(135)
5167 ,val_136 = p_val_tab(136)
5168 ,val_137 = p_val_tab(137)
5169 ,val_138 = p_val_tab(138)
5170 ,val_139 = p_val_tab(139)
5171 ,val_140 = p_val_tab(140)
5172 ,val_141 = p_val_tab(141)
5173 ,val_142 = p_val_tab(142)
5174 ,val_143 = p_val_tab(143)
5175 ,val_144 = p_val_tab(144)
5176 ,val_145 = p_val_tab(145)
5177 ,val_146 = p_val_tab(146)
5178 ,val_147 = p_val_tab(147)
5179 ,val_148 = p_val_tab(148)
5180 ,val_149 = p_val_tab(149)
5181 ,val_150 = p_val_tab(150)
5182 ,object_version_number = p_dtl_rec.object_version_number
5183 ,thrd_sort_val = p_dtl_rec.thrd_sort_val
5184 where ext_rslt_dtl_id = p_dtl_rec.ext_rslt_dtl_id;
5185
5186 return;
5187
5188 exception
5189 when Others then
5190 raise;
5191 end Upd_Rslt_Dtl;
5192 -- =============================================================================
5193 -- Process_Ext_Rslt_Dtl_Rec:
5194 -- =============================================================================
5195 procedure Process_Ext_Rslt_Dtl_Rec
5196 (p_assignment_id in number
5197 ,p_organization_id in number
5198 ,p_effective_date in date
5199 ,p_ext_rcd_id in number
5200 ,p_rslt_rec in out nocopy ben_ext_rslt_dtl%rowtype
5201 ,p_total_lines in out nocopy number
5202 ,p_error_code out nocopy varchar2
5203 ,p_error_message out nocopy varchar2) is
5204
5205 cursor csr_rule_ele(c_ext_rcd_id in number) is
5206 select a.ext_data_elmt_in_rcd_id
5207 ,a.seq_num
5208 ,a.sprs_cd
5209 ,a.strt_pos
5210 ,a.dlmtr_val
5211 ,a.rqd_flag
5212 ,b.ext_data_elmt_id
5213 ,b.data_elmt_typ_cd
5214 ,b.data_elmt_rl
5215 ,b.name
5216 ,Hr_General.decode_lookup('BEN_EXT_FRMT_MASK',
5217 b.frmt_mask_cd) frmt_mask_cd
5218 ,b.frmt_mask_cd frmt_mask_lookup_cd
5219 ,b.string_val
5220 ,b.dflt_val
5221 ,b.max_length_num
5222 ,b.just_cd
5223 from ben_ext_data_elmt b,
5224 ben_ext_data_elmt_in_rcd a
5225 where a.ext_data_elmt_id = b.ext_data_elmt_id
5226 and b.data_elmt_typ_cd = 'R'
5227 and a.ext_rcd_id = c_ext_rcd_id
5228 order by a.seq_num;
5229
5230 cursor csr_ff_type ( c_formula_type_id in ff_formulas_f.formula_id%type
5231 ,c_effective_date in date) is
5232 select formula_type_id
5233 from ff_formulas_f
5234 where formula_id = c_formula_type_id
5235 and c_effective_date between effective_start_date
5236 and effective_end_date;
5237 --
5238 cursor csr_xrif (c_rcd_id in number
5239 ,c_ext_dfn_id in number ) is
5240 select rif.ext_rcd_in_file_id
5241 ,rif.any_or_all_cd
5242 ,rif.seq_num
5243 ,rif.sprs_cd
5244 ,rif.rqd_flag
5245 from ben_ext_rcd_in_file rif
5246 ,ben_ext_dfn dfn
5247 where rif.ext_file_id = dfn.ext_file_id
5248 and rif.ext_rcd_id = c_rcd_id
5249 and dfn.ext_dfn_id = c_ext_dfn_id;
5250 --
5251 l_ben_params csr_ben%rowtype;
5252 l_proc_name varchar2(150) := g_proc_name ||'Process_Ext_Rslt_Dtl_Rec';
5253 l_foumula_type_id ff_formulas_f.formula_id%type;
5254 l_outputs ff_exec.outputs_t;
5255 l_ff_value ben_ext_rslt_dtl.val_01%type;
5256 l_ff_value_fmt ben_ext_rslt_dtl.val_01%type;
5257 l_max_len number;
5258 l_rqd_elmt_is_present varchar2(2) := 'Y';
5259 l_person_id per_all_people_f.person_id%type;
5260 --
5261 l_val_tab ValTabTyp;
5262 l_exclude_this_rcd_flag boolean;
5263 l_raise_warning boolean;
5264 l_rollback_person boolean;
5265 l_rslt_dtl_id number;
5266 --
5267 begin
5268 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
5269 for i in 1..75
5270 loop
5271 l_val_tab(i) := null;
5272 end loop;
5273
5274 for i in csr_rule_ele( c_ext_rcd_id => p_ext_rcd_id)
5275 loop
5276 open csr_ff_type(c_formula_type_id => i.data_elmt_rl
5277 ,c_effective_date => p_effective_date);
5278 fetch csr_ff_type into l_foumula_type_id;
5279 close csr_ff_type;
5280 if l_foumula_type_id = -413 then -- person level rule
5281 l_outputs := Benutils.formula
5282 (p_formula_id => i.data_elmt_rl
5283 ,p_effective_date => p_effective_date
5284 ,p_assignment_id => p_assignment_id
5285 ,p_organization_id => p_organization_id
5286 ,p_business_group_id => g_business_group_id
5287 ,p_jurisdiction_code => null
5288 ,p_param1 => 'EXT_DFN_ID'
5289 ,p_param1_value => to_char(nvl(ben_ext_thread.g_ext_dfn_id, -1))
5290 ,p_param2 => 'EXT_RSLT_ID'
5291 ,p_param2_value => to_char(nvl(ben_ext_thread.g_ext_rslt_id, -1))
5292 ,p_param3 => 'EXT_PERSON_ID'
5293 ,p_param3_value => to_char(nvl(ben_ext_person.g_person_id, -1))
5294 ,p_param4 => 'EXT_PROCESS_BUSINESS_GROUP'
5295 ,p_param4_value => to_char(g_business_group_id)
5296 ,p_param5 => 'EXT_USER_VALUE'
5297 ,p_param5_value => i.String_Val
5298 );
5299 l_ff_value := l_outputs(l_outputs.first).value;
5300 if l_ff_value is null then
5301 l_ff_value := i.dflt_val;
5302 end if;
5303 begin
5304 if i.frmt_mask_lookup_cd is not null and
5305 l_ff_value is not null then
5306 if Substr(i.frmt_mask_lookup_cd,1,1) = 'N' then
5307 Hr_Utility.set_location('..Applying NUMBER format mask :ben_ext_fmt.apply_format_mask',50);
5308 l_ff_value_fmt := Ben_Ext_Fmt.apply_format_mask(To_Number(l_ff_value), i.frmt_mask_cd);
5309 l_ff_value := l_ff_value_fmt;
5310 elsif Substr(i.frmt_mask_lookup_cd,1,1) = 'D' then
5311 Hr_Utility.set_location('..Applying Date format mask :ben_ext_fmt.apply_format_mask',55);
5312 l_ff_value_fmt := Ben_Ext_Fmt.apply_format_mask(Fnd_Date.canonical_to_date(l_ff_value),
5313 i.frmt_mask_cd);
5314 l_ff_value := l_ff_value_fmt;
5315 end if;
5316 end if;
5317 exception -- incase l_ff_value is not valid for formatting, just don't format it.
5318 when Others then
5319 p_error_message := SQLERRM;
5320 end;
5321 -- Truncate data element if the max. length is given
5322 if i.max_length_num is not null then
5323 l_max_len := Least (Length(l_ff_value),i.max_length_num) ;
5324 -- numbers should always trunc from the left
5325 if Substr(i.frmt_mask_lookup_cd,1,1) = 'N' then
5326 l_ff_value := Substr(l_ff_value, -l_max_len);
5327 else -- everything else truncs from the right.
5328 l_ff_value := Substr(l_ff_value, 1, i.max_length_num);
5329 end if;
5330 Hr_Utility.set_location('..After Max Length : '|| l_ff_value,56 );
5331 end if;
5332 -- If the data element is required, and null then exit
5333 -- no need to re-execute the other data-elements in the record.
5334 if i.rqd_flag = 'Y' and (l_ff_value is null) then
5335 l_rqd_elmt_is_present := 'N' ;
5336 exit ;
5337 end if;
5338 -- Update the data-element value at the right seq. num within the
5339 -- record.
5340 Update_Record_Values
5341 (p_ext_rcd_id => p_ext_rcd_id
5342 ,p_ext_data_element_name => null
5343 ,p_data_element_value => l_ff_value
5344 ,p_data_ele_seqnum => i.seq_num
5345 ,p_ext_dtl_rec => p_rslt_rec);
5346 end if;
5347 end loop; --For i in csr_rule_ele
5348 -- Copy the data-element values into a PL/SQL table
5349 Copy_Rec_Values
5350 (p_rslt_rec => p_rslt_rec
5351 ,p_val_tab => l_val_tab);
5352 -- Check the Adv. Conditions for data elements in record
5353 Data_Elmt_In_Rcd
5354 (p_ext_rcd_id => p_rslt_rec.ext_rcd_id
5355 ,p_val_tab => l_val_tab
5356 ,p_exclude_this_rcd_flag => l_exclude_this_rcd_flag
5357 ,p_raise_warning => l_raise_warning
5358 ,p_rollback_person => l_rollback_person);
5359 -- Need to remove all the detail records for the person
5360 if l_rollback_person then
5361 p_total_lines := 0;
5362 end if;
5363 -- Check the Adv. Conditions for records in file
5364 for rif in csr_xrif
5365 (c_rcd_id => p_rslt_rec.ext_rcd_id
5366 ,c_ext_dfn_id => Ben_Ext_Thread.g_ext_dfn_id )
5367 loop
5368 Rcd_In_File
5369 (p_ext_rcd_in_file_id => rif.ext_rcd_in_file_id
5370 ,p_sprs_cd => rif.sprs_cd
5371 ,p_val_tab => l_val_tab
5372 ,p_exclude_this_rcd_flag => l_exclude_this_rcd_flag
5373 ,p_raise_warning => l_raise_warning
5374 ,p_rollback_person => l_rollback_person);
5375 end loop;
5376
5377 -- Need to remove all the detail records for the person
5378 if l_rollback_person then
5379 p_total_lines := 0;
5380 end if;
5381
5382 -- If exclude record is not true, then insert or update record
5383 if not l_exclude_this_rcd_flag and
5384 l_rqd_elmt_is_present <> 'N' then
5385 p_total_lines := p_total_lines + 1;
5386 if p_total_lines > 1 then
5387 Ins_Rslt_Dtl(p_dtl_rec => p_rslt_rec
5388 ,p_val_tab => l_val_tab
5389 ,p_rslt_dtl_id => l_rslt_dtl_id);
5390 else
5391 Upd_Rslt_Dtl(p_dtl_rec => p_rslt_rec
5392 ,p_val_tab => l_val_tab);
5393 end if; --IF g_total_dtl_lines
5394 elsif l_exclude_this_rcd_flag then
5395
5396 open csr_ben (c_ext_dfn_id => Ben_Ext_Thread.g_ext_dfn_id
5397 ,c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id
5398 ,c_business_group_id => g_business_group_id);
5399 fetch csr_ben into l_ben_params;
5400 close csr_ben;
5401
5402 Exclude_Person
5403 (p_person_id => g_person_id
5404 ,p_business_group_id => g_business_group_id
5405 ,p_benefit_action_id => l_ben_params.benefit_action_id
5406 ,p_flag_thread => 'N');
5407
5408 end if;
5409 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
5410
5411 exception
5412 when Others then
5413 p_error_message :='SQL-ERRM :'||SQLERRM;
5414 Hr_Utility.set_location('..'||p_error_message,85);
5415 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
5416
5417 end Process_Ext_Rslt_Dtl_Rec;
5418 -- =============================================================================
5419 -- ~ Process_Person_RPAs:
5420 -- =============================================================================
5421 procedure Process_Person_RPAs
5422 (p_ext_rcd_id in number
5423 ,p_assignment_id in number
5424 ,p_person_id in number
5425 ,p_effective_date in date
5426 ,p_error_code in out nocopy varchar2
5427 ,p_error_message in out nocopy varchar2
5428 ) as
5429 l_rslt_dtl_rec csr_rslt_dtl%rowtype;
5430 l_no_per_rpas number(15);
5431 i number(15);
5432 j number(15);
5433 l_prv_rpa_id number(15);
5434 l_proc_name varchar2(150) := g_proc_name ||'Process_Person_RPAs';
5435 l_total_lines number(15);
5436 l_processed_rpa_id number(15);
5437 begin
5438 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
5439 open csr_rslt_dtl
5440 (c_person_id => p_person_id
5441 ,c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id
5442 ,c_ext_dtl_rcd_id => p_ext_rcd_id);
5443 fetch csr_rslt_dtl into l_rslt_dtl_rec;
5444 close csr_rslt_dtl;
5445 l_no_per_rpas := g_rpa_rec.count;
5446 Hr_Utility.set_location('No Per RPAs: '||l_no_per_rpas, 7);
5447
5448 if g_pa_req.exists(p_assignment_id) then
5449 l_processed_rpa_id := g_pa_req(p_assignment_id).pa_request_id;
5450 end if;
5451 Hr_Utility.set_location('l_processed_rpa_id : '||l_processed_rpa_id, 9);
5452
5453 if l_no_per_rpas = 0 then
5454 Hr_Utility.set_location('l_processed_rpa_id : '||l_processed_rpa_id, 9);
5455 delete from ben_ext_rslt_dtl dtl
5456 where dtl.ext_rslt_dtl_id = l_rslt_dtl_rec.ext_rslt_dtl_id;
5457
5458 elsif l_no_per_rpas > 1 then
5459
5460 l_total_lines := 1;
5461 i := p_assignment_id;
5462 j := g_rpa_rec.first;
5463 Hr_Utility.set_location('PA Request Id : '||j, 10);
5464 while j is not null
5465 loop
5466 if l_processed_rpa_id <> j then
5467 g_pa_req(i).person_id := g_rpa_rec(j).person_id;
5468 g_pa_req(i).assignment_id := g_rpa_rec(j).employee_assignment_id;
5469 g_pa_req(i).effective_date := g_rpa_rec(j).effective_date;
5470 g_pa_req(i).last_update_date := g_rpa_rec(j).last_update_date;
5471 g_pa_req(i).pa_request_id := g_rpa_rec(j).pa_request_id;
5472 g_pa_req(i).pa_notification_id:= g_rpa_rec(j).pa_notification_id;
5473 g_pa_req(i).first_noa_code := g_rpa_rec(j).first_noa_code;
5474 g_pa_req(i).second_noa_code := g_rpa_rec(j).second_noa_code;
5475 g_pa_req(i).no_of_rpa := g_pa_req(i).no_of_rpa + 1;
5476 Hr_Utility.set_location('Calling Process_Ext_Rslt_Dtl_Rec... ', 11);
5477 Process_Ext_Rslt_Dtl_Rec
5478 (p_assignment_id => p_assignment_id
5479 ,p_organization_id => null
5480 ,p_effective_date => p_effective_date
5481 ,p_ext_rcd_id => p_ext_rcd_id
5482 ,p_rslt_rec => l_rslt_dtl_rec
5483 ,p_total_lines => l_total_lines
5484 ,p_error_code => p_error_code
5485 ,p_error_message => p_error_message);
5486 end if;
5487 l_prv_rpa_id := j;
5488 j := g_rpa_rec.next(l_prv_rpa_id);
5489 Hr_Utility.set_location('PA Request Id : '||j, 12);
5490 end loop; -- while loop
5491 end if;
5492 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
5493 exception
5494 when others then
5495
5496 p_error_code := sqlcode;
5497 p_error_message := NULL;
5498 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
5499 end Process_Person_RPAs;
5500 -- =============================================================================
5501 -- ~ Process_Address_RPA:
5502 -- =============================================================================
5503 procedure Process_Address_RPA
5504 (p_ext_rcd_id in number
5505 ,p_assignment_id in number
5506 ,p_person_id in number
5507 ,p_effective_date in date
5508 ,p_error_code in out nocopy varchar2
5509 ,p_error_message in out nocopy varchar2
5510 ) as
5511 l_rslt_dtl_rec csr_rslt_dtl%rowtype;
5512 l_no_add_rpas number(15);
5513 l_proc_name varchar2(150) := g_proc_name ||'Process_Address_RPA';
5514 l_processed_add_id number(15);
5515
5516 begin
5517
5518 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
5519 open csr_rslt_dtl
5520 (c_person_id => p_person_id
5521 ,c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id
5522 ,c_ext_dtl_rcd_id => p_ext_rcd_id);
5523 fetch csr_rslt_dtl into l_rslt_dtl_rec;
5524 close csr_rslt_dtl;
5525 l_no_add_rpas := g_address_rec.count;
5526 Hr_Utility.set_location('No Address RPAs: '||l_no_add_rpas, 7);
5527 --
5528 if g_address_rec.exists(p_assignment_id) then
5529 l_processed_add_id := g_address_rec(p_assignment_id).address_id;
5530 end if;
5531 --
5532 if l_no_add_rpas = 0 then
5533
5534 delete from ben_ext_rslt_dtl dtl
5535 where dtl.ext_rslt_dtl_id = l_rslt_dtl_rec.ext_rslt_dtl_id;
5536
5537 end if;
5538
5539 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
5540
5541 exception
5542 when others then
5543 p_error_code := sqlcode;
5544 p_error_message := NULL;
5545 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
5546 end Process_Address_RPA;
5547
5548 -- =============================================================================
5549 -- ~ Process_Award_RPAs:
5550 -- =============================================================================
5551 procedure Process_Award_RPAs
5552 (p_ext_rcd_id in number
5553 ,p_assignment_id in number
5554 ,p_person_id in number
5555 ,p_effective_date in date
5556 ,p_error_code in out nocopy varchar2
5557 ,p_error_message in out nocopy varchar2
5558 ) as
5559 l_rslt_dtl_rec csr_rslt_dtl%rowtype;
5560 l_no_per_awds number(15);
5561 i number(15);
5562 j number(15);
5563 l_prv_awd_id number(15);
5564 l_proc_name varchar2(150) := g_proc_name ||'Process_Award_RPAs';
5565 l_total_lines number(15);
5566 l_processed_awd_id number(15);
5567 begin
5568 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
5569 open csr_rslt_dtl
5570 (c_person_id => p_person_id
5571 ,c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id
5572 ,c_ext_dtl_rcd_id => p_ext_rcd_id);
5573 fetch csr_rslt_dtl into l_rslt_dtl_rec;
5574 close csr_rslt_dtl;
5575 l_no_per_awds := g_awd_rec.count;
5576 Hr_Utility.set_location(' No Per Awards: '||l_no_per_awds, 7);
5577
5578 if g_aw_req.exists(p_assignment_id) then
5579 l_processed_awd_id := g_aw_req(p_assignment_id).pa_request_id;
5580 end if;
5581 Hr_Utility.set_location(' l_processed_awd_id : '||l_processed_awd_id, 9);
5582 if l_no_per_awds = 0 then
5583 Hr_Utility.set_location(' l_processed_awd_id : '||l_processed_awd_id, 9);
5584
5585 delete from ben_ext_rslt_dtl dtl
5586 where dtl.ext_rslt_dtl_id = l_rslt_dtl_rec.ext_rslt_dtl_id;
5587
5588 elsif l_no_per_awds > 1 then
5589
5590 l_total_lines := 1;
5591 i := p_assignment_id;
5592 j := g_awd_rec.first;
5593 Hr_Utility.set_location(' Award Request Id : '||j, 10);
5594 while j is not null
5595 loop
5596 if l_processed_awd_id <> j then
5597 g_aw_req(i).person_id := g_awd_rec(j).person_id;
5598 g_aw_req(i).assignment_id := g_awd_rec(j).employee_assignment_id;
5599 g_aw_req(i).effective_date := g_awd_rec(j).effective_date;
5600 g_aw_req(i).last_update_date := g_awd_rec(j).last_update_date;
5601 g_aw_req(i).pa_request_id := g_awd_rec(j).pa_request_id;
5602 g_aw_req(i).pa_notification_id:= g_awd_rec(j).pa_notification_id;
5603 g_aw_req(i).first_noa_code := g_awd_rec(j).first_noa_code;
5604 g_aw_req(i).second_noa_code := g_awd_rec(j).second_noa_code;
5605 g_aw_req(i).no_of_rpa := g_aw_req(i).no_of_rpa + 1;
5606 Hr_Utility.set_location('Calling Process_Ext_Rslt_Dtl_Rec... ', 11);
5607 Process_Ext_Rslt_Dtl_Rec
5608 (p_assignment_id => p_assignment_id
5609 ,p_organization_id => null
5610 ,p_effective_date => p_effective_date
5611 ,p_ext_rcd_id => p_ext_rcd_id
5612 ,p_rslt_rec => l_rslt_dtl_rec
5613 ,p_total_lines => l_total_lines
5614 ,p_error_code => p_error_code
5615 ,p_error_message => p_error_message);
5616 end if;
5617 l_prv_awd_id := j;
5618 j := g_awd_rec.next(l_prv_awd_id);
5619 Hr_Utility.set_location('PA Request Id : '||j, 12);
5620 end loop; -- while loop
5621 end if;
5622 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
5623 exception
5624 when others then
5625
5626 p_error_code := sqlcode;
5627 p_error_message := NULL;
5628 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
5629 end Process_Award_RPAs;
5630
5631 -- =============================================================================
5632 -- ~ Process_Remark_RPAs:
5633 -- =============================================================================
5634 procedure Process_Remark_RPAs
5635 (p_ext_rcd_id in number
5636 ,p_assignment_id in number
5637 ,p_person_id in number
5638 ,p_effective_date in date
5639 ,p_error_code in out nocopy varchar2
5640 ,p_error_message in out nocopy varchar2
5641 ) as
5642 l_rslt_dtl_rec csr_rslt_dtl%rowtype;
5643 l_no_per_rpas NUMBER;
5644 l_no_rpa_rems NUMBER;
5645 l_no_awd_rpas NUMBER;
5646 i NUMBER;
5647 j NUMBER;
5648 l_prv_rpa_id NUMBER;
5649 l_proc_name VARCHAR2(150) := g_proc_name ||'Process_Remark_RPAs';
5650 l_total_lines NUMBER;
5651 l_processed_rpa_id NUMBER;
5652 l_processed_rmk_id NUMBER;
5653 l_processed_rmk_cd NUMBER;
5654 l_processed_awd_id NUMBER;
5655 begin
5656 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
5657 open csr_rslt_dtl
5658 (c_person_id => p_person_id
5659 ,c_ext_rslt_id => Ben_Ext_Thread.g_ext_rslt_id
5660 ,c_ext_dtl_rcd_id => p_ext_rcd_id);
5661 fetch csr_rslt_dtl into l_rslt_dtl_rec;
5662 close csr_rslt_dtl;
5663 l_no_per_rpas := g_rpa_rec.COUNT;
5664 l_no_rpa_rems := g_pa_req_remark.COUNT;
5665 l_no_awd_rpas := g_awd_rec.COUNT;
5666
5667 Hr_Utility.set_location('No Per RPAs: '||l_no_per_rpas, 7);
5668 Hr_Utility.set_location('No RPAs Remarks: '||l_no_rpa_rems, 7);
5669 Hr_Utility.set_location('No Award rpas: '||l_no_awd_rpas, 7);
5670
5671 if g_pa_req.exists(p_assignment_id) then
5672 l_processed_rpa_id := g_pa_req(p_assignment_id).pa_request_id;
5673 end if;
5674 Hr_Utility.set_location('l_processed_rpa_id : '||l_processed_rpa_id, 9);
5675
5676 IF g_aw_req.exists(p_assignment_id) THEN
5677 l_processed_awd_id := g_aw_req(p_assignment_id).pa_request_id;
5678 END IF;
5679
5680 if (l_no_per_rpas = 0 AND l_no_awd_rpas= 0) or l_no_rpa_rems = 0 then
5681 Hr_Utility.set_location('l_processed_rpa_id : '||l_processed_rpa_id, 9);
5682 delete from ben_ext_rslt_dtl dtl
5683 where dtl.ext_rslt_dtl_id = l_rslt_dtl_rec.ext_rslt_dtl_id;
5684 elsif l_no_per_rpas >= 1 then
5685 l_total_lines := 1;
5686 i := p_assignment_id;
5687
5688 j := g_rpa_rec.first;
5689 l_processed_rmk_id := g_pa_req(i).pa_remark_id;
5690 l_processed_rmk_cd := g_pa_req(i).remark_code;
5691
5692 Hr_Utility.set_location('PA Request Id : '||j, 10);
5693 Hr_Utility.set_location('l_processed_rmk_id : '||l_processed_rmk_id, 10);
5694
5695 while j is not null
5696 loop
5697 if l_processed_rpa_id <> j and
5698 g_pa_req_remark.exists(j) then
5699
5700 g_pa_req(i).person_id := g_rpa_rec(j).person_id;
5701 g_pa_req(i).assignment_id := g_rpa_rec(j).employee_assignment_id;
5702 g_pa_req(i).effective_date := g_rpa_rec(j).effective_date;
5703 g_pa_req(i).last_update_date := g_rpa_rec(j).last_update_date;
5704 g_pa_req(i).pa_request_id := g_rpa_rec(j).pa_request_id;
5705 g_pa_req(i).pa_notification_id:= g_rpa_rec(j).pa_notification_id;
5706 g_pa_req(i).first_noa_code := g_rpa_rec(j).first_noa_code;
5707 g_pa_req(i).second_noa_code := g_rpa_rec(j).second_noa_code;
5708 g_pa_req(i).no_of_rpa := g_pa_req(i).no_of_rpa + 1;
5709 g_pa_req(i).remark_code := null;
5710 g_pa_req(i).pa_remark_id := null;
5711
5712 for rem_rec in csr_rem(j,g_pa_req(i).effective_date)
5713 loop
5714 if ( rem_rec.pa_remark_id <> l_processed_rmk_id) then
5715
5716 g_pa_req(i).remark_code := rem_rec.remark_id;
5717 g_pa_req(i).pa_remark_id := rem_rec.pa_remark_id;
5718
5719 Hr_Utility.set_location('Calling Process_Ext_Rslt_Dtl_Rec... ', 11);
5720 Process_Ext_Rslt_Dtl_Rec
5721 (p_assignment_id => p_assignment_id
5722 ,p_organization_id => null
5723 ,p_effective_date => p_effective_date
5724 ,p_ext_rcd_id => p_ext_rcd_id
5725 ,p_rslt_rec => l_rslt_dtl_rec
5726 ,p_total_lines => l_total_lines
5727 ,p_error_code => p_error_code
5728 ,p_error_message => p_error_message);
5729 l_total_lines := l_total_lines + 1;
5730 end if;
5731 end loop;
5732
5733 elsif l_processed_rpa_id = j then
5734
5735 g_pa_req(i).person_id := g_rpa_rec(j).person_id;
5736 g_pa_req(i).assignment_id := g_rpa_rec(j).employee_assignment_id;
5737 g_pa_req(i).effective_date := g_rpa_rec(j).effective_date;
5738 g_pa_req(i).last_update_date := g_rpa_rec(j).last_update_date;
5739 g_pa_req(i).pa_request_id := g_rpa_rec(j).pa_request_id;
5740 g_pa_req(i).pa_notification_id:= g_rpa_rec(j).pa_notification_id;
5741 g_pa_req(i).first_noa_code := g_rpa_rec(j).first_noa_code;
5742 g_pa_req(i).second_noa_code := g_rpa_rec(j).second_noa_code;
5743 g_pa_req(i).no_of_rpa := g_pa_req(i).no_of_rpa + 1;
5744 g_pa_req(i).remark_code := l_processed_rmk_cd;
5745 g_pa_req(i).pa_remark_id := l_processed_rmk_id;
5746 for rem_rec in csr_rem(j,g_pa_req(i).effective_date)
5747 loop
5748 if (rem_rec.pa_remark_id <> l_processed_rmk_id) then
5749
5750 g_pa_req(i).remark_code := rem_rec.remark_id;
5751 g_pa_req(i).pa_remark_id := rem_rec.pa_remark_id;
5752
5753 Hr_Utility.set_location('Calling Process_Ext_Rslt_Dtl_Rec... ', 11);
5754 Process_Ext_Rslt_Dtl_Rec
5755 (p_assignment_id => p_assignment_id
5756 ,p_organization_id => null
5757 ,p_effective_date => p_effective_date
5758 ,p_ext_rcd_id => p_ext_rcd_id
5759 ,p_rslt_rec => l_rslt_dtl_rec
5760 ,p_total_lines => l_total_lines
5761 ,p_error_code => p_error_code
5762 ,p_error_message => p_error_message);
5763 l_total_lines := l_total_lines + 1;
5764
5765 end if;
5766 end loop;
5767 end if;
5768
5769 l_prv_rpa_id := j;
5770 j := g_rpa_rec.next(l_prv_rpa_id);
5771 Hr_Utility.set_location('PA Request Id : '||j, 12);
5772 end loop; -- while loop
5773 -- Code added for Remarks
5774 ELSIF l_no_awd_rpas >=1 THEN
5775 l_total_lines := 1;
5776 i := p_assignment_id;
5777
5778 j := g_awd_rec.first;
5779 l_processed_rmk_id := g_aw_req(i).pa_remark_id;
5780 l_processed_rmk_cd := g_aw_req(i).remark_code;
5781
5782 Hr_Utility.set_location('PA Request Id : '||j, 10);
5783 Hr_Utility.set_location('l_processed_rmk_id : '||l_processed_rmk_id, 10);
5784
5785 while j is not null
5786 loop
5787 if l_processed_awd_id <> j and
5788 g_pa_req_remark.exists(j) then
5789
5790 g_aw_req(i).person_id := g_awd_rec(j).person_id;
5791 g_aw_req(i).assignment_id := g_awd_rec(j).employee_assignment_id;
5792 g_aw_req(i).effective_date := g_awd_rec(j).effective_date;
5793 g_aw_req(i).last_update_date := g_awd_rec(j).last_update_date;
5794 g_aw_req(i).pa_request_id := g_awd_rec(j).pa_request_id;
5795 g_aw_req(i).pa_notification_id:= g_awd_rec(j).pa_notification_id;
5796 g_aw_req(i).first_noa_code := g_awd_rec(j).first_noa_code;
5797 g_aw_req(i).second_noa_code := g_awd_rec(j).second_noa_code;
5798 g_aw_req(i).no_of_rpa := g_aw_req(i).no_of_rpa + 1;
5799 g_aw_req(i).remark_code := null;
5800 g_aw_req(i).pa_remark_id := null;
5801
5802 for rem_rec in csr_rem(j,g_aw_req(i).effective_date)
5803 loop
5804 if ( rem_rec.pa_remark_id <> l_processed_rmk_id) then
5805
5806 g_aw_req(i).remark_code := rem_rec.remark_id;
5807 g_aw_req(i).pa_remark_id := rem_rec.pa_remark_id;
5808
5809 Hr_Utility.set_location('Calling Process_Ext_Rslt_Dtl_Rec... ', 11);
5810 Process_Ext_Rslt_Dtl_Rec
5811 (p_assignment_id => p_assignment_id
5812 ,p_organization_id => null
5813 ,p_effective_date => p_effective_date
5814 ,p_ext_rcd_id => p_ext_rcd_id
5815 ,p_rslt_rec => l_rslt_dtl_rec
5816 ,p_total_lines => l_total_lines
5817 ,p_error_code => p_error_code
5818 ,p_error_message => p_error_message);
5819 l_total_lines := l_total_lines + 1;
5820 end if;
5821 end loop;
5822
5823 elsif l_processed_awd_id = j then
5824
5825 g_aw_req(i).person_id := g_awd_rec(j).person_id;
5826 g_aw_req(i).assignment_id := g_awd_rec(j).employee_assignment_id;
5827 g_aw_req(i).effective_date := g_awd_rec(j).effective_date;
5828 g_aw_req(i).last_update_date := g_awd_rec(j).last_update_date;
5829 g_aw_req(i).pa_request_id := g_awd_rec(j).pa_request_id;
5830 g_aw_req(i).pa_notification_id:= g_awd_rec(j).pa_notification_id;
5831 g_aw_req(i).first_noa_code := g_awd_rec(j).first_noa_code;
5832 g_aw_req(i).second_noa_code := g_awd_rec(j).second_noa_code;
5833 g_aw_req(i).no_of_rpa := g_aw_req(i).no_of_rpa + 1;
5834 g_aw_req(i).remark_code := l_processed_rmk_cd;
5835 g_aw_req(i).pa_remark_id := l_processed_rmk_id;
5836 for rem_rec in csr_rem(j,g_aw_req(i).effective_date)
5837 loop
5838 if (rem_rec.pa_remark_id <> l_processed_rmk_id) then
5839
5840 g_aw_req(i).remark_code := rem_rec.remark_id;
5841 g_aw_req(i).pa_remark_id := rem_rec.pa_remark_id;
5842
5843 Hr_Utility.set_location('Calling Process_Ext_Rslt_Dtl_Rec... ', 11);
5844 Process_Ext_Rslt_Dtl_Rec
5845 (p_assignment_id => p_assignment_id
5846 ,p_organization_id => null
5847 ,p_effective_date => p_effective_date
5848 ,p_ext_rcd_id => p_ext_rcd_id
5849 ,p_rslt_rec => l_rslt_dtl_rec
5850 ,p_total_lines => l_total_lines
5851 ,p_error_code => p_error_code
5852 ,p_error_message => p_error_message);
5853 l_total_lines := l_total_lines + 1;
5854
5855 end if;
5856 end loop;
5857 end if;
5858
5859 l_prv_rpa_id := j;
5860 j := g_awd_rec.next(l_prv_rpa_id);
5861 Hr_Utility.set_location('PA Request Id : '||j, 12);
5862 end loop; -- while loop
5863
5864 END IF; -- if l_no_per_rpas = 0
5865 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
5866
5867 exception
5868 when others then
5869 p_error_code := sqlcode;
5870 p_error_message := NULL;
5871 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
5872 end Process_Remark_RPAs;
5873
5874 -- =============================================================================
5875 -- ~ Process_Multiple_RPAs
5876 -- =============================================================================
5877 function Process_Multiple_RPAs
5878 (p_assignment_id in number
5879 ,p_person_id in number
5880 ,p_effective_date in date
5881 ,p_error_code in out NOCOPY varchar2
5882 ,p_error_message in out NOCOPY varchar2)
5883 return varchar2 is
5884
5885 l_proc_name varchar2(150) := g_proc_name ||'Process_Multiple_RPAs';
5886 l_ext_rcd_id number(15);
5887 l_prv_ext_rcd_id number(15);
5888 l_rpa_type varchar2(150);
5889 l_return_value varchar2(2000);
5890 begin
5891 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
5892 l_return_value := '0';
5893 l_ext_rcd_id := g_ext_rcd.first;
5894 Hr_Utility.set_location('l_ext_rcd_id: '||l_ext_rcd_id, 6);
5895 while l_ext_rcd_id is not null
5896 loop
5897 if g_ext_rcd.exists(l_ext_rcd_id) then
5898 l_rpa_type := g_ext_rcd(l_ext_rcd_id).data_value;
5899 end if;
5900 Hr_Utility.set_location('l_rpa_type: '||l_rpa_type, 7);
5901 if l_rpa_type ='RPA_REQ_ID' then
5902 Process_Person_RPAs
5903 (p_ext_rcd_id => l_ext_rcd_id
5904 ,p_assignment_id => p_assignment_id
5905 ,p_person_id => p_person_id
5906 ,p_effective_date => p_effective_date
5907 ,p_error_code => p_error_code
5908 ,p_error_message => p_error_message
5909 );
5910 elsif l_rpa_type ='RPA_AWARD_ID' THEN ---'RPA_AWD_ID' then
5911 Process_Award_RPAs
5912 (p_ext_rcd_id => l_ext_rcd_id
5913 ,p_assignment_id => p_assignment_id
5914 ,p_person_id => p_person_id
5915 ,p_effective_date => p_effective_date
5916 ,p_error_code => p_error_code
5917 ,p_error_message => p_error_message
5918 );
5919 elsif l_rpa_type ='RPA_REMARK_ID' then
5920 Process_Remark_RPAs
5921 (p_ext_rcd_id => l_ext_rcd_id
5922 ,p_assignment_id => p_assignment_id
5923 ,p_person_id => p_person_id
5924 ,p_effective_date => p_effective_date
5925 ,p_error_code => p_error_code
5926 ,p_error_message => p_error_message
5927 );
5928 elsif l_rpa_type ='RPA_ADD_ID' then
5929 Process_Address_RPA
5930 (p_ext_rcd_id => l_ext_rcd_id
5931 ,p_assignment_id => p_assignment_id
5932 ,p_person_id => p_person_id
5933 ,p_effective_date => p_effective_date
5934 ,p_error_code => p_error_code
5935 ,p_error_message => p_error_message
5936 );
5937 end if;
5938 l_prv_ext_rcd_id := l_ext_rcd_id;
5939 l_ext_rcd_id := g_ext_rcd.next(l_prv_ext_rcd_id);
5940 Hr_Utility.set_location('l_ext_rcd_id: '||l_ext_rcd_id,10);
5941 end loop; -- while loop
5942 for rcd_rec in csr_ext_rcd
5943 (c_hide_flag => 'Y'
5944 ,c_rcd_type_cd => 'D')
5945 loop
5946 delete
5947 from ben_ext_rslt_dtl dtl
5948 where dtl.ext_rslt_id = Ben_Ext_Thread.g_ext_rslt_id
5949 and dtl.ext_rcd_id = rcd_rec.ext_rcd_id
5950 and dtl.business_group_id = g_business_group_id;
5951 end loop;
5952 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
5953 return l_return_value;
5954 exception
5955 when Others then
5956 l_return_value := '-1';
5957 p_error_code := sqlcode;
5958 p_error_message :=' SQL-ERRM :'||NULL;
5959 Hr_Utility.set_location(p_error_message,85);
5960 Hr_Utility.set_location('Leaving: '||l_proc_name, 90);
5961 return l_return_value;
5962 end Process_Multiple_RPAs;
5963
5964 -- =============================================================================
5965 -- ~ Evaluate_Formula:
5966 -- =============================================================================
5967 function Evaluate_Formula
5968 (p_assignment_id in number
5969 ,p_effective_date in date
5970 ,p_business_group_id in number
5971 ,p_input_value in varchar2
5972 ,p_msg_type in out NoCopy varchar2
5973 ,p_error_code in out NoCopy varchar2
5974 ,p_error_message in out NoCopy varchar2
5975 )
5976 return varchar2 as
5977 l_return_value varchar2(2000);
5978 l_proc_name constant varchar2(250) := g_proc_name ||'Evaluate_Formula';
5979 l_pa_request_id number;
5980 l_assignment_id number;
5981 begin
5982
5983 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
5984 Hr_Utility.set_location(' p_input_value: '||p_input_value, 5);
5985 Hr_Utility.set_location(' p_assignment_id: '||p_assignment_id, 5);
5986 Hr_Utility.set_location(' g_assignment_id: '||g_assignment_id, 5);
5987 -- Sundar Changes Bug 4629647
5988 IF p_assignment_id IS NULL OR p_assignment_id = -1 THEN
5989 l_assignment_id := g_assignment_id;
5990 ELSE
5991 l_assignment_id := p_assignment_id;
5992 END IF;
5993
5994 l_return_value := null;
5995 p_error_code := '0'; p_msg_type := '0';
5996 p_error_message := '0';
5997 if (p_input_value = 'RPA_REQ_ID' and
5998 g_pa_req.exists(l_assignment_id)) then
5999 l_return_value := g_pa_req(l_assignment_id).pa_request_id;
6000
6001 elsif (p_input_value = 'RPA_REMARK_ID' and
6002 g_pa_req.exists(l_assignment_id)) then
6003
6004 l_return_value := g_pa_req(l_assignment_id).pa_request_id;
6005 -- Bug 4938143
6006 elsif (p_input_value = 'RPA_REMARK_ID' and
6007 g_aw_req.exists(l_assignment_id)) then
6008 l_return_value := g_aw_req(l_assignment_id).pa_request_id;
6009 -- Bug 4938143
6010 elsif (p_input_value = 'RPA_AWARD_ID' and
6011 g_aw_req.exists(l_assignment_id)) then
6012
6013 l_return_value := g_aw_req(l_assignment_id).pa_request_id;
6014
6015 elsif (p_input_value = 'RPA_ADD_ID' and
6016 g_address_rec.exists(l_assignment_id)) then
6017
6018 l_return_value := g_address_rec(l_assignment_id).address_id;
6019
6020 elsif p_input_value = 'RPA_USERID' OR p_input_value = 'AWD_USERID' or
6021 p_input_value = 'ADD_USERID' then
6022
6023 l_return_value := g_extract_params(p_business_group_id).user_id;
6024
6025 elsif p_input_value ='PRO_MULTI_ACT' then
6026
6027 l_return_value := Process_Multiple_RPAs
6028 (p_assignment_id => l_assignment_id
6029 ,p_person_id => g_person_id
6030 ,p_effective_date => p_effective_date
6031 ,p_error_code => p_error_code
6032 ,p_error_message => p_error_message);
6033
6034 elsif (p_input_value like 'RPA_RC%' and
6035 g_pa_req.exists(l_assignment_id)) then
6036 l_return_value := Get_Remarks_Id
6037 (p_assignment_id => l_assignment_id
6038 ,p_input_value => p_input_value
6039 ,p_error_code => p_error_code
6040 ,p_error_message => p_error_message
6041 );
6042
6043 elsif (p_input_value like 'RPA%' and
6044 g_pa_req.exists(l_assignment_id)
6045 ) then
6046 l_return_value := Get_RPA_Data
6047 (p_assignment_id => l_assignment_id
6048 ,p_input_value => p_input_value
6049 ,p_error_code => p_error_code
6050 ,p_error_message => p_error_message
6051 );
6052 elsif (p_input_value like 'REM%' and
6053 (g_pa_req.exists(l_assignment_id) OR (g_aw_req.exists(l_assignment_id))
6054 )) then
6055 l_return_value := Get_Remarks_Data
6056 (p_assignment_id => l_assignment_id
6057 ,p_input_value => p_input_value
6058 ,p_error_code => p_error_code
6059 ,p_error_message => p_error_message
6060 );
6061 elsif (p_input_value like 'AWD%' and
6062 g_aw_req.exists(l_assignment_id)
6063 ) then
6064 l_return_value := Get_Award_Data
6065 (p_assignment_id => l_assignment_id
6066 ,p_input_value => p_input_value
6067 ,p_error_code => p_error_code
6068 ,p_error_message => p_error_message
6069 );
6070 elsif (p_input_value like 'ADD%' and
6071 g_address_rec.exists(l_assignment_id)
6072 ) then
6073 l_return_value := Get_Address_Data
6074 (p_assignment_id => l_assignment_id
6075 ,p_input_value => p_input_value
6076 ,p_error_code => p_error_code
6077 ,p_error_message => p_error_message
6078 );
6079 end if;
6080 Hr_Utility.set_location(' l_return_value: '||l_return_value, 79);
6081 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
6082 if p_error_code <> '0' then
6083 p_msg_type := 'W';
6084 end if;
6085 return l_return_value;
6086 exception
6087 when Others then
6088 p_error_message := NULL; p_msg_type := 'E';
6089 p_error_code := sqlcode; l_return_value := '-1';
6090 Hr_Utility.set_location('error l_return_value: '||l_return_value, 89);
6091 Hr_Utility.set_location('error Leaving: '||l_proc_name, 90);
6092 return l_return_value;
6093 end Evaluate_Formula;
6094
6095 -- =============================================================================
6096 -- ~ Evaluate_Formula:
6097 -- =============================================================================
6098 function Evaluate_Person_Inclusion
6099 (p_assignment_id in per_all_assignments_f.assignment_id%type
6100 ,p_effective_date in date
6101 ,p_business_group_id in per_all_assignments_f.business_group_id%type
6102 ,p_warning_code in out NoCopy varchar2
6103 ,p_warning_message in out NoCopy varchar2
6104 ,p_error_code in out NoCopy varchar2
6105 ,p_error_message in out NoCopy varchar2
6106 )
6107 return varchar2 as
6108
6109 -- Cursor to get the person id for the given assignment id.
6110 cursor csr_per_id (c_assignment_id in number
6111 ,c_business_group_id in number
6112 ,c_effective_date in date) is
6113 select paf.person_id
6114 ,paf.assignment_type
6115 from per_all_assignments_f paf
6116 where paf.assignment_id = c_assignment_id
6117 and paf.business_group_id = c_business_group_id
6118 and c_effective_date between paf.effective_start_date
6119 and paf.effective_end_date;
6120 -- =============================================================================
6121 -- Cursor to get the extract parameters of the last req.
6122 -- =============================================================================
6123 CURSOR csr_req_params ( c_req_id IN NUMBER) IS
6124 SELECT argument7, --Tranmission Type
6125 argument8, -- Date Criteria
6126 argument12, -- From Date
6127 argument13, -- To Date
6128 argument14, -- Agency Code
6129 argument15, -- Personnel Office Id
6130 argument16, -- Transmission Indicator
6131 argument17, -- Signon Identification
6132 argument18, -- User_ID
6133 argument19, -- dept Code
6134 argument20, -- Payroll_id
6135 argument21 -- Notify
6136 FROM fnd_concurrent_requests
6137 WHERE request_id = c_req_id;
6138
6139
6140 l_return_value varchar2(2000);
6141 i number;
6142 l_remark_cnt number;
6143 l_address_id number;
6144 l_asg_type varchar2(30);
6145 l_Has_RPA_actions boolean;
6146 l_Has_Award_Actions boolean;
6147 l_Has_Add_chgs boolean;
6148 l_Asg_has_Rem boolean;
6149 l_ext_rslt_id ben_ext_rslt.ext_rslt_id%TYPE;
6150 l_ext_dfn_id ben_ext_dfn.ext_dfn_id%TYPE;
6151 l_conc_reqest_id ben_ext_rslt.request_id%TYPE;
6152 l_req_params csr_req_params%ROWTYPE;
6153 j per_all_assignments_f.business_group_id%TYPE;
6154 l_value Varchar2(150) ;
6155 l_proc_name constant varchar2(250) := g_proc_name ||'Evaluate_Person_Inclusion';
6156
6157 begin
6158
6159 Hr_Utility.set_location('Entering: '||l_proc_name, 5);
6160 g_debug := Hr_Utility.debug_enabled;
6161 g_assignment_id := -1;
6162 -- ===================================================================
6163 -- Initialize all local variables
6164 -- ===================================================================
6165 l_return_value := 'N';
6166 p_warning_message := null; p_error_message := null;
6167 p_warning_code := '0'; p_error_code := '0';
6168 l_Has_RPA_actions := false; l_Asg_has_Rem := false;
6169 l_Has_Award_Actions := false;
6170 l_Has_Add_chgs := false;
6171
6172 l_ext_rslt_id := ben_ext_thread.g_ext_rslt_id;
6173 l_ext_dfn_id := ben_ext_thread.g_ext_dfn_id;
6174 j := p_business_group_id;
6175 g_business_group_id := p_business_group_id;
6176 g_assignment_id := p_assignment_id; -- Sundar changes.
6177
6178
6179 Hr_Utility.set_location('p_business_group_id: '||j, 5);
6180
6181 IF NOT g_extract_params.EXISTS(i) THEN
6182 -- Get the Conc. request id to get the params
6183 OPEN csr_org_req(c_ext_rslt_id => l_ext_rslt_id
6184 ,c_ext_dfn_id => l_ext_dfn_id
6185 ,c_business_group_id => p_business_group_id);
6186 FETCH csr_org_req INTO l_conc_reqest_id;
6187 CLOSE csr_org_req;
6188
6189 Hr_Utility.set_location('l_conc_reqest_id: '||l_conc_reqest_id, 5);
6190 -- Get the params. based on the conc. request id.
6191 OPEN csr_req_params(c_req_id => l_conc_reqest_id);
6192 FETCH csr_req_params INTO l_req_params;
6193 CLOSE csr_req_params;
6194 Hr_Utility.set_location('..Extract params', 15);
6195
6196 -- Store the params. in a PL/SQL table record
6197 g_extract_params(j).business_group_id := p_business_group_id;
6198 g_extract_params(j).concurrent_req_id := l_conc_reqest_id;
6199 g_extract_params(j).ext_dfn_id := l_ext_dfn_id;
6200 g_extract_params(j).transmission_type := l_req_params.argument7;
6201 g_extract_params(j).date_criteria := l_req_params.argument8;
6202 Hr_Utility.set_location('..Extract params', 17);
6203
6204 g_extract_params(j).from_date := Fnd_Date.canonical_to_date(l_req_params.argument12);
6205 g_extract_params(j).to_date := Fnd_Date.canonical_to_date(l_req_params.argument13);
6206 Hr_Utility.set_location('..Extract params', 20);
6207 g_extract_params(j).agency_code := l_req_params.argument14;
6208 g_extract_params(j).personnel_office_id := l_req_params.argument15;
6209 g_extract_params(j).transmission_indicator := l_req_params.argument16;
6210 g_extract_params(j).signon_identification := l_req_params.argument17;
6211 g_extract_params(j).user_id := l_req_params.argument18;
6212 g_extract_params(j).dept_code := l_req_params.argument19;
6213 g_extract_params(j).payroll_id := l_req_params.argument20;
6214 g_extract_params(j).notify := l_req_params.argument21;
6215
6216 Hr_Utility.set_location('..Stored the Conc. Program parameters', 17);
6217 END IF;
6218
6219 -- Get the extract start and end date
6220 /*
6221 g_ext_start_dt := to_date('01/01/'||to_char(p_effective_date,'YYYY'),
6222 'DD/MM/YYYY');
6223 g_ext_end_dt := p_effective_date;
6224 */
6225
6226
6227 g_ext_start_dt :=g_extract_params(j).from_date;
6228
6229 g_ext_end_dt :=g_extract_params(j).to_date ;
6230 --
6231
6232 Get_Rcds_Details;
6233 g_pa_req.delete; g_aw_req.delete;
6234 g_rpa_rec.delete; g_awd_rec.delete;
6235 g_address_rec.delete;
6236 g_auth_date :=NULL;
6237 g_pa_req_remark.delete;
6238 g_remark_cnt:=NULL;
6239 g_rpa_id_apt :=NULL;
6240 IF g_rpa_attr.count >0 THEN
6241 g_rpa_attr.delete;
6242 END IF;
6243
6244 IF g_rpa_awd_attr.count >0 THEN
6245 g_rpa_awd_attr.delete;
6246 END IF;
6247
6248 Hr_Utility.set_location(' p_assignment_id1: '||p_assignment_id, 6);
6249
6250 -- Get the person id and bus grp id into pkg global variables
6251 open csr_per_id(c_assignment_id => p_assignment_id
6252 ,c_business_group_id => p_business_group_id
6253 ,c_effective_date => p_effective_date);
6254 fetch csr_per_id into g_person_id,l_asg_type;
6255 close csr_per_id;
6256 g_effective_date := p_effective_date;
6257 i := p_assignment_id;
6258 -- if g_debug then
6259
6260
6261 Hr_Utility.set_location(' p_business_group_id: '||g_business_group_id, 6);
6262 Hr_Utility.set_location(' g_ext_start_dt : '||g_ext_start_dt, 6);
6263 Hr_Utility.set_location(' p_effective_date : '||p_effective_date, 6);
6264 Hr_Utility.set_location(' g_ext_end_dt: '||g_ext_end_dt, 6);
6265 Hr_Utility.set_location(' g_person_id: '||g_person_id, 6);
6266 Hr_Utility.set_location(' p_assignment_id: '||p_assignment_id, 6);
6267 Hr_Utility.set_location(' l_asg_type: '||l_asg_type, 6);
6268 -- end if;
6269 -- Get the Personnel Actions for the person id within the extract
6270 -- date range
6271 Hr_Utility.set_location(' Getting RPA s for the person.... ', 7);
6272
6273 for rpa_rec in csr_ghr_per
6274 (c_person_id => g_person_id
6275 ,c_assignment_id => p_assignment_id
6276 ,c_ext_start_date => g_ext_start_dt
6277 ,c_ext_end_date => g_ext_end_dt)
6278 loop
6279 -- Assign only one as the current request id.
6280 -- Sundar Changes Bug 4629647
6281 --if not l_Has_RPA_actions then
6282 g_pa_req(i).person_id := rpa_rec.person_id;
6283 g_pa_req(i).assignment_id := rpa_rec.employee_assignment_id;
6284 g_pa_req(i).effective_date := rpa_rec.effective_date;
6285 g_pa_req(i).last_update_date := rpa_rec.last_update_date;
6286 g_pa_req(i).pa_request_id := rpa_rec.pa_request_id;
6287 g_pa_req(i).pa_notification_id := rpa_rec.pa_notification_id;
6288 g_pa_req(i).first_noa_code := rpa_rec.first_noa_code;
6289 g_pa_req(i).second_noa_code := rpa_rec.second_noa_code;
6290 g_pa_req(i).no_of_rpa := g_pa_req(i).no_of_rpa + 1;
6291 l_Has_RPA_actions := true;
6292 IF rpa_rec.first_noa_code=100 THEN
6293 g_rpa_id_apt:=100;
6294 END IF;
6295 --end if;
6296 -- Get all the RPA into PL/SQL table for the person id.
6297 --if g_debug then
6298 Hr_Utility.set_location(' pa_request_id :'||rpa_rec.pa_request_id, 8);
6299 Hr_Utility.set_location(' effective_date :'||rpa_rec.effective_date,8);
6300 Hr_Utility.set_location(' first_noa_code :'||rpa_rec.first_noa_code,8);
6301 --end if;
6302
6303
6304
6305 for multi_rpas in csr_rpa_rec
6306 (c_pa_request_id => rpa_rec.pa_request_id)
6307 loop
6308 g_rpa_rec(rpa_rec.pa_request_id) := multi_rpas;
6309
6310 populate_attr (p_person_id => g_pa_req(i).person_id
6311 ,p_assignment_id => g_pa_req(i).assignment_id
6312 ,p_business_group_id =>p_business_group_id
6313 ,p_effective_date =>rpa_rec.effective_date
6314 ,p_first_noa_cd =>rpa_rec.first_noa_code
6315 ,p_sec_noa_cd =>rpa_rec.second_noa_code
6316 ,p_request_id =>rpa_rec.pa_request_id
6317 ,p_notification_id =>rpa_rec.pa_notification_id
6318 );
6319
6320 --Checking the Agency Code
6321 l_value :=g_rpa_attr(rpa_rec.pa_request_id).nfc_agency;
6322 IF l_value <> g_extract_params(j).agency_code THEN
6323 Hr_Utility.set_location('in side not null - l_value' ||l_value , 8);
6324 Hr_Utility.set_location('in side not null - ' || g_extract_params(j).agency_code, 8);
6325
6326 Hr_Utility.set_location('in side not null', 8);
6327 l_return_value := 'N';
6328 return l_return_value;
6329 END IF;
6330
6331 --Checking the dept code
6332 IF g_extract_params(j).dept_code IS NOT NULL THEN
6333 l_value :=g_rpa_attr(rpa_rec.pa_request_id).pmso_dept;
6334 IF l_value <> g_extract_params(j).dept_code THEN
6335 l_return_value := 'N';
6336 return l_return_value;
6337 END IF;
6338 END IF;
6339
6340 --Checking the Personnel Office id
6341 IF g_extract_params(j).personnel_office_id IS NOT NULL THEN
6342 l_value :=g_rpa_rec(rpa_rec.pa_request_id).personnel_office_id;
6343 IF l_value <> g_extract_params(j).personnel_office_id THEN
6344 l_return_value := 'N';
6345 return l_return_value;
6346 END IF;
6347 END IF;
6348 Hr_Utility.set_location(' RPA req id details in PL/SQL tab', 8);
6349
6350 end loop; -- for multi_rpas in csr_rpa_rec
6351
6352 l_remark_cnt := 0;
6353 -- Get all the Remarks for each RPA
6354 for j in csr_rem(rpa_rec.pa_request_id
6355 ,g_pa_req(i).effective_date)
6356 loop
6357 l_remark_cnt := l_remark_cnt + 1;
6358
6359 if l_remark_cnt = 1 then
6360 g_pa_req_remark(j.pa_request_id).remark_code_1 := j.code;
6361 if not l_Asg_has_Rem then
6362 g_pa_req(i).remark_code := j.remark_id;
6363 g_pa_req(i).pa_remark_id := j.pa_remark_id;
6364 l_Asg_has_Rem := true;
6365 end if;
6366 elsif l_remark_cnt = 2 then
6367 g_pa_req_remark(j.pa_request_id).remark_code_2 := j.code;
6368 elsif l_remark_cnt = 3 then
6369 g_pa_req_remark(j.pa_request_id).remark_code_3 := j.code;
6370 elsif l_remark_cnt = 4 then
6371 g_pa_req_remark(j.pa_request_id).remark_code_4 := j.code;
6372 elsif l_remark_cnt = 5 then
6373 g_pa_req_remark(j.pa_request_id).remark_code_5 := j.code;
6374 elsif l_remark_cnt = 6 then
6375 g_pa_req_remark(j.pa_request_id).remark_code_6 := j.code;
6376 elsif l_remark_cnt = 7 then
6377 g_pa_req_remark(j.pa_request_id).remark_code_7 := j.code;
6378 elsif l_remark_cnt = 8 then
6379 g_pa_req_remark(j.pa_request_id).remark_code_8 := j.code;
6380 elsif l_remark_cnt = 9 then
6381 g_pa_req_remark(j.pa_request_id).remark_code_9 := j.code;
6382 elsif l_remark_cnt = 10 then
6383 g_pa_req_remark(j.pa_request_id).remark_code_10 := j.code;
6384 end if;
6385 exit when l_remark_cnt = 10;
6386 end loop; -- for j in csr_re
6387 g_remark_cnt :=l_remark_cnt ;
6388 Hr_Utility.set_location(' Total remarks found :'||l_remark_cnt,8);
6389 end loop; -- for rpa_rec in csr_ghr_per
6390
6391 -- Get the Award Actions for the person id within the extract
6392 -- date range
6393 Hr_Utility.set_location(' Getting Awards s for the person.... ', 9);
6394 for awd_rec in csr_ghr_awd
6395 (c_person_id => g_person_id
6396 ,c_assignment_id => p_assignment_id
6397 ,c_ext_start_date => g_ext_start_dt
6398 ,c_ext_end_date => g_ext_end_dt)
6399 LOOP
6400 -- Assign only one as the current request id.
6401 IF NOT l_Has_Award_Actions THEN
6402 g_aw_req(i).person_id := awd_rec.person_id;
6403 g_aw_req(i).assignment_id := awd_rec.employee_assignment_id;
6404 g_aw_req(i).effective_date := awd_rec.effective_date;
6405 g_aw_req(i).last_update_date := awd_rec.last_update_date;
6406 g_aw_req(i).pa_request_id := awd_rec.pa_request_id;
6407 g_aw_req(i).pa_notification_id := awd_rec.pa_notification_id;
6408 g_aw_req(i).first_noa_code := awd_rec.first_noa_code;
6409 g_aw_req(i).second_noa_code := awd_rec.second_noa_code;
6410 g_aw_req(i).no_of_rpa := g_aw_req(i).no_of_rpa + 1;
6411 l_Has_Award_Actions := true;
6412 END IF;
6413
6414 if g_debug then
6415 Hr_Utility.set_location(' pa_request_id: '||awd_rec.pa_request_id, 10);
6416 Hr_Utility.set_location(' effective_date : '||awd_rec.effective_date, 10);
6417 Hr_Utility.set_location(' first_noa_code : '||awd_rec.first_noa_code, 10);
6418 end if;
6419 -- Get all the RPA into PL/SQL table for the person id.
6420 FOR multi_rpas IN csr_rpa_rec
6421 (c_pa_request_id => awd_rec.pa_request_id)
6422 LOOP
6423 g_awd_rec(awd_rec.pa_request_id) := multi_rpas;
6424 populate_awd_attr (p_person_id => g_aw_req(i).person_id
6425 ,p_assignment_id => g_aw_req(i).assignment_id
6426 ,p_business_group_id =>p_business_group_id
6427 ,p_effective_date =>awd_rec.effective_date
6428 ,p_first_noa_cd =>awd_rec.first_noa_code
6429 ,p_sec_noa_cd =>awd_rec.second_noa_code
6430 ,p_request_id =>awd_rec.pa_request_id
6431 ,p_notification_id =>g_aw_req(i).pa_notification_id
6432 );
6433 Hr_Utility.set_location(' Award req id details in PL/SQL tab', 11);
6434
6435 --Checking the Agency Code in Awards
6436 l_value :=g_rpa_awd_attr(awd_rec.pa_request_id).nfc_agency_code;
6437 IF l_value <> g_extract_params(j).agency_code THEN
6438 l_return_value := 'N';
6439 return l_return_value;
6440 END IF;
6441
6442 --Checking the dept code in Awards
6443 IF g_extract_params(j).dept_code IS NOT NULL THEN
6444 l_value :=g_rpa_awd_attr(awd_rec.pa_request_id).dept_code;
6445 IF l_value <> g_extract_params(j).dept_code THEN
6446 l_return_value := 'N';
6447 return l_return_value;
6448 END IF;
6449 END IF;
6450
6451 --Checking the Personnel Office id in awards
6452 IF g_extract_params(j).personnel_office_id IS NOT NULL THEN
6453 l_value :=g_awd_rec(awd_rec.pa_request_id).personnel_office_id;
6454 IF l_value <> g_extract_params(j).personnel_office_id THEN
6455 l_return_value := 'N';
6456 return l_return_value;
6457 END IF;
6458 END IF;
6459
6460 END LOOP; -- for multi_rpas in csr_rpa_rec
6461
6462 l_remark_cnt := 0;
6463 -- Added remark for award actions
6464 FOR j IN csr_rem(awd_rec.pa_request_id
6465 ,g_aw_req(i).effective_date)
6466 LOOP
6467 l_remark_cnt := l_remark_cnt + 1;
6468 g_aw_req(i).pa_request_id := awd_rec.pa_request_id;
6469 IF l_remark_cnt = 1 THEN
6470 g_pa_req_remark(j.pa_request_id).remark_code_1 := j.code;
6471 IF NOT l_Asg_has_Rem THEN
6472 g_aw_req(i).remark_code := j.remark_id;
6473 g_aw_req(i).pa_remark_id := j.pa_remark_id;
6474 l_Asg_has_Rem := true;
6475 END IF;
6476 ELSIF l_remark_cnt = 2 then
6477 g_pa_req_remark(j.pa_request_id).remark_code_2 := j.code;
6478 ELSIF l_remark_cnt = 3 then
6479 g_pa_req_remark(j.pa_request_id).remark_code_3 := j.code;
6480 ELSIF l_remark_cnt = 4 then
6481 g_pa_req_remark(j.pa_request_id).remark_code_4 := j.code;
6482 ELSIF l_remark_cnt = 5 then
6483 g_pa_req_remark(j.pa_request_id).remark_code_5 := j.code;
6484 ELSIF l_remark_cnt = 6 then
6485 g_pa_req_remark(j.pa_request_id).remark_code_6 := j.code;
6486 ELSIF l_remark_cnt = 7 then
6487 g_pa_req_remark(j.pa_request_id).remark_code_7 := j.code;
6488 ELSIF l_remark_cnt = 8 then
6489 g_pa_req_remark(j.pa_request_id).remark_code_8 := j.code;
6490 ELSIF l_remark_cnt = 9 then
6491 g_pa_req_remark(j.pa_request_id).remark_code_9 := j.code;
6492 ELSIF l_remark_cnt = 10 then
6493 g_pa_req_remark(j.pa_request_id).remark_code_10 := j.code;
6494 END IF;
6495 EXIT WHEN l_remark_cnt = 10;
6496 END LOOP; -- for j in csr_re
6497 g_remark_cnt :=l_remark_cnt ;
6498 -- End Remark Award actions
6499
6500 END LOOP; -- for awd_rec in csr_ghr_awd
6501 -- Get the most recent Address Change with the extract date range.
6502 Hr_Utility.set_location(' Getting Primary Address Changes for the person.... ', 12);
6503
6504 IF g_rpa_id_apt = 100 THEN
6505
6506 Hr_Utility.set_location(' 100 - Getting Primary Address.... ', 12);
6507 open csr_per_add_apt (c_person_id => g_person_id
6508 ,c_ext_end_date => g_ext_end_dt);
6509 fetch csr_per_add_apt into g_address_rec(i);
6510 IF (csr_per_add_apt%found ) then
6511 populate_add_attr (p_person_id =>g_person_id
6512 ,p_assignment_id =>p_assignment_id
6513 ,p_business_group_id =>p_business_group_id
6514 ,p_effective_date =>p_effective_date
6515 ,p_request_id =>NULL
6516 );
6517 Hr_Utility.set_location(' Person:address_id: '||g_address_rec(i).address_id, 14);
6518 l_Has_Add_chgs := true;
6519 --Checking the criteria validations in Address
6520 --Checking the Agency Code in Address
6521 l_value :=g_rpa_add_attr(p_assignment_id).nfc_agency_code;
6522 IF l_value <> g_extract_params(j).agency_code THEN
6523 l_return_value := 'N';
6524 return l_return_value;
6525 END IF;
6526
6527 --Checking the dept code in Address
6528 IF g_extract_params(j).dept_code IS NOT NULL THEN
6529 l_value :=g_rpa_add_attr(p_assignment_id).dept_code;
6530 IF l_value <> g_extract_params(j).dept_code THEN
6531 l_return_value := 'N';
6532 return l_return_value;
6533 END IF;
6534 END IF;
6535
6536 --Checking the Personnel Office id in Address
6537 IF g_extract_params(j).personnel_office_id IS NOT NULL THEN
6538 l_value :=g_rpa_add_attr(p_assignment_id).poi;
6539 IF l_value <> g_extract_params(j).personnel_office_id THEN
6540 l_return_value := 'N';
6541 return l_return_value;
6542 END IF;
6543 END IF;
6544 END IF; -- IF (csr_per_add_apt%found )
6545 CLOSE csr_per_add_apt;
6546
6547 ELSE -- IF g_rpa_id_apt = 100
6548 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ' || l_return_value, 12);
6549 OPEN csr_per_add (c_person_id => g_person_id
6550 ,c_ext_start_date => g_ext_start_dt
6551 ,c_ext_end_date => g_ext_end_dt);
6552 FETCH csr_per_add into g_address_rec(i);
6553 Hr_Utility.set_location('Non 100 - After fetching.... ' || l_return_value, 12);
6554 IF (csr_per_add%found ) then
6555 populate_add_attr (p_person_id =>g_person_id
6556 ,p_assignment_id =>p_assignment_id
6557 ,p_business_group_id =>p_business_group_id
6558 ,p_effective_date =>p_effective_date
6559 ,p_request_id =>NULL
6560 ); --Checking the criteria validations in Address
6561 --Checking the Agency Code in Address
6562 l_value :=g_rpa_add_attr(p_assignment_id).nfc_agency_code;
6563 IF l_value <> g_extract_params(j).agency_code THEN
6564 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 121);
6565 l_return_value := 'N';
6566 return l_return_value;
6567 END IF;
6568 --Checking the criteria validations in Address
6569 --Checking the Agency Code in Address
6570 l_value :=g_rpa_add_attr(p_assignment_id).nfc_agency_code;
6571 IF l_value <> g_extract_params(j).agency_code THEN
6572 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 122);
6573 l_return_value := 'N';
6574 return l_return_value;
6575 END IF;
6576
6577 --Checking the dept code in Address
6578 IF g_extract_params(j).dept_code IS NOT NULL THEN
6579 l_value :=g_rpa_add_attr(p_assignment_id).dept_code;
6580 IF l_value <> g_extract_params(j).dept_code THEN
6581 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 123);
6582 l_return_value := 'N';
6583 return l_return_value;
6584 END IF;
6585 END IF;
6586
6587 --Checking the Personnel Office id in Address
6588 IF g_extract_params(j).personnel_office_id IS NOT NULL THEN
6589 l_value :=g_rpa_add_attr(p_assignment_id).poi;
6590 IF l_value <> g_extract_params(j).personnel_office_id THEN
6591 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 124);
6592 l_return_value := 'N';
6593 return l_return_value;
6594 END IF;
6595 END IF;
6596 --Checking the dept code in Address
6597 IF g_extract_params(j).dept_code IS NOT NULL THEN
6598 l_value :=g_rpa_add_attr(p_assignment_id).dept_code;
6599 IF l_value <> g_extract_params(j).dept_code THEN
6600 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 125);
6601 l_return_value := 'N';
6602 RETURN l_return_value;
6603 END IF;
6604 END IF;
6605
6606 --Checking the Personnel Office id in Address
6607 IF g_extract_params(j).personnel_office_id IS NOT NULL THEN
6608 l_value :=g_rpa_add_attr(p_assignment_id).poi;
6609 IF l_value <> g_extract_params(j).personnel_office_id THEN
6610 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 126);
6611 l_return_value := 'N';
6612 return l_return_value;
6613 END IF;
6614 END IF;
6615 Hr_Utility.set_location(' Person:address_id: '||g_address_rec(i).address_id, 14);
6616 l_Has_Add_chgs := true;
6617 --Checking the criteria validations in Address
6618 --Checking the Agency Code in Address
6619 l_value :=g_rpa_add_attr(p_assignment_id).nfc_agency_code;
6620 IF l_value <> g_extract_params(j).agency_code THEN
6621 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 127);
6622 l_return_value := 'N';
6623 return l_return_value;
6624 END IF;
6625
6626 --Checking the dept code in Address
6627 IF g_extract_params(j).dept_code IS NOT NULL THEN
6628 l_value :=g_rpa_add_attr(p_assignment_id).dept_code;
6629 IF l_value <> g_extract_params(j).dept_code THEN
6630 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 128);
6631 l_return_value := 'N';
6632 return l_return_value;
6633 END IF;
6634 END IF;
6635
6636 --Checking the Personnel Office id in Address
6637 IF g_extract_params(j).personnel_office_id IS NOT NULL THEN
6638 l_value :=g_rpa_add_attr(p_assignment_id).poi;
6639 IF l_value <> g_extract_params(j).personnel_office_id THEN
6640 Hr_Utility.set_location('Non 100 - Getting Primary Address.... ', 129);
6641 l_return_value := 'N';
6642 return l_return_value;
6643 END IF;
6644 END IF;
6645 end if;
6646 close csr_per_add;
6647
6648
6649
6650 END IF;
6651 -- If person has no RPA, Awards or Addresses changes then the person need
6652 -- not be extracted.
6653 if l_Has_Add_chgs or
6654 l_Has_Award_Actions or
6655 l_Has_RPA_actions then
6656 l_return_value := 'Y';
6657 elsif l_asg_type ='B' then
6658 Hr_Utility.set_location('Non 100 - After fetching.... ' || l_return_value, 12);
6659 l_return_value := 'Y';
6660 end if;
6661
6662 Hr_Utility.set_location(' l_return_value: '||l_return_value, 79);
6663 Hr_Utility.set_location('Leaving: '||l_proc_name, 80);
6664 return l_return_value;
6665
6666 exception
6667 when Others then
6668 p_error_code := sqlcode; p_warning_code := '-1';
6669 p_error_message:= NULL; p_warning_message:= null;
6670 l_return_value := 'N';
6671
6672 Hr_Utility.set_location(' l_return_value: '||l_return_value, 89);
6673 Hr_Utility.set_location('error Leaving: '||l_proc_name, 90);
6674
6675 return l_return_value;
6676
6677 end Evaluate_Person_Inclusion;
6678
6679 -- =============================================================================
6680 -- ~ Get_NFC_ConcProg_Information: Common function to get the conc.prg parameters
6681 -- =============================================================================
6682 FUNCTION Get_NFC_ConcProg_Information
6683 (p_header_type IN VARCHAR2
6684 ,p_error_message OUT NOCOPY VARCHAR2) RETURN Varchar2 IS
6685
6686 CURSOR csr_period_num(c_payroll_id IN per_time_periods.payroll_id%TYPE
6687 ,c_effective_date IN DATE) IS
6688 SELECT period_num
6689 FROM per_time_periods
6690 WHERE payroll_id = c_payroll_id
6691 AND c_effective_date BETWEEN start_date
6692 AND end_date;
6693
6694
6695 CURSOR csr_jcl_org_req (c_ext_dfn_id IN NUMBER
6696 ,c_ext_rslt_id IN NUMBER ) IS
6697 SELECT bba.request_id
6698 FROM ben_benefit_actions bba
6699 WHERE bba.pl_id = c_ext_rslt_id
6700 AND bba.pgm_id = c_ext_dfn_id ;
6701
6702
6703 l_proc_name VARCHAR2(150) := g_proc_name ||'.Get_NFC_ConcProg_Information';
6704 l_return_value VARCHAR2(1000);
6705 i per_all_assignments_f.business_group_id%TYPE;
6706 l_period_num per_time_periods.period_num%TYPE;
6707 l_ext_rslt_id ben_ext_rslt.ext_rslt_id%TYPE;
6708 l_ext_dfn_id ben_ext_dfn.ext_dfn_id%TYPE;
6709 l_conc_reqest_id ben_ext_rslt.request_id%TYPE;
6710 l_start_date DATE;
6711 l_end_date DATE;
6712 l_position_id NUMBER;
6713
6714 BEGIN
6715 Hr_Utility.set_location('Entering :'||l_proc_name, 5);
6716 i := g_business_group_id;
6717
6718 Hr_Utility.set_location('g_business_group_id :'||g_business_group_id, 5);
6719 Hr_Utility.set_location('p_header_type :'||p_header_type, 5);
6720 Hr_Utility.set_location('g_extract_params(i).agency_code:'||g_extract_params(i).agency_code, 5);
6721
6722 IF p_header_type = 'AGENCY_CODE' THEN
6723 l_return_value := g_extract_params(i).agency_code;
6724 ELSIF p_header_type = 'PERSONNEL_OFFICE_ID' THEN
6725 l_return_value := g_extract_params(i).personnel_office_id;
6726 ELSIF p_header_type = 'TRANSMISSION_INDICATOR' THEN
6727 l_return_value := g_extract_params(i).transmission_indicator;
6728 ELSIF p_header_type = 'SIGNON_IDENTIFICATION' THEN
6729 l_return_value := g_extract_params(i).signon_identification;
6730 ELSIF p_header_type = 'PAY_PERIOD_NUMBER' THEN
6731 l_period_num:= get_pay_period_number
6732 (p_person_id => -1
6733 ,p_assignment_id =>-1
6734 ,p_business_group_id =>g_business_group_id
6735 ,p_effective_date =>g_extract_params(i).to_date
6736 ,p_position_id =>l_position_id
6737 ,p_start_date =>l_start_date
6738 ,p_end_date =>l_end_date
6739 );
6740 l_return_value := LPAD(l_period_num,2,'0');
6741 END IF;
6742 hr_utility.set_location('l_return_value: '||l_return_value, 45);
6743 hr_utility.set_location('Leaving: '||l_proc_name, 45);
6744 RETURN l_return_value;
6745 EXCEPTION
6746 WHEN Others THEN
6747 p_error_message :='SQL-ERRM :'||SQLERRM;
6748 hr_utility.set_location('Leaving: '||l_proc_name, 45);
6749 RETURN l_return_value;
6750 END Get_NFC_ConcProg_Information;
6751
6752
6753 END GHR_US_NFC_EXTRACTS;