DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_ELEMENT_TYPES_API

Source


1 Package Body PAY_ELEMENT_TYPES_API as
2 /* $Header: pyetpapi.pkb 120.3 2007/02/01 11:09:45 mshingan noship $ */
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
63   ,p_attribute7                      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
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   --
178     PAY_ELEMENT_TYPES_BK1.CREATE_ELEMENT_TYPE_b
175   -- Call Before Process User Hook
176   --
177   begin
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
270       );
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
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;
283   Close c_non_payments;
284   --
285   -- Default Processing Priority from the element classification
286   --
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
374     ,p_advance_payable              	=>    p_advance_payable
371     ,p_grossup_flag                 	=>    p_grossup_flag
372     ,p_process_mode                 	=>    p_process_mode
373     ,p_advance_indicator            	=>    p_advance_indicator
375     ,p_advance_deduction            	=>    p_advance_deduction
376     ,p_process_advance_entry        	=>    p_process_advance_entry
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
380     ,p_once_each_period_flag            =>    p_once_each_period_flag
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
495       ,p_effective_date          => l_effective_date
496       ,p_element_type_id         => l_element_type_id
497       ,p_name                    => 'EE Contr'
498       ,p_uom                     => p_default_uom
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
596       ,p_element_information10          =>   p_element_information10
597       ,p_element_information11          =>   p_element_information11
598       ,p_element_information12          =>   p_element_information12
599       ,p_element_information13          =>   p_element_information13
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;
656   p_comment_id			:= l_comment_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;
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
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
709   ,p_multiply_value_flag             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
752   ,p_attribute19                     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
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
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
781   ,p_effective_start_date               out nocopy date
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
889      ,p_attribute16                 	=>   p_attribute16
890      ,p_attribute17                 	=>   p_attribute17
891      ,p_attribute18                 	=>   p_attribute18
892      ,p_attribute19                 	=>   p_attribute19
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
1003     --
1004     -- Update not allowed if element has already been date-effectively
1005     -- updated.
1006     --
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
1108     ,p_element_information12        	=>	 p_element_information12
1105     ,p_element_information9         	=>	 p_element_information9
1106     ,p_element_information10        	=>	 p_element_information10
1107     ,p_element_information11        	=>	 p_element_information11
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
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
1119     ,p_iterative_formula_id         	=>	 p_iterative_formula_id
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
1222      ,p_element_information3        	=>   p_element_information3
1223      ,p_element_information4        	=>   p_element_information4
1224      ,p_element_information5        	=>   p_element_information5
1225      ,p_element_information6        	=>   p_element_information6
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;
1308     p_processing_priority_warning := l_processing_priority_warning;
1305     p_effective_end_date          := null;
1306     p_object_version_number       := null;
1307     p_comment_id		  := null;
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
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
1334   ,p_balance_feeds_warning              out nocopy boolean
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     --
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.)
1443     --
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;