[Home] [Help]
PACKAGE BODY: APPS.PAY_ELEMENT_TYPES_API
Source
1 Package Body PAY_ELEMENT_TYPES_API as
2 /* $Header: pyetpapi.pkb 120.2.12010000.2 2008/08/06 07:12:10 ubhat ship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(33) := ' PAY_ELEMENT_TYPES_API.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< CREATE_ELEMENT_TYPE >-------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure CREATE_ELEMENT_TYPE
13 (p_validate in boolean default false
14 ,p_effective_date in date
15 ,p_classification_id in number
16 ,p_element_name in varchar2
17 ,p_input_currency_code in varchar2
18 ,p_output_currency_code in varchar2
19 ,p_multiple_entries_allowed_fla in varchar2
20 ,p_processing_type in varchar2
21 ,p_business_group_id in number default null
22 ,p_legislation_code in varchar2 default null
23 ,p_formula_id in number default null
24 ,p_benefit_classification_id in number default null
25 ,p_additional_entry_allowed_fla in varchar2 default 'N'
26 ,p_adjustment_only_flag in varchar2 default 'N'
27 ,p_closed_for_entry_flag in varchar2 default 'N'
28 ,p_reporting_name in varchar2 default null
29 ,p_description in varchar2 default null
30 ,p_indirect_only_flag in varchar2 default 'N'
31 ,p_multiply_value_flag in varchar2 default 'N'
32 ,p_post_termination_rule in varchar2 default 'L'
33 ,p_process_in_run_flag in varchar2 default 'Y'
34 ,p_processing_priority in number default null
35 ,p_standard_link_flag in varchar2 default 'N'
36 ,p_comments in varchar2 default null
37 ,p_third_party_pay_only_flag in varchar2 default null
38 ,p_iterative_flag in varchar2 default null
39 ,p_iterative_formula_id in number default null
40 ,p_iterative_priority in number default null
41 ,p_creator_type in varchar2 default null
42 ,p_retro_summ_ele_id in number default null
43 ,p_grossup_flag in varchar2 default null
44 ,p_process_mode in varchar2 default null
45 ,p_advance_indicator in varchar2 default null
46 ,p_advance_payable in varchar2 default null
47 ,p_advance_deduction in varchar2 default null
48 ,p_process_advance_entry in varchar2 default null
49 ,p_proration_group_id in number default null
50 ,p_proration_formula_id in number default null
51 ,p_recalc_event_group_id in number default null
52 ,p_legislation_subgroup in varchar2 default null
53 ,p_qualifying_age in number default null
54 ,p_qualifying_length_of_service in number default null
55 ,p_qualifying_units in varchar2 default null
56 ,p_attribute_category in varchar2 default null
57 ,p_attribute1 in varchar2 default null
58 ,p_attribute2 in varchar2 default null
59 ,p_attribute3 in varchar2 default null
60 ,p_attribute4 in varchar2 default null
61 ,p_attribute5 in varchar2 default null
62 ,p_attribute6 in varchar2 default null
63 ,p_attribute7 in varchar2 default null
64 ,p_attribute8 in varchar2 default null
65 ,p_attribute9 in varchar2 default null
66 ,p_attribute10 in varchar2 default null
67 ,p_attribute11 in varchar2 default null
68 ,p_attribute12 in varchar2 default null
69 ,p_attribute13 in varchar2 default null
70 ,p_attribute14 in varchar2 default null
71 ,p_attribute15 in varchar2 default null
72 ,p_attribute16 in varchar2 default null
73 ,p_attribute17 in varchar2 default null
74 ,p_attribute18 in varchar2 default null
75 ,p_attribute19 in varchar2 default null
76 ,p_attribute20 in varchar2 default null
77 ,p_element_information_category in varchar2 default null
78 ,p_element_information1 in varchar2 default null
79 ,p_element_information2 in varchar2 default null
80 ,p_element_information3 in varchar2 default null
81 ,p_element_information4 in varchar2 default null
82 ,p_element_information5 in varchar2 default null
83 ,p_element_information6 in varchar2 default null
84 ,p_element_information7 in varchar2 default null
85 ,p_element_information8 in varchar2 default null
86 ,p_element_information9 in varchar2 default null
87 ,p_element_information10 in varchar2 default null
88 ,p_element_information11 in varchar2 default null
89 ,p_element_information12 in varchar2 default null
90 ,p_element_information13 in varchar2 default null
91 ,p_element_information14 in varchar2 default null
92 ,p_element_information15 in varchar2 default null
93 ,p_element_information16 in varchar2 default null
94 ,p_element_information17 in varchar2 default null
95 ,p_element_information18 in varchar2 default null
96 ,p_element_information19 in varchar2 default null
97 ,p_element_information20 in varchar2 default null
98 ,p_default_uom in varchar2 default null
99 ,p_once_each_period_flag in varchar2 default 'N'
100 ,p_language_code in varchar2 default hr_api.userenv_lang
101 ,p_time_definition_type in varchar2 default null
102 ,p_time_definition_id in number default null
103 ,p_advance_element_type_id in number default null
104 ,p_deduction_element_type_id in number default null
105 ,p_element_type_id out nocopy number
106 ,p_effective_start_date out nocopy date
107 ,p_effective_end_date out nocopy date
108 ,p_object_version_number out nocopy number
109 ,p_comment_id out nocopy number
110 ,p_processing_priority_warning out nocopy boolean
111 ) is
112 --
113 -- Declare cursors and local variables
114 --
115 l_proc varchar2(72):=g_package||'CREATE_ELEMENT_TYPE';
116 l_effective_date date;
117 l_effective_start_date date;
118 l_effective_end_date date;
119 l_processing_priority_warning boolean;
120 l_non_payments_flag varchar2(30);
121 l_contributions_used varchar2(30);
122 l_generate_db_items_flag varchar2(30);
123 l_default_val_warning boolean;
124 l_min_max_warning boolean;
125 l_pay_basis_warning boolean;
126 l_formula_warning boolean;
127 l_assignment_id_warning boolean;
128 l_iv_effective_start_date date;
129 l_iv_effective_end_date date;
130 l_display_sequence number(1) := 0;
131 l_element_type_id pay_element_types_f.element_type_id%type;
132 l_object_version_number pay_element_types_f.object_version_number%type;
133 l_comment_id pay_element_types_f.comment_id%type;
134 l_input_currency_code pay_element_types_f.input_currency_code%type;
135 l_output_currency_code pay_element_types_f.output_currency_code%type;
136 l_default_priority pay_element_types_f.processing_priority%type;
137 l_processing_priority pay_element_types_f.processing_priority%type;
138 l_input_value_id pay_input_values_f.input_value_id%type;
139 l_iv_object_version_number pay_input_values_f.object_version_number%type;
140 l_formula_message fnd_new_messages.message_text%type;
141 l_language_code pay_element_types_f_tl.language%type;
142 --
143 Cursor c_non_payments
144 is
145 select non_payments_flag, default_priority
146 from pay_element_classifications
147 where classification_id = p_classification_id;
148
149 Cursor c_contributions_used
150 is
151 select contributions_used
152 from ben_benefit_classifications
153 where benefit_classification_id = p_benefit_classification_id;
154
155 --
156 begin
157 hr_utility.set_location('Entering:'|| l_proc, 10);
158 --
159 -- Issue a savepoint
160 --
161 savepoint CREATE_ELEMENT_TYPE;
162 --
163 -- Truncate the time portion from all IN date parameters
164 --
165 l_effective_date := trunc(p_effective_date);
166 --
167 -- Validate the language parameter. l_language_code should be passed to
168 -- functions instead of p_language_code from now on, to allow an IN OUT
169 -- parameter to be passed through.
170 --
171 l_language_code := p_language_code;
172 hr_api.validate_language_code(p_language_code => l_language_code);
173 --
174 --
175 -- Call Before Process User Hook
176 --
177 begin
178 PAY_ELEMENT_TYPES_BK1.CREATE_ELEMENT_TYPE_b
179 (p_effective_date => l_effective_date
180 ,p_classification_id => p_classification_id
181 ,p_element_name => p_element_name
182 ,p_business_group_id => p_business_group_id
183 ,p_legislation_code => p_legislation_code
184 ,p_formula_id => p_formula_id
185 ,p_input_currency_code => p_input_currency_code
186 ,p_output_currency_code => p_output_currency_code
187 ,p_benefit_classification_id => p_benefit_classification_id
188 ,p_additional_entry_allowed_fla => p_additional_entry_allowed_fla
189 ,p_adjustment_only_flag => p_adjustment_only_flag
190 ,p_closed_for_entry_flag => p_closed_for_entry_flag
191 ,p_reporting_name => p_reporting_name
192 ,p_description => p_description
193 ,p_indirect_only_flag => p_indirect_only_flag
194 ,p_multiple_entries_allowed_fla => p_multiple_entries_allowed_fla
195 ,p_multiply_value_flag => p_multiply_value_flag
196 ,p_post_termination_rule => p_post_termination_rule
197 ,p_process_in_run_flag => p_process_in_run_flag
198 ,p_processing_priority => p_processing_priority
199 ,p_processing_type => p_processing_type
200 ,p_standard_link_flag => p_standard_link_flag
201 ,p_comments => p_comments
202 ,p_legislation_subgroup => p_legislation_subgroup
203 ,p_qualifying_age => p_qualifying_age
204 ,p_qualifying_length_of_service => p_qualifying_length_of_service
205 ,p_qualifying_units => p_qualifying_units
206 ,p_attribute_category => p_attribute_category
207 ,p_attribute1 => p_attribute1
208 ,p_attribute2 => p_attribute2
209 ,p_attribute3 => p_attribute3
210 ,p_attribute4 => p_attribute4
211 ,p_attribute5 => p_attribute5
212 ,p_attribute6 => p_attribute6
213 ,p_attribute7 => p_attribute7
214 ,p_attribute8 => p_attribute8
215 ,p_attribute9 => p_attribute9
216 ,p_attribute10 => p_attribute10
217 ,p_attribute11 => p_attribute11
218 ,p_attribute12 => p_attribute12
219 ,p_attribute13 => p_attribute13
220 ,p_attribute14 => p_attribute14
221 ,p_attribute15 => p_attribute15
222 ,p_attribute16 => p_attribute16
223 ,p_attribute17 => p_attribute17
224 ,p_attribute18 => p_attribute18
225 ,p_attribute19 => p_attribute19
226 ,p_attribute20 => p_attribute20
227 ,p_element_information_category => p_element_information_category
228 ,p_element_information1 => p_element_information1
229 ,p_element_information2 => p_element_information2
230 ,p_element_information3 => p_element_information3
231 ,p_element_information4 => p_element_information4
232 ,p_element_information5 => p_element_information5
233 ,p_element_information6 => p_element_information6
234 ,p_element_information7 => p_element_information7
235 ,p_element_information8 => p_element_information8
236 ,p_element_information9 => p_element_information9
237 ,p_element_information10 => p_element_information10
238 ,p_element_information11 => p_element_information11
239 ,p_element_information12 => p_element_information12
240 ,p_element_information13 => p_element_information13
241 ,p_element_information14 => p_element_information14
242 ,p_element_information15 => p_element_information15
243 ,p_element_information16 => p_element_information16
244 ,p_element_information17 => p_element_information17
245 ,p_element_information18 => p_element_information18
246 ,p_element_information19 => p_element_information19
247 ,p_element_information20 => p_element_information20
248 ,p_third_party_pay_only_flag => p_third_party_pay_only_flag
249 ,p_iterative_flag => p_iterative_flag
250 ,p_iterative_formula_id => p_iterative_formula_id
251 ,p_iterative_priority => p_iterative_priority
252 ,p_creator_type => p_creator_type
253 ,p_retro_summ_ele_id => p_retro_summ_ele_id
254 ,p_grossup_flag => p_grossup_flag
255 ,p_process_mode => p_process_mode
256 ,p_advance_indicator => p_advance_indicator
257 ,p_advance_payable => p_advance_payable
258 ,p_advance_deduction => p_advance_deduction
259 ,p_process_advance_entry => p_process_advance_entry
260 ,p_proration_group_id => p_proration_group_id
261 ,p_proration_formula_id => p_proration_formula_id
262 ,p_recalc_event_group_id => p_recalc_event_group_id
263 ,p_default_uom => p_default_uom
264 ,p_once_each_period_flag => p_once_each_period_flag
265 ,p_language_code => l_language_code
266 ,p_time_definition_type => p_time_definition_type
267 ,p_time_definition_id => p_time_definition_id
268 ,p_advance_element_type_id => p_advance_element_type_id
269 ,p_deduction_element_type_id => p_deduction_element_type_id
270 );
271 exception
272 when hr_api.cannot_find_prog_unit then
273 hr_api.cannot_find_prog_unit_error
274 (p_module_name => 'CREATE_ELEMENT_TYPE'
275 ,p_hook_type => 'BP'
276 );
277 end;
278 --
279 -- Validation in addition to Row Handlers
280 --
281 Open c_non_payments;
282 Fetch c_non_payments into l_non_payments_flag, l_default_priority;
286 --
283 Close c_non_payments;
284 --
285 -- Default Processing Priority from the element classification
287 If p_processing_priority is null Then
288 l_processing_priority := l_default_priority;
289 Else
290 l_processing_priority := p_processing_priority;
291 End If;
292 --
293 -- Process Logic
294 --
295 pay_etp_ins.ins
296 (p_effective_date => l_effective_date
297 ,p_classification_id => p_classification_id
298 ,p_additional_entry_allowed_fla => p_additional_entry_allowed_fla
299 ,p_adjustment_only_flag => p_adjustment_only_flag
300 ,p_closed_for_entry_flag => p_closed_for_entry_flag
301 ,p_element_name => p_element_name
302 ,p_indirect_only_flag => p_indirect_only_flag
303 ,p_multiple_entries_allowed_fla => p_multiple_entries_allowed_fla
304 ,p_multiply_value_flag => p_multiply_value_flag
305 ,p_post_termination_rule => p_post_termination_rule
306 ,p_process_in_run_flag => p_process_in_run_flag
307 ,p_processing_priority => l_processing_priority
308 ,p_processing_type => p_processing_type
309 ,p_standard_link_flag => p_standard_link_flag
310 ,p_business_group_id => p_business_group_id
311 ,p_legislation_code => p_legislation_code
312 ,p_formula_id => p_formula_id
313 ,p_input_currency_code => p_input_currency_code
314 ,p_output_currency_code => p_output_currency_code
315 ,p_benefit_classification_id => p_benefit_classification_id
316 ,p_comments => p_comments
317 ,p_description => p_description
318 ,p_legislation_subgroup => p_legislation_subgroup
319 ,p_qualifying_age => p_qualifying_age
320 ,p_qualifying_length_of_service => p_qualifying_length_of_service
321 ,p_qualifying_units => p_qualifying_units
322 ,p_reporting_name => p_reporting_name
323 ,p_attribute_category => p_attribute_category
324 ,p_attribute1 => p_attribute1
325 ,p_attribute2 => p_attribute2
326 ,p_attribute3 => p_attribute3
327 ,p_attribute4 => p_attribute4
328 ,p_attribute5 => p_attribute5
329 ,p_attribute6 => p_attribute6
330 ,p_attribute7 => p_attribute7
331 ,p_attribute8 => p_attribute8
332 ,p_attribute9 => p_attribute9
333 ,p_attribute10 => p_attribute10
334 ,p_attribute11 => p_attribute11
335 ,p_attribute12 => p_attribute12
336 ,p_attribute13 => p_attribute13
337 ,p_attribute14 => p_attribute14
338 ,p_attribute15 => p_attribute15
339 ,p_attribute16 => p_attribute16
340 ,p_attribute17 => p_attribute17
341 ,p_attribute18 => p_attribute18
342 ,p_attribute19 => p_attribute19
343 ,p_attribute20 => p_attribute20
344 ,p_element_information_category => p_element_information_category
345 ,p_element_information1 => p_element_information1
346 ,p_element_information2 => p_element_information2
347 ,p_element_information3 => p_element_information3
348 ,p_element_information4 => p_element_information4
349 ,p_element_information5 => p_element_information5
350 ,p_element_information6 => p_element_information6
351 ,p_element_information7 => p_element_information7
352 ,p_element_information8 => p_element_information8
353 ,p_element_information9 => p_element_information9
354 ,p_element_information10 => p_element_information10
355 ,p_element_information11 => p_element_information11
356 ,p_element_information12 => p_element_information12
357 ,p_element_information13 => p_element_information13
358 ,p_element_information14 => p_element_information14
359 ,p_element_information15 => p_element_information15
360 ,p_element_information16 => p_element_information16
361 ,p_element_information17 => p_element_information17
362 ,p_element_information18 => p_element_information18
363 ,p_element_information19 => p_element_information19
364 ,p_element_information20 => p_element_information20
365 ,p_third_party_pay_only_flag => p_third_party_pay_only_flag
366 ,p_iterative_flag => p_iterative_flag
367 ,p_iterative_formula_id => p_iterative_formula_id
368 ,p_iterative_priority => p_iterative_priority
369 ,p_creator_type => p_creator_type
370 ,p_retro_summ_ele_id => p_retro_summ_ele_id
371 ,p_grossup_flag => p_grossup_flag
372 ,p_process_mode => p_process_mode
373 ,p_advance_indicator => p_advance_indicator
374 ,p_advance_payable => p_advance_payable
375 ,p_advance_deduction => p_advance_deduction
376 ,p_process_advance_entry => p_process_advance_entry
380 ,p_once_each_period_flag => p_once_each_period_flag
377 ,p_proration_group_id => p_proration_group_id
378 ,p_proration_formula_id => p_proration_formula_id
379 ,p_recalc_event_group_id => p_recalc_event_group_id
381 ,p_time_definition_type => p_time_definition_type
382 ,p_time_definition_id => p_time_definition_id
383 ,p_advance_element_type_id => p_advance_element_type_id
384 ,p_deduction_element_type_id => p_deduction_element_type_id
385 ,p_element_type_id => l_element_type_id
386 ,p_object_version_number => l_object_version_number
387 ,p_effective_start_date => l_effective_start_date
388 ,p_effective_end_date => l_effective_end_date
389 ,p_comment_id => l_comment_id
390 ,p_processing_priority_warning => l_processing_priority_warning
391 );
392
393 --
394 -- Create default entries in pay_element_types_f_tl table
395 --
396 pay_ett_ins.ins_tl
397 (p_language_code => l_language_code
398 ,p_element_type_id => l_element_type_id
399 ,p_element_name => p_element_name
400 ,p_reporting_name => p_reporting_name
401 ,p_description => p_description
402 );
403 --
404 -- Create element DB items on the entity horizon
405 --
406 hrdyndbi.create_element_type_dict(l_element_type_id,
407 l_effective_start_date);
408
409
410 If (p_process_in_run_flag = 'Y' and nvl(l_non_payments_flag,'Y') = 'N') Then
411 --
412 -- Create default input value
413 --
414 -- Bug 4445125. generate_db_items_flag must be always 'Y' for
415 -- default input value.
416 --
417 l_generate_db_items_flag := 'Y';
418 --
419 l_display_sequence := l_display_sequence + 1;
420 --
421 pay_input_value_api.create_input_value
422 (p_validate => false
423 ,p_effective_date => l_effective_date
424 ,p_element_type_id => l_element_type_id
425 ,p_name => 'Pay Value'
426 ,p_uom => 'M'
427 ,p_display_sequence => l_display_sequence
428 ,p_generate_db_items_flag => l_generate_db_items_flag
429 ,p_input_value_id => l_input_value_id
430 ,p_object_version_number => l_iv_object_version_number
431 ,p_effective_start_date => l_iv_effective_start_date
432 ,p_effective_end_date => l_iv_effective_end_date
433 ,p_default_val_warning => l_default_val_warning
434 ,p_min_max_warning => l_min_max_warning
435 ,p_pay_basis_warning => l_pay_basis_warning
436 ,p_formula_warning => l_formula_warning
437 ,p_assignment_id_warning => l_assignment_id_warning
438 ,p_formula_message => l_formula_message
439 );
440 --
441 End If;
442 --
443 Open c_contributions_used;
444 Fetch c_contributions_used into l_contributions_used;
445 Close c_contributions_used;
446 --
447 If nvl(l_contributions_used,'N') = 'Y' Then
448 --
449 -- Create default benefit input values for type A benefit plans
450 --
451 pay_input_value_api.create_input_value
452 (p_validate => false
453 ,p_effective_date => l_effective_date
454 ,p_element_type_id => l_element_type_id
455 ,p_name => 'Coverage'
456 ,p_uom => 'C'
457 ,p_display_sequence => (l_display_sequence + 1)
458 ,p_generate_db_items_flag => 'Y'
459 ,p_hot_default_flag => 'N'
460 ,p_input_value_id => l_input_value_id
461 ,p_object_version_number => l_iv_object_version_number
462 ,p_effective_start_date => l_iv_effective_start_date
463 ,p_effective_end_date => l_iv_effective_end_date
464 ,p_default_val_warning => l_default_val_warning
465 ,p_min_max_warning => l_min_max_warning
466 ,p_pay_basis_warning => l_pay_basis_warning
467 ,p_formula_warning => l_formula_warning
468 ,p_assignment_id_warning => l_assignment_id_warning
469 ,p_formula_message => l_formula_message
470 );
471 --
472 pay_input_value_api.create_input_value
473 (p_validate => false
474 ,p_effective_date => l_effective_date
475 ,p_element_type_id => l_element_type_id
476 ,p_name => 'ER Contr'
477 ,p_uom => p_default_uom
478 ,p_display_sequence => (l_display_sequence + 2)
479 ,p_generate_db_items_flag => 'Y'
480 ,p_hot_default_flag => 'N'
481 ,p_input_value_id => l_input_value_id
482 ,p_object_version_number => l_iv_object_version_number
483 ,p_effective_start_date => l_iv_effective_start_date
484 ,p_effective_end_date => l_iv_effective_end_date
485 ,p_default_val_warning => l_default_val_warning
486 ,p_min_max_warning => l_min_max_warning
487 ,p_pay_basis_warning => l_pay_basis_warning
488 ,p_formula_warning => l_formula_warning
489 ,p_assignment_id_warning => l_assignment_id_warning
490 ,p_formula_message => l_formula_message
491 );
492 --
493 pay_input_value_api.create_input_value
494 (p_validate => false
498 ,p_uom => p_default_uom
495 ,p_effective_date => l_effective_date
496 ,p_element_type_id => l_element_type_id
497 ,p_name => 'EE Contr'
499 ,p_display_sequence => (l_display_sequence + 3)
500 ,p_generate_db_items_flag => 'Y'
501 ,p_hot_default_flag => 'N'
502 ,p_input_value_id => l_input_value_id
503 ,p_object_version_number => l_iv_object_version_number
504 ,p_effective_start_date => l_iv_effective_start_date
505 ,p_effective_end_date => l_iv_effective_end_date
506 ,p_default_val_warning => l_default_val_warning
507 ,p_min_max_warning => l_min_max_warning
508 ,p_pay_basis_warning => l_pay_basis_warning
509 ,p_formula_warning => l_formula_warning
510 ,p_assignment_id_warning => l_assignment_id_warning
511 ,p_formula_message => l_formula_message
512 );
513 --
514 End If;
515 --
516 -- Create sub-classification rules
517 --
518 pay_sub_class_rules_pkg.insert_defaults
519 (l_element_type_id
520 ,p_classification_id
521 ,l_effective_start_date
522 ,l_effective_end_date
523 ,p_business_group_id
524 ,null);
525 --
526 -- Populate the retro component usages for the element type.
527 --
528 pay_retro_comp_usage_internal.populate_retro_comp_usages
529 (p_effective_date => l_effective_date
530 ,p_element_type_id => l_element_type_id
531 );
532 --
533 --
534 -- Call After Process User Hook
535 --
536 begin
537 PAY_ELEMENT_TYPES_BK1.CREATE_ELEMENT_TYPE_a
538 (p_effective_date => p_effective_date
539 ,p_classification_id => p_classification_id
540 ,p_element_name => p_element_name
541 ,p_business_group_id => p_business_group_id
542 ,p_legislation_code => p_legislation_code
543 ,p_formula_id => p_formula_id
544 ,p_input_currency_code => l_input_currency_code
545 ,p_output_currency_code => l_output_currency_code
546 ,p_benefit_classification_id => p_benefit_classification_id
547 ,p_additional_entry_allowed_fla => p_additional_entry_allowed_fla
548 ,p_adjustment_only_flag => p_adjustment_only_flag
549 ,p_closed_for_entry_flag => p_closed_for_entry_flag
550 ,p_reporting_name => p_reporting_name
551 ,p_description => p_description
552 ,p_indirect_only_flag => p_indirect_only_flag
553 ,p_multiple_entries_allowed_fla => p_multiple_entries_allowed_fla
554 ,p_multiply_value_flag => p_multiply_value_flag
555 ,p_post_termination_rule => p_post_termination_rule
556 ,p_process_in_run_flag => p_process_in_run_flag
557 ,p_processing_priority => l_processing_priority
558 ,p_processing_type => p_processing_type
559 ,p_standard_link_flag => p_standard_link_flag
560 ,p_comments => p_comments
561 ,p_legislation_subgroup => p_legislation_subgroup
562 ,p_qualifying_age => p_qualifying_age
563 ,p_qualifying_length_of_service => p_qualifying_length_of_service
564 ,p_qualifying_units => p_qualifying_units
565 ,p_attribute_category => p_attribute_category
566 ,p_attribute1 => p_attribute1
567 ,p_attribute2 => p_attribute2
568 ,p_attribute3 => p_attribute3
569 ,p_attribute4 => p_attribute4
570 ,p_attribute5 => p_attribute5
571 ,p_attribute6 => p_attribute6
572 ,p_attribute7 => p_attribute7
573 ,p_attribute8 => p_attribute8
574 ,p_attribute9 => p_attribute9
575 ,p_attribute10 => p_attribute10
576 ,p_attribute11 => p_attribute11
577 ,p_attribute12 => p_attribute12
578 ,p_attribute13 => p_attribute13
579 ,p_attribute14 => p_attribute14
580 ,p_attribute15 => p_attribute15
581 ,p_attribute16 => p_attribute16
582 ,p_attribute17 => p_attribute17
583 ,p_attribute18 => p_attribute18
584 ,p_attribute19 => p_attribute19
585 ,p_attribute20 => p_attribute20
586 ,p_element_information_category => p_element_information_category
587 ,p_element_information1 => p_element_information1
588 ,p_element_information2 => p_element_information2
589 ,p_element_information3 => p_element_information3
590 ,p_element_information4 => p_element_information4
591 ,p_element_information5 => p_element_information5
592 ,p_element_information6 => p_element_information6
593 ,p_element_information7 => p_element_information7
594 ,p_element_information8 => p_element_information8
595 ,p_element_information9 => p_element_information9
599 ,p_element_information13 => p_element_information13
596 ,p_element_information10 => p_element_information10
597 ,p_element_information11 => p_element_information11
598 ,p_element_information12 => p_element_information12
600 ,p_element_information14 => p_element_information14
601 ,p_element_information15 => p_element_information15
602 ,p_element_information16 => p_element_information16
603 ,p_element_information17 => p_element_information17
604 ,p_element_information18 => p_element_information18
605 ,p_element_information19 => p_element_information19
606 ,p_element_information20 => p_element_information20
607 ,p_third_party_pay_only_flag => p_third_party_pay_only_flag
608 ,p_iterative_flag => p_iterative_flag
609 ,p_iterative_formula_id => p_iterative_formula_id
610 ,p_iterative_priority => p_iterative_priority
611 ,p_creator_type => p_creator_type
612 ,p_retro_summ_ele_id => p_retro_summ_ele_id
613 ,p_grossup_flag => p_grossup_flag
614 ,p_process_mode => p_process_mode
615 ,p_advance_indicator => p_advance_indicator
616 ,p_advance_payable => p_advance_payable
617 ,p_advance_deduction => p_advance_deduction
618 ,p_process_advance_entry => p_process_advance_entry
619 ,p_proration_group_id => p_proration_group_id
620 ,p_proration_formula_id => p_proration_formula_id
621 ,p_recalc_event_group_id => p_recalc_event_group_id
622 ,p_default_uom => p_default_uom
623 ,p_once_each_period_flag => p_once_each_period_flag
624 ,p_language_code => l_language_code
625 ,p_time_definition_type => p_time_definition_type
626 ,p_time_definition_id => p_time_definition_id
627 ,p_advance_element_type_id => p_advance_element_type_id
628 ,p_deduction_element_type_id => p_deduction_element_type_id
629 ,p_element_type_id => l_element_type_id
630 ,p_effective_start_date => l_effective_start_date
631 ,p_effective_end_date => l_effective_end_date
632 ,p_object_version_number => l_object_version_number
633 ,p_comment_id => l_comment_id
634 ,p_processing_priority_warning => l_processing_priority_warning
635 );
636 exception
637 when hr_api.cannot_find_prog_unit then
638 hr_api.cannot_find_prog_unit_error
639 (p_module_name => 'CREATE_ELEMENT_TYPE'
640 ,p_hook_type => 'AP'
641 );
642 end;
643 --
644 -- When in validation only mode raise the Validate_Enabled exception
645 --
646 if p_validate then
647 raise hr_api.validate_enabled;
648 end if;
649 --
650 -- Set all output arguments
651 --
652 p_element_type_id := l_element_type_id;
653 p_effective_start_date := l_effective_start_date;
654 p_effective_end_date := l_effective_end_date;
655 p_object_version_number := l_object_version_number;
656 p_comment_id := l_comment_id;
657 p_processing_priority_warning := l_processing_priority_warning;
658 --
659 hr_utility.set_location(' Leaving:'||l_proc, 70);
660 exception
661 when hr_api.validate_enabled then
662 --
663 -- As the Validate_Enabled exception has been raised
664 -- we must rollback to the savepoint
665 --
666 rollback to CREATE_ELEMENT_TYPE;
667 --
668 -- Only set output warning arguments
669 -- (Any key or derived arguments must be set to null
670 -- when validation only mode is being used.)
671 --
672 p_element_type_id := null;
673 p_object_version_number := null;
674 p_effective_start_date := null;
675 p_effective_end_date := null;
676 p_comment_id := null;
677 p_processing_priority_warning := l_processing_priority_warning;
678 --
679 hr_utility.set_location(' Leaving:'||l_proc, 80);
680 when others then
681 --
682 -- A validation or unexpected error has occured
683 --
684 rollback to CREATE_ELEMENT_TYPE;
685 hr_utility.set_location(' Leaving:'||l_proc, 90);
686 raise;
687 end CREATE_ELEMENT_TYPE;
688 --
689 -- ----------------------------------------------------------------------------
690 -- |--------------------------< UPDATE_ELEMENT_TYPE >-------------------------|
691 -- ----------------------------------------------------------------------------
692 --
693 procedure UPDATE_ELEMENT_TYPE
694 (p_validate in boolean default false
695 ,p_effective_date in date
696 ,p_datetrack_update_mode in varchar2
697 ,p_element_type_id in number
698 ,p_object_version_number in out nocopy number
699 ,p_formula_id in number default hr_api.g_number
700 ,p_benefit_classification_id in number default hr_api.g_number
701 ,p_additional_entry_allowed_fla in varchar2 default hr_api.g_varchar2
702 ,p_adjustment_only_flag in varchar2 default hr_api.g_varchar2
703 ,p_closed_for_entry_flag in varchar2 default hr_api.g_varchar2
704 ,p_element_name in varchar2 default hr_api.g_varchar2
705 ,p_reporting_name in varchar2 default hr_api.g_varchar2
709 ,p_multiply_value_flag in varchar2 default hr_api.g_varchar2
706 ,p_description in varchar2 default hr_api.g_varchar2
707 ,p_indirect_only_flag in varchar2 default hr_api.g_varchar2
708 ,p_multiple_entries_allowed_fla in varchar2 default hr_api.g_varchar2
710 ,p_post_termination_rule in varchar2 default hr_api.g_varchar2
711 ,p_process_in_run_flag in varchar2 default hr_api.g_varchar2
712 ,p_processing_priority in number default hr_api.g_number
713 ,p_standard_link_flag in varchar2 default hr_api.g_varchar2
714 ,p_comments in varchar2 default hr_api.g_varchar2
715 ,p_third_party_pay_only_flag in varchar2 default hr_api.g_varchar2
716 ,p_iterative_flag in varchar2 default hr_api.g_varchar2
717 ,p_iterative_formula_id in number default hr_api.g_number
718 ,p_iterative_priority in number default hr_api.g_number
719 ,p_creator_type in varchar2 default hr_api.g_varchar2
720 ,p_retro_summ_ele_id in number default hr_api.g_number
721 ,p_grossup_flag in varchar2 default hr_api.g_varchar2
722 ,p_process_mode in varchar2 default hr_api.g_varchar2
723 ,p_advance_indicator in varchar2 default hr_api.g_varchar2
724 ,p_advance_payable in varchar2 default hr_api.g_varchar2
725 ,p_advance_deduction in varchar2 default hr_api.g_varchar2
726 ,p_process_advance_entry in varchar2 default hr_api.g_varchar2
727 ,p_proration_group_id in number default hr_api.g_number
728 ,p_proration_formula_id in number default hr_api.g_number
729 ,p_recalc_event_group_id in number default hr_api.g_number
730 ,p_qualifying_age in number default hr_api.g_number
731 ,p_qualifying_length_of_service in number default hr_api.g_number
732 ,p_qualifying_units in varchar2 default hr_api.g_varchar2
733 ,p_attribute_category in varchar2 default hr_api.g_varchar2
734 ,p_attribute1 in varchar2 default hr_api.g_varchar2
735 ,p_attribute2 in varchar2 default hr_api.g_varchar2
736 ,p_attribute3 in varchar2 default hr_api.g_varchar2
737 ,p_attribute4 in varchar2 default hr_api.g_varchar2
738 ,p_attribute5 in varchar2 default hr_api.g_varchar2
739 ,p_attribute6 in varchar2 default hr_api.g_varchar2
740 ,p_attribute7 in varchar2 default hr_api.g_varchar2
741 ,p_attribute8 in varchar2 default hr_api.g_varchar2
742 ,p_attribute9 in varchar2 default hr_api.g_varchar2
743 ,p_attribute10 in varchar2 default hr_api.g_varchar2
744 ,p_attribute11 in varchar2 default hr_api.g_varchar2
745 ,p_attribute12 in varchar2 default hr_api.g_varchar2
746 ,p_attribute13 in varchar2 default hr_api.g_varchar2
747 ,p_attribute14 in varchar2 default hr_api.g_varchar2
748 ,p_attribute15 in varchar2 default hr_api.g_varchar2
749 ,p_attribute16 in varchar2 default hr_api.g_varchar2
750 ,p_attribute17 in varchar2 default hr_api.g_varchar2
751 ,p_attribute18 in varchar2 default hr_api.g_varchar2
752 ,p_attribute19 in varchar2 default hr_api.g_varchar2
753 ,p_attribute20 in varchar2 default hr_api.g_varchar2
754 ,p_element_information_category in varchar2 default hr_api.g_varchar2
755 ,p_element_information1 in varchar2 default hr_api.g_varchar2
756 ,p_element_information2 in varchar2 default hr_api.g_varchar2
757 ,p_element_information3 in varchar2 default hr_api.g_varchar2
758 ,p_element_information4 in varchar2 default hr_api.g_varchar2
759 ,p_element_information5 in varchar2 default hr_api.g_varchar2
760 ,p_element_information6 in varchar2 default hr_api.g_varchar2
761 ,p_element_information7 in varchar2 default hr_api.g_varchar2
762 ,p_element_information8 in varchar2 default hr_api.g_varchar2
763 ,p_element_information9 in varchar2 default hr_api.g_varchar2
764 ,p_element_information10 in varchar2 default hr_api.g_varchar2
765 ,p_element_information11 in varchar2 default hr_api.g_varchar2
766 ,p_element_information12 in varchar2 default hr_api.g_varchar2
767 ,p_element_information13 in varchar2 default hr_api.g_varchar2
768 ,p_element_information14 in varchar2 default hr_api.g_varchar2
769 ,p_element_information15 in varchar2 default hr_api.g_varchar2
770 ,p_element_information16 in varchar2 default hr_api.g_varchar2
771 ,p_element_information17 in varchar2 default hr_api.g_varchar2
772 ,p_element_information18 in varchar2 default hr_api.g_varchar2
773 ,p_element_information19 in varchar2 default hr_api.g_varchar2
774 ,p_element_information20 in varchar2 default hr_api.g_varchar2
775 ,p_once_each_period_flag in varchar2 default hr_api.g_varchar2
776 ,p_language_code in varchar2 default hr_api.userenv_lang
777 ,p_time_definition_type in varchar2 default hr_api.g_varchar2
781 ,p_effective_start_date out nocopy date
778 ,p_time_definition_id in number default hr_api.g_number
779 ,p_advance_element_type_id in number default hr_api.g_number
780 ,p_deduction_element_type_id in number default hr_api.g_number
782 ,p_effective_end_date out nocopy date
783 ,p_comment_id out nocopy number
784 ,p_processing_priority_warning out nocopy boolean
785 ,p_element_name_warning out nocopy boolean
786 ,p_element_name_change_warning out nocopy boolean
787 ) is
788 --
789 -- Declare cursors and local variables
790 --
791
792 l_proc varchar2(72):=g_package||'UPDATE_ELEMENT_TYPE';
793 l_effective_date date;
794 l_effective_start_date date;
795 l_effective_end_date date;
796 l_processing_priority_warning boolean;
797 l_element_name_warning boolean;
798 l_element_name_change_warning boolean;
799 l_rowcount number;
800 l_datetrack_update_mode varchar2(30) := p_datetrack_update_mode;
801 l_object_version_number pay_element_types_f.object_version_number%type;
802 l_comment_id pay_element_types_f.comment_id%type;
803 l_old_rec pay_element_types_f%rowtype;
804 l_current_rec pay_element_types_f_tl%rowtype;
805 l_base_element_name pay_element_types_f.element_name%type;
806 l_recreate_db_items varchar2(1) := 'N';
807 l_language_code pay_element_types_f_tl.language%type;
808
809 Cursor c_old_rec (v_effective_date date)
810 is
811 select etp.*
812 from pay_element_types_f etp
813 where element_type_id = p_element_type_id
814 and nvl(v_effective_date,effective_start_date) >= effective_start_date
815 and nvl(v_effective_date,effective_end_date) <= effective_end_date;
816 --
817 CURSOR elem_cursor (p_language_code in varchar2)
818 IS
819 SELECT source_lang, element_name, element_type_id
820 FROM pay_element_types_f_tl ett
821 WHERE ett.element_type_id = p_element_type_id
822 AND ett.language = nvl(p_language_code,ett.language);
823
824 begin
825 hr_utility.set_location('Entering:'|| l_proc, 10);
826 --
827 -- Issue a savepoint
828 --
829 savepoint UPDATE_ELEMENT_TYPE;
830 --
831 -- Truncate the time portion from all IN date parameters
832 --
833 l_effective_date := trunc(p_effective_date);
834 l_object_version_number := p_object_version_number;
835 --
836 -- Validate the language parameter. l_language_code should be passed to
837 -- functions instead of p_language_code from now on, to allow an IN OUT
838 -- parameter to be passed through.
839 --
840 l_language_code := p_language_code;
841 hr_api.validate_language_code(p_language_code => l_language_code);
842 --
843 l_element_name_warning := false;
844 l_element_name_change_warning := false;
845 --
846 -- Call Before Process User Hook
847 --
848 begin
849 PAY_ELEMENT_TYPES_BK2.UPDATE_ELEMENT_TYPE_b
850 (p_effective_date => l_effective_date
851 ,p_datetrack_update_mode => p_datetrack_update_mode
852 ,p_element_type_id => p_element_type_id
853 ,p_object_version_number => l_object_version_number
854 ,p_formula_id => p_formula_id
855 ,p_benefit_classification_id => p_benefit_classification_id
856 ,p_additional_entry_allowed_fla => p_additional_entry_allowed_fla
857 ,p_adjustment_only_flag => p_adjustment_only_flag
858 ,p_closed_for_entry_flag => p_closed_for_entry_flag
859 ,p_element_name => p_element_name
860 ,p_reporting_name => p_reporting_name
861 ,p_description => p_description
862 ,p_indirect_only_flag => p_indirect_only_flag
863 ,p_multiple_entries_allowed_fla => p_multiple_entries_allowed_fla
864 ,p_multiply_value_flag => p_multiply_value_flag
865 ,p_post_termination_rule => p_post_termination_rule
866 ,p_process_in_run_flag => p_process_in_run_flag
867 ,p_processing_priority => p_processing_priority
868 ,p_standard_link_flag => p_standard_link_flag
869 ,p_comments => p_comments
870 ,p_qualifying_age => p_qualifying_age
871 ,p_qualifying_length_of_service => p_qualifying_length_of_service
872 ,p_qualifying_units => p_qualifying_units
873 ,p_attribute_category => p_attribute_category
874 ,p_attribute1 => p_attribute1
875 ,p_attribute2 => p_attribute2
876 ,p_attribute3 => p_attribute3
877 ,p_attribute4 => p_attribute4
878 ,p_attribute5 => p_attribute5
879 ,p_attribute6 => p_attribute6
880 ,p_attribute7 => p_attribute7
881 ,p_attribute8 => p_attribute8
882 ,p_attribute9 => p_attribute9
883 ,p_attribute10 => p_attribute10
884 ,p_attribute11 => p_attribute11
885 ,p_attribute12 => p_attribute12
886 ,p_attribute13 => p_attribute13
887 ,p_attribute14 => p_attribute14
888 ,p_attribute15 => p_attribute15
892 ,p_attribute19 => p_attribute19
889 ,p_attribute16 => p_attribute16
890 ,p_attribute17 => p_attribute17
891 ,p_attribute18 => p_attribute18
893 ,p_attribute20 => p_attribute20
894 ,p_element_information_category => p_element_information_category
895 ,p_element_information1 => p_element_information1
896 ,p_element_information2 => p_element_information2
897 ,p_element_information3 => p_element_information3
898 ,p_element_information4 => p_element_information4
899 ,p_element_information5 => p_element_information5
900 ,p_element_information6 => p_element_information6
901 ,p_element_information7 => p_element_information7
902 ,p_element_information8 => p_element_information8
903 ,p_element_information9 => p_element_information9
904 ,p_element_information10 => p_element_information10
905 ,p_element_information11 => p_element_information11
906 ,p_element_information12 => p_element_information12
907 ,p_element_information13 => p_element_information13
908 ,p_element_information14 => p_element_information14
909 ,p_element_information15 => p_element_information15
910 ,p_element_information16 => p_element_information16
911 ,p_element_information17 => p_element_information17
912 ,p_element_information18 => p_element_information18
913 ,p_element_information19 => p_element_information19
914 ,p_element_information20 => p_element_information20
915 ,p_third_party_pay_only_flag => p_third_party_pay_only_flag
916 ,p_iterative_flag => p_iterative_flag
917 ,p_iterative_formula_id => p_iterative_formula_id
918 ,p_iterative_priority => p_iterative_priority
919 ,p_creator_type => p_creator_type
920 ,p_retro_summ_ele_id => p_retro_summ_ele_id
921 ,p_grossup_flag => p_grossup_flag
922 ,p_process_mode => p_process_mode
923 ,p_advance_indicator => p_advance_indicator
924 ,p_advance_payable => p_advance_payable
925 ,p_advance_deduction => p_advance_deduction
926 ,p_process_advance_entry => p_process_advance_entry
927 ,p_proration_group_id => p_proration_group_id
928 ,p_proration_formula_id => p_proration_formula_id
929 ,p_recalc_event_group_id => p_recalc_event_group_id
930 ,p_once_each_period_flag => p_once_each_period_flag
931 ,p_language_code => l_language_code
932 ,p_time_definition_type => p_time_definition_type
933 ,p_time_definition_id => p_time_definition_id
934 ,p_advance_element_type_id => p_advance_element_type_id
935 ,p_deduction_element_type_id => p_deduction_element_type_id
936 );
937 exception
938 when hr_api.cannot_find_prog_unit then
939 hr_api.cannot_find_prog_unit_error
940 (p_module_name => 'UPDATE_ELEMENT_TYPE'
941 ,p_hook_type => 'BP'
942 );
943 end;
944 --
945 -- Validation in addition to Row Handlers
946 --
947 Open c_old_rec(l_effective_date);
948 Fetch c_old_rec into l_old_rec;
949 If c_old_rec%notfound then
950 Close c_old_rec;
951 --
952 -- The primary key is invalid therefore we must error
953 --
954 fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
955 fnd_message.raise_error;
956 End If;
957 Close c_old_rec;
958 --
959 -- Enforce datetrack mode to 'CORRECTION' if certain columns are updated.
960 --
961 If (
962 (p_element_name <> hr_api.g_varchar2 and
963 p_element_name <> l_old_rec.element_name)
964 or
965 (p_reporting_name <> hr_api.g_varchar2 and
966 p_reporting_name <> l_old_rec.reporting_name)
967 or
968 (p_indirect_only_flag <> hr_api.g_varchar2 and
969 p_indirect_only_flag <> l_old_rec.indirect_only_flag)
970 or
971 (p_additional_entry_allowed_fla <> hr_api.g_varchar2 and
972 p_additional_entry_allowed_fla <>
973 l_old_rec.additional_entry_allowed_flag)
974 or
975 (p_standard_link_flag <> hr_api.g_varchar2 and
976 p_standard_link_flag <> l_old_rec.standard_link_flag)
977 or
978 (p_adjustment_only_flag <> hr_api.g_varchar2 and
979 p_adjustment_only_flag <> l_old_rec.adjustment_only_flag)
980 or
981 (p_post_termination_rule <> hr_api.g_varchar2 and
982 p_post_termination_rule <> l_old_rec.post_termination_rule)
983 or
984 (p_process_in_run_flag <> hr_api.g_varchar2 and
985 p_process_in_run_flag <> l_old_rec.process_in_run_flag)
986 or
987 (p_third_party_pay_only_flag <> hr_api.g_varchar2 and
988 p_third_party_pay_only_flag <> l_old_rec.third_party_pay_only_flag)
989 or
990 (p_once_each_period_flag <> hr_api.g_varchar2 and
991 p_once_each_period_flag <> l_old_rec.once_each_period_flag)
992 ) Then
993 --
994 Open c_old_rec(null);
995 Loop
996 Fetch c_old_rec into l_old_rec;
997 Exit When c_old_rec%notfound;
998 End Loop;
999 l_rowcount := c_old_rec%rowcount;
1000 Close c_old_rec;
1001 --
1002 If l_rowcount > 1 then
1006 --
1003 --
1004 -- Update not allowed if element has already been date-effectively
1005 -- updated.
1007 fnd_message.set_name('PAY', 'PAY_34151_ELE_NO_DATE_UPD');
1008 fnd_message.raise_error;
1009 End If;
1010 --
1011 If nvl(p_datetrack_update_mode,hr_api.g_correction)
1012 <> hr_api.g_correction Then
1013 l_datetrack_update_mode := hr_api.g_correction;
1014 End if;
1015 --
1016 End If;
1017 --
1018 l_base_element_name := l_old_rec.element_name;
1019 --
1020 -- Fetch the TL row for the userenv language
1021 --
1022 Open elem_cursor(l_language_code);
1023 Fetch elem_cursor into l_current_rec.source_lang,
1024 l_current_rec.element_name,
1025 l_current_rec.element_type_id;
1026 Close elem_cursor;
1027 --
1028 If (p_element_name <> hr_api.g_varchar2 and
1029 p_element_name <> l_current_rec.element_name) then
1030 --
1031 -- Fetch all the TL rows for the element
1032 --
1033 for elem_record in elem_cursor (null)
1034 loop
1035 if l_current_rec.element_name = elem_record.element_name then
1036 if elem_record.source_lang = l_language_code then
1037 l_base_element_name := p_element_name;
1038 l_recreate_db_items := 'Y';
1039 else
1040 l_element_name_warning := true;
1041 end if;
1042 end if;
1043 end loop;
1044 --
1045 l_element_name_change_warning := true;
1046 --
1047 End If;
1048 --
1049 --
1050 -- Process Logic
1051 --
1052 pay_etp_upd.upd
1053 (p_effective_date => l_effective_date
1054 ,p_datetrack_mode => l_datetrack_update_mode
1055 ,p_element_type_id => p_element_type_id
1056 ,p_object_version_number => l_object_version_number
1057 ,p_additional_entry_allowed_fla => p_additional_entry_allowed_fla
1058 ,p_adjustment_only_flag => p_adjustment_only_flag
1059 ,p_closed_for_entry_flag => p_closed_for_entry_flag
1060 ,p_element_name => l_base_element_name
1061 ,p_indirect_only_flag => p_indirect_only_flag
1062 ,p_multiple_entries_allowed_fla => p_multiple_entries_allowed_fla
1063 ,p_multiply_value_flag => p_multiply_value_flag
1064 ,p_post_termination_rule => p_post_termination_rule
1065 ,p_process_in_run_flag => p_process_in_run_flag
1066 ,p_processing_priority => p_processing_priority
1067 ,p_standard_link_flag => p_standard_link_flag
1068 ,p_formula_id => p_formula_id
1069 ,p_benefit_classification_id => p_benefit_classification_id
1070 ,p_description => p_description
1071 ,p_qualifying_age => p_qualifying_age
1072 ,p_qualifying_length_of_service => p_qualifying_length_of_service
1073 ,p_qualifying_units => p_qualifying_units
1074 ,p_reporting_name => p_reporting_name
1075 ,p_attribute_category => p_attribute_category
1076 ,p_attribute1 => p_attribute1
1077 ,p_attribute2 => p_attribute2
1078 ,p_attribute3 => p_attribute3
1079 ,p_attribute4 => p_attribute4
1080 ,p_attribute5 => p_attribute5
1081 ,p_attribute6 => p_attribute6
1082 ,p_attribute7 => p_attribute7
1083 ,p_attribute8 => p_attribute8
1084 ,p_attribute9 => p_attribute9
1085 ,p_attribute10 => p_attribute10
1086 ,p_attribute11 => p_attribute11
1087 ,p_attribute12 => p_attribute12
1088 ,p_attribute13 => p_attribute13
1089 ,p_attribute14 => p_attribute14
1090 ,p_attribute15 => p_attribute15
1091 ,p_attribute16 => p_attribute16
1092 ,p_attribute17 => p_attribute17
1093 ,p_attribute18 => p_attribute18
1094 ,p_attribute19 => p_attribute19
1095 ,p_attribute20 => p_attribute20
1096 ,p_element_information_category => p_element_information_category
1097 ,p_element_information1 => p_element_information1
1098 ,p_element_information2 => p_element_information2
1099 ,p_element_information3 => p_element_information3
1100 ,p_element_information4 => p_element_information4
1101 ,p_element_information5 => p_element_information5
1102 ,p_element_information6 => p_element_information6
1103 ,p_element_information7 => p_element_information7
1104 ,p_element_information8 => p_element_information8
1105 ,p_element_information9 => p_element_information9
1106 ,p_element_information10 => p_element_information10
1107 ,p_element_information11 => p_element_information11
1108 ,p_element_information12 => p_element_information12
1109 ,p_element_information13 => p_element_information13
1110 ,p_element_information14 => p_element_information14
1111 ,p_element_information15 => p_element_information15
1112 ,p_element_information16 => p_element_information16
1113 ,p_element_information17 => p_element_information17
1114 ,p_element_information18 => p_element_information18
1115 ,p_element_information19 => p_element_information19
1119 ,p_iterative_formula_id => p_iterative_formula_id
1116 ,p_element_information20 => p_element_information20
1117 ,p_third_party_pay_only_flag => p_third_party_pay_only_flag
1118 ,p_iterative_flag => p_iterative_flag
1120 ,p_iterative_priority => p_iterative_priority
1121 ,p_creator_type => p_creator_type
1122 ,p_retro_summ_ele_id => p_retro_summ_ele_id
1123 ,p_grossup_flag => p_grossup_flag
1124 ,p_process_mode => p_process_mode
1125 ,p_advance_indicator => p_advance_indicator
1126 ,p_advance_payable => p_advance_payable
1127 ,p_advance_deduction => p_advance_deduction
1128 ,p_process_advance_entry => p_process_advance_entry
1129 ,p_proration_group_id => p_proration_group_id
1130 ,p_proration_formula_id => p_proration_formula_id
1131 ,p_recalc_event_group_id => p_recalc_event_group_id
1132 ,p_once_each_period_flag => p_once_each_period_flag
1133 ,p_time_definition_type => p_time_definition_type
1134 ,p_time_definition_id => p_time_definition_id
1135 ,p_advance_element_type_id => p_advance_element_type_id
1136 ,p_deduction_element_type_id => p_deduction_element_type_id
1137 ,p_effective_start_date => l_effective_start_date
1138 ,p_effective_end_date => l_effective_end_date
1139 ,p_comment_id => l_comment_id
1140 ,p_processing_priority_warning => l_processing_priority_warning
1141 );
1142
1143 --
1144 -- Update the translation table values
1145 --
1146 pay_ett_upd.upd_tl
1147 (p_language_code => l_language_code
1148 ,p_element_type_id => p_element_type_id
1149 ,p_element_name => p_element_name
1150 ,p_reporting_name => p_reporting_name
1151 ,p_description => p_description
1152 );
1153
1154 -- If the element name is updated then drop and recreate DB items
1155 --
1156 If l_recreate_db_items = 'Y' then
1157 pay_element_types_pkg.recreate_db_items
1158 (p_element_type_id,
1159 l_effective_date);
1160 End If;
1161
1162 -- If the Multiple Entries Allowed is updated then Re-create all the input
1163 -- value DB items for the element.
1164 --
1165 If nvl(p_multiple_entries_allowed_fla,hr_api.g_varchar2)
1166 <> hr_api.g_varchar2 Then
1167 pay_input_values_pkg.recreate_db_items(p_element_type_id);
1168 End If;
1169 --
1170 -- Call After Process User Hook
1171 --
1172 begin
1173 PAY_ELEMENT_TYPES_BK2.UPDATE_ELEMENT_TYPE_a
1174 (p_effective_date => l_effective_date
1175 ,p_datetrack_update_mode => l_datetrack_update_mode
1176 ,p_element_type_id => p_element_type_id
1177 ,p_object_version_number => l_object_version_number
1178 ,p_formula_id => p_formula_id
1179 ,p_benefit_classification_id => p_benefit_classification_id
1180 ,p_additional_entry_allowed_fla => p_additional_entry_allowed_fla
1181 ,p_adjustment_only_flag => p_adjustment_only_flag
1182 ,p_closed_for_entry_flag => p_closed_for_entry_flag
1183 ,p_element_name => p_element_name
1184 ,p_reporting_name => p_reporting_name
1185 ,p_description => p_description
1186 ,p_indirect_only_flag => p_indirect_only_flag
1187 ,p_multiple_entries_allowed_fla => p_multiple_entries_allowed_fla
1188 ,p_multiply_value_flag => p_multiply_value_flag
1189 ,p_post_termination_rule => p_post_termination_rule
1190 ,p_process_in_run_flag => p_process_in_run_flag
1191 ,p_processing_priority => p_processing_priority
1192 ,p_standard_link_flag => p_standard_link_flag
1193 ,p_comments => p_comments
1194 ,p_comment_id => l_comment_id
1195 ,p_qualifying_age => p_qualifying_age
1196 ,p_qualifying_length_of_service => p_qualifying_length_of_service
1197 ,p_qualifying_units => p_qualifying_units
1198 ,p_attribute_category => p_attribute_category
1199 ,p_attribute1 => p_attribute1
1200 ,p_attribute2 => p_attribute2
1201 ,p_attribute3 => p_attribute3
1202 ,p_attribute4 => p_attribute4
1203 ,p_attribute5 => p_attribute5
1204 ,p_attribute6 => p_attribute6
1205 ,p_attribute7 => p_attribute7
1206 ,p_attribute8 => p_attribute8
1207 ,p_attribute9 => p_attribute9
1208 ,p_attribute10 => p_attribute10
1209 ,p_attribute11 => p_attribute11
1210 ,p_attribute12 => p_attribute12
1211 ,p_attribute13 => p_attribute13
1212 ,p_attribute14 => p_attribute14
1213 ,p_attribute15 => p_attribute15
1214 ,p_attribute16 => p_attribute16
1215 ,p_attribute17 => p_attribute17
1216 ,p_attribute18 => p_attribute18
1217 ,p_attribute19 => p_attribute19
1218 ,p_attribute20 => p_attribute20
1219 ,p_element_information_category => p_element_information_category
1220 ,p_element_information1 => p_element_information1
1221 ,p_element_information2 => p_element_information2
1225 ,p_element_information6 => p_element_information6
1222 ,p_element_information3 => p_element_information3
1223 ,p_element_information4 => p_element_information4
1224 ,p_element_information5 => p_element_information5
1226 ,p_element_information7 => p_element_information7
1227 ,p_element_information8 => p_element_information8
1228 ,p_element_information9 => p_element_information9
1229 ,p_element_information10 => p_element_information10
1230 ,p_element_information11 => p_element_information11
1231 ,p_element_information12 => p_element_information12
1232 ,p_element_information13 => p_element_information13
1233 ,p_element_information14 => p_element_information14
1234 ,p_element_information15 => p_element_information15
1235 ,p_element_information16 => p_element_information16
1236 ,p_element_information17 => p_element_information17
1237 ,p_element_information18 => p_element_information18
1238 ,p_element_information19 => p_element_information19
1239 ,p_element_information20 => p_element_information20
1240 ,p_third_party_pay_only_flag => p_third_party_pay_only_flag
1241 ,p_iterative_flag => p_iterative_flag
1242 ,p_iterative_formula_id => p_iterative_formula_id
1243 ,p_iterative_priority => p_iterative_priority
1244 ,p_creator_type => p_creator_type
1245 ,p_retro_summ_ele_id => p_retro_summ_ele_id
1246 ,p_grossup_flag => p_grossup_flag
1247 ,p_process_mode => p_process_mode
1248 ,p_advance_indicator => p_advance_indicator
1249 ,p_advance_payable => p_advance_payable
1250 ,p_advance_deduction => p_advance_deduction
1251 ,p_process_advance_entry => p_process_advance_entry
1252 ,p_proration_group_id => p_proration_group_id
1253 ,p_proration_formula_id => p_proration_formula_id
1254 ,p_recalc_event_group_id => p_recalc_event_group_id
1255 ,p_once_each_period_flag => p_once_each_period_flag
1256 ,p_language_code => l_language_code
1257 ,p_time_definition_type => p_time_definition_type
1258 ,p_time_definition_id => p_time_definition_id
1259 ,p_advance_element_type_id => p_advance_element_type_id
1260 ,p_deduction_element_type_id => p_deduction_element_type_id
1261 ,p_effective_start_date => l_effective_start_date
1262 ,p_effective_end_date => l_effective_end_date
1263 ,p_processing_priority_warning => l_processing_priority_warning
1264 ,p_element_name_warning => l_element_name_warning
1265 ,p_element_name_change_warning => l_element_name_change_warning
1266 );
1267 exception
1268 when hr_api.cannot_find_prog_unit then
1269 hr_api.cannot_find_prog_unit_error
1270 (p_module_name => 'UPDATE_ELEMENT_TYPE'
1271 ,p_hook_type => 'AP'
1272 );
1273 end;
1274 --
1275 -- When in validation only mode raise the Validate_Enabled exception
1276 --
1277 if p_validate then
1278 raise hr_api.validate_enabled;
1279 end if;
1280 --
1281 -- Set all output arguments
1282 --
1283 p_effective_start_date := l_effective_start_date;
1284 p_effective_end_date := l_effective_end_date;
1285 p_object_version_number := l_object_version_number;
1286 p_comment_id := l_comment_id;
1287 p_processing_priority_warning := l_processing_priority_warning;
1288 p_element_name_warning := l_element_name_warning;
1289 p_element_name_change_warning := l_element_name_change_warning;
1290 --
1291 hr_utility.set_location(' Leaving:'||l_proc, 70);
1292 exception
1293 when hr_api.validate_enabled then
1294 --
1295 -- As the Validate_Enabled exception has been raised
1296 -- we must rollback to the savepoint
1297 --
1298 rollback to UPDATE_ELEMENT_TYPE;
1299 --
1300 -- Only set output warning arguments
1301 -- (Any key or derived arguments must be set to null
1302 -- when validation only mode is being used.)
1303 --
1304 p_effective_start_date := null;
1305 p_effective_end_date := null;
1306 p_object_version_number := null;
1307 p_comment_id := null;
1308 p_processing_priority_warning := l_processing_priority_warning;
1309 p_element_name_warning := l_element_name_warning;
1310 p_element_name_change_warning := l_element_name_change_warning;
1311 --
1312 hr_utility.set_location(' Leaving:'||l_proc, 80);
1313 when others then
1314 --
1315 -- A validation or unexpected error has occured
1316 --
1317 rollback to UPDATE_ELEMENT_TYPE;
1318 hr_utility.set_location(' Leaving:'||l_proc, 90);
1319 raise;
1320 end UPDATE_ELEMENT_TYPE;
1321 --
1322 -- ----------------------------------------------------------------------------
1323 -- |--------------------------< DELETE_ELEMENT_TYPE >-------------------------|
1324 -- ----------------------------------------------------------------------------
1325 --
1326 procedure DELETE_ELEMENT_TYPE
1327 (p_validate in boolean default false
1328 ,p_effective_date in date
1329 ,p_datetrack_delete_mode in varchar2
1330 ,p_element_type_id in number
1334 ,p_balance_feeds_warning out nocopy boolean
1331 ,p_object_version_number in out nocopy number
1332 ,p_effective_start_date out nocopy date
1333 ,p_effective_end_date out nocopy date
1335 ,p_processing_rules_warning out nocopy boolean
1336 ) is
1337 --
1338 -- Declare cursors and local variables
1339 --
1340
1341 l_proc varchar2(72):=g_package||'DELETE_ELEMENT_TYP';
1342 l_effective_date date;
1343 l_effective_start_date date;
1344 l_effective_end_date date;
1345 l_balance_feeds_warning boolean;
1346 l_processing_rules_warning boolean;
1347 l_object_version_number pay_element_types_f.object_version_number%type;
1348 --
1349 begin
1350 hr_utility.set_location('Entering:'|| l_proc, 10);
1351 --
1352 -- Issue a savepoint
1353 --
1354 savepoint DELETE_ELEMENT_TYPE;
1355 --
1356 -- Truncate the time portion from all IN date parameters
1357 --
1358 l_effective_date := trunc(p_effective_date);
1359 l_object_version_number := p_object_version_number;
1360 --
1361 -- Call Before Process User Hook
1362 --
1363 begin
1364 PAY_ELEMENT_TYPES_BK3.DELETE_ELEMENT_TYPE_b
1365 (p_effective_date => l_effective_date
1366 ,p_datetrack_delete_mode => p_datetrack_delete_mode
1367 ,p_element_type_id => p_element_type_id
1368 ,p_object_version_number => l_object_version_number
1369 );
1370 exception
1371 when hr_api.cannot_find_prog_unit then
1372 hr_api.cannot_find_prog_unit_error
1373 (p_module_name => 'DELETE_ELEMENT_TYPE'
1374 ,p_hook_type => 'BP'
1375 );
1376 end;
1377 --
1378 -- Validation in addition to Row Handlers
1379 --
1380
1381 --
1382 -- Process Logic
1383 --
1384 pay_etp_del.del
1385 (p_effective_date => l_effective_date
1386 ,p_datetrack_mode => p_datetrack_delete_mode
1387 ,p_element_type_id => p_element_type_id
1388 ,p_object_version_number => l_object_version_number
1389 ,p_effective_start_date => l_effective_start_date
1390 ,p_effective_end_date => l_effective_end_date
1391 ,p_balance_feeds_warning => l_balance_feeds_warning
1392 ,p_processing_rules_warning => l_processing_rules_warning
1393 );
1394
1395 --
1396 -- Call After Process User Hook
1397 --
1398 begin
1399 PAY_ELEMENT_TYPES_BK3.DELETE_ELEMENT_TYPE_a
1400 (p_effective_date => p_effective_date
1401 ,p_datetrack_delete_mode => p_datetrack_delete_mode
1402 ,p_element_type_id => p_element_type_id
1403 ,p_object_version_number => l_object_version_number
1404 ,p_effective_start_date => l_effective_start_date
1405 ,p_effective_end_date => l_effective_end_date
1406 ,p_balance_feeds_warning => l_balance_feeds_warning
1407 ,p_processing_rules_warning => l_processing_rules_warning
1408 );
1409 exception
1410 when hr_api.cannot_find_prog_unit then
1411 hr_api.cannot_find_prog_unit_error
1412 (p_module_name => 'DELETE_ELEMENT_TYPE'
1413 ,p_hook_type => 'AP'
1414 );
1415 end;
1416 --
1417 -- When in validation only mode raise the Validate_Enabled exception
1418 --
1419 if p_validate then
1420 raise hr_api.validate_enabled;
1421 end if;
1422 --
1423 -- Set all output arguments
1424 --
1425 p_effective_start_date := l_effective_start_date;
1426 p_effective_end_date := l_effective_end_date;
1427 p_object_version_number := l_object_version_number;
1428 p_balance_feeds_warning := l_balance_feeds_warning;
1429 p_processing_rules_warning := l_processing_rules_warning;
1430 --
1431 hr_utility.set_location(' Leaving:'||l_proc, 70);
1432 exception
1433 when hr_api.validate_enabled then
1434 --
1435 -- As the Validate_Enabled exception has been raised
1436 -- we must rollback to the savepoint
1437 --
1438 rollback to DELETE_ELEMENT_TYPE;
1439 --
1443 --
1440 -- Only set output warning arguments
1441 -- (Any key or derived arguments must be set to null
1442 -- when validation only mode is being used.)
1444 p_effective_start_date := null;
1445 p_effective_end_date := null;
1446 p_object_version_number := null;
1447 p_balance_feeds_warning := l_balance_feeds_warning;
1448 p_processing_rules_warning := l_processing_rules_warning;
1449 --
1450 hr_utility.set_location(' Leaving:'||l_proc, 80);
1451 when others then
1452 --
1453 -- A validation or unexpected error has occured
1454 --
1455 rollback to DELETE_ELEMENT_TYPE;
1456 hr_utility.set_location(' Leaving:'||l_proc, 90);
1457 raise;
1458 end DELETE_ELEMENT_TYPE;
1459 --
1460
1461 end PAY_ELEMENT_TYPES_API;