DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_ELEMENT_TYPES_MIG

Source


1 Package Body PAY_ELEMENT_TYPES_MIG as
2 /* $Header: pyetpmpi.pkb 120.1.12010000.2 2008/08/06 07:13: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_advance_element_type_id         in  number   default null
57   ,p_deduction_element_type_id       in  number   default null
58   ,p_attribute_category              in  varchar2 default null
59   ,p_attribute1                      in	 varchar2 default null
60   ,p_attribute2                      in	 varchar2 default null
61   ,p_attribute3                      in	 varchar2 default null
62   ,p_attribute4                      in	 varchar2 default null
63   ,p_attribute5                      in	 varchar2 default null
64   ,p_attribute6                      in	 varchar2 default null
65   ,p_attribute7                      in	 varchar2 default null
66   ,p_attribute8                      in	 varchar2 default null
67   ,p_attribute9                      in	 varchar2 default null
68   ,p_attribute10                     in	 varchar2 default null
69   ,p_attribute11                     in	 varchar2 default null
70   ,p_attribute12                     in	 varchar2 default null
71   ,p_attribute13                     in	 varchar2 default null
72   ,p_attribute14                     in	 varchar2 default null
73   ,p_attribute15                     in	 varchar2 default null
74   ,p_attribute16                     in	 varchar2 default null
75   ,p_attribute17                     in	 varchar2 default null
76   ,p_attribute18                     in	 varchar2 default null
77   ,p_attribute19                     in	 varchar2 default null
78   ,p_attribute20                     in	 varchar2 default null
79   ,p_element_information_category    in	 varchar2 default null
80   ,p_element_information1            in	 varchar2 default null
81   ,p_element_information2            in	 varchar2 default null
82   ,p_element_information3            in	 varchar2 default null
83   ,p_element_information4            in	 varchar2 default null
84   ,p_element_information5            in	 varchar2 default null
85   ,p_element_information6            in	 varchar2 default null
86   ,p_element_information7            in	 varchar2 default null
87   ,p_element_information8            in	 varchar2 default null
88   ,p_element_information9            in	 varchar2 default null
89   ,p_element_information10           in	 varchar2 default null
90   ,p_element_information11           in	 varchar2 default null
91   ,p_element_information12           in	 varchar2 default null
92   ,p_element_information13           in	 varchar2 default null
93   ,p_element_information14           in	 varchar2 default null
94   ,p_element_information15           in	 varchar2 default null
95   ,p_element_information16           in	 varchar2 default null
96   ,p_element_information17           in	 varchar2 default null
97   ,p_element_information18           in	 varchar2 default null
98   ,p_element_information19           in	 varchar2 default null
99   ,p_element_information20           in	 varchar2 default null
100   ,p_default_uom		     in  varchar2 default null
101   ,p_once_each_period_flag           in  varchar2 default 'N'
102   ,p_language_code                   in  varchar2 default hr_api.userenv_lang
103   ,p_time_definition_type        in  varchar2 default null
104   ,p_time_definition_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   --
144   Cursor c_non_payments
145   is
146     select non_payments_flag, default_priority
147       from pay_element_classifications
148      where classification_id = p_classification_id;
149 
150   Cursor c_contributions_used
151   is
152     select contributions_used
153       from ben_benefit_classifications
154      where benefit_classification_id = p_benefit_classification_id;
155 
156   --
157 begin
158   hr_utility.set_location('Entering:'|| l_proc, 10);
159   --
160   -- Issue a savepoint
161   --
162   savepoint CREATE_ELEMENT_TYPE;
163   --
164   -- Truncate the time portion from all IN date parameters
165   --
166   l_effective_date := trunc(p_effective_date);
167   --
168   -- Validate the language parameter. l_language_code should be passed to
169   -- functions instead of p_language_code from now on, to allow an IN OUT
170   -- parameter to be passed through.
171   --
172   l_language_code := p_language_code;
173   hr_api.validate_language_code(p_language_code => l_language_code);
174   --
175   --
176   -- Call Before Process User Hook
177   --
178   begin
179     PAY_ELEMENT_TYPES_BK1.CREATE_ELEMENT_TYPE_b
180       (p_effective_date                 =>   l_effective_date
181       ,p_classification_id              =>   p_classification_id
182       ,p_element_name                   =>   p_element_name
183       ,p_business_group_id              =>   p_business_group_id
184       ,p_legislation_code               =>   p_legislation_code
185       ,p_formula_id                     =>   p_formula_id
186       ,p_input_currency_code            =>   p_input_currency_code
187       ,p_output_currency_code           =>   p_output_currency_code
188       ,p_benefit_classification_id      =>   p_benefit_classification_id
189       ,p_additional_entry_allowed_fla   =>   p_additional_entry_allowed_fla
190       ,p_adjustment_only_flag           =>   p_adjustment_only_flag
191       ,p_closed_for_entry_flag          =>   p_closed_for_entry_flag
192       ,p_reporting_name                 =>   p_reporting_name
193       ,p_description                    =>   p_description
194       ,p_indirect_only_flag             =>   p_indirect_only_flag
195       ,p_multiple_entries_allowed_fla   =>   p_multiple_entries_allowed_fla
196       ,p_multiply_value_flag            =>   p_multiply_value_flag
197       ,p_post_termination_rule          =>   p_post_termination_rule
198       ,p_process_in_run_flag            =>   p_process_in_run_flag
199       ,p_processing_priority            =>   p_processing_priority
200       ,p_processing_type                =>   p_processing_type
201       ,p_standard_link_flag             =>   p_standard_link_flag
202       ,p_comments                       =>   p_comments
203       ,p_legislation_subgroup           =>   p_legislation_subgroup
204       ,p_qualifying_age                 =>   p_qualifying_age
205       ,p_qualifying_length_of_service   =>   p_qualifying_length_of_service
206       ,p_qualifying_units               =>   p_qualifying_units
207       ,p_attribute_category             =>   p_attribute_category
208       ,p_attribute1                     =>   p_attribute1
209       ,p_attribute2                     =>   p_attribute2
210       ,p_attribute3                     =>   p_attribute3
211       ,p_attribute4                     =>   p_attribute4
212       ,p_attribute5                     =>   p_attribute5
213       ,p_attribute6                     =>   p_attribute6
214       ,p_attribute7                     =>   p_attribute7
215       ,p_attribute8                     =>   p_attribute8
216       ,p_attribute9                     =>   p_attribute9
217       ,p_attribute10                    =>   p_attribute10
218       ,p_attribute11                    =>   p_attribute11
219       ,p_attribute12                    =>   p_attribute12
220       ,p_attribute13                    =>   p_attribute13
221       ,p_attribute14                    =>   p_attribute14
222       ,p_attribute15                    =>   p_attribute15
223       ,p_attribute16                    =>   p_attribute16
224       ,p_attribute17                    =>   p_attribute17
225       ,p_attribute18                    =>   p_attribute18
226       ,p_attribute19                    =>   p_attribute19
227       ,p_attribute20                    =>   p_attribute20
228       ,p_element_information_category   =>   p_element_information_category
229       ,p_element_information1           =>   p_element_information1
230       ,p_element_information2           =>   p_element_information2
231       ,p_element_information3           =>   p_element_information3
232       ,p_element_information4           =>   p_element_information4
233       ,p_element_information5           =>   p_element_information5
234       ,p_element_information6           =>   p_element_information6
235       ,p_element_information7           =>   p_element_information7
236       ,p_element_information8           =>   p_element_information8
237       ,p_element_information9           =>   p_element_information9
238       ,p_element_information10          =>   p_element_information10
239       ,p_element_information11          =>   p_element_information11
240       ,p_element_information12          =>   p_element_information12
241       ,p_element_information13          =>   p_element_information13
242       ,p_element_information14          =>   p_element_information14
243       ,p_element_information15          =>   p_element_information15
244       ,p_element_information16          =>   p_element_information16
245       ,p_element_information17          =>   p_element_information17
246       ,p_element_information18          =>   p_element_information18
247       ,p_element_information19          =>   p_element_information19
248       ,p_element_information20          =>   p_element_information20
249       ,p_third_party_pay_only_flag      =>   p_third_party_pay_only_flag
250       ,p_iterative_flag                 =>   p_iterative_flag
251       ,p_iterative_formula_id           =>   p_iterative_formula_id
252       ,p_iterative_priority             =>   p_iterative_priority
253       ,p_creator_type                   =>   p_creator_type
254       ,p_retro_summ_ele_id              =>   p_retro_summ_ele_id
255       ,p_grossup_flag                   =>   p_grossup_flag
256       ,p_process_mode                   =>   p_process_mode
257       ,p_advance_indicator              =>   p_advance_indicator
258       ,p_advance_payable                =>   p_advance_payable
259       ,p_advance_deduction              =>   p_advance_deduction
260       ,p_process_advance_entry          =>   p_process_advance_entry
261       ,p_proration_group_id             =>   p_proration_group_id
262       ,p_proration_formula_id           =>   p_proration_formula_id
263       ,p_recalc_event_group_id 	   	    =>   p_recalc_event_group_id
264       ,p_default_uom			        =>   p_default_uom
265       ,p_once_each_period_flag          =>   p_once_each_period_flag
266       ,p_language_code                  =>   l_language_code
267       ,p_time_definition_type           =>   p_time_definition_type
268       ,p_time_definition_id             =>   p_time_definition_id
269       ,p_advance_element_type_id        =>   p_advance_element_type_id
270       ,p_deduction_element_type_id      =>   p_deduction_element_type_id
271       );
272   exception
273     when hr_api.cannot_find_prog_unit then
274       hr_api.cannot_find_prog_unit_error
275         (p_module_name => 'CREATE_ELEMENT_TYPE'
276         ,p_hook_type   => 'BP'
277         );
278   end;
279   --
280   -- Validation in addition to Row Handlers
281   --
282   Open c_non_payments;
283   Fetch c_non_payments into l_non_payments_flag, l_default_priority;
284   Close c_non_payments;
285   --
286   -- Default Processing Priority from the element classification
287   --
288   If p_processing_priority is null Then
289     l_processing_priority := l_default_priority;
290   Else
291     l_processing_priority := p_processing_priority;
292   End If;
293   --
294   -- Process Logic
295   --
296   pay_etp_ins_nd.ins
297     (p_effective_date               	=>    l_effective_date
298     ,p_classification_id            	=>    p_classification_id
299     ,p_additional_entry_allowed_fla  	=>    p_additional_entry_allowed_fla
300     ,p_adjustment_only_flag         	=>    p_adjustment_only_flag
301     ,p_closed_for_entry_flag        	=>    p_closed_for_entry_flag
302     ,p_element_name                 	=>    p_element_name
303     ,p_indirect_only_flag           	=>    p_indirect_only_flag
304     ,p_multiple_entries_allowed_fla 	=>    p_multiple_entries_allowed_fla
305     ,p_multiply_value_flag          	=>    p_multiply_value_flag
306     ,p_post_termination_rule        	=>    p_post_termination_rule
307     ,p_process_in_run_flag          	=>    p_process_in_run_flag
308     ,p_processing_priority          	=>    l_processing_priority
309     ,p_processing_type              	=>    p_processing_type
310     ,p_standard_link_flag           	=>    p_standard_link_flag
311     ,p_business_group_id            	=>    p_business_group_id
312     ,p_legislation_code             	=>    p_legislation_code
313     ,p_formula_id                   	=>    p_formula_id
314     ,p_input_currency_code          	=>    p_input_currency_code
315     ,p_output_currency_code         	=>    p_output_currency_code
316     ,p_benefit_classification_id    	=>    p_benefit_classification_id
317     ,p_comments                     	=>    p_comments
318     ,p_description                  	=>    p_description
319     ,p_legislation_subgroup         	=>    p_legislation_subgroup
320     ,p_qualifying_age               	=>    p_qualifying_age
321     ,p_qualifying_length_of_service 	=>    p_qualifying_length_of_service
322     ,p_qualifying_units             	=>    p_qualifying_units
323     ,p_reporting_name               	=>    p_reporting_name
324     ,p_attribute_category           	=>    p_attribute_category
325     ,p_attribute1                   	=>    p_attribute1
326     ,p_attribute2                   	=>    p_attribute2
327     ,p_attribute3                   	=>    p_attribute3
328     ,p_attribute4                   	=>    p_attribute4
329     ,p_attribute5                   	=>    p_attribute5
330     ,p_attribute6                   	=>    p_attribute6
331     ,p_attribute7                   	=>    p_attribute7
332     ,p_attribute8                   	=>    p_attribute8
333     ,p_attribute9                   	=>    p_attribute9
334     ,p_attribute10                  	=>    p_attribute10
335     ,p_attribute11                  	=>    p_attribute11
336     ,p_attribute12                  	=>    p_attribute12
337     ,p_attribute13                  	=>    p_attribute13
338     ,p_attribute14                  	=>    p_attribute14
339     ,p_attribute15                  	=>    p_attribute15
340     ,p_attribute16                  	=>    p_attribute16
341     ,p_attribute17                  	=>    p_attribute17
342     ,p_attribute18                  	=>    p_attribute18
343     ,p_attribute19                  	=>    p_attribute19
344     ,p_attribute20                  	=>    p_attribute20
345     ,p_element_information_category 	=>    p_element_information_category
346     ,p_element_information1         	=>    p_element_information1
347     ,p_element_information2         	=>    p_element_information2
348     ,p_element_information3         	=>    p_element_information3
349     ,p_element_information4         	=>    p_element_information4
350     ,p_element_information5         	=>    p_element_information5
351     ,p_element_information6         	=>    p_element_information6
352     ,p_element_information7         	=>    p_element_information7
353     ,p_element_information8         	=>    p_element_information8
354     ,p_element_information9         	=>    p_element_information9
355     ,p_element_information10        	=>    p_element_information10
356     ,p_element_information11        	=>    p_element_information11
357     ,p_element_information12        	=>    p_element_information12
358     ,p_element_information13        	=>    p_element_information13
359     ,p_element_information14        	=>    p_element_information14
360     ,p_element_information15        	=>    p_element_information15
361     ,p_element_information16        	=>    p_element_information16
362     ,p_element_information17        	=>    p_element_information17
363     ,p_element_information18        	=>    p_element_information18
364     ,p_element_information19        	=>    p_element_information19
365     ,p_element_information20        	=>    p_element_information20
366     ,p_third_party_pay_only_flag    	=>    p_third_party_pay_only_flag
367     ,p_iterative_flag               	=>    p_iterative_flag
368     ,p_iterative_formula_id         	=>    p_iterative_formula_id
369     ,p_iterative_priority           	=>    p_iterative_priority
370     ,p_creator_type                 	=>    p_creator_type
371     ,p_retro_summ_ele_id            	=>    p_retro_summ_ele_id
372     ,p_grossup_flag                 	=>    p_grossup_flag
373     ,p_process_mode                 	=>    p_process_mode
374     ,p_advance_indicator            	=>    p_advance_indicator
375     ,p_advance_payable              	=>    p_advance_payable
376     ,p_advance_deduction            	=>    p_advance_deduction
377     ,p_process_advance_entry        	=>    p_process_advance_entry
378     ,p_proration_group_id           	=>    p_proration_group_id
379     ,p_proration_formula_id             =>    p_proration_formula_id
380     ,p_recalc_event_group_id 	   	    =>    p_recalc_event_group_id
381     ,p_once_each_period_flag            =>    p_once_each_period_flag
382     ,p_time_definition_type             =>    p_time_definition_type
383     ,p_time_definition_id               =>    p_time_definition_id
384     ,p_element_type_id              	=>    l_element_type_id
385     ,p_object_version_number        	=>    l_object_version_number
386     ,p_effective_start_date         	=>    l_effective_start_date
387     ,p_effective_end_date           	=>    l_effective_end_date
388     ,p_comment_id    		        	=>    l_comment_id
389     ,p_processing_priority_warning	    =>    l_processing_priority_warning
390     );
391 
392   --
393   -- Create default entries in pay_element_types_f_tl table
394   --
395   pay_ett_ins.ins_tl
396     (p_language_code                =>  l_language_code
397     ,p_element_type_id              =>  l_element_type_id
398     ,p_element_name                 =>  p_element_name
399     ,p_reporting_name               =>  p_reporting_name
400     ,p_description                  =>  p_description
401     );
402   --
403   -- Create element DB items on the entity horizon
404   --
405   hrdyndbi.create_element_type_dict(l_element_type_id,
406                                     l_effective_start_date);
407 
408 
409   If (p_process_in_run_flag = 'Y' and nvl(l_non_payments_flag,'Y') = 'N') Then
410     --
411     -- Create default input value
412     --
413     -- Bug 4445125. generate_db_items_flag must be always 'Y' for
414     -- default input value.
415     --
416       l_generate_db_items_flag := 'Y';
417     --
418     l_display_sequence := l_display_sequence + 1;
419     --
420     pay_input_value_api.create_input_value
421       (p_validate		 => false
422       ,p_effective_date          => l_effective_date
423       ,p_element_type_id         => l_element_type_id
424       ,p_name                    => 'Pay Value'
425       ,p_uom                     => 'M'
426       ,p_display_sequence        => l_display_sequence
427       ,p_generate_db_items_flag  => l_generate_db_items_flag
428       ,p_input_value_id	         => l_input_value_id
429       ,p_object_version_number   => l_iv_object_version_number
430       ,p_effective_start_date    => l_iv_effective_start_date
431       ,p_effective_end_date      => l_iv_effective_end_date
432       ,p_default_val_warning     => l_default_val_warning
433       ,p_min_max_warning         => l_min_max_warning
434       ,p_pay_basis_warning	 => l_pay_basis_warning
435       ,p_formula_warning	 => l_formula_warning
436       ,p_assignment_id_warning   => l_assignment_id_warning
437       ,p_formula_message         => l_formula_message
438       );
439     --
440   End If;
441   --
442   Open c_contributions_used;
443   Fetch c_contributions_used into l_contributions_used;
444   Close c_contributions_used;
445   --
446   If nvl(l_contributions_used,'N') = 'Y' Then
447     --
448     -- Create default benefit input values for type A benefit plans
449     --
450     pay_input_value_api.create_input_value
451       (p_validate		 => false
452       ,p_effective_date          => l_effective_date
453       ,p_element_type_id         => l_element_type_id
454       ,p_name                    => 'Coverage'
455       ,p_uom                     => 'C'
456       ,p_display_sequence        => (l_display_sequence + 1)
457       ,p_generate_db_items_flag  => 'Y'
458       ,p_hot_default_flag        => 'N'
459       ,p_input_value_id	         => l_input_value_id
460       ,p_object_version_number   => l_iv_object_version_number
461       ,p_effective_start_date    => l_iv_effective_start_date
462       ,p_effective_end_date      => l_iv_effective_end_date
463       ,p_default_val_warning     => l_default_val_warning
464       ,p_min_max_warning         => l_min_max_warning
465       ,p_pay_basis_warning	 => l_pay_basis_warning
466       ,p_formula_warning	 => l_formula_warning
467       ,p_assignment_id_warning   => l_assignment_id_warning
468       ,p_formula_message         => l_formula_message
469       );
470 	--
471     pay_input_value_api.create_input_value
472       (p_validate		 => false
473       ,p_effective_date          => l_effective_date
474       ,p_element_type_id         => l_element_type_id
475       ,p_name                    => 'ER Contr'
476       ,p_uom                     => p_default_uom
477       ,p_display_sequence        => (l_display_sequence + 2)
478       ,p_generate_db_items_flag  => 'Y'
479       ,p_hot_default_flag        => 'N'
480       ,p_input_value_id	         => l_input_value_id
481       ,p_object_version_number   => l_iv_object_version_number
482       ,p_effective_start_date    => l_iv_effective_start_date
483       ,p_effective_end_date      => l_iv_effective_end_date
484       ,p_default_val_warning     => l_default_val_warning
485       ,p_min_max_warning         => l_min_max_warning
486       ,p_pay_basis_warning	 => l_pay_basis_warning
487       ,p_formula_warning	 => l_formula_warning
488       ,p_assignment_id_warning   => l_assignment_id_warning
489       ,p_formula_message         => l_formula_message
490       );
491 	--
492     pay_input_value_api.create_input_value
493       (p_validate		 => false
494       ,p_effective_date          => l_effective_date
495       ,p_element_type_id         => l_element_type_id
496       ,p_name                    => 'EE Contr'
497       ,p_uom                     => p_default_uom
498       ,p_display_sequence        => (l_display_sequence + 3)
499       ,p_generate_db_items_flag  => 'Y'
500       ,p_hot_default_flag        => 'N'
501       ,p_input_value_id	         => l_input_value_id
502       ,p_object_version_number   => l_iv_object_version_number
503       ,p_effective_start_date    => l_iv_effective_start_date
504       ,p_effective_end_date      => l_iv_effective_end_date
505       ,p_default_val_warning     => l_default_val_warning
506       ,p_min_max_warning         => l_min_max_warning
507       ,p_pay_basis_warning	 => l_pay_basis_warning
508       ,p_formula_warning	 => l_formula_warning
509       ,p_assignment_id_warning   => l_assignment_id_warning
510       ,p_formula_message         => l_formula_message
511       );
512 	--
513   End If;
514   --
515   -- Create sub-classification rules
516   --
517   pay_sub_class_rules_pkg.insert_defaults
518     (l_element_type_id
519     ,p_classification_id
520     ,l_effective_start_date
521     ,l_effective_end_date
522     ,p_business_group_id
523     ,null);
524   --
525   -- Populate the retro component usages for the element type.
526   --
527   pay_retro_comp_usage_internal.populate_retro_comp_usages
528     (p_effective_date                => l_effective_date
529     ,p_element_type_id               => l_element_type_id
530     );
531 --
532   --
533   -- Call After Process User Hook
534   --
535   begin
536     PAY_ELEMENT_TYPES_BK1.CREATE_ELEMENT_TYPE_a
537       (p_effective_date                 =>   p_effective_date
538       ,p_classification_id              =>   p_classification_id
539       ,p_element_name                   =>   p_element_name
540       ,p_business_group_id              =>   p_business_group_id
541       ,p_legislation_code               =>   p_legislation_code
542       ,p_formula_id                     =>   p_formula_id
543       ,p_input_currency_code            =>   l_input_currency_code
544       ,p_output_currency_code           =>   l_output_currency_code
545       ,p_benefit_classification_id      =>   p_benefit_classification_id
546       ,p_additional_entry_allowed_fla   =>   p_additional_entry_allowed_fla
547       ,p_adjustment_only_flag           =>   p_adjustment_only_flag
548       ,p_closed_for_entry_flag          =>   p_closed_for_entry_flag
549       ,p_reporting_name                 =>   p_reporting_name
550       ,p_description                    =>   p_description
551       ,p_indirect_only_flag             =>   p_indirect_only_flag
552       ,p_multiple_entries_allowed_fla   =>   p_multiple_entries_allowed_fla
553       ,p_multiply_value_flag            =>   p_multiply_value_flag
554       ,p_post_termination_rule          =>   p_post_termination_rule
555       ,p_process_in_run_flag            =>   p_process_in_run_flag
556       ,p_processing_priority            =>   l_processing_priority
557       ,p_processing_type                =>   p_processing_type
558       ,p_standard_link_flag             =>   p_standard_link_flag
559       ,p_comments                       =>   p_comments
560       ,p_legislation_subgroup           =>   p_legislation_subgroup
561       ,p_qualifying_age                 =>   p_qualifying_age
562       ,p_qualifying_length_of_service   =>   p_qualifying_length_of_service
563       ,p_qualifying_units               =>   p_qualifying_units
564       ,p_attribute_category             =>   p_attribute_category
565       ,p_attribute1                     =>   p_attribute1
566       ,p_attribute2                     =>   p_attribute2
567       ,p_attribute3                     =>   p_attribute3
568       ,p_attribute4                     =>   p_attribute4
569       ,p_attribute5                     =>   p_attribute5
570       ,p_attribute6                     =>   p_attribute6
571       ,p_attribute7                     =>   p_attribute7
572       ,p_attribute8                     =>   p_attribute8
573       ,p_attribute9                     =>   p_attribute9
574       ,p_attribute10                    =>   p_attribute10
575       ,p_attribute11                    =>   p_attribute11
576       ,p_attribute12                    =>   p_attribute12
577       ,p_attribute13                    =>   p_attribute13
578       ,p_attribute14                    =>   p_attribute14
579       ,p_attribute15                    =>   p_attribute15
580       ,p_attribute16                    =>   p_attribute16
581       ,p_attribute17                    =>   p_attribute17
582       ,p_attribute18                    =>   p_attribute18
583       ,p_attribute19                    =>   p_attribute19
584       ,p_attribute20                    =>   p_attribute20
585       ,p_element_information_category   =>   p_element_information_category
586       ,p_element_information1           =>   p_element_information1
587       ,p_element_information2           =>   p_element_information2
588       ,p_element_information3           =>   p_element_information3
589       ,p_element_information4           =>   p_element_information4
590       ,p_element_information5           =>   p_element_information5
591       ,p_element_information6           =>   p_element_information6
592       ,p_element_information7           =>   p_element_information7
593       ,p_element_information8           =>   p_element_information8
594       ,p_element_information9           =>   p_element_information9
595       ,p_element_information10          =>   p_element_information10
596       ,p_element_information11          =>   p_element_information11
597       ,p_element_information12          =>   p_element_information12
598       ,p_element_information13          =>   p_element_information13
599       ,p_element_information14          =>   p_element_information14
600       ,p_element_information15          =>   p_element_information15
601       ,p_element_information16          =>   p_element_information16
602       ,p_element_information17          =>   p_element_information17
603       ,p_element_information18          =>   p_element_information18
604       ,p_element_information19          =>   p_element_information19
605       ,p_element_information20          =>   p_element_information20
606       ,p_third_party_pay_only_flag      =>   p_third_party_pay_only_flag
607       ,p_iterative_flag                 =>   p_iterative_flag
608       ,p_iterative_formula_id           =>   p_iterative_formula_id
609       ,p_iterative_priority             =>   p_iterative_priority
610       ,p_creator_type                   =>   p_creator_type
611       ,p_retro_summ_ele_id              =>   p_retro_summ_ele_id
612       ,p_grossup_flag                   =>   p_grossup_flag
613       ,p_process_mode                   =>   p_process_mode
614       ,p_advance_indicator              =>   p_advance_indicator
615       ,p_advance_payable                =>   p_advance_payable
616       ,p_advance_deduction              =>   p_advance_deduction
617       ,p_process_advance_entry          =>   p_process_advance_entry
618       ,p_proration_group_id             =>   p_proration_group_id
619       ,p_proration_formula_id           =>   p_proration_formula_id
620       ,p_recalc_event_group_id 	        =>   p_recalc_event_group_id
621       ,p_default_uom		            =>   p_default_uom
622       ,p_once_each_period_flag          =>   p_once_each_period_flag
623       ,p_language_code                  =>   l_language_code
624       ,p_time_definition_type           =>   p_time_definition_type
625       ,p_time_definition_id             =>   p_time_definition_id
626       ,p_advance_element_type_id        =>   p_advance_element_type_id
627       ,p_deduction_element_type_id      =>   p_deduction_element_type_id
628       ,p_element_type_id                =>   l_element_type_id
629       ,p_effective_start_date       	=>   l_effective_start_date
630       ,p_effective_end_date         	=>   l_effective_end_date
631       ,p_object_version_number      	=>   l_object_version_number
632       ,p_comment_id			            =>   l_comment_id
633       ,p_processing_priority_warning	=>   l_processing_priority_warning
634       );
635   exception
636     when hr_api.cannot_find_prog_unit then
637       hr_api.cannot_find_prog_unit_error
638         (p_module_name => 'CREATE_ELEMENT_TYPE'
639         ,p_hook_type   => 'AP'
640         );
641   end;
642   --
643   -- When in validation only mode raise the Validate_Enabled exception
644   --
645   if p_validate then
646     raise hr_api.validate_enabled;
647   end if;
648   --
649   -- Set all output arguments
650   --
651   p_element_type_id             := l_element_type_id;
652   p_effective_start_date        := l_effective_start_date;
653   p_effective_end_date          := l_effective_end_date;
654   p_object_version_number      	:= l_object_version_number;
655   p_comment_id			:= l_comment_id;
656   p_processing_priority_warning	:= l_processing_priority_warning;
657   --
658   hr_utility.set_location(' Leaving:'||l_proc, 70);
659 exception
660   when hr_api.validate_enabled then
661     --
662     -- As the Validate_Enabled exception has been raised
663     -- we must rollback to the savepoint
664     --
665     rollback to CREATE_ELEMENT_TYPE;
666     --
667     -- Only set output warning arguments
668     -- (Any key or derived arguments must be set to null
669     -- when validation only mode is being used.)
670     --
671     p_element_type_id          	  := null;
672     p_object_version_number  	  := null;
673     p_effective_start_date   	  := null;
674     p_effective_end_date     	  := null;
675     p_comment_id	          := null;
676     p_processing_priority_warning := l_processing_priority_warning;
677     --
678     hr_utility.set_location(' Leaving:'||l_proc, 80);
679   when others then
680     --
681     -- A validation or unexpected error has occured
682     --
683     rollback to CREATE_ELEMENT_TYPE;
684     hr_utility.set_location(' Leaving:'||l_proc, 90);
685     raise;
686 end CREATE_ELEMENT_TYPE;
687 --
688 -- ----------------------------------------------------------------------------
689 -- |--------------------------< UPDATE_ELEMENT_TYPE >-------------------------|
690 -- ----------------------------------------------------------------------------
691 --
692 procedure UPDATE_ELEMENT_TYPE
693   (p_validate                        in     boolean  default false
694   ,p_effective_date                  in     date
695   ,p_datetrack_update_mode	     in     varchar2
696   ,p_element_type_id        	     in     number
697   ,p_object_version_number  	     in out nocopy number
698   ,p_formula_id                      in     number   default hr_api.g_number
699   ,p_benefit_classification_id       in     number   default hr_api.g_number
700   ,p_additional_entry_allowed_fla    in     varchar2 default hr_api.g_varchar2
701   ,p_adjustment_only_flag            in     varchar2 default hr_api.g_varchar2
702   ,p_closed_for_entry_flag           in     varchar2 default hr_api.g_varchar2
703   ,p_element_name                    in	    varchar2 default hr_api.g_varchar2
704   ,p_reporting_name                  in     varchar2 default hr_api.g_varchar2
705   ,p_description                     in     varchar2 default hr_api.g_varchar2
706   ,p_indirect_only_flag              in     varchar2 default hr_api.g_varchar2
707   ,p_multiple_entries_allowed_fla    in     varchar2 default hr_api.g_varchar2
708   ,p_multiply_value_flag             in     varchar2 default hr_api.g_varchar2
709   ,p_post_termination_rule           in     varchar2 default hr_api.g_varchar2
710   ,p_process_in_run_flag             in     varchar2 default hr_api.g_varchar2
711   ,p_processing_priority             in     number   default hr_api.g_number
712   ,p_standard_link_flag              in     varchar2 default hr_api.g_varchar2
713   ,p_comments                        in     varchar2 default hr_api.g_varchar2
714   ,p_third_party_pay_only_flag       in	    varchar2 default hr_api.g_varchar2
715   ,p_iterative_flag                  in	    varchar2 default hr_api.g_varchar2
716   ,p_iterative_formula_id            in	    number   default hr_api.g_number
717   ,p_iterative_priority              in	    number   default hr_api.g_number
718   ,p_creator_type                    in	    varchar2 default hr_api.g_varchar2
719   ,p_retro_summ_ele_id               in     number   default hr_api.g_number
720   ,p_grossup_flag                    in	    varchar2 default hr_api.g_varchar2
721   ,p_process_mode                    in	    varchar2 default hr_api.g_varchar2
722   ,p_advance_indicator               in	    varchar2 default hr_api.g_varchar2
723   ,p_advance_payable                 in	    varchar2 default hr_api.g_varchar2
724   ,p_advance_deduction               in	    varchar2 default hr_api.g_varchar2
725   ,p_process_advance_entry           in	    varchar2 default hr_api.g_varchar2
726   ,p_proration_group_id              in	    number   default hr_api.g_number
727   ,p_proration_formula_id            in	    number   default hr_api.g_number
728   ,p_recalc_event_group_id 	         in	    number   default hr_api.g_number
729   ,p_qualifying_age                  in     number   default hr_api.g_number
730   ,p_qualifying_length_of_service    in     number   default hr_api.g_number
731   ,p_qualifying_units                in     varchar2 default hr_api.g_varchar2
732   ,p_advance_element_type_id         in     number   default hr_api.g_number
733   ,p_deduction_element_type_id       in     number   default hr_api.g_number
734   ,p_attribute_category              in     varchar2 default hr_api.g_varchar2
735   ,p_attribute1                      in	    varchar2 default hr_api.g_varchar2
736   ,p_attribute2                      in	    varchar2 default hr_api.g_varchar2
737   ,p_attribute3                      in	    varchar2 default hr_api.g_varchar2
738   ,p_attribute4                      in	    varchar2 default hr_api.g_varchar2
739   ,p_attribute5                      in	    varchar2 default hr_api.g_varchar2
740   ,p_attribute6                      in	    varchar2 default hr_api.g_varchar2
741   ,p_attribute7                      in	    varchar2 default hr_api.g_varchar2
742   ,p_attribute8                      in	    varchar2 default hr_api.g_varchar2
743   ,p_attribute9                      in	    varchar2 default hr_api.g_varchar2
744   ,p_attribute10                     in	    varchar2 default hr_api.g_varchar2
745   ,p_attribute11                     in	    varchar2 default hr_api.g_varchar2
746   ,p_attribute12                     in	    varchar2 default hr_api.g_varchar2
747   ,p_attribute13                     in	    varchar2 default hr_api.g_varchar2
748   ,p_attribute14                     in	    varchar2 default hr_api.g_varchar2
749   ,p_attribute15                     in	    varchar2 default hr_api.g_varchar2
750   ,p_attribute16                     in	    varchar2 default hr_api.g_varchar2
751   ,p_attribute17                     in	    varchar2 default hr_api.g_varchar2
752   ,p_attribute18                     in	    varchar2 default hr_api.g_varchar2
753   ,p_attribute19                     in	    varchar2 default hr_api.g_varchar2
754   ,p_attribute20                     in	    varchar2 default hr_api.g_varchar2
755   ,p_element_information_category    in	    varchar2 default hr_api.g_varchar2
756   ,p_element_information1            in	    varchar2 default hr_api.g_varchar2
757   ,p_element_information2            in	    varchar2 default hr_api.g_varchar2
758   ,p_element_information3            in	    varchar2 default hr_api.g_varchar2
759   ,p_element_information4            in	    varchar2 default hr_api.g_varchar2
760   ,p_element_information5            in	    varchar2 default hr_api.g_varchar2
761   ,p_element_information6            in	    varchar2 default hr_api.g_varchar2
762   ,p_element_information7            in	    varchar2 default hr_api.g_varchar2
763   ,p_element_information8            in	    varchar2 default hr_api.g_varchar2
764   ,p_element_information9            in	    varchar2 default hr_api.g_varchar2
765   ,p_element_information10           in	    varchar2 default hr_api.g_varchar2
766   ,p_element_information11           in	    varchar2 default hr_api.g_varchar2
767   ,p_element_information12           in	    varchar2 default hr_api.g_varchar2
768   ,p_element_information13           in	    varchar2 default hr_api.g_varchar2
769   ,p_element_information14           in	    varchar2 default hr_api.g_varchar2
770   ,p_element_information15           in	    varchar2 default hr_api.g_varchar2
771   ,p_element_information16           in	    varchar2 default hr_api.g_varchar2
772   ,p_element_information17           in	    varchar2 default hr_api.g_varchar2
773   ,p_element_information18           in	    varchar2 default hr_api.g_varchar2
774   ,p_element_information19           in	    varchar2 default hr_api.g_varchar2
775   ,p_element_information20           in	    varchar2 default hr_api.g_varchar2
776   ,p_once_each_period_flag           in     varchar2 default hr_api.g_varchar2
777   ,p_language_code                   in     varchar2 default hr_api.userenv_lang
778   ,p_time_definition_type            in     varchar2 default hr_api.g_varchar2
779   ,p_time_definition_id              in     number   default hr_api.g_number
780   ,p_effective_start_date               out nocopy date
781   ,p_effective_end_date                 out nocopy date
782   ,p_comment_id                         out nocopy number
783   ,p_processing_priority_warning        out nocopy boolean
784   ,p_element_name_warning               out nocopy boolean
785   ,p_element_name_change_warning        out nocopy boolean
786   ) is
787   --
788   -- Declare cursors and local variables
789   --
790 
791   l_proc               		varchar2(72):=g_package||'UPDATE_ELEMENT_TYPE';
792   l_effective_date		date;
793   l_effective_start_date        date;
794   l_effective_end_date          date;
795   l_processing_priority_warning boolean;
796   l_element_name_warning        boolean;
797   l_element_name_change_warning boolean;
798   l_rowcount			number;
799   l_datetrack_update_mode	varchar2(30) := p_datetrack_update_mode;
800   l_object_version_number       pay_element_types_f.object_version_number%type;
801   l_comment_id     		pay_element_types_f.comment_id%type;
802   l_old_rec			pay_element_types_f%rowtype;
803   l_current_rec                 pay_element_types_f_tl%rowtype;
804   l_base_element_name           pay_element_types_f.element_name%type;
805   l_recreate_db_items           varchar2(1) := 'N';
806   l_language_code               pay_element_types_f_tl.language%type;
807 
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_nd.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
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_effective_start_date         	=>	 l_effective_start_date
1136     ,p_effective_end_date           	=>	 l_effective_end_date
1137     ,p_comment_id                   	=>	 l_comment_id
1138     ,p_processing_priority_warning	=>       l_processing_priority_warning
1139     );
1140 
1141   --
1142   -- Update the translation table values
1143   --
1144   pay_ett_upd.upd_tl
1145     (p_language_code    => l_language_code
1146     ,p_element_type_id  => p_element_type_id
1147     ,p_element_name     => p_element_name
1148     ,p_reporting_name   => p_reporting_name
1149     ,p_description      => p_description
1150     );
1151 
1152   -- If the element name is updated then drop and recreate DB items
1153   --
1154   If l_recreate_db_items = 'Y' then
1155     pay_element_types_pkg.recreate_db_items
1156       (p_element_type_id,
1157        l_effective_date);
1158   End If;
1159 
1160   -- If the Multiple Entries Allowed is updated then Re-create all the input
1161   -- value DB items for the element.
1162   --
1163   If nvl(p_multiple_entries_allowed_fla,hr_api.g_varchar2)
1164      <> hr_api.g_varchar2 Then
1165     pay_input_values_pkg.recreate_db_items(p_element_type_id);
1166   End If;
1167   --
1168   -- Call After Process User Hook
1169   --
1170   begin
1171     PAY_ELEMENT_TYPES_BK2.UPDATE_ELEMENT_TYPE_a
1172      (p_effective_date                  =>   l_effective_date
1173      ,p_datetrack_update_mode		=>   l_datetrack_update_mode
1174      ,p_element_type_id        	        =>   p_element_type_id
1175      ,p_object_version_number  		=>   l_object_version_number
1176      ,p_formula_id                  	=>   p_formula_id
1177      ,p_benefit_classification_id   	=>   p_benefit_classification_id
1178      ,p_additional_entry_allowed_fla    =>   p_additional_entry_allowed_fla
1179      ,p_adjustment_only_flag        	=>   p_adjustment_only_flag
1180      ,p_closed_for_entry_flag       	=>   p_closed_for_entry_flag
1181      ,p_element_name                	=>   p_element_name
1182      ,p_reporting_name              	=>   p_reporting_name
1183      ,p_description                 	=>   p_description
1184      ,p_indirect_only_flag          	=>   p_indirect_only_flag
1185      ,p_multiple_entries_allowed_fla    =>   p_multiple_entries_allowed_fla
1186      ,p_multiply_value_flag         	=>   p_multiply_value_flag
1187      ,p_post_termination_rule       	=>   p_post_termination_rule
1188      ,p_process_in_run_flag         	=>   p_process_in_run_flag
1189      ,p_processing_priority         	=>   p_processing_priority
1190      ,p_standard_link_flag          	=>   p_standard_link_flag
1191      ,p_comments                    	=>   p_comments
1192      ,p_comment_id			            =>   l_comment_id
1193      ,p_qualifying_age              	=>   p_qualifying_age
1194      ,p_qualifying_length_of_service    =>   p_qualifying_length_of_service
1195      ,p_qualifying_units            	=>   p_qualifying_units
1196      ,p_attribute_category          	=>   p_attribute_category
1197      ,p_attribute1                  	=>   p_attribute1
1198      ,p_attribute2                  	=>   p_attribute2
1199      ,p_attribute3                  	=>   p_attribute3
1200      ,p_attribute4                  	=>   p_attribute4
1201      ,p_attribute5                  	=>   p_attribute5
1202      ,p_attribute6                  	=>   p_attribute6
1203      ,p_attribute7                  	=>   p_attribute7
1204      ,p_attribute8                  	=>   p_attribute8
1205      ,p_attribute9                  	=>   p_attribute9
1206      ,p_attribute10                 	=>   p_attribute10
1207      ,p_attribute11                 	=>   p_attribute11
1208      ,p_attribute12                 	=>   p_attribute12
1209      ,p_attribute13                 	=>   p_attribute13
1210      ,p_attribute14                 	=>   p_attribute14
1211      ,p_attribute15                 	=>   p_attribute15
1212      ,p_attribute16                 	=>   p_attribute16
1213      ,p_attribute17                 	=>   p_attribute17
1214      ,p_attribute18                 	=>   p_attribute18
1215      ,p_attribute19                 	=>   p_attribute19
1216      ,p_attribute20                 	=>   p_attribute20
1217      ,p_element_information_category    =>   p_element_information_category
1218      ,p_element_information1        	=>   p_element_information1
1219      ,p_element_information2        	=>   p_element_information2
1220      ,p_element_information3        	=>   p_element_information3
1221      ,p_element_information4        	=>   p_element_information4
1222      ,p_element_information5        	=>   p_element_information5
1223      ,p_element_information6        	=>   p_element_information6
1224      ,p_element_information7        	=>   p_element_information7
1225      ,p_element_information8        	=>   p_element_information8
1226      ,p_element_information9        	=>   p_element_information9
1227      ,p_element_information10       	=>   p_element_information10
1228      ,p_element_information11       	=>   p_element_information11
1229      ,p_element_information12       	=>   p_element_information12
1230      ,p_element_information13       	=>   p_element_information13
1231      ,p_element_information14       	=>   p_element_information14
1232      ,p_element_information15       	=>   p_element_information15
1233      ,p_element_information16       	=>   p_element_information16
1234      ,p_element_information17       	=>   p_element_information17
1235      ,p_element_information18       	=>   p_element_information18
1236      ,p_element_information19       	=>   p_element_information19
1237      ,p_element_information20       	=>   p_element_information20
1238      ,p_third_party_pay_only_flag   	=>   p_third_party_pay_only_flag
1239      ,p_iterative_flag              	=>   p_iterative_flag
1240      ,p_iterative_formula_id        	=>   p_iterative_formula_id
1241      ,p_iterative_priority          	=>   p_iterative_priority
1242      ,p_creator_type                	=>   p_creator_type
1243      ,p_retro_summ_ele_id           	=>   p_retro_summ_ele_id
1244      ,p_grossup_flag                	=>   p_grossup_flag
1245      ,p_process_mode                	=>   p_process_mode
1246      ,p_advance_indicator           	=>   p_advance_indicator
1247      ,p_advance_payable             	=>   p_advance_payable
1248      ,p_advance_deduction           	=>   p_advance_deduction
1249      ,p_process_advance_entry       	=>   p_process_advance_entry
1250      ,p_proration_group_id          	=>   p_proration_group_id
1251      ,p_proration_formula_id        	=>   p_proration_formula_id
1252      ,p_recalc_event_group_id 	    	=>   p_recalc_event_group_id
1253      ,p_once_each_period_flag           =>   p_once_each_period_flag
1254      ,p_language_code                   =>   l_language_code
1255      ,p_time_definition_type            =>   p_time_definition_type
1256      ,p_time_definition_id              =>   p_time_definition_id
1257      ,p_advance_element_type_id         =>   p_advance_element_type_id
1258      ,p_deduction_element_type_id       =>   p_deduction_element_type_id
1259      ,p_effective_start_date            =>   l_effective_start_date
1260      ,p_effective_end_date            	=>   l_effective_end_date
1261      ,p_processing_priority_warning     =>   l_processing_priority_warning
1262      ,p_element_name_warning            =>   l_element_name_warning
1263      ,p_element_name_change_warning     =>   l_element_name_change_warning
1264      );
1265   exception
1266     when hr_api.cannot_find_prog_unit then
1267       hr_api.cannot_find_prog_unit_error
1268         (p_module_name => 'UPDATE_ELEMENT_TYPE'
1269         ,p_hook_type   => 'AP'
1270         );
1271   end;
1272   --
1273   -- When in validation only mode raise the Validate_Enabled exception
1274   --
1275   if p_validate then
1276     raise hr_api.validate_enabled;
1277   end if;
1278   --
1279   -- Set all output arguments
1280   --
1281   p_effective_start_date        := l_effective_start_date;
1282   p_effective_end_date          := l_effective_end_date;
1283   p_object_version_number      	:= l_object_version_number;
1284   p_comment_id			:= l_comment_id;
1285   p_processing_priority_warning	:= l_processing_priority_warning;
1286   p_element_name_warning        := l_element_name_warning;
1287   p_element_name_change_warning := l_element_name_change_warning;
1288   --
1289   hr_utility.set_location(' Leaving:'||l_proc, 70);
1290 exception
1291   when hr_api.validate_enabled then
1292     --
1293     -- As the Validate_Enabled exception has been raised
1294     -- we must rollback to the savepoint
1295     --
1296     rollback to UPDATE_ELEMENT_TYPE;
1297     --
1298     -- Only set output warning arguments
1299     -- (Any key or derived arguments must be set to null
1300     -- when validation only mode is being used.)
1301     --
1302     p_effective_start_date        := null;
1303     p_effective_end_date          := null;
1304     p_object_version_number       := null;
1305     p_comment_id		  := null;
1306     p_processing_priority_warning := l_processing_priority_warning;
1307     p_element_name_warning        := l_element_name_warning;
1308     p_element_name_change_warning := l_element_name_change_warning;
1309     --
1310     hr_utility.set_location(' Leaving:'||l_proc, 80);
1311   when others then
1312     --
1313     -- A validation or unexpected error has occured
1314     --
1315     rollback to UPDATE_ELEMENT_TYPE;
1316     hr_utility.set_location(' Leaving:'||l_proc, 90);
1317     raise;
1318 end UPDATE_ELEMENT_TYPE;
1319 --
1320 -- ----------------------------------------------------------------------------
1321 -- |--------------------------< DELETE_ELEMENT_TYPE >-------------------------|
1322 -- ----------------------------------------------------------------------------
1323 --
1324 procedure DELETE_ELEMENT_TYPE
1325   (p_validate                        in     boolean default false
1326   ,p_effective_date                  in     date
1327   ,p_datetrack_delete_mode           in     varchar2
1328   ,p_element_type_id                 in     number
1329   ,p_object_version_number           in out nocopy number
1330   ,p_effective_start_date               out nocopy date
1331   ,p_effective_end_date                 out nocopy date
1332   ,p_balance_feeds_warning              out nocopy boolean
1333   ,p_processing_rules_warning           out nocopy boolean
1334   ) is
1335   --
1336   -- Declare cursors and local variables
1337   --
1338 
1339   l_proc                	varchar2(72):=g_package||'DELETE_ELEMENT_TYP';
1340   l_effective_date		date;
1341   l_effective_start_date        date;
1342   l_effective_end_date          date;
1343   l_balance_feeds_warning 	boolean;
1344   l_processing_rules_warning    boolean;
1345   l_object_version_number       pay_element_types_f.object_version_number%type;
1346   --
1347 begin
1348   hr_utility.set_location('Entering:'|| l_proc, 10);
1349   --
1350   -- Issue a savepoint
1351   --
1352   savepoint DELETE_ELEMENT_TYPE;
1353   --
1354   -- Truncate the time portion from all IN date parameters
1355   --
1356   l_effective_date	  := trunc(p_effective_date);
1357   l_object_version_number := p_object_version_number;
1358   --
1359   -- Call Before Process User Hook
1360   --
1361   begin
1362     PAY_ELEMENT_TYPES_BK3.DELETE_ELEMENT_TYPE_b
1363       (p_effective_date              =>  l_effective_date
1364       ,p_datetrack_delete_mode       =>  p_datetrack_delete_mode
1365       ,p_element_type_id             =>  p_element_type_id
1366       ,p_object_version_number       =>  l_object_version_number
1367       );
1368   exception
1369     when hr_api.cannot_find_prog_unit then
1370       hr_api.cannot_find_prog_unit_error
1371         (p_module_name => 'DELETE_ELEMENT_TYPE'
1372         ,p_hook_type   => 'BP'
1373         );
1374   end;
1375   --
1376   -- Validation in addition to Row Handlers
1377   --
1378 
1379   --
1380   -- Process Logic
1381   --
1382   pay_etp_del_nd.del
1383     (p_effective_date		=>  l_effective_date
1384     ,p_datetrack_mode 		=>  p_datetrack_delete_mode
1385     ,p_element_type_id		=>  p_element_type_id
1386     ,p_object_version_number    =>  l_object_version_number
1387     ,p_effective_start_date     =>  l_effective_start_date
1388     ,p_effective_end_date       =>  l_effective_end_date
1389     ,p_balance_feeds_warning    =>  l_balance_feeds_warning
1390     ,p_processing_rules_warning =>  l_processing_rules_warning
1391     );
1392 
1393   --
1394   -- Call After Process User Hook
1395   --
1396   begin
1397     PAY_ELEMENT_TYPES_BK3.DELETE_ELEMENT_TYPE_a
1398       (p_effective_date              =>  p_effective_date
1399       ,p_datetrack_delete_mode       =>  p_datetrack_delete_mode
1400       ,p_element_type_id             =>  p_element_type_id
1401       ,p_object_version_number       =>  l_object_version_number
1402       ,p_effective_start_date        =>  l_effective_start_date
1403       ,p_effective_end_date          =>  l_effective_end_date
1404       ,p_balance_feeds_warning       =>  l_balance_feeds_warning
1405       ,p_processing_rules_warning    =>  l_processing_rules_warning
1406       );
1407   exception
1408     when hr_api.cannot_find_prog_unit then
1409       hr_api.cannot_find_prog_unit_error
1410         (p_module_name => 'DELETE_ELEMENT_TYPE'
1411         ,p_hook_type   => 'AP'
1412         );
1413   end;
1414   --
1415   -- When in validation only mode raise the Validate_Enabled exception
1416   --
1417   if p_validate then
1418     raise hr_api.validate_enabled;
1419   end if;
1420   --
1421   -- Set all output arguments
1422   --
1423   p_effective_start_date        := l_effective_start_date;
1424   p_effective_end_date          := l_effective_end_date;
1425   p_object_version_number      	:= l_object_version_number;
1426   p_balance_feeds_warning	    := l_balance_feeds_warning;
1427   p_processing_rules_warning	:= l_processing_rules_warning;
1428   --
1429   hr_utility.set_location(' Leaving:'||l_proc, 70);
1430 exception
1431   when hr_api.validate_enabled then
1432     --
1433     -- As the Validate_Enabled exception has been raised
1434     -- we must rollback to the savepoint
1435     --
1436     rollback to DELETE_ELEMENT_TYPE;
1437     --
1438     -- Only set output warning arguments
1439     -- (Any key or derived arguments must be set to null
1440     -- when validation only mode is being used.)
1441     --
1442     p_effective_start_date        := null;
1443     p_effective_end_date          := null;
1444     p_object_version_number       := null;
1445     p_balance_feeds_warning	  := l_balance_feeds_warning;
1446     p_processing_rules_warning	  := l_processing_rules_warning;
1447     --
1448     hr_utility.set_location(' Leaving:'||l_proc, 80);
1449   when others then
1450     --
1451     -- A validation or unexpected error has occured
1452     --
1453     rollback to DELETE_ELEMENT_TYPE;
1454     hr_utility.set_location(' Leaving:'||l_proc, 90);
1455     raise;
1456 end DELETE_ELEMENT_TYPE;
1457 --
1458 
1459 end PAY_ELEMENT_TYPES_MIG;