[Home] [Help]
PACKAGE BODY: APPS.HR_JP_ID_PKG
Source
1 package body HR_JP_ID_PKG as
2 /* $Header: hrjpid.pkb 120.0 2005/05/30 20:58:09 appldev noship $ */
3 TYPE UnqColRecTyp IS RECORD(
4 name VARCHAR2(255),
5 value VARCHAR2(255));
6 TYPE UniColTbl IS TABLE OF UnqColRecTyp INDEX BY BINARY_INTEGER;
7 TYPE RefCsr IS REF CURSOR;
8 C_CHR_LF CONSTANT VARCHAR2(5) := fnd_global.local_chr(10);
9 g_bg_rec_cache PER_BUSINESS_GROUPS%ROWTYPE;
10 g_sql VARCHAR2(32767);
11 --------------------------------------------------------------------------------
12 FUNCTION LATEST_SQL RETURN VARCHAR2
13 --------------------------------------------------------------------------------
14 IS
15 BEGIN
16 return g_sql;
17 END;
18 --------------------------------------------------------------------------------
19 -- Internal Functions
20 --------------------------------------------------------------------------------
21 -- In case of DATETRACKED and DATED with p_effective_date is NULL,
22 -- this function returns multiple records(cursor variable).
23 -- If you want to return unique record with DATETRACKED and DATED,
24 -- pass p_effective_date with non-null value.
25 FUNCTION CSR(
26 p_base_table IN VARCHAR2,
27 p_unique_column_tbl IN UniColTbl,
28 p_date_track_type IN VARCHAR2 DEFAULT 'NONE',--'DATETRACKED','DATED','NONE'
29 p_effective_date IN DATE DEFAULT hr_api.g_sys) RETURN RefCsr
30 --------------------------------------------------------------------------------
31 IS
32 l_csr RefCsr;
33 l_id NUMBER;
34 l_index NUMBER;
35 l_where_prefix VARCHAR2(10) := 'where ';
36 l_operand VARCHAR2(10);
37 BEGIN
38 g_sql := 'select * from ' || p_base_table;
39
40 l_index := p_unique_column_tbl.first;
41 while l_index is not NULL loop
42 if p_unique_column_tbl(l_index).value is NULL then
43 l_operand := ' is ';
44 else
45 l_operand := ' = ';
46 end if;
47
48 g_sql := g_sql || C_CHR_LF ||
49 l_where_prefix || p_unique_column_tbl(l_index).name || l_operand || nvl(p_unique_column_tbl(l_index).value,'NULL');
50
51 l_where_prefix := 'and ';
52 l_index := p_unique_column_tbl.next(l_index);
53 end loop;
54
55 BEGIN
56 -- In case of DATETRACKED and DATED with effective_date is NULL,
57 -- it's possibly returns multiple records.
58 if p_date_track_type = 'DATETRACKED' then
59 if p_effective_date is not NULL then
60 g_sql := g_sql || C_CHR_LF ||
61 l_where_prefix || ':b_effective_date between effective_start_date and effective_end_date' || C_CHR_LF ||
62 'order by effective_start_date';
63 open l_csr for g_sql using p_effective_date;
64 else
65 g_sql := g_sql || C_CHR_LF ||
66 'order by effective_start_date';
67 open l_csr for g_sql;
68 end if;
69 elsif p_date_track_type = 'DATED' then
70 if p_effective_date is not NULL then
71 g_sql := g_sql || C_CHR_LF ||
72 l_where_prefix || ':b_effective_date between date_from and nvl(date_to,:b_effective_date)' || C_CHR_LF ||
73 'order by date_from';
74 open l_csr for g_sql using p_effective_date,p_effective_date;
75 else
76 g_sql := g_sql || C_CHR_LF ||
77 'order by date_from';
78 open l_csr for g_sql;
79 end if;
80 else
81 open l_csr for g_sql;
82 end if;
83 EXCEPTION
84 when others then
85 fnd_message.set_name('PER','HR_JP_INVALID_SQL_STATMENT');
86 fnd_message.set_token('SQL',g_sql);
87 fnd_message.raise_error;
88 END;
89
90 return l_csr;
91 END;
92 --------------------------------------------------------------------------------
93 FUNCTION csr_found_and_close(
94 p_csr IN RefCsr,
95 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN BOOLEAN
96 --------------------------------------------------------------------------------
97 IS
98 l_found BOOLEAN;
99 BEGIN
100 if p_csr%NOTFOUND then
101 l_found := FALSE;
102 if p_error_when_not_exist = 'TRUE' then
103 close p_csr;
104 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
105 fnd_message.set_token('SQL',g_sql);
106 fnd_message.raise_error;
107 end if;
108 else
109 l_found := TRUE;
110 end if;
111 close p_csr;
112
113 return l_found;
114 END;
115 --------------------------------------------------------------------------------
116 PROCEDURE unique_tbl_constructor(
117 p_name IN VARCHAR2,
118 p_data_type IN VARCHAR2,
119 p_value IN VARCHAR2,
120 p_unique_column_tbl IN OUT NOCOPY UniColTbl)
121 --------------------------------------------------------------------------------
122 IS
123 l_index NUMBER := nvl(p_unique_column_tbl.last,0) + 1;
124 BEGIN
125 p_unique_column_tbl(l_index).name := p_name;
126 if p_value is NULL then
127 p_unique_column_tbl(l_index).value := NULL;
128 else
129 if p_data_type = 'T' then
130 p_unique_column_tbl(l_index).value := '''' || p_value || '''';
131 elsif p_data_type = 'D' then
132 p_unique_column_tbl(l_index).value := 'to_date(''' || p_value || ''',''YYYY/MM/DD'')';
133 else
134 p_unique_column_tbl(l_index).value := p_value;
135 end if;
136 end if;
137 END;
138 --------------------------------------------------------------------------------
139 PROCEDURE bus_leg_constructor(
140 p_business_group_id IN NUMBER,
141 p_legislation_code IN VARCHAR2,
142 p_unique_column_tbl IN OUT NOCOPY UniColTbl)
143 --------------------------------------------------------------------------------
144 IS
145 l_legislation_code VARCHAR2(2);
146 PROCEDURE raise_error
147 IS
148 BEGIN
149 fnd_message.set_name('PER','HR_JP_INVALID_ARGUMENT');
150 fnd_message.set_token('PROCEDURE','hr_jp_id_pkg.construct_bus_leg_where_clause');
151 fnd_message.raise_error;
152 END;
153 BEGIN
154 if p_business_group_id = C_DEFAULT_BUS then
155 -- p_business_group_id p_legislation_code description
156 -- -------------------+------------------+------------------------
157 -- DEFAULTED DEFAULTED Available for any BG, LG
158 -- DEFAULTED NULL Error
159 -- DEFAULTED JP Available for BG in 'JP'
160 -- -------------------+------------------+------------------------
161 if p_legislation_code = C_DEFAULT_LEG then
162 NULL;
163 elsif p_legislation_code is NULL then
164 raise_error;
165 else
166 unique_tbl_constructor('nvl(nvl(legislation_code,hr_jp_id_pkg.legislation_code(business_group_id,''FALSE'')),''' || p_legislation_code || ''')','T',p_legislation_code,p_unique_column_tbl);
167 end if;
168 elsif p_business_group_id is NULL then
169 -- p_business_group_id p_legislation_code description
170 -- -------------------+------------------+------------------------
171 -- NULL DEFAULTED Error
172 -- NULL JP Available for LG='JP'
173 -- NULL NULL As it is
174 -- -------------------+------------------+------------------------
175 if p_legislation_code = C_DEFAULT_LEG then
176 raise_error;
177 elsif p_legislation_code is not NULL then
178 unique_tbl_constructor('business_group_id','N',to_char(p_business_group_id),p_unique_column_tbl);
179 unique_tbl_constructor('nvl(legislation_code,''' || p_legislation_code || ''')','T',p_legislation_code,p_unique_column_tbl);
180 else
181 unique_tbl_constructor('business_group_id','N',to_char(p_business_group_id),p_unique_column_tbl);
182 unique_tbl_constructor('legislation_code','T',p_legislation_code,p_unique_column_tbl);
183 end if;
184 else
185 -- p_business_group_id p_legislation_code description
186 -- -------------------+------------------+------------------------
187 -- 101 NULL Available for BUG=101
188 -- 101 DEFAULTED Available for BUG=101
189 -- 101 JP Error
190 -- -------------------+------------------+------------------------
191 if nvl(p_legislation_code,C_DEFAULT_LEG) = C_DEFAULT_LEG then
192 l_legislation_code := legislation_code(p_business_group_id);
193 unique_tbl_constructor('nvl(business_group_id,' || to_char(p_business_group_id) || ')','N',to_char(p_business_group_id),p_unique_column_tbl);
194 unique_tbl_constructor('nvl(legislation_code,''' || l_legislation_code || ''')','T',l_legislation_code,p_unique_column_tbl);
195 else
196 raise_error;
197 end if;
198 end if;
199 END;
200 --------------------------------------------------------------------------------
201 FUNCTION CSR_WITH_BUS_LEG(
202 p_base_table IN VARCHAR2,
203 p_unique_column IN VARCHAR2,
204 p_unique_column_data_type IN VARCHAR2 DEFAULT 'T',
205 p_unique_column_value IN VARCHAR2,
206 p_business_group_id IN NUMBER DEFAULT NULL,
207 p_legislation_code IN VARCHAR2 DEFAULT NULL,
208 p_date_track_type IN VARCHAR2 DEFAULT 'NONE',
209 p_effective_date IN DATE DEFAULT hr_api.g_sys) RETURN RefCsr
210 --------------------------------------------------------------------------------
211 IS
212 l_unique_column_tbl UniColTbl;
213 BEGIN
214 unique_tbl_constructor(p_unique_column,p_unique_column_data_type,p_unique_column_value,l_unique_column_tbl);
215 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
216
217 return csr(p_base_table,l_unique_column_tbl,p_date_track_type,p_effective_date);
218 END;
219 --------------------------------------------------------------------------------
220 FUNCTION CSR_WITH_BUS(
221 p_base_table IN VARCHAR2,
222 p_unique_column IN VARCHAR2,
223 p_unique_column_data_type IN VARCHAR2 DEFAULT 'T',
224 p_unique_column_value IN VARCHAR2,
225 p_business_group_id IN NUMBER,
226 p_date_track_type IN VARCHAR2 DEFAULT 'NONE',
227 p_effective_date IN DATE DEFAULT hr_api.g_sys) RETURN RefCsr
228 --------------------------------------------------------------------------------
229 IS
230 l_unique_column_tbl UniColTbl;
231 BEGIN
232 unique_tbl_constructor(p_unique_column,p_unique_column_data_type,p_unique_column_value,l_unique_column_tbl);
233 if p_business_group_id is NULL then
234 unique_tbl_constructor('business_group_id','N',to_char(p_business_group_id),l_unique_column_tbl);
235 elsif p_business_group_id <> C_DEFAULT_BUS then
236 unique_tbl_constructor('nvl(business_group_id,' || to_char(p_business_group_id) || ')','N',to_char(p_business_group_id),l_unique_column_tbl);
237 end if;
238
239 return csr(p_base_table,l_unique_column_tbl,p_date_track_type,p_effective_date);
240 END;
241 --------------------------------------------------------------------------------
242 FUNCTION keyflex_combination_id(
243 p_appl_short_name IN VARCHAR2,
244 p_id_flex_code IN VARCHAR2,
245 p_id_flex_num IN NUMBER,
246 p_concatenated_segments IN VARCHAR2,
247 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
248 --------------------------------------------------------------------------------
249 IS
250 l_valid BOOLEAN;
251 l_keyflex_combination_id NUMBER;
252 BEGIN
253 l_valid := fnd_flex_keyval.validate_segs(
254 OPERATION => 'FIND_COMBINATION',
255 APPL_SHORT_NAME => p_appl_short_name,
256 KEY_FLEX_CODE => p_id_flex_code,
257 STRUCTURE_NUMBER => p_id_flex_num,
258 CONCAT_SEGMENTS => p_concatenated_segments,
259 VALUES_OR_IDS => 'I');
260
261 if l_valid then
262 l_keyflex_combination_id := fnd_flex_keyval.combination_id;
263 else
264 if p_error_when_not_exist = 'TRUE' then
265 fnd_message.raise_error;
266 else
267 l_keyflex_combination_id := NULL;
268 end if;
269 end if;
270
271 return l_keyflex_combination_id;
272 END;
273 --------------------------------------------------------------------------------
274 FUNCTION business_group_rec(
275 p_business_group_id IN NUMBER,
276 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_BUSINESS_GROUPS%ROWTYPE
277 --------------------------------------------------------------------------------
278 IS
279 l_unique_column_tbl UniColTbl;
280 l_csr RefCsr;
281 l_rec PER_BUSINESS_GROUPS%ROWTYPE;
282 BEGIN
283 if p_business_group_id is NULL then
284 if p_error_when_not_exist = 'TRUE' then
285 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
286 fnd_message.raise_error;
287 end if;
288
289 return l_rec;
290 else
291 if g_bg_rec_cache.business_group_id = p_business_group_id then
292 NULL;
293 else
294 unique_tbl_constructor('BUSINESS_GROUP_ID','N',to_char(p_business_group_id),l_unique_column_tbl);
295 l_csr := csr('PER_BUSINESS_GROUPS',l_unique_column_tbl);
296 fetch l_csr into l_rec;
297 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
298 l_rec := NULL;
299 end if;
300
301 g_bg_rec_cache := l_rec;
302 end if;
303 end if;
304
305 return g_bg_rec_cache;
306 END;
307 --------------------------------------------------------------------------------
308 FUNCTION legislation_code(
309 p_business_group_id IN NUMBER,
310 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN VARCHAR2
311 --------------------------------------------------------------------------------
312 IS
313 l_rec PER_BUSINESS_GROUPS%ROWTYPE;
314 BEGIN
315 l_rec := business_group_rec(p_business_group_id,p_error_when_not_exist);
316
317 return l_rec.legislation_code;
318 END;
319 --------------------------------------------------------------
320 FUNCTION id_flex_num(
321 p_business_group_id IN NUMBER,
322 p_id_flex_code IN VARCHAR2,
323 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
324 --------------------------------------------------------------------------------
325 IS
326 -- POS Position Key Flexfield(800)
327 -- GRD Grade Key Flexfield(800)
328 -- JOB Job Key Flexfield(800)
329 -- COST Costing Key Flexfield(801)
330 -- GRP People Group Key Flexfield(801)
331 l_rec PER_BUSINESS_GROUPS%ROWTYPE;
332 l_id_flex_num NUMBER;
333 BEGIN
334 l_rec := business_group_rec(p_business_group_id,p_error_when_not_exist);
335
336 if p_id_flex_code = 'POS' then
337 l_id_flex_num := to_number(l_rec.position_structure);
338 elsif p_id_flex_code = 'GRD' then
339 l_id_flex_num := to_number(l_rec.grade_structure);
340 elsif p_id_flex_code = 'JOB' then
341 l_id_flex_num := to_number(l_rec.job_structure);
342 elsif p_id_flex_code = 'COST' then
343 l_id_flex_num := to_number(l_rec.cost_allocation_structure);
344 elsif p_id_flex_code = 'GRP' then
345 l_id_flex_num := to_number(l_rec.people_group_structure);
346 else
347 fnd_message.set_name('PER','HR_JP_INVALID_PARAMETER');
348 fnd_message.set_token('PROCEDURE','hr_jp_id_pkg.id_flex_num');
349 fnd_message.set_token('PARAMETER',p_id_flex_code);
350 fnd_message.raise_error;
351 end if;
352
353 return l_id_flex_num;
354 END;
355 --------------------------------------------------------------------------------
356 FUNCTION default_currency_code(
357 p_business_group_id IN NUMBER,
358 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN VARCHAR2
359 --------------------------------------------------------------------------------
360 IS
361 l_rec PER_BUSINESS_GROUPS%ROWTYPE;
362 BEGIN
363 l_rec := business_group_rec(p_business_group_id,p_error_when_not_exist);
364
365 return l_rec.currency_code;
366 END;
367 --------------------------------------------------------------------------------
368 FUNCTION default_currency_code(
369 p_legislation_code IN VARCHAR2,
370 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN VARCHAR2
371 --------------------------------------------------------------------------------
372 IS
373 l_currency_code FND_CURRENCIES.CURRENCY_CODE%TYPE;
374 CURSOR csr_currency_code IS
375 select currency_code
376 from fnd_currencies
377 where issuing_territory_code = p_legislation_code;
378 BEGIN
379 open csr_currency_code;
380 fetch csr_currency_code into l_currency_code;
381 if csr_currency_code%NOTFOUND then
382 if p_error_when_not_exist = 'TRUE' then
383 close csr_currency_code;
384 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
385 fnd_message.raise_error;
386 end if;
387 end if;
388 close csr_currency_code;
389
390 return l_currency_code;
391 END;
392 --------------------------------------------------------------------------------
393 -- ID with BUSINESS_GROUP_ID and LEGISLATION_CODE
394 --------------------------------------------------------------------------------
395 FUNCTION element_set_rec(
396 p_element_set_name IN VARCHAR2,
397 p_business_group_id IN NUMBER DEFAULT NULL,
398 p_legislation_code IN VARCHAR2 DEFAULT NULL,
399 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ELEMENT_SETS%ROWTYPE
400 --------------------------------------------------------------------------------
401 IS
402 l_csr RefCsr;
403 l_rec PAY_ELEMENT_SETS%ROWTYPE;
404 BEGIN
405 l_csr := csr_with_bus_leg('PAY_ELEMENT_SETS','ELEMENT_SET_NAME','T',p_element_set_name,p_business_group_id,p_legislation_code);
406 fetch l_csr into l_rec;
407 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
408 l_rec := NULL;
409 end if;
410
411 return l_rec;
412 END;
413 --------------------------------------------------------------------------------
414 FUNCTION element_set_id(
415 p_element_set_name IN VARCHAR2,
416 p_business_group_id IN NUMBER DEFAULT NULL,
417 p_legislation_code IN VARCHAR2 DEFAULT NULL,
418 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
419 --------------------------------------------------------------------------------
420 IS
421 BEGIN
422 return element_set_rec(p_element_set_name,p_business_group_id,p_legislation_code,p_error_when_not_exist).element_set_id;
423 END;
424 --------------------------------------------------------------------------------
425 FUNCTION backpay_set_rec(
426 p_backpay_set_name IN VARCHAR2,
427 p_business_group_id IN NUMBER DEFAULT NULL,
428 p_legislation_code IN VARCHAR2 DEFAULT NULL,
429 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_BACKPAY_SETS%ROWTYPE
430 --------------------------------------------------------------------------------
431 IS
432 l_csr RefCsr;
433 l_rec PAY_BACKPAY_SETS%ROWTYPE;
434 BEGIN
435 l_csr := csr_with_bus_leg('PAY_BACKPAY_SETS','BACKPAY_SET_NAME','T',p_backpay_set_name,p_business_group_id,p_legislation_code);
436 fetch l_csr into l_rec;
437 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
438 l_rec := NULL;
439 end if;
440
441 return l_rec;
442 END;
443 --------------------------------------------------------------------------------
444 FUNCTION backpay_set_id(
445 p_backpay_set_name IN VARCHAR2,
446 p_business_group_id IN NUMBER DEFAULT NULL,
447 p_legislation_code IN VARCHAR2 DEFAULT NULL,
448 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
449 --------------------------------------------------------------------------------
450 IS
451 BEGIN
452 return backpay_set_rec(p_backpay_set_name,p_business_group_id,p_legislation_code,p_error_when_not_exist).backpay_set_id;
453 END;
454 --------------------------------------------------------------------------------
455 FUNCTION classification_rec(
456 p_classification_name IN VARCHAR2,
457 p_business_group_id IN NUMBER DEFAULT NULL,
458 p_legislation_code IN VARCHAR2 DEFAULT NULL,
459 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ELEMENT_CLASSIFICATIONS%ROWTYPE
460 --------------------------------------------------------------------------------
461 IS
462 l_csr RefCsr;
463 l_rec PAY_ELEMENT_CLASSIFICATIONS%ROWTYPE;
464 BEGIN
465 l_csr := csr_with_bus_leg('PAY_ELEMENT_CLASSIFICATIONS','CLASSIFICATION_NAME','T',p_classification_name,p_business_group_id,p_legislation_code);
466 fetch l_csr into l_rec;
467 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
468 l_rec := NULL;
469 end if;
470
471 return l_rec;
472 END;
473 --------------------------------------------------------------------------------
474 FUNCTION classification_id(
475 p_classification_name IN VARCHAR2,
476 p_business_group_id IN NUMBER DEFAULT NULL,
477 p_legislation_code IN VARCHAR2 DEFAULT NULL,
478 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
479 --------------------------------------------------------------------------------
480 IS
481 BEGIN
482 return classification_rec(p_classification_name,p_business_group_id,p_legislation_code,p_error_when_not_exist).classification_id;
483 END;
484 --------------------------------------------------------------------------------
485 FUNCTION element_type_rec(
486 p_element_name IN VARCHAR2,
487 p_business_group_id IN NUMBER DEFAULT NULL,
488 p_legislation_code IN VARCHAR2 DEFAULT NULL,
489 p_effective_date IN DATE DEFAULT hr_api.g_sys,
490 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ELEMENT_TYPES_F%ROWTYPE
491 --------------------------------------------------------------------------------
492 IS
493 l_csr RefCsr;
494 l_rec PAY_ELEMENT_TYPES_F%ROWTYPE;
495 BEGIN
496 l_csr := csr_with_bus_leg('PAY_ELEMENT_TYPES_F','ELEMENT_NAME','T',p_element_name,p_business_group_id,p_legislation_code,'DATETRACKED',p_effective_date);
497 fetch l_csr into l_rec;
498 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
499 l_rec := NULL;
500 end if;
501
502 return l_rec;
503 END;
504 --------------------------------------------------------------------------------
505 FUNCTION element_type_id(
506 p_element_name IN VARCHAR2,
507 p_business_group_id IN NUMBER DEFAULT NULL,
508 p_legislation_code IN VARCHAR2 DEFAULT NULL,
509 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
510 --------------------------------------------------------------------------------
511 IS
512 BEGIN
513 return element_type_rec(p_element_name,p_business_group_id,p_legislation_code,NULL,p_error_when_not_exist).element_type_id;
514 END;
515 --------------------------------------------------------------------------------
516 FUNCTION balance_type_rec(
517 p_balance_name IN VARCHAR2,
518 p_business_group_id IN NUMBER DEFAULT NULL,
519 p_legislation_code IN VARCHAR2 DEFAULT NULL,
520 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_BALANCE_TYPES%ROWTYPE
521 --------------------------------------------------------------------------------
522 IS
523 l_csr RefCsr;
524 l_rec PAY_BALANCE_TYPES%ROWTYPE;
525 BEGIN
526 l_csr := csr_with_bus_leg('PAY_BALANCE_TYPES','BALANCE_NAME','T',p_balance_name,p_business_group_id,p_legislation_code);
527 fetch l_csr into l_rec;
528 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
529 l_rec := NULL;
530 end if;
531
532 return l_rec;
533 END;
534 --------------------------------------------------------------------------------
535 FUNCTION balance_type_id(
536 p_balance_name IN VARCHAR2,
537 p_business_group_id IN NUMBER DEFAULT NULL,
538 p_legislation_code IN VARCHAR2 DEFAULT NULL,
539 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
540 --------------------------------------------------------------------------------
541 IS
542 BEGIN
543 return balance_type_rec(p_balance_name,p_business_group_id,p_legislation_code,p_error_when_not_exist).balance_type_id;
544 END;
545 --------------------------------------------------------------------------------
546 FUNCTION balance_dimension_rec(
547 p_dimension_name IN VARCHAR2,
548 p_business_group_id IN NUMBER DEFAULT NULL,
549 p_legislation_code IN VARCHAR2 DEFAULT NULL,
550 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_BALANCE_DIMENSIONS%ROWTYPE
551 --------------------------------------------------------------------------------
552 IS
553 l_csr RefCsr;
554 l_rec PAY_BALANCE_DIMENSIONS%ROWTYPE;
555 BEGIN
556 l_csr := csr_with_bus_leg('PAY_BALANCE_DIMENSIONS','DIMENSION_NAME','T',p_dimension_name,p_business_group_id,p_legislation_code);
557 fetch l_csr into l_rec;
558 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
559 l_rec := NULL;
560 end if;
561
562 return l_rec;
563 END;
564 --------------------------------------------------------------------------------
565 FUNCTION balance_dimension_id(
566 p_dimension_name IN VARCHAR2,
567 p_business_group_id IN NUMBER DEFAULT NULL,
568 p_legislation_code IN VARCHAR2 DEFAULT NULL,
569 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
570 --------------------------------------------------------------------------------
571 IS
572 BEGIN
573 return balance_dimension_rec(p_dimension_name,p_business_group_id,p_legislation_code,p_error_when_not_exist).balance_dimension_id;
574 END;
575 --------------------------------------------------------------------------------
576 FUNCTION assignment_status_type_rec(
577 p_user_status IN VARCHAR2,
578 p_business_group_id IN NUMBER DEFAULT NULL,
579 p_legislation_code IN VARCHAR2 DEFAULT NULL,
580 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ASSIGNMENT_STATUS_TYPES%ROWTYPE
581 --------------------------------------------------------------------------------
582 IS
583 l_csr RefCsr;
584 l_rec PER_ASSIGNMENT_STATUS_TYPES%ROWTYPE;
585 BEGIN
586 l_csr := csr_with_bus_leg('PER_ASSIGNMENT_STATUS_TYPES','USER_STATUS','T',p_user_status,p_business_group_id,p_legislation_code);
587 fetch l_csr into l_rec;
588 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
589 l_rec := NULL;
590 end if;
591
592 return l_rec;
593 END;
594 --------------------------------------------------------------------------------
595 FUNCTION assignment_status_type_id(
596 p_user_status IN VARCHAR2,
597 p_business_group_id IN NUMBER DEFAULT NULL,
598 p_legislation_code IN VARCHAR2 DEFAULT NULL,
599 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
600 --------------------------------------------------------------------------------
601 IS
602 BEGIN
603 return assignment_status_type_rec(p_user_status,p_business_group_id,p_legislation_code,p_error_when_not_exist).assignment_status_type_id;
604 END;
605 --------------------------------------------------------------------------------
606 FUNCTION user_table_rec(
607 p_user_table_name IN VARCHAR2,
608 p_business_group_id IN NUMBER DEFAULT NULL,
609 p_legislation_code IN VARCHAR2 DEFAULT NULL,
610 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_USER_TABLES%ROWTYPE
611 --------------------------------------------------------------------------------
612 IS
613 l_csr RefCsr;
614 l_rec PAY_USER_TABLES%ROWTYPE;
615 BEGIN
616 l_csr := csr_with_bus_leg('PAY_USER_TABLES','USER_TABLE_NAME','T',p_user_table_name,p_business_group_id,p_legislation_code);
617 fetch l_csr into l_rec;
618 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
619 l_rec := NULL;
620 end if;
621
622 return l_rec;
623 END;
624 --------------------------------------------------------------------------------
625 FUNCTION user_table_id(
626 p_user_table_name IN VARCHAR2,
627 p_business_group_id IN NUMBER DEFAULT NULL,
628 p_legislation_code IN VARCHAR2 DEFAULT NULL,
629 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
630 --------------------------------------------------------------------------------
631 IS
632 BEGIN
633 return user_table_rec(p_user_table_name,p_business_group_id,p_legislation_code,p_error_when_not_exist).user_table_id;
634 END;
635 --------------------------------------------------------------------------------
636 -- ID with BUSINESS_GROUP_ID
637 --------------------------------------------------------------------------------
638 FUNCTION location_rec(
639 p_location_code IN VARCHAR2,
640 p_business_group_id IN NUMBER DEFAULT NULL,
641 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN HR_LOCATIONS_ALL%ROWTYPE
642 --------------------------------------------------------------------------------
643 IS
644 l_csr RefCsr;
645 l_rec HR_LOCATIONS_ALL%ROWTYPE;
646 BEGIN
647 l_csr := csr_with_bus('HR_LOCATIONS_ALL','LOCATION_CODE','T',p_location_code,p_business_group_id);
648 fetch l_csr into l_rec;
649 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
650 l_rec := NULL;
651 end if;
652
653 return l_rec;
654 END;
655 --------------------------------------------------------------------------------
656 FUNCTION location_id(
657 p_location_code IN VARCHAR2,
658 p_business_group_id IN NUMBER DEFAULT NULL,
659 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
660 --------------------------------------------------------------------------------
661 IS
662 BEGIN
663 return location_rec(p_location_code,p_business_group_id,p_error_when_not_exist).location_id;
664 END;
665 --------------------------------------------------------------------------------
666 FUNCTION organization_rec(
667 p_name IN VARCHAR2,
668 p_business_group_id IN NUMBER,
669 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN HR_ALL_ORGANIZATION_UNITS%ROWTYPE
670 --------------------------------------------------------------------------------
671 IS
672 l_csr RefCsr;
673 l_rec HR_ALL_ORGANIZATION_UNITS%ROWTYPE;
674 BEGIN
675 l_csr := csr_with_bus('HR_ALL_ORGANIZATION_UNITS','NAME','T',p_name,p_business_group_id);
676 fetch l_csr into l_rec;
677 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
678 l_rec := NULL;
679 end if;
680
681 return l_rec;
682 END;
683 --------------------------------------------------------------------------------
684 FUNCTION organization_id(
685 p_name IN VARCHAR2,
686 p_business_group_id IN NUMBER,
687 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
688 --------------------------------------------------------------------------------
689 IS
690 BEGIN
691 return organization_rec(p_name,p_business_group_id,p_error_when_not_exist).organization_id;
692 END;
693 --------------------------------------------------------------------------------
694 FUNCTION org_payment_method_rec(
695 p_org_payment_method_name IN VARCHAR2,
696 p_business_group_id IN NUMBER,
697 p_effective_date IN DATE DEFAULT hr_api.g_sys,
698 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ORG_PAYMENT_METHODS_F%ROWTYPE
699 --------------------------------------------------------------------------------
700 IS
701 l_csr RefCsr;
702 l_rec PAY_ORG_PAYMENT_METHODS_F%ROWTYPE;
703 BEGIN
704 l_csr := csr_with_bus('PAY_ORG_PAYMENT_METHODS_F','ORG_PAYMENT_METHOD_NAME','T',p_org_payment_method_name,p_business_group_id,'DATETRACKED',p_effective_date);
705 fetch l_csr into l_rec;
706 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
707 l_rec := NULL;
708 end if;
709
710 return l_rec;
711 END;
712 --------------------------------------------------------------------------------
713 FUNCTION org_payment_method_id(
714 p_org_payment_method_name IN VARCHAR2,
715 p_business_group_id IN NUMBER,
716 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
717 --------------------------------------------------------------------------------
718 IS
719 BEGIN
720 return org_payment_method_rec(p_org_payment_method_name,p_business_group_id,NULL,p_error_when_not_exist).org_payment_method_id;
721 END;
722 --------------------------------------------------------------------------------
723 FUNCTION payroll_rec(
724 p_payroll_name IN VARCHAR2,
725 p_business_group_id IN NUMBER,
726 p_effective_date IN DATE DEFAULT hr_api.g_sys,
727 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ALL_PAYROLLS_F%ROWTYPE
728 --------------------------------------------------------------------------------
729 IS
730 l_csr RefCsr;
731 l_rec PAY_ALL_PAYROLLS_F%ROWTYPE;
732 BEGIN
733 l_csr := csr_with_bus('PAY_ALL_PAYROLLS_F','PAYROLL_NAME','T',p_payroll_name,p_business_group_id,'DATETRACKED',p_effective_date);
734 fetch l_csr into l_rec;
735 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
736 l_rec := NULL;
737 end if;
738
739 return l_rec;
740 END;
741 --------------------------------------------------------------------------------
742 FUNCTION payroll_id(
743 p_payroll_name IN VARCHAR2,
744 p_business_group_id IN NUMBER,
745 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
746 --------------------------------------------------------------------------------
747 IS
748 BEGIN
749 return payroll_rec(p_payroll_name,p_business_group_id,NULL,p_error_when_not_exist).payroll_id;
750 END;
751 --------------------------------------------------------------------------------
752 FUNCTION consolidation_set_rec(
753 p_consolidation_set_name IN VARCHAR2,
754 p_business_group_id IN NUMBER,
755 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_CONSOLIDATION_SETS%ROWTYPE
756 --------------------------------------------------------------------------------
757 IS
758 l_csr RefCsr;
759 l_rec PAY_CONSOLIDATION_SETS%ROWTYPE;
760 BEGIN
761 l_csr := csr_with_bus('PAY_CONSOLIDATION_SETS','CONSOLIDATION_SET_NAME','T',p_consolidation_set_name,p_business_group_id);
762 fetch l_csr into l_rec;
763 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
764 l_rec := NULL;
765 end if;
766
767 return l_rec;
768 END;
769 --------------------------------------------------------------------------------
770 FUNCTION consolidation_set_id(
771 p_consolidation_set_name IN VARCHAR2,
772 p_business_group_id IN NUMBER,
773 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
774 --------------------------------------------------------------------------------
775 IS
776 BEGIN
777 return consolidation_set_rec(p_consolidation_set_name,p_business_group_id,p_error_when_not_exist).consolidation_set_id;
778 END;
779 --------------------------------------------------------------------------------
780 FUNCTION assignment_set_rec(
781 p_assignment_set_name IN VARCHAR2,
782 p_business_group_id IN NUMBER,
783 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN HR_ASSIGNMENT_SETS%ROWTYPE
784 --------------------------------------------------------------------------------
785 IS
786 l_csr RefCsr;
787 l_rec HR_ASSIGNMENT_SETS%ROWTYPE;
788 BEGIN
789 l_csr := csr_with_bus('HR_ASSIGNMENT_SETS','ASSIGNMENT_SET_NAME','T',p_assignment_set_name,p_business_group_id);
790 fetch l_csr into l_rec;
791 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
792 l_rec := NULL;
793 end if;
794
795 return l_rec;
796 END;
797 --------------------------------------------------------------------------------
798 FUNCTION assignment_set_id(
799 p_assignment_set_name IN VARCHAR2,
800 p_business_group_id IN NUMBER,
801 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
802 --------------------------------------------------------------------------------
803 IS
804 BEGIN
805 return assignment_set_rec(p_assignment_set_name,p_business_group_id,p_error_when_not_exist).assignment_set_id;
806 END;
807 --------------------------------------------------------------------------------
808 FUNCTION pay_basis_rec(
809 p_name IN VARCHAR2,
810 p_business_group_id IN NUMBER,
811 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_PAY_BASES%ROWTYPE
812 --------------------------------------------------------------------------------
813 IS
814 l_csr RefCsr;
815 l_rec PER_PAY_BASES%ROWTYPE;
816 BEGIN
817 l_csr := csr_with_bus('PER_PAY_BASES','NAME','T',p_name,p_business_group_id);
818 fetch l_csr into l_rec;
819 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
820 l_rec := NULL;
821 end if;
822
823 return l_rec;
824 END;
825 --------------------------------------------------------------------------------
826 FUNCTION pay_basis_id(
827 p_name IN VARCHAR2,
828 p_business_group_id IN NUMBER,
829 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
830 --------------------------------------------------------------------------------
831 IS
832 BEGIN
833 return pay_basis_rec(p_name,p_business_group_id,p_error_when_not_exist).pay_basis_id;
834 END;
835 --------------------------------------------------------------------------------
836 FUNCTION person_type_rec(
837 p_user_person_type IN VARCHAR2,
838 p_business_group_id IN NUMBER,
839 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_PERSON_TYPES%ROWTYPE
840 --------------------------------------------------------------------------------
841 IS
842 l_csr RefCsr;
843 l_rec PER_PERSON_TYPES%ROWTYPE;
844 BEGIN
845 l_csr := csr_with_bus('PER_PERSON_TYPES','USER_PERSON_TYPE','T',p_user_person_type,p_business_group_id);
846 fetch l_csr into l_rec;
847 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
848 l_rec := NULL;
849 end if;
850
851 return l_rec;
852 END;
853 --------------------------------------------------------------------------------
854 FUNCTION person_type_id(
855 p_user_person_type IN VARCHAR2,
856 p_business_group_id IN NUMBER,
857 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
858 --------------------------------------------------------------------------------
859 IS
860 BEGIN
861 return person_type_rec(p_user_person_type,p_business_group_id,p_error_when_not_exist).person_type_id;
862 END;
863 --------------------------------------------------------------------------------
864 FUNCTION emp_person_rec(
865 p_employee_number IN VARCHAR2,
866 p_business_group_id IN NUMBER,
867 p_effective_date IN DATE DEFAULT hr_api.g_sys,
868 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ALL_PEOPLE_F%ROWTYPE
869 --------------------------------------------------------------------------------
870 IS
871 l_csr RefCsr;
872 l_rec PER_ALL_PEOPLE_F%ROWTYPE;
873 BEGIN
874 l_csr := csr_with_bus('PER_ALL_PEOPLE_F','EMPLOYEE_NUMBER','T',p_employee_number,p_business_group_id,'DATETRACKED',p_effective_date);
875 fetch l_csr into l_rec;
876 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
877 l_rec := NULL;
878 end if;
879
880 return l_rec;
881 END;
882 --------------------------------------------------------------------------------
883 FUNCTION emp_person_id(
884 p_employee_number IN VARCHAR2,
885 p_business_group_id IN NUMBER,
886 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
887 --------------------------------------------------------------------------------
888 IS
889 BEGIN
890 return emp_person_rec(p_employee_number,p_business_group_id,NULL,p_error_when_not_exist).person_id;
891 END;
892 --------------------------------------------------------------------------------
893 FUNCTION apl_person_rec(
894 p_applicant_number IN VARCHAR2,
895 p_business_group_id IN NUMBER,
896 p_effective_date IN DATE DEFAULT hr_api.g_sys,
897 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ALL_PEOPLE_F%ROWTYPE
898 --------------------------------------------------------------------------------
899 IS
900 l_csr RefCsr;
901 l_rec PER_ALL_PEOPLE_F%ROWTYPE;
902 BEGIN
903 l_csr := csr_with_bus('PER_ALL_PEOPLE_F','APPLICANT_NUMBER','T',p_applicant_number,p_business_group_id,'DATETRACKED',p_effective_date);
904 fetch l_csr into l_rec;
905 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
906 l_rec := NULL;
907 end if;
908
909 return l_rec;
910 END;
911 --------------------------------------------------------------------------------
912 FUNCTION apl_person_id(
913 p_applicant_number IN VARCHAR2,
914 p_business_group_id IN NUMBER,
915 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
916 --------------------------------------------------------------------------------
917 IS
918 BEGIN
919 return apl_person_rec(p_applicant_number,p_business_group_id,NULL,p_error_when_not_exist).person_id;
920 END;
921 --------------------------------------------------------------------------------
922 FUNCTION emp_assignment_rec(
923 p_assignment_number IN VARCHAR2,
924 p_business_group_id IN NUMBER,
925 p_effective_date IN DATE DEFAULT hr_api.g_sys,
926 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ALL_ASSIGNMENTS_F%ROWTYPE
927 --------------------------------------------------------------------------------
928 IS
929 l_csr RefCsr;
930 l_rec PER_ALL_ASSIGNMENTS_F%ROWTYPE;
931 BEGIN
932 l_csr := csr_with_bus('PER_ALL_ASSIGNMENTS_F','ASSIGNMENT_NUMBER','T',p_assignment_number,p_business_group_id,'DATETRACKED',p_effective_date);
933 fetch l_csr into l_rec;
934 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
935 l_rec := NULL;
936 end if;
937
938 return l_rec;
939 END;
940 --------------------------------------------------------------------------------
941 FUNCTION emp_assignment_id(
942 p_assignment_number IN VARCHAR2,
943 p_business_group_id IN NUMBER,
944 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
945 --------------------------------------------------------------------------------
946 IS
947 BEGIN
948 return emp_assignment_rec(p_assignment_number,p_business_group_id,NULL,p_error_when_not_exist).assignment_id;
949 END;
950 --------------------------------------------------------------------------------
951 FUNCTION rate_id(
952 p_name IN VARCHAR2,
953 p_business_group_id IN NUMBER,
954 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
955 --------------------------------------------------------------------------------
956 IS
957 l_csr RefCsr;
958 l_rec PAY_RATES%ROWTYPE;
959 BEGIN
960 l_csr := csr_with_bus('PAY_RATES','NAME','T',p_name,p_business_group_id);
961 fetch l_csr into l_rec;
962 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
963 l_rec := NULL;
964 end if;
965
966 return l_rec.rate_id;
967 END;
968 --------------------------------------------------------------------------------
969 FUNCTION job_rec(
970 p_concatenated_segments IN VARCHAR2,
971 p_business_group_id IN NUMBER,
972 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_JOBS%ROWTYPE
973 --------------------------------------------------------------------------------
974 IS
975 l_id_flex_num NUMBER;
976 l_job_definition_id NUMBER;
977 l_csr RefCsr;
978 l_rec PER_JOBS%ROWTYPE;
979 BEGIN
980 l_id_flex_num := id_flex_num(p_business_group_id,'JOB');
981 l_job_definition_id := keyflex_combination_id('PER','JOB',l_id_flex_num,p_concatenated_segments,p_error_when_not_exist);
982
983 if l_job_definition_id is NULL then
984 l_rec := NULL;
985 else
986 l_csr := csr_with_bus('PER_JOBS','JOB_DEFINITION_ID','N',to_char(l_job_definition_id),p_business_group_id);
987 fetch l_csr into l_rec;
988 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
989 l_rec := NULL;
990 end if;
991 end if;
992
993 return l_rec;
994 END;
995 --------------------------------------------------------------------------------
996 FUNCTION job_id(
997 p_concatenated_segments IN VARCHAR2,
998 p_business_group_id IN NUMBER,
999 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1000 --------------------------------------------------------------------------------
1001 IS
1002 BEGIN
1003 return job_rec(p_concatenated_segments,p_business_group_id,p_error_when_not_exist).job_id;
1004 END;
1005 --------------------------------------------------------------------------------
1006 FUNCTION position_rec(
1007 p_concatenated_segments IN VARCHAR2,
1008 p_business_group_id IN NUMBER,
1009 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_POSITIONS%ROWTYPE
1010 --------------------------------------------------------------------------------
1011 IS
1012 l_id_flex_num NUMBER;
1013 l_position_definition_id NUMBER;
1014 l_csr RefCsr;
1015 l_rec PER_POSITIONS%ROWTYPE;
1016 BEGIN
1017 l_id_flex_num := id_flex_num(p_business_group_id,'POS');
1018 l_position_definition_id := keyflex_combination_id('PER','POS',l_id_flex_num,p_concatenated_segments,p_error_when_not_exist);
1019
1020 if l_position_definition_id is NULL then
1021 l_rec := NULL;
1022 else
1023 l_csr := csr_with_bus('PER_POSITIONS','POSITION_DEFINITION_ID','N',to_char(l_position_definition_id),p_business_group_id);
1024 fetch l_csr into l_rec;
1025 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1026 l_rec := NULL;
1027 end if;
1028 end if;
1029
1030 return l_rec;
1031 END;
1032 --------------------------------------------------------------------------------
1033 FUNCTION position_id(
1034 p_concatenated_segments IN VARCHAR2,
1035 p_business_group_id IN NUMBER,
1036 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1037 --------------------------------------------------------------------------------
1038 IS
1039 BEGIN
1040 return position_rec(p_concatenated_segments,p_business_group_id,p_error_when_not_exist).position_id;
1041 END;
1042 --------------------------------------------------------------------------------
1043 FUNCTION grade_rec(
1044 p_concatenated_segments IN VARCHAR2,
1045 p_business_group_id IN NUMBER,
1046 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_GRADES%ROWTYPE
1047 --------------------------------------------------------------------------------
1048 IS
1049 l_id_flex_num NUMBER;
1050 l_grade_definition_id NUMBER;
1051 l_csr RefCsr;
1052 l_rec PER_GRADES%ROWTYPE;
1053 BEGIN
1054 l_id_flex_num := id_flex_num(p_business_group_id,'GRD');
1055 l_grade_definition_id := keyflex_combination_id('PER','GRD',l_id_flex_num,p_concatenated_segments,p_error_when_not_exist);
1056
1057 if l_grade_definition_id is NULL then
1058 l_rec := NULL;
1059 else
1060 l_csr := csr_with_bus('PER_GRADES','GRADE_DEFINITION_ID','N',to_char(l_grade_definition_id),p_business_group_id);
1061 fetch l_csr into l_rec;
1062 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1063 l_rec := NULL;
1064 end if;
1065 end if;
1066
1067 return l_rec;
1068 END;
1069 --------------------------------------------------------------------------------
1070 FUNCTION grade_id(
1071 p_concatenated_segments IN VARCHAR2,
1072 p_business_group_id IN NUMBER,
1073 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1074 --------------------------------------------------------------------------------
1075 IS
1076 BEGIN
1077 return grade_rec(p_concatenated_segments,p_business_group_id,p_error_when_not_exist).grade_id;
1078 END;
1079 --------------------------------------------------------------------------------
1080 -- ID with special case
1081 --------------------------------------------------------------------------------
1082 FUNCTION input_value_rec(
1083 p_element_type_id IN NUMBER,
1084 p_name IN VARCHAR2,
1085 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1086 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_INPUT_VALUES_F%ROWTYPE
1087 --------------------------------------------------------------------------------
1088 IS
1089 l_unique_column_tbl UniColTbl;
1090 l_csr RefCsr;
1091 l_rec PAY_INPUT_VALUES_F%ROWTYPE;
1092 BEGIN
1093 unique_tbl_constructor('ELEMENT_TYPE_ID','N',to_char(p_element_type_id),l_unique_column_tbl);
1094 unique_tbl_constructor('NAME','T',p_name,l_unique_column_tbl);
1095
1096 l_csr := csr('PAY_INPUT_VALUES_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
1097 fetch l_csr into l_rec;
1098 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1099 l_rec := NULL;
1100 end if;
1101
1102 return l_rec;
1103 END;
1104 --------------------------------------------------------------------------------
1105 FUNCTION input_value_id(
1106 p_element_type_id IN NUMBER,
1107 p_name IN VARCHAR2,
1108 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1109 --------------------------------------------------------------------------------
1110 IS
1111 BEGIN
1112 return input_value_rec(p_element_type_id,p_name,NULL,p_error_when_not_exist).input_value_id;
1113 END;
1114 --------------------------------------------------------------------------------
1115 FUNCTION input_value_rec(
1116 p_element_name IN VARCHAR2,
1117 p_name IN VARCHAR2,
1118 p_business_group_id IN NUMBER DEFAULT NULL,
1119 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1120 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1121 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_INPUT_VALUES_F%ROWTYPE
1122 --------------------------------------------------------------------------------
1123 IS
1124 l_element_type_id NUMBER;
1125 BEGIN
1126 l_element_type_id := element_type_id(p_element_name,p_business_group_id,p_legislation_code,p_error_when_not_exist);
1127
1128 return input_value_rec(l_element_type_id,p_name,p_effective_date,p_error_when_not_exist);
1129 END;
1130 --------------------------------------------------------------------------------
1131 FUNCTION input_value_id(
1132 p_element_name IN VARCHAR2,
1133 p_name IN VARCHAR2,
1134 p_business_group_id IN NUMBER DEFAULT NULL,
1135 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1136 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1137 --------------------------------------------------------------------------------
1138 IS
1139 BEGIN
1140 return input_value_rec(p_element_name,p_name,p_business_group_id,p_legislation_code,NULL,p_error_when_not_exist).input_value_id;
1141 END;
1142 --------------------------------------------------------------------------------
1143 FUNCTION defined_balance_rec(
1144 p_balance_type_id IN NUMBER,
1145 p_balance_dimension_id IN NUMBER,
1146 p_business_group_id IN NUMBER DEFAULT NULL,
1147 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1148 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_DEFINED_BALANCES%ROWTYPE
1149 --------------------------------------------------------------------------------
1150 IS
1151 l_unique_column_tbl UniColTbl;
1152 l_csr RefCsr;
1153 l_rec PAY_DEFINED_BALANCES%ROWTYPE;
1154 BEGIN
1155 unique_tbl_constructor('BALANCE_TYPE_ID','N',to_char(p_balance_type_id),l_unique_column_tbl);
1156 unique_tbl_constructor('BALANCE_DIMENSION_ID','N',to_char(p_balance_dimension_id),l_unique_column_tbl);
1157 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
1158
1159 l_csr := csr('PAY_DEFINED_BALANCES',l_unique_column_tbl);
1160 fetch l_csr into l_rec;
1161 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1162 l_rec := NULL;
1163 end if;
1164
1165 return l_rec;
1166 END;
1167 --------------------------------------------------------------------------------
1168 FUNCTION defined_balance_id(
1169 p_balance_type_id IN NUMBER,
1170 p_balance_dimension_id IN NUMBER,
1171 p_business_group_id IN NUMBER DEFAULT NULL,
1172 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1173 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1174 --------------------------------------------------------------------------------
1175 IS
1176 BEGIN
1177 return defined_balance_rec(p_balance_type_id,p_balance_dimension_id,p_business_group_id,p_legislation_code,p_error_when_not_exist).defined_balance_id;
1178 END;
1179 --------------------------------------------------------------------------------
1180 FUNCTION defined_balance_rec(
1181 p_balance_name IN VARCHAR2,
1182 p_dimension_name IN VARCHAR2,
1183 p_business_group_id IN NUMBER DEFAULT NULL,
1184 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1185 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_DEFINED_BALANCES%ROWTYPE
1186 --------------------------------------------------------------------------------
1187 IS
1188 l_balance_type_id NUMBER;
1189 l_balance_dimension_id NUMBER;
1190 BEGIN
1191 l_balance_type_id := balance_type_id(p_balance_name,p_business_group_id,p_legislation_code,p_error_when_not_exist);
1192 l_balance_dimension_id := balance_dimension_id(p_dimension_name,p_business_group_id,p_legislation_code,p_error_when_not_exist);
1193
1194 return defined_balance_rec(l_balance_type_id,l_balance_dimension_id,p_business_group_id,p_legislation_code,p_error_when_not_exist);
1195 END;
1196 --------------------------------------------------------------------------------
1197 FUNCTION defined_balance_id(
1198 p_balance_name IN VARCHAR2,
1199 p_dimension_name IN VARCHAR2,
1200 p_business_group_id IN NUMBER DEFAULT NULL,
1201 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1202 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1203 --------------------------------------------------------------------------------
1204 IS
1205 BEGIN
1206 return defined_balance_rec(p_balance_name,p_dimension_name,p_business_group_id,p_legislation_code,p_error_when_not_exist).defined_balance_id;
1207 END;
1208 --------------------------------------------------------------------------------
1209 FUNCTION balance_feed_rec(
1210 p_balance_type_id IN NUMBER,
1211 p_input_value_id IN NUMBER,
1212 p_business_group_id IN NUMBER DEFAULT NULL,
1213 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1214 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1215 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_BALANCE_FEEDS_F%ROWTYPE
1216 --------------------------------------------------------------------------------
1217 IS
1218 l_unique_column_tbl UniColTbl;
1219 l_csr RefCsr;
1220 l_rec PAY_BALANCE_FEEDS_F%ROWTYPE;
1221 BEGIN
1222 unique_tbl_constructor('BALANCE_TYPE_ID','N',to_char(p_balance_type_id),l_unique_column_tbl);
1223 unique_tbl_constructor('INPUT_VALUE_ID','N',to_char(p_input_value_id),l_unique_column_tbl);
1224 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
1225
1226 l_csr := csr('PAY_BALANCE_FEEDS_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
1227 fetch l_csr into l_rec;
1228 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1229 l_rec := NULL;
1230 end if;
1231
1232 return l_rec;
1233 END;
1234 --------------------------------------------------------------------------------
1235 FUNCTION balance_feed_id(
1236 p_balance_type_id IN NUMBER,
1237 p_input_value_id IN NUMBER,
1238 p_business_group_id IN NUMBER DEFAULT NULL,
1239 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1240 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1241 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1242 --------------------------------------------------------------------------------
1243 IS
1244 BEGIN
1245 return balance_feed_rec(p_balance_type_id,p_input_value_id,p_business_group_id,p_legislation_code,p_effective_date,p_error_when_not_exist).balance_feed_id;
1246 END;
1247 --------------------------------------------------------------------------------
1248 FUNCTION balance_feed_rec(
1249 p_balance_name IN VARCHAR2,
1250 p_element_name IN VARCHAR2,
1251 p_name IN VARCHAR2,
1252 p_business_group_id IN NUMBER DEFAULT NULL,
1253 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1254 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1255 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_BALANCE_FEEDS_F%ROWTYPE
1256 --------------------------------------------------------------------------------
1257 IS
1258 l_balance_type_id NUMBER;
1259 l_input_value_id NUMBER;
1260 BEGIN
1261 l_balance_type_id := balance_type_id(p_balance_name,p_business_group_id,p_legislation_code,p_error_when_not_exist);
1262 l_input_value_id := input_value_id(p_element_name,p_name,p_business_group_id,p_legislation_code,p_error_when_not_exist);
1263
1264 return balance_feed_rec(l_balance_type_id,l_input_value_id,p_business_group_id,p_legislation_code,p_effective_date,p_error_when_not_exist);
1265 END;
1266 --------------------------------------------------------------------------------
1267 FUNCTION balance_feed_id(
1268 p_balance_name IN VARCHAR2,
1269 p_element_name IN VARCHAR2,
1270 p_name IN VARCHAR2,
1271 p_business_group_id IN NUMBER DEFAULT NULL,
1272 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1273 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1274 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1275 --------------------------------------------------------------------------------
1276 IS
1277 BEGIN
1278 return balance_feed_rec(p_balance_name,p_element_name,p_name,p_business_group_id,p_legislation_code,p_effective_date,p_error_when_not_exist).balance_feed_id;
1279 END;
1280 --------------------------------------------------------------------------------
1281 FUNCTION business_group_rec(
1282 p_name IN VARCHAR2,
1283 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_BUSINESS_GROUPS%ROWTYPE
1284 --------------------------------------------------------------------------------
1285 IS
1286 l_unique_column_tbl UniColTbl;
1287 l_csr RefCsr;
1288 l_rec PER_BUSINESS_GROUPS%ROWTYPE;
1289 BEGIN
1290 if g_bg_rec_cache.name = p_name then
1291 NULL;
1292 else
1293 unique_tbl_constructor('NAME','T',p_name,l_unique_column_tbl);
1294
1295 l_csr := csr('PER_BUSINESS_GROUPS',l_unique_column_tbl);
1296 fetch l_csr into l_rec;
1297 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1298 l_rec := NULL;
1299 end if;
1300
1301 g_bg_rec_cache := l_rec;
1302 end if;
1303
1304 return g_bg_rec_cache;
1305 END;
1306 --------------------------------------------------------------------------------
1307 FUNCTION business_group_id(
1308 p_name IN VARCHAR2,
1309 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1310 --------------------------------------------------------------------------------
1311 IS
1312 BEGIN
1313 return business_group_rec(p_name,p_error_when_not_exist).business_group_id;
1314 END;
1315 --------------------------------------------------------------------------------
1316 FUNCTION formula_type_rec(
1317 p_formula_type_name IN VARCHAR2,
1318 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN FF_FORMULA_TYPES%ROWTYPE
1319 --------------------------------------------------------------------------------
1320 IS
1321 l_unique_column_tbl UniColTbl;
1322 l_csr RefCsr;
1323 l_rec FF_FORMULA_TYPES%ROWTYPE;
1324 BEGIN
1325 unique_tbl_constructor('FORMULA_TYPE_NAME','T',p_formula_type_name,l_unique_column_tbl);
1326
1327 l_csr := csr('FF_FORMULA_TYPES',l_unique_column_tbl);
1328 fetch l_csr into l_rec;
1329 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1330 l_rec := NULL;
1331 end if;
1332
1333 return l_rec;
1334 END;
1335 --------------------------------------------------------------------------------
1336 FUNCTION formula_type_id(
1337 p_formula_type_name IN VARCHAR2,
1338 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1339 --------------------------------------------------------------------------------
1340 IS
1341 BEGIN
1342 return formula_type_rec(p_formula_type_name,p_error_when_not_exist).formula_type_id;
1343 END;
1344 --------------------------------------------------------------------------------
1345 FUNCTION formula_rec(
1346 p_formula_name IN VARCHAR2,
1347 p_formula_type_name IN VARCHAR2,
1348 p_business_group_id IN NUMBER DEFAULT NULL,
1349 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1350 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1351 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN FF_FORMULAS_F%ROWTYPE
1352 --------------------------------------------------------------------------------
1353 IS
1354 l_formula_type_id NUMBER;
1355 l_unique_column_tbl UniColTbl;
1356 l_csr RefCsr;
1357 l_rec FF_FORMULAS_F%ROWTYPE;
1358 BEGIN
1359 l_formula_type_id := formula_type_id(p_formula_type_name,p_error_when_not_exist);
1360 unique_tbl_constructor('FORMULA_TYPE_ID','N',to_char(l_formula_type_id),l_unique_column_tbl);
1361 unique_tbl_constructor('FORMULA_NAME','T',p_formula_name,l_unique_column_tbl);
1362 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
1363
1364 l_csr := csr('FF_FORMULAS_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
1365 fetch l_csr into l_rec;
1366 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1367 l_rec := NULL;
1368 end if;
1369
1370 return l_rec;
1371 END;
1372 --------------------------------------------------------------------------------
1373 FUNCTION formula_id(
1374 p_formula_name IN VARCHAR2,
1375 p_formula_type_name IN VARCHAR2,
1376 p_business_group_id IN NUMBER DEFAULT NULL,
1377 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1378 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1379 --------------------------------------------------------------------------------
1380 IS
1381 BEGIN
1382 return formula_rec(p_formula_name,p_formula_type_name,p_business_group_id,p_legislation_code,NULL,p_error_when_not_exist).formula_id;
1383 END;
1384 --------------------------------------------------------------------------------
1385 FUNCTION function_rec(
1386 p_name IN VARCHAR2,
1387 p_data_type IN VARCHAR2,
1388 p_business_group_id IN NUMBER DEFAULT NULL,
1389 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1390 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN FF_FUNCTIONS%ROWTYPE
1391 --------------------------------------------------------------------------------
1392 IS
1393 l_unique_column_tbl UniColTbl;
1394 l_csr RefCsr;
1395 l_rec FF_FUNCTIONS%ROWTYPE;
1396 BEGIN
1397 unique_tbl_constructor('NAME','T',p_name,l_unique_column_tbl);
1398 unique_tbl_constructor('DATA_TYPE','T',p_data_type,l_unique_column_tbl);
1399 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
1400
1401 l_csr := csr('FF_FUNCTIONS',l_unique_column_tbl);
1402 fetch l_csr into l_rec;
1403 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1404 l_rec := NULL;
1405 end if;
1406
1407 return l_rec;
1408 END;
1409 --------------------------------------------------------------------------------
1410 FUNCTION function_id(
1411 p_name IN VARCHAR2,
1412 p_data_type IN VARCHAR2,
1413 p_business_group_id IN NUMBER DEFAULT NULL,
1414 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1415 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1416 --------------------------------------------------------------------------------
1417 IS
1418 BEGIN
1419 return function_rec(p_name,p_data_type,p_business_group_id,p_legislation_code,p_error_when_not_exist).function_id;
1420 END;
1421 --------------------------------------------------------------------------------
1422 FUNCTION status_processing_rule_rec(
1423 p_element_type_id IN NUMBER,
1424 p_assignment_status_type_id IN NUMBER DEFAULT NULL,
1425 p_business_group_id IN NUMBER DEFAULT NULL,
1426 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1427 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1428 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_STATUS_PROCESSING_RULES_F%ROWTYPE
1429 --------------------------------------------------------------------------------
1430 IS
1431 l_unique_column_tbl UniColTbl;
1432 l_csr RefCsr;
1433 l_rec PAY_STATUS_PROCESSING_RULES_F%ROWTYPE;
1434 BEGIN
1435 unique_tbl_constructor('ELEMENT_TYPE_ID','N',to_char(p_element_type_id),l_unique_column_tbl);
1436 unique_tbl_constructor('ASSIGNMENT_STATUS_TYPE_ID','N',to_char(p_assignment_status_type_id),l_unique_column_tbl);
1437 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
1438
1439 l_csr := csr('PAY_STATUS_PROCESSING_RULES_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
1440 fetch l_csr into l_rec;
1441 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1442 l_rec := NULL;
1443 end if;
1444
1445 return l_rec;
1446 END;
1447 --------------------------------------------------------------------------------
1448 FUNCTION status_processing_rule_id(
1449 p_element_type_id IN NUMBER,
1450 p_assignment_status_type_id IN NUMBER DEFAULT NULL,
1451 p_business_group_id IN NUMBER DEFAULT NULL,
1452 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1453 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1454 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1455 --------------------------------------------------------------------------------
1456 IS
1457 BEGIN
1458 return status_processing_rule_rec(
1459 p_element_type_id,p_assignment_status_type_id,
1460 p_business_group_id,p_legislation_code,p_effective_date,p_error_when_not_exist).status_processing_rule_id;
1461 END;
1462 --------------------------------------------------------------------------------
1463 FUNCTION formula_result_rule_rec(
1464 p_status_processing_rule_id IN NUMBER,
1465 p_result_name IN VARCHAR2,
1466 p_result_rule_type IN VARCHAR2,
1467 p_element_type_id IN NUMBER DEFAULT NULL,
1468 p_input_value_id IN NUMBER DEFAULT NULL,
1469 p_business_group_id IN NUMBER DEFAULT NULL,
1470 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1471 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1472 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_FORMULA_RESULT_RULES_F%ROWTYPE
1473 --------------------------------------------------------------------------------
1474 IS
1475 l_unique_column_tbl UniColTbl;
1476 l_csr RefCsr;
1477 l_rec PAY_FORMULA_RESULT_RULES_F%ROWTYPE;
1478 BEGIN
1479 unique_tbl_constructor('STATUS_PROCESSING_RULE_ID','N',to_char(p_status_processing_rule_id),l_unique_column_tbl);
1480 unique_tbl_constructor('RESULT_NAME','T',p_result_name,l_unique_column_tbl);
1481 unique_tbl_constructor('RESULT_RULE_TYPE','T',p_result_rule_type,l_unique_column_tbl);
1482 unique_tbl_constructor('ELEMENT_TYPE_ID + 0','N',to_char(p_element_type_id),l_unique_column_tbl);
1483 unique_tbl_constructor('INPUT_VALUE_ID + 0','N',to_char(p_input_value_id),l_unique_column_tbl);
1484 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
1485
1486 l_csr := csr('PAY_FORMULA_RESULT_RULES_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
1487 fetch l_csr into l_rec;
1488 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1489 l_rec := NULL;
1490 end if;
1491
1492 return l_rec;
1493 END;
1494 --------------------------------------------------------------------------------
1495 FUNCTION formula_result_rule_id(
1496 p_status_processing_rule_id IN NUMBER,
1497 p_result_name IN VARCHAR2,
1498 p_result_rule_type IN VARCHAR2,
1499 p_element_type_id IN NUMBER DEFAULT NULL,
1500 p_input_value_id IN NUMBER DEFAULT NULL,
1501 p_business_group_id IN NUMBER DEFAULT NULL,
1502 p_legislation_code IN VARCHAR2 DEFAULT NULL,
1503 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1504 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1505 --------------------------------------------------------------------------------
1506 IS
1507 BEGIN
1508 return formula_result_rule_rec(
1509 p_status_processing_rule_id,p_result_name,p_result_rule_type,p_element_type_id,p_input_value_id,
1510 p_business_group_id,p_legislation_code,p_effective_date,p_error_when_not_exist).formula_result_rule_id;
1511 END;
1512 --------------------------------------------------------------------------------
1513 FUNCTION sub_classification_rule_rec(
1514 p_element_type_id IN NUMBER,
1515 p_classification_id IN NUMBER,
1516 p_business_group_id IN NUMBER,
1517 p_legislation_code IN VARCHAR2,
1518 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1519 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_SUB_CLASSIFICATION_RULES_F%ROWTYPE
1520 --------------------------------------------------------------------------------
1521 IS
1522 l_unique_column_tbl UniColTbl;
1523 l_csr RefCsr;
1524 l_rec PAY_SUB_CLASSIFICATION_RULES_F%ROWTYPE;
1525 BEGIN
1526 unique_tbl_constructor('ELEMENT_TYPE_ID','N',to_char(p_element_type_id),l_unique_column_tbl);
1527 unique_tbl_constructor('CLASSIFICATION_ID','N',to_char(p_classification_id),l_unique_column_tbl);
1528 bus_leg_constructor(p_business_group_id,p_legislation_code,l_unique_column_tbl);
1529
1530 l_csr := csr('PAY_SUB_CLASSIFICATION_RULES_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
1531 fetch l_csr into l_rec;
1532 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1533 l_rec := NULL;
1534 end if;
1535
1536 return l_rec;
1537 END;
1538 --------------------------------------------------------------------------------
1539 FUNCTION sub_classification_rule_id(
1540 p_element_type_id IN NUMBER,
1541 p_classification_id IN NUMBER,
1542 p_business_group_id IN NUMBER,
1543 p_legislation_code IN VARCHAR2,
1544 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1545 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1546 --------------------------------------------------------------------------------
1547 IS
1548 BEGIN
1549 return sub_classification_rule_rec(
1550 p_element_type_id,p_classification_id,p_business_group_id,p_legislation_code,
1551 p_effective_date,p_error_when_not_exist).sub_classification_rule_id;
1552 END;
1553 --------------------------------------------------------------------------------
1554 FUNCTION element_link_id(
1555 p_assignment_id IN NUMBER,
1556 p_element_type_id IN NUMBER,
1557 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1558 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1559 --------------------------------------------------------------------------------
1560 IS
1561 l_element_link_id NUMBER;
1562 BEGIN
1563 l_element_link_id := hr_entry_api.get_link(p_assignment_id,p_element_type_id,p_effective_date);
1564
1565 if p_error_when_not_exist = 'TRUE' and l_element_link_id is NULL then
1566 fnd_message.set_name('PAY','HR_51271_ELE_NOT_ELIGIBLE');
1567 fnd_message.raise_error;
1568 end if;
1569
1570 return l_element_link_id;
1571 END;
1572 --------------------------------------------------------------------------------
1573 FUNCTION element_link_id(
1574 p_assignment_number IN VARCHAR2,
1575 p_element_name IN VARCHAR2,
1576 p_business_group_id IN NUMBER,
1577 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1578 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1579 --------------------------------------------------------------------------------
1580 IS
1581 l_assignment_id NUMBER;
1582 l_element_type_id NUMBER;
1583 BEGIN
1584 l_assignment_id := emp_assignment_id(p_assignment_number,p_business_group_id,p_error_when_not_exist);
1585 l_element_type_id := element_type_id(p_element_name,p_business_group_id,NULL,p_error_when_not_exist);
1586
1587 return element_link_id(l_assignment_id,l_element_type_id,p_effective_date,p_error_when_not_exist);
1588 END;
1589 --------------------------------------------------------------------------------
1590 FUNCTION org_information_rec(
1591 p_organization_id IN NUMBER,
1592 p_org_information_context IN VARCHAR2,
1593 p_org_information1 IN VARCHAR2 DEFAULT NULL,
1594 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN HR_ORGANIZATION_INFORMATION%ROWTYPE
1595 --------------------------------------------------------------------------------
1596 IS
1597 l_unique_column_tbl UniColTbl;
1598 l_csr RefCsr;
1599 l_rec HR_ORGANIZATION_INFORMATION%ROWTYPE;
1600 BEGIN
1601 unique_tbl_constructor('ORGANIZATION_ID','N',to_char(p_organization_id),l_unique_column_tbl);
1602 unique_tbl_constructor('ORG_INFORMATION_CONTEXT','T',p_org_information_context,l_unique_column_tbl);
1603 if p_org_information_context = 'CLASS' then
1604 unique_tbl_constructor('ORG_INFORMATION1','T',p_org_information1,l_unique_column_tbl);
1605 end if;
1606
1607 l_csr := csr('HR_ORGANIZATION_INFORMATION',l_unique_column_tbl);
1608 fetch l_csr into l_rec;
1609 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1610 l_rec := NULL;
1611 end if;
1612
1613 return l_rec;
1614 END;
1615 --------------------------------------------------------------------------------
1616 FUNCTION org_information_id(
1617 p_organization_id IN NUMBER,
1618 p_org_information_context IN VARCHAR2,
1619 p_org_information1 IN VARCHAR2 DEFAULT NULL,
1620 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1621 --------------------------------------------------------------------------------
1622 IS
1623 BEGIN
1624 return org_information_rec(p_organization_id,p_org_information_context,p_org_information1,p_error_when_not_exist).org_information_id;
1625 END;
1626 --------------------------------------------------------------------------------
1627 FUNCTION org_information_rec(
1628 p_name IN VARCHAR2,
1629 p_org_information_context IN VARCHAR2,
1630 p_org_information1 IN VARCHAR2 DEFAULT NULL,
1631 p_business_group_id IN VARCHAR2,
1632 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN HR_ORGANIZATION_INFORMATION%ROWTYPE
1633 --------------------------------------------------------------------------------
1634 IS
1635 l_organization_id NUMBER;
1636 BEGIN
1637 l_organization_id := organization_id(p_name,p_business_group_id);
1638
1639 return org_information_rec(l_organization_id,p_org_information_context,p_org_information1,p_error_when_not_exist);
1640 END;
1641 --------------------------------------------------------------------------------
1642 FUNCTION org_information_id(
1643 p_name IN VARCHAR2,
1644 p_org_information_context IN VARCHAR2,
1645 p_org_information1 IN VARCHAR2 DEFAULT NULL,
1646 p_business_group_id IN VARCHAR2,
1647 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1648 --------------------------------------------------------------------------------
1649 IS
1650 BEGIN
1651 return org_information_rec(p_name,p_org_information_context,p_org_information1,p_business_group_id,p_error_when_not_exist).org_information_id;
1652 END;
1653 --------------------------------------------------------------------------------
1654 FUNCTION payment_defined_balance_rec(
1655 p_business_group_id IN NUMBER,
1656 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_DEFINED_BALANCES%ROWTYPE
1657 --------------------------------------------------------------------------------
1658 IS
1659 l_rec PAY_DEFINED_BALANCES%ROWTYPE;
1660 l_legislation_code VARCHAR2(2);
1661 CURSOR csr_payment_defined_balance_id IS
1662 select pdb.*
1663 from pay_balance_dimensions pbd,
1664 pay_defined_balances pdb,
1665 pay_balance_types pbt
1666 where pbt.assignment_remuneration_flag='Y'
1667 and nvl(pbt.business_group_id,p_business_group_id)=p_business_group_id
1668 and nvl(pbt.legislation_code,l_legislation_code)=l_legislation_code
1669 and pdb.balance_type_id=pbt.balance_type_id
1670 and nvl(pdb.business_group_id,p_business_group_id)=p_business_group_id
1671 and nvl(pdb.legislation_code,l_legislation_code)=l_legislation_code
1672 and pbd.balance_dimension_id=pdb.balance_dimension_id
1673 and nvl(pbd.business_group_id,p_business_group_id)=p_business_group_id
1674 and nvl(pbd.legislation_code,l_legislation_code)=l_legislation_code
1675 and pbd.payments_flag='Y';
1676 BEGIN
1677 l_legislation_code := legislation_code(p_business_group_id);
1678
1679 open csr_payment_defined_balance_id;
1680 fetch csr_payment_defined_balance_id into l_rec;
1681 if csr_payment_defined_balance_id%NOTFOUND then
1682 if p_error_when_not_exist = 'TRUE' then
1683 close csr_payment_defined_balance_id;
1684
1685 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
1686 fnd_message.raise_error;
1687 else
1688 l_rec := NULL;
1689 end if;
1690 end if;
1691 close csr_payment_defined_balance_id;
1692
1693 return l_rec;
1694 END;
1695 --------------------------------------------------------------------------------
1696 FUNCTION payment_defined_balance_id(
1697 p_business_group_id IN NUMBER,
1698 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1699 --------------------------------------------------------------------------------
1700 IS
1701 BEGIN
1702 return payment_defined_balance_rec(p_business_group_id,p_error_when_not_exist).defined_balance_id;
1703 END;
1704 --------------------------------------------------------------------------------
1705 FUNCTION legislation_rule_mode(
1706 p_legislation_code IN VARCHAR2,
1707 p_rule_type IN VARCHAR2,
1708 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN VARCHAR2
1709 --------------------------------------------------------------------------------
1710 IS
1711 l_unique_column_tbl UniColTbl;
1712 l_csr RefCsr;
1713 l_rec PAY_LEGISLATION_RULES%ROWTYPE;
1714 BEGIN
1715 unique_tbl_constructor('LEGISLATION_CODE','T',p_legislation_code,l_unique_column_tbl);
1716 unique_tbl_constructor('RULE_TYPE','T',p_rule_type,l_unique_column_tbl);
1717
1718 l_csr := csr('PAY_LEGISLATION_RULES',l_unique_column_tbl);
1719 fetch l_csr into l_rec;
1720 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1721 l_rec := NULL;
1722 end if;
1723
1724 return l_rec.rule_mode;
1725 END;
1726 --------------------------------------------------------------------------------
1727 FUNCTION payment_type_rec(
1728 p_payment_type_name IN VARCHAR2,
1729 p_territory_code IN VARCHAR2 DEFAULT NULL,
1730 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_PAYMENT_TYPES%ROWTYPE
1731 --------------------------------------------------------------------------------
1732 IS
1733 l_unique_column_tbl UniColTbl;
1734 l_csr RefCsr;
1735 l_rec PAY_PAYMENT_TYPES%ROWTYPE;
1736 BEGIN
1737 unique_tbl_constructor('PAYMENT_TYPE_NAME','T',p_payment_type_name,l_unique_column_tbl);
1738 if p_territory_code = C_DEFAULT_LEG then
1739 NULL;
1740 else
1741 unique_tbl_constructor('nvl(TERRITORY_CODE,''' || p_territory_code || ''')','T',p_territory_code,l_unique_column_tbl);
1742 end if;
1743
1744 l_csr := csr('PAY_PAYMENT_TYPES',l_unique_column_tbl);
1745 fetch l_csr into l_rec;
1746 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1747 l_rec := NULL;
1748 end if;
1749
1750 return l_rec;
1751 END;
1752 --------------------------------------------------------------------------------
1753 FUNCTION payment_type_id(
1754 p_payment_type_name IN VARCHAR2,
1755 p_territory_code IN VARCHAR2 DEFAULT NULL,
1756 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN VARCHAR2
1757 --------------------------------------------------------------------------------
1758 IS
1759 BEGIN
1760 return payment_type_rec(p_payment_type_name,p_territory_code,p_error_when_not_exist).payment_type_id;
1761 END;
1762 --------------------------------------------------------------------------------
1763 FUNCTION grade_rule_rec(
1764 p_rate_id IN NUMBER,
1765 p_grade_id IN NUMBER,
1766 -- p_rate_type IN VARCHAR2,
1767 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_GRADE_RULES_F%ROWTYPE
1768 --------------------------------------------------------------------------------
1769 IS
1770 l_unique_column_tbl UniColTbl;
1771 l_csr RefCsr;
1772 l_rec PAY_GRADE_RULES_F%ROWTYPE;
1773 BEGIN
1774 unique_tbl_constructor('RATE_ID','N',to_char(p_rate_id),l_unique_column_tbl);
1775 unique_tbl_constructor('GRADE_OR_SPINAL_POINT_ID','N',to_char(p_grade_id),l_unique_column_tbl);
1776 -- Current version supports only 'GRADE'. 'SPINAL POINT' is not supported.
1777 unique_tbl_constructor('RATE_TYPE','T','G',l_unique_column_tbl);
1778
1779 l_csr := csr('PAY_GRADE_RULES_F',l_unique_column_tbl);
1780 fetch l_csr into l_rec;
1781 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1782 l_rec := NULL;
1783 end if;
1784
1785 return l_rec;
1786 END;
1787 --------------------------------------------------------------------------------
1788 FUNCTION grade_rule_id(
1789 p_rate_id IN NUMBER,
1790 p_grade_id IN NUMBER,
1791 -- p_rate_type IN VARCHAR2,
1792 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1793 --------------------------------------------------------------------------------
1794 IS
1795 BEGIN
1796 return grade_rule_rec(p_rate_id,p_grade_id,p_error_when_not_exist).grade_rule_id;
1797 END;
1798 --------------------------------------------------------------------------------
1799 FUNCTION flex_value_set_rec(
1800 p_flex_value_set_name IN VARCHAR2,
1801 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN FND_FLEX_VALUE_SETS%ROWTYPE
1802 --------------------------------------------------------------------------------
1803 IS
1804 l_unique_column_tbl UniColTbl;
1805 l_csr RefCsr;
1806 l_rec FND_FLEX_VALUE_SETS%ROWTYPE;
1807 BEGIN
1808 unique_tbl_constructor('FLEX_VALUE_SET_NAME','T',p_flex_value_set_name,l_unique_column_tbl);
1809
1810 l_csr := csr('FND_FLEX_VALUE_SETS',l_unique_column_tbl);
1811 fetch l_csr into l_rec;
1812 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1813 l_rec := NULL;
1814 end if;
1815
1816 return l_rec;
1817 END;
1818 --------------------------------------------------------------------------------
1819 FUNCTION flex_value_set_id(
1820 p_flex_value_set_name IN VARCHAR2,
1821 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1822 --------------------------------------------------------------------------------
1823 IS
1824 BEGIN
1825 return flex_value_set_rec(p_flex_value_set_name,p_error_when_not_exist).flex_value_set_id;
1826 END;
1827 --------------------------------------------------------------------------------
1828 FUNCTION flex_value_rec(
1829 p_flex_value_set_id IN NUMBER,
1830 p_flex_value IN VARCHAR2,
1831 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN FND_FLEX_VALUES%ROWTYPE
1832 --------------------------------------------------------------------------------
1833 IS
1834 l_unique_column_tbl UniColTbl;
1835 l_csr RefCsr;
1836 l_rec FND_FLEX_VALUES%ROWTYPE;
1837 BEGIN
1838 unique_tbl_constructor('FLEX_VALUE_SET_ID','N',to_char(p_flex_value_set_id),l_unique_column_tbl);
1839 unique_tbl_constructor('FLEX_VALUE','T',p_flex_value,l_unique_column_tbl);
1840
1841 l_csr := csr('FND_FLEX_VALUES',l_unique_column_tbl);
1842 fetch l_csr into l_rec;
1843 if not csr_found_and_close(l_csr,p_error_when_not_exist) then
1844 l_rec := NULL;
1845 end if;
1846
1847 return l_rec;
1848 END;
1849 --------------------------------------------------------------------------------
1850 FUNCTION flex_value_id(
1851 p_flex_value_set_id IN NUMBER,
1852 p_flex_value IN VARCHAR2,
1853 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
1854 --------------------------------------------------------------------------------
1855 IS
1856 BEGIN
1857 return flex_value_rec(p_flex_value_set_id,p_flex_value,p_error_when_not_exist).flex_value_id;
1858 END;
1859 --------------------------------------------------------------------------------
1860 FUNCTION period_of_service_rec(
1861 p_employee_number IN VARCHAR2,
1862 p_business_group_id IN NUMBER,
1863 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1864 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_PERIODS_OF_SERVICE%ROWTYPE
1865 --------------------------------------------------------------------------------
1866 IS
1867 l_rec PER_PERIODS_OF_SERVICE%ROWTYPE;
1868 CURSOR csr_period_of_service IS
1869 select pps.*
1870 from per_periods_of_service pps,
1871 per_all_people_f pp
1872 where pp.employee_number=p_employee_number
1873 and pp.business_group_id=p_business_group_id
1874 and p_effective_date
1875 between pp.effective_start_date and pp.effective_end_date
1876 and pps.person_id=pp.person_id
1877 and ( pps.date_start=(
1878 select max(pps2.date_start)
1879 from per_periods_of_service pps2
1880 where pps2.person_id=pp.person_id
1881 and pps2.date_start <= pp.effective_end_date)
1882 );
1883 BEGIN
1884 open csr_period_of_service;
1885 fetch csr_period_of_service into l_rec;
1886 if csr_period_of_service%NOTFOUND then
1887 if p_error_when_not_exist = 'TRUE' then
1888 close csr_period_of_service;
1889
1890 fnd_message.set_name('PER','HR_JP_PERSON_NOT_FOUND');
1891 fnd_message.set_token('EMPLOYEE_NUMBER',p_employee_number);
1892 fnd_message.raise_error;
1893 end if;
1894 end if;
1895 close csr_period_of_service;
1896
1897 return l_rec;
1898 END;
1899 --------------------------------------------------------------------------------
1900 FUNCTION element_entry_rec(
1901 p_assignment_id IN VARCHAR2,
1902 p_element_type_id IN VARCHAR2,
1903 p_entry_type IN VARCHAR2 DEFAULT 'E',
1904 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1905 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ELEMENT_ENTRIES_F%ROWTYPE
1906 --------------------------------------------------------------------------------
1907 IS
1908 l_rec PAY_ELEMENT_ENTRIES_F%ROWTYPE;
1909 CURSOR csr_element_entry(
1910 p_assignment_id NUMBER,
1911 p_element_type_id NUMBER) IS
1912 select pee.*
1913 from pay_element_links_f pel,
1914 pay_element_entries_f pee
1915 where pee.assignment_id=p_assignment_id
1916 and pee.entry_type=p_entry_type
1917 and p_effective_date
1918 between pee.effective_start_date and pee.effective_end_date
1919 and pel.element_link_id=pee.element_link_id
1920 and pel.element_type_id=p_element_type_id
1921 and p_effective_date
1922 between pel.effective_start_date and pel.effective_end_date
1923 and pee.entry_type='E'
1924 order by pee.element_entry_id;
1925 BEGIN
1926 open csr_element_entry(p_assignment_id,p_element_type_id);
1927 fetch csr_element_entry into l_rec;
1928 if csr_element_entry%NOTFOUND then
1929 if p_error_when_not_exist = 'TRUE' then
1930 close csr_element_entry;
1931
1932 fnd_message.set_name('PER','HR_JP_ELEMENT_ENTRY_NOT_FOUND');
1933 fnd_message.raise_error;
1934 else
1935 l_rec := NULL;
1936 end if;
1937 end if;
1938 close csr_element_entry;
1939
1940 return l_rec;
1941 END;
1942 --------------------------------------------------------------------------------
1943 FUNCTION element_entry_rec(
1944 p_assignment_number IN VARCHAR2,
1945 p_element_name IN VARCHAR2,
1946 p_entry_type IN VARCHAR2 DEFAULT 'E',
1947 p_business_group_id IN NUMBER,
1948 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1949 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ELEMENT_ENTRIES_F%ROWTYPE
1950 --------------------------------------------------------------------------------
1951 IS
1952 l_assignment_id NUMBER := emp_assignment_id(p_assignment_number,p_business_group_id);
1953 l_element_type_id NUMBER := element_type_id(p_element_name,p_business_group_id);
1954 BEGIN
1955 return element_entry_rec(l_assignment_id,l_element_type_id,p_entry_type,p_business_group_id,p_effective_date,p_error_when_not_exist);
1956 END;
1957 --------------------------------------------------------------------------------
1958 FUNCTION address_rec(
1959 -- primary_flag has higher priority then address_type.
1960 -- If you pass both p_primary_flag = 'N' and p_address_type is NULL,
1961 -- record this function returns is inexact.
1962 p_person_id IN NUMBER,
1963 p_primary_flag IN VARCHAR2 DEFAULT 'Y',
1964 p_address_type IN VARCHAR2 DEFAULT NULL,
1965 p_effective_date IN DATE DEFAULT hr_api.g_sys,
1966 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ADDRESSES%ROWTYPE
1967 --------------------------------------------------------------------------------
1968 IS
1969 l_unique_column_tbl UniColTbl;
1970 l_csr RefCsr;
1971 l_rec PER_ADDRESSES%ROWTYPE;
1972 BEGIN
1973 unique_tbl_constructor('PERSON_ID','N',to_char(p_person_id),l_unique_column_tbl);
1974 if p_primary_flag = 'Y' then
1975 unique_tbl_constructor('PRIMARY_FLAG','T',p_primary_flag,l_unique_column_tbl);
1976 else
1977 unique_tbl_constructor('ADDRESS_TYPE','T',p_address_type,l_unique_column_tbl);
1978 end if;
1979 l_csr := csr('PER_ADDRESSES',l_unique_column_tbl,'DATED',p_effective_date);
1980 fetch l_csr into l_rec;
1981 if l_csr%NOTFOUND then
1982 if p_error_when_not_exist = 'TRUE' then
1983 close l_csr;
1984 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
1985 fnd_message.set_token('SQL',g_sql);
1986 fnd_message.raise_error;
1987 else
1988 l_rec := NULL;
1989 end if;
1990 end if;
1991 close l_csr;
1992
1993 return l_rec;
1994 END;
1995 --------------------------------------------------------------------------------
1996 FUNCTION primary_address_rec(
1997 -- This function is valid when address_type is not NULL.
1998 p_person_id IN NUMBER,
1999 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2000 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ADDRESSES%ROWTYPE
2001 --------------------------------------------------------------------------------
2002 IS
2003 BEGIN
2004 return address_rec(p_person_id,'Y',NULL,p_effective_date,p_error_when_not_exist);
2005 END;
2006 --------------------------------------------------------------------------------
2007 FUNCTION address_rec(
2008 -- This function is valid when address_type is not NULL.
2009 p_person_id IN NUMBER,
2010 p_address_type IN VARCHAR2,
2011 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2012 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ADDRESSES%ROWTYPE
2013 --------------------------------------------------------------------------------
2014 IS
2015 BEGIN
2016 return address_rec(p_person_id,'N',p_address_type,p_effective_date,p_error_when_not_exist);
2017 END;
2018 --------------------------------------------------------------------------------
2019 FUNCTION emp_primary_address_rec(
2020 -- This function is valid when address_type is not NULL.
2021 p_employee_number IN VARCHAR2,
2022 p_business_group_id IN NUMBER,
2023 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2024 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ADDRESSES%ROWTYPE
2025 --------------------------------------------------------------------------------
2026 IS
2027 l_person_id NUMBER;
2028 BEGIN
2029 l_person_id := emp_person_id(p_employee_number,p_business_group_id);
2030
2031 return primary_address_rec(l_person_id,p_effective_date,p_error_when_not_exist);
2032 END;
2033 --------------------------------------------------------------------------------
2034 FUNCTION emp_address_rec(
2035 -- This function is valid when address_type is not NULL.
2036 p_employee_number IN VARCHAR2,
2037 p_address_type IN VARCHAR2,
2038 p_business_group_id IN NUMBER,
2039 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2040 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ADDRESSES%ROWTYPE
2041 --------------------------------------------------------------------------------
2042 IS
2043 l_person_id NUMBER;
2044 BEGIN
2045 l_person_id := emp_person_id(p_employee_number,p_business_group_id);
2046
2047 return address_rec(l_person_id,p_address_type,p_effective_date,p_error_when_not_exist);
2048 END;
2049 --------------------------------------------------------------------------------
2050 FUNCTION apl_primary_address_rec(
2051 -- This function is valid when address_type is not NULL.
2052 p_applicant_number IN VARCHAR2,
2053 p_business_group_id IN NUMBER,
2054 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2055 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ADDRESSES%ROWTYPE
2056 --------------------------------------------------------------------------------
2057 IS
2058 l_person_id NUMBER;
2059 BEGIN
2060 l_person_id := apl_person_id(p_applicant_number,p_business_group_id);
2061
2062 return primary_address_rec(l_person_id,p_effective_date,p_error_when_not_exist);
2063 END;
2064 --------------------------------------------------------------------------------
2065 FUNCTION apl_address_rec(
2066 -- This function is valid when address_type is not NULL.
2067 p_applicant_number IN VARCHAR2,
2068 p_address_type IN VARCHAR2,
2069 p_business_group_id IN NUMBER,
2070 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2071 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_ADDRESSES%ROWTYPE
2072 --------------------------------------------------------------------------------
2073 IS
2074 l_person_id NUMBER;
2075 BEGIN
2076 l_person_id := apl_person_id(p_applicant_number,p_business_group_id);
2077
2078 return address_rec(l_person_id,p_address_type,p_effective_date,p_error_when_not_exist);
2079 END;
2080 --------------------------------------------------------------------------------
2081 FUNCTION personal_payment_method_rec(
2082 p_assignment_id IN NUMBER,
2083 p_priority IN NUMBER,
2084 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2085 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_PERSONAL_PAYMENT_METHODS_F%ROWTYPE
2086 --------------------------------------------------------------------------------
2087 IS
2088 l_unique_column_tbl UniColTbl;
2089 l_csr RefCsr;
2090 l_rec PAY_PERSONAL_PAYMENT_METHODS_F%ROWTYPE;
2091 BEGIN
2092 unique_tbl_constructor('ASSIGNMENT_ID','N',to_char(p_assignment_id),l_unique_column_tbl);
2093 unique_tbl_constructor('PRIORITY','N',to_char(p_priority),l_unique_column_tbl);
2094 l_csr := csr('PAY_PERSONAL_PAYMENT_METHODS_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
2095 fetch l_csr into l_rec;
2096 if l_csr%NOTFOUND then
2097 if p_error_when_not_exist = 'TRUE' then
2098 close l_csr;
2099 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
2100 fnd_message.set_token('SQL',g_sql);
2101 fnd_message.raise_error;
2102 else
2103 l_rec := NULL;
2104 end if;
2105 end if;
2106 close l_csr;
2107
2108 return l_rec;
2109 END;
2110 --------------------------------------------------------------------------------
2111 FUNCTION personal_payment_method_rec(
2112 p_assignment_number IN VARCHAR2,
2113 p_priority IN NUMBER,
2114 p_business_group_id IN NUMBER,
2115 p_effective_date IN DATE DEFAULT hr_api.g_sys,
2116 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_PERSONAL_PAYMENT_METHODS_F%ROWTYPE
2117 --------------------------------------------------------------------------------
2118 IS
2119 l_assignment_id NUMBER;
2120 BEGIN
2121 l_assignment_id := emp_assignment_id(p_assignment_number,p_business_group_id);
2122
2123 return personal_payment_method_rec(l_assignment_id,p_priority,p_effective_date,p_error_when_not_exist);
2124 END;
2125 --------------------------------------------------------------------------------
2126 FUNCTION JP_BANK_REC(
2127 P_BANK_CODE IN VARCHAR2,
2128 P_BRANCH_CODE IN VARCHAR2,
2129 p_error_when_not_exist IN VARCHAR2 DEFAULT 'TRUE') RETURN PER_JP_BANK_LOOKUPS%ROWTYPE
2130 --------------------------------------------------------------------------------
2131 IS
2132 l_unique_column_tbl UniColTbl;
2133 l_csr RefCsr;
2134 l_rec PER_JP_BANK_LOOKUPS%ROWTYPE;
2135 BEGIN
2136 unique_tbl_constructor('BANK_CODE','T',p_bank_code,l_unique_column_tbl);
2137 unique_tbl_constructor('BRANCH_CODE','T',p_branch_code,l_unique_column_tbl);
2138 l_csr := csr('PER_JP_BANK_LOOKUPS',l_unique_column_tbl);
2139 fetch l_csr into l_rec;
2140 if l_csr%NOTFOUND then
2141 if p_error_when_not_exist = 'TRUE' then
2142 close l_csr;
2143 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
2144 fnd_message.set_token('SQL',g_sql);
2145 fnd_message.raise_error;
2146 else
2147 l_rec := NULL;
2148 end if;
2149 end if;
2150 close l_csr;
2151
2152 return l_rec;
2153 END;
2154 --------------------------------------------------------------------------------
2155 FUNCTION element_link_rec(
2156 P_ELEMENT_TYPE_ID IN NUMBER,
2157 P_ORGANIZATION_ID IN NUMBER DEFAULT NULL,
2158 P_PEOPLE_GROUP_ID IN NUMBER DEFAULT NULL,
2159 P_JOB_ID IN NUMBER DEFAULT NULL,
2160 P_POSITION_ID IN NUMBER DEFAULT NULL,
2161 P_GRADE_ID IN NUMBER DEFAULT NULL,
2162 P_LOCATION_ID IN NUMBER DEFAULT NULL,
2163 P_EMPLOYMENT_CATEGORY IN VARCHAR2 DEFAULT NULL,
2164 P_PAYROLL_ID IN NUMBER DEFAULT NULL,
2165 P_LINK_TO_ALL_PAYROLLS_FLAG IN VARCHAR2 DEFAULT 'N',
2166 P_PAY_BASIS_ID IN NUMBER DEFAULT NULL,
2167 P_BUSINESS_GROUP_ID IN NUMBER,
2168 P_EFFECTIVE_DATE IN DATE DEFAULT hr_api.g_sys,
2169 P_ERROR_WHEN_NOT_EXIST IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ELEMENT_LINKS_F%ROWTYPE
2170 --------------------------------------------------------------------------------
2171 IS
2172 l_unique_column_tbl UniColTbl;
2173 l_csr RefCsr;
2174 l_rec PAY_ELEMENT_LINKS_F%ROWTYPE;
2175 BEGIN
2176 unique_tbl_constructor('ELEMENT_TYPE_ID','N',to_char(p_element_type_id),l_unique_column_tbl);
2177 unique_tbl_constructor('ORGANIZATION_ID','N',to_char(p_organization_id),l_unique_column_tbl);
2178 unique_tbl_constructor('PEOPLE_GROUP_ID','N',to_char(p_people_group_id),l_unique_column_tbl);
2179 unique_tbl_constructor('JOB_ID','N',to_char(p_job_id),l_unique_column_tbl);
2180 unique_tbl_constructor('POSITION_ID','N',to_char(p_position_id),l_unique_column_tbl);
2181 unique_tbl_constructor('GRADE_ID','N',to_char(p_grade_id),l_unique_column_tbl);
2182 unique_tbl_constructor('LOCATION_ID','N',to_char(p_location_id),l_unique_column_tbl);
2183 unique_tbl_constructor('EMPLOYMENT_CATEGORY','T',p_employment_category,l_unique_column_tbl);
2184 unique_tbl_constructor('PAYROLL_ID','N',to_char(p_payroll_id),l_unique_column_tbl);
2185 unique_tbl_constructor('LINK_TO_ALL_PAYROLLS_FLAG','T',p_link_to_all_payrolls_flag,l_unique_column_tbl);
2186 unique_tbl_constructor('PAY_BASIS_ID','N',to_char(p_pay_basis_id),l_unique_column_tbl);
2187 unique_tbl_constructor('BUSINESS_GROUP_ID + 0','N',to_char(p_business_group_id),l_unique_column_tbl);
2188 l_csr := csr('PAY_ELEMENT_LINKS_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
2189 fetch l_csr into l_rec;
2190 if l_csr%NOTFOUND then
2191 if p_error_when_not_exist = 'TRUE' then
2192 close l_csr;
2193 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
2194 fnd_message.set_token('SQL',g_sql);
2195 fnd_message.raise_error;
2196 else
2197 l_rec := NULL;
2198 end if;
2199 end if;
2200 close l_csr;
2201
2202 return l_rec;
2203 END;
2204 --------------------------------------------------------------------------------
2205 FUNCTION element_link_id(
2206 P_ELEMENT_TYPE_ID IN NUMBER,
2207 P_ORGANIZATION_ID IN NUMBER DEFAULT NULL,
2208 P_PEOPLE_GROUP_ID IN NUMBER DEFAULT NULL,
2209 P_JOB_ID IN NUMBER DEFAULT NULL,
2210 P_POSITION_ID IN NUMBER DEFAULT NULL,
2211 P_GRADE_ID IN NUMBER DEFAULT NULL,
2212 P_LOCATION_ID IN NUMBER DEFAULT NULL,
2213 P_EMPLOYMENT_CATEGORY IN VARCHAR2 DEFAULT NULL,
2214 P_PAYROLL_ID IN NUMBER DEFAULT NULL,
2215 P_LINK_TO_ALL_PAYROLLS_FLAG IN VARCHAR2 DEFAULT 'N',
2216 P_PAY_BASIS_ID IN NUMBER DEFAULT NULL,
2217 P_BUSINESS_GROUP_ID IN NUMBER,
2218 P_EFFECTIVE_DATE IN DATE DEFAULT hr_api.g_sys,
2219 P_ERROR_WHEN_NOT_EXIST IN VARCHAR2 DEFAULT 'TRUE') RETURN NUMBER
2220 --------------------------------------------------------------------------------
2221 IS
2222 BEGIN
2223 return element_link_rec(
2224 p_element_type_id,p_organization_id,p_people_group_id,p_job_id,p_position_id,
2225 p_grade_id,p_location_id,p_employment_category,p_payroll_id,p_link_to_all_payrolls_flag,
2226 p_pay_basis_id,p_business_group_id,p_effective_date,p_error_when_not_exist).element_link_id;
2227 END;
2228 --------------------------------------------------------------------------------
2229 FUNCTION backpay_rule_rec(
2230 P_BACKPAY_SET_ID IN NUMBER,
2231 P_DEFINED_BALANCE_ID IN NUMBER,
2232 P_INPUT_VALUE_ID IN NUMBER,
2233 P_ERROR_WHEN_NOT_EXIST IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_BACKPAY_RULES%ROWTYPE
2234 --------------------------------------------------------------------------------
2235 IS
2236 l_unique_column_tbl UniColTbl;
2237 l_csr RefCsr;
2238 l_rec PAY_BACKPAY_RULES%ROWTYPE;
2239 BEGIN
2240 unique_tbl_constructor('BACKPAY_SET_ID','N',to_char(p_backpay_set_id),l_unique_column_tbl);
2241 unique_tbl_constructor('DEFINED_BALANCE_ID','N',to_char(p_defined_balance_id),l_unique_column_tbl);
2242 unique_tbl_constructor('INPUT_VALUE_ID','N',to_char(p_input_value_id),l_unique_column_tbl);
2243 l_csr := csr('PAY_BACKPAY_RULES',l_unique_column_tbl);
2244 fetch l_csr into l_rec;
2245 if l_csr%NOTFOUND then
2246 if p_error_when_not_exist = 'TRUE' then
2247 close l_csr;
2248 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
2249 fnd_message.set_token('SQL',g_sql);
2250 fnd_message.raise_error;
2251 else
2252 l_rec := NULL;
2253 end if;
2254 end if;
2255 close l_csr;
2256
2257 return l_rec;
2258 END;
2259 --------------------------------------------------------------------------------
2260 FUNCTION org_pay_method_usage_rec(
2261 P_PAYROLL_ID IN NUMBER,
2262 P_ORG_PAYMENT_METHOD_ID IN NUMBER,
2263 P_EFFECTIVE_DATE IN DATE DEFAULT hr_api.g_sys,
2264 P_ERROR_WHEN_NOT_EXIST IN VARCHAR2 DEFAULT 'TRUE') RETURN PAY_ORG_PAY_METHOD_USAGES_F%ROWTYPE
2265 --------------------------------------------------------------------------------
2266 IS
2267 l_unique_column_tbl UniColTbl;
2268 l_csr RefCsr;
2269 l_rec PAY_ORG_PAY_METHOD_USAGES_F%ROWTYPE;
2270 BEGIN
2271 unique_tbl_constructor('PAYROLL_ID','N',to_char(p_payroll_id),l_unique_column_tbl);
2272 unique_tbl_constructor('ORG_PAYMENT_METHOD_ID','N',to_char(p_org_payment_method_id),l_unique_column_tbl);
2273 l_csr := csr('PAY_ORG_PAY_METHOD_USAGES_F',l_unique_column_tbl,'DATETRACKED',p_effective_date);
2274 fetch l_csr into l_rec;
2275 if l_csr%NOTFOUND then
2276 if p_error_when_not_exist = 'TRUE' then
2277 close l_csr;
2278 fnd_message.set_name('PER','HR_JP_ID_NOT_FOUND');
2279 fnd_message.set_token('SQL',g_sql);
2280 fnd_message.raise_error;
2281 else
2282 l_rec := NULL;
2283 end if;
2284 end if;
2285 close l_csr;
2286
2287 return l_rec;
2288 END;
2289 end;