DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_MAINTAIN_PROPOSAL_SWI

Source


1 Package Body hr_maintain_proposal_swi As
2 /* $Header: hrpypswi.pkb 120.3.12010000.2 2008/12/04 17:27:36 schowdhu ship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_maintain_proposal_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< approve_salary_proposal >-----------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE approve_salary_proposal
12   (p_pay_proposal_id              in     number
13   ,p_change_date                  in     date      default hr_api.g_date
14   ,p_proposed_salary_n            in     number    default hr_api.g_number
15   ,p_object_version_number        in out nocopy number
16   ,p_validate                     in     number    default hr_api.g_false_num
17   ,p_error_text                      out nocopy varchar2
18   ,p_return_status                   out nocopy varchar2
19   ) is
20   --
21   -- Variables for API Boolean parameters
22   l_validate                      boolean;
23   l_inv_next_sal_date_warning     boolean;
24   l_proposed_salary_warning       boolean;
25   l_approved_warning              boolean;
26   l_payroll_warning               boolean;
27   --
28   -- Variables for IN/OUT parameters
29   l_object_version_number         number;
30   --
31   -- Other variables
32   l_proc    varchar2(72) := g_package ||'approve_salary_proposal';
33 Begin
34   hr_utility.set_location(' Entering:' || l_proc,10);
35   --
36   -- Issue a savepoint
37   --
38   savepoint approve_salary_proposal_swi;
39   --
40   -- Initialise Multiple Message Detection
41   --
42   hr_multi_message.enable_message_list;
43   --
44   -- Remember IN OUT parameter IN values
45   --
46   l_object_version_number         := p_object_version_number;
47   --
48   -- Convert constant values to their corresponding boolean value
49   --
50   l_validate :=
51     hr_api.constant_to_boolean
52       (p_constant_value => p_validate);
53   --
54   -- Register Surrogate ID or user key values
55   --
56   --
57   -- Call API
58   --
59   hr_maintain_proposal_api.approve_salary_proposal
60     (p_pay_proposal_id              => p_pay_proposal_id
61     ,p_change_date                  => p_change_date
62     ,p_proposed_salary_n            => p_proposed_salary_n
63     ,p_object_version_number        => p_object_version_number
64     ,p_validate                     => l_validate
65     ,p_inv_next_sal_date_warning    => l_inv_next_sal_date_warning
66     ,p_proposed_salary_warning      => l_proposed_salary_warning
67     ,p_approved_warning             => l_approved_warning
68     ,p_payroll_warning              => l_payroll_warning
69     ,p_error_text                   => p_error_text
70     );
71   --
72   -- Convert API warning boolean parameter values to specific
73   -- messages and add them to Multiple Message List
74   --
75   --
76   -- Convert API non-warning boolean parameter values
77   --
78   --
79   -- Derive the API return status value based on whether
80   -- messages of any type exist in the Multiple Message List.
81   -- Also disable Multiple Message Detection.
82   --
83   p_return_status := hr_multi_message.get_return_status_disable;
84   hr_utility.set_location(' Leaving:' || l_proc,20);
85   --
86 exception
87   when hr_multi_message.error_message_exist then
88     --
89     -- Catch the Multiple Message List exception which
90     -- indicates API processing has been aborted because
91     -- at least one message exists in the list.
92     --
93     rollback to approve_salary_proposal_swi;
94     --
95     -- Reset IN OUT parameters and set OUT parameters
96     --
97     p_object_version_number        := l_object_version_number;
98     p_error_text                   := null;
99     p_return_status := hr_multi_message.get_return_status_disable;
100     hr_utility.set_location(' Leaving:' || l_proc, 30);
101   when others then
102     --
103     -- When Multiple Message Detection is enabled catch
104     -- any Application specific or other unexpected
105     -- exceptions.  Adding appropriate details to the
106     -- Multiple Message List.  Otherwise re-raise the
107     -- error.
108     --
109     rollback to approve_salary_proposal_swi;
110     if hr_multi_message.unexpected_error_add(l_proc) then
111        hr_utility.set_location(' Leaving:' || l_proc,40);
112        raise;
113     end if;
114     --
115     -- Reset IN OUT and set OUT parameters
116     --
117     p_object_version_number        := l_object_version_number;
118     p_error_text                   := null;
119     p_return_status := hr_multi_message.get_return_status_disable;
120     hr_utility.set_location(' Leaving:' || l_proc,50);
121 end approve_salary_proposal;
122 -- ----------------------------------------------------------------------------
123 -- |----------------------< cre_or_upd_salary_proposal >----------------------|
124 -- ----------------------------------------------------------------------------
125 PROCEDURE cre_or_upd_salary_proposal
126   (p_validate                     in     number    default hr_api.g_false_num
127   ,p_pay_proposal_id              in out nocopy number
128   ,p_object_version_number        in out nocopy number
129   ,p_business_group_id            in     number    default hr_api.g_number
130   ,p_assignment_id                in     number    default hr_api.g_number
131   ,p_change_date                  in     date      default hr_api.g_date
132   ,p_comments                     in     varchar2  default hr_api.g_varchar2
133   ,p_next_sal_review_date         in     date      default hr_api.g_date
134   ,p_proposal_reason              in     varchar2  default hr_api.g_varchar2
135   ,p_proposed_salary_n            in     number    default hr_api.g_number
136   ,p_forced_ranking               in     number    default hr_api.g_number
137   ,p_date_to			  in     date      default hr_api.g_date
138   ,p_performance_review_id        in     number    default hr_api.g_number
139   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
140   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
141   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
142   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
143   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
144   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
145   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
146   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
147   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
148   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
149   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
150   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
151   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
152   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
153   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
154   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
155   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
156   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
157   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
158   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
159   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
160   ,p_multiple_components          in     varchar2  default hr_api.g_varchar2
161   ,p_approved                     in     varchar2  default hr_api.g_varchar2
162   ,p_return_status                   out nocopy varchar2
163   ) is
164   --
165   -- Variables for API Boolean parameters
166   l_validate                      boolean;
167   l_inv_next_sal_date_warning     boolean;
168   l_proposed_salary_warning       boolean;
169   l_approved_warning              boolean;
170   l_payroll_warning               boolean;
171   --
172   -- Variables for IN/OUT parameters
173   l_pay_proposal_id               number;
174   l_object_version_number         number;
175   --
176   -- Other variables
177   l_proc    varchar2(72) := g_package ||'cre_or_upd_salary_proposal';
178 Begin
179   hr_utility.set_location(' Entering:' || l_proc,10);
180   --
181   -- Issue a savepoint
182   --
183   savepoint cre_or_upd_salary_proposal_swi;
184   --
185   -- Initialise Multiple Message Detection
186   --
187   hr_multi_message.enable_message_list;
188   --
189   -- Remember IN OUT parameter IN values
190   --
191   l_pay_proposal_id               := p_pay_proposal_id;
192   l_object_version_number         := p_object_version_number;
193   --
194   -- Convert constant values to their corresponding boolean value
195   --
196   l_validate :=
197     hr_api.constant_to_boolean
198       (p_constant_value => p_validate);
199   --
200   -- Register Surrogate ID or user key values
201   --
202   --
203   -- Call API
204   --
205   hr_maintain_proposal_api.cre_or_upd_salary_proposal
206     (p_validate                     => l_validate
207     ,p_pay_proposal_id              => p_pay_proposal_id
208     ,p_object_version_number        => p_object_version_number
209     ,p_business_group_id            => p_business_group_id
210     ,p_assignment_id                => p_assignment_id
211     ,p_change_date                  => p_change_date
212     ,p_comments                     => p_comments
213     ,p_next_sal_review_date         => p_next_sal_review_date
214     ,p_proposal_reason              => p_proposal_reason
215     ,p_proposed_salary_n            => p_proposed_salary_n
216     ,p_forced_ranking               => p_forced_ranking
217     ,p_date_to			    => p_date_to
218     ,p_performance_review_id        => p_performance_review_id
219     ,p_attribute_category           => p_attribute_category
220     ,p_attribute1                   => p_attribute1
221     ,p_attribute2                   => p_attribute2
222     ,p_attribute3                   => p_attribute3
223     ,p_attribute4                   => p_attribute4
224     ,p_attribute5                   => p_attribute5
225     ,p_attribute6                   => p_attribute6
226     ,p_attribute7                   => p_attribute7
227     ,p_attribute8                   => p_attribute8
228     ,p_attribute9                   => p_attribute9
229     ,p_attribute10                  => p_attribute10
230     ,p_attribute11                  => p_attribute11
231     ,p_attribute12                  => p_attribute12
232     ,p_attribute13                  => p_attribute13
233     ,p_attribute14                  => p_attribute14
234     ,p_attribute15                  => p_attribute15
235     ,p_attribute16                  => p_attribute16
236     ,p_attribute17                  => p_attribute17
237     ,p_attribute18                  => p_attribute18
238     ,p_attribute19                  => p_attribute19
239     ,p_attribute20                  => p_attribute20
240     ,p_multiple_components          => p_multiple_components
241     ,p_approved                     => p_approved
242     ,p_inv_next_sal_date_warning    => l_inv_next_sal_date_warning
243     ,p_proposed_salary_warning      => l_proposed_salary_warning
244     ,p_approved_warning             => l_approved_warning
245     ,p_payroll_warning              => l_payroll_warning
246     );
247   --
248   -- Convert API warning boolean parameter values to specific
249   -- messages and add them to Multiple Message List
250   --
251   --
252   -- Convert API non-warning boolean parameter values
253   --
254   --
255   -- Derive the API return status value based on whether
256   -- messages of any type exist in the Multiple Message List.
257   -- Also disable Multiple Message Detection.
258   --
259   p_return_status := hr_multi_message.get_return_status_disable;
260   hr_utility.set_location(' Leaving:' || l_proc,20);
261   --
262 exception
263   when hr_multi_message.error_message_exist then
264     --
265     -- Catch the Multiple Message List exception which
266     -- indicates API processing has been aborted because
267     -- at least one message exists in the list.
268     --
269     rollback to cre_or_upd_salary_proposal_swi;
270     --
271     -- Reset IN OUT parameters and set OUT parameters
272     --
273     p_pay_proposal_id              := l_pay_proposal_id;
274     p_object_version_number        := l_object_version_number;
275     p_return_status := hr_multi_message.get_return_status_disable;
276     hr_utility.set_location(' Leaving:' || l_proc, 30);
277   when others then
278     --
279     -- When Multiple Message Detection is enabled catch
280     -- any Application specific or other unexpected
281     -- exceptions.  Adding appropriate details to the
282     -- Multiple Message List.  Otherwise re-raise the
283     -- error.
284     --
285     rollback to cre_or_upd_salary_proposal_swi;
286     if hr_multi_message.unexpected_error_add(l_proc) then
287        hr_utility.set_location(' Leaving:' || l_proc,40);
288        raise;
289     end if;
290     --
291     -- Reset IN OUT and set OUT parameters
292     --
293     p_pay_proposal_id              := l_pay_proposal_id;
294     p_object_version_number        := l_object_version_number;
295     p_return_status := hr_multi_message.get_return_status_disable;
296     hr_utility.set_location(' Leaving:' || l_proc,50);
297 end cre_or_upd_salary_proposal;
298 -- ----------------------------------------------------------------------------
299 -- |-----------------------< delete_proposal_component >----------------------|
300 -- ----------------------------------------------------------------------------
301 PROCEDURE delete_proposal_component
302   (p_component_id                 in     number
303   ,p_validation_strength          in     varchar2  default hr_api.g_varchar2
304   ,p_object_version_number        in     number
305   ,p_validate                     in     number    default hr_api.g_false_num
306   ,p_return_status                   out nocopy varchar2
307   ) is
308   --
309   -- Variables for API Boolean parameters
310   l_validate                      boolean;
311   --
312   -- Variables for IN/OUT parameters
313   --
314   -- Other variables
315   l_proc    varchar2(72) := g_package ||'delete_proposal_component';
316 Begin
317   hr_utility.set_location(' Entering:' || l_proc,10);
318   --
319   -- Issue a savepoint
320   --
321   savepoint delete_proposal_component_swi;
322   --
323   -- Initialise Multiple Message Detection
324   --
325   hr_multi_message.enable_message_list;
326   --
327   -- Remember IN OUT parameter IN values
328   --
329   --
330   -- Convert constant values to their corresponding boolean value
331   --
332   l_validate :=
333     hr_api.constant_to_boolean
334       (p_constant_value => p_validate);
335   --
336   -- Register Surrogate ID or user key values
337   --
338   --
339   -- Call API
340   --
341   hr_maintain_proposal_api.delete_proposal_component
342     (p_component_id                 => p_component_id
343     ,p_validation_strength          => p_validation_strength
344     ,p_object_version_number        => p_object_version_number
345     ,p_validate                     => l_validate
346     );
347   --
348   -- Convert API warning boolean parameter values to specific
349   -- messages and add them to Multiple Message List
350   --
351   --
352   -- Convert API non-warning boolean parameter values
353   --
354   --
355   -- Derive the API return status value based on whether
356   -- messages of any type exist in the Multiple Message List.
357   -- Also disable Multiple Message Detection.
358   --
359   p_return_status := hr_multi_message.get_return_status_disable;
360   hr_utility.set_location(' Leaving:' || l_proc,20);
361   --
362 exception
363   when hr_multi_message.error_message_exist then
364     --
365     -- Catch the Multiple Message List exception which
366     -- indicates API processing has been aborted because
367     -- at least one message exists in the list.
368     --
369     rollback to delete_proposal_component_swi;
370     --
371     -- Reset IN OUT parameters and set OUT parameters
372     --
373     p_return_status := hr_multi_message.get_return_status_disable;
374     hr_utility.set_location(' Leaving:' || l_proc, 30);
375   when others then
376     --
377     -- When Multiple Message Detection is enabled catch
378     -- any Application specific or other unexpected
379     -- exceptions.  Adding appropriate details to the
380     -- Multiple Message List.  Otherwise re-raise the
381     -- error.
382     --
383     rollback to delete_proposal_component_swi;
384     if hr_multi_message.unexpected_error_add(l_proc) then
385        hr_utility.set_location(' Leaving:' || l_proc,40);
386        raise;
387     end if;
388     --
389     -- Reset IN OUT and set OUT parameters
390     --
391     p_return_status := hr_multi_message.get_return_status_disable;
392     hr_utility.set_location(' Leaving:' || l_proc,50);
393 end delete_proposal_component;
394 -- ----------------------------------------------------------------------------
395 -- |------------------------< delete_salary_proposal >------------------------|
396 -- ----------------------------------------------------------------------------
397 PROCEDURE delete_salary_proposal
398   (p_pay_proposal_id              in     number
399   ,p_business_group_id            in     number
400   ,p_object_version_number        in     number
401   ,p_validate                     in     number    default hr_api.g_false_num
402   ,p_return_status                   out nocopy varchar2
403   ) is
404   --
405   -- Variables for API Boolean parameters
406   l_validate                      boolean;
407   l_salary_warning                boolean;
408   --
409   -- Variables for IN/OUT parameters
410   --
411   -- Other variables
412   l_proc    varchar2(72) := g_package ||'delete_salary_proposal';
413 Begin
414   hr_utility.set_location(' Entering:' || l_proc,10);
415   --
416   -- Issue a savepoint
417   --
418   savepoint delete_salary_proposal_swi;
419   --
420   -- Initialise Multiple Message Detection
421   --
422   hr_multi_message.enable_message_list;
423   --
424   -- Remember IN OUT parameter IN values
425   --
426   --
427   -- Convert constant values to their corresponding boolean value
428   --
429   l_validate :=
430     hr_api.constant_to_boolean
431       (p_constant_value => p_validate);
432   --
433   -- Register Surrogate ID or user key values
434   --
435   --
436   -- Call API
437   --
438   hr_maintain_proposal_api.delete_salary_proposal
439     (p_pay_proposal_id              => p_pay_proposal_id
440     ,p_business_group_id            => p_business_group_id
441     ,p_object_version_number        => p_object_version_number
442     ,p_validate                     => l_validate
443     ,p_salary_warning               => l_salary_warning
444     );
445   --
446   -- Convert API warning boolean parameter values to specific
447   -- messages and add them to Multiple Message List
448   --
449   --
450   -- Convert API non-warning boolean parameter values
451   --
452   --
453   -- Derive the API return status value based on whether
454   -- messages of any type exist in the Multiple Message List.
455   -- Also disable Multiple Message Detection.
456   --
457   p_return_status := hr_multi_message.get_return_status_disable;
458   hr_utility.set_location(' Leaving:' || l_proc,20);
459   --
460 exception
461   when hr_multi_message.error_message_exist then
462     --
463     -- Catch the Multiple Message List exception which
464     -- indicates API processing has been aborted because
465     -- at least one message exists in the list.
466     --
467     rollback to delete_salary_proposal_swi;
468     --
469     -- Reset IN OUT parameters and set OUT parameters
470     --
471     p_return_status := hr_multi_message.get_return_status_disable;
472     hr_utility.set_location(' Leaving:' || l_proc, 30);
473   when others then
474     --
475     -- When Multiple Message Detection is enabled catch
476     -- any Application specific or other unexpected
477     -- exceptions.  Adding appropriate details to the
478     -- Multiple Message List.  Otherwise re-raise the
479     -- error.
480     --
481     rollback to delete_salary_proposal_swi;
482     if hr_multi_message.unexpected_error_add(l_proc) then
483        hr_utility.set_location(' Leaving:' || l_proc,40);
484        raise;
485     end if;
486     --
487     -- Reset IN OUT and set OUT parameters
488     --
489     p_return_status := hr_multi_message.get_return_status_disable;
490     hr_utility.set_location(' Leaving:' || l_proc,50);
491 end delete_salary_proposal;
492 -- ----------------------------------------------------------------------------
493 -- |-----------------------< insert_proposal_component >----------------------|
494 -- ----------------------------------------------------------------------------
495 PROCEDURE insert_proposal_component
496   (p_component_id                    out nocopy number
497   ,p_pay_proposal_id              in     number
498   ,p_business_group_id            in     number
499   ,p_approved                     in     varchar2
500   ,p_component_reason             in     varchar2
501   ,p_change_amount_n              in     number    default hr_api.g_number
502   ,p_change_percentage            in     number    default hr_api.g_number
503   ,p_comments                     in     varchar2  default hr_api.g_varchar2
504   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
505   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
506   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
507   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
508   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
509   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
510   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
511   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
512   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
513   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
514   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
515   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
516   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
517   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
518   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
519   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
520   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
521   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
522   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
523   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
524   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
525   ,p_validation_strength          in     varchar2  default hr_api.g_varchar2
526   ,p_object_version_number           out nocopy number
527   ,p_validate                     in     number    default hr_api.g_false_num
528   ,p_return_status                   out nocopy varchar2
529   ) is
530   --
531   -- Variables for API Boolean parameters
532   l_validate                      boolean;
533   --
534   -- Variables for IN/OUT parameters
535   --
536   -- Other variables
537   l_proc    varchar2(72) := g_package ||'insert_proposal_component';
538 Begin
539   hr_utility.set_location(' Entering:' || l_proc,10);
540   --
541   -- Issue a savepoint
542   --
543   savepoint insert_proposal_component_swi;
544   --
545   -- Initialise Multiple Message Detection
546   --
547   hr_multi_message.enable_message_list;
548   --
549   -- Remember IN OUT parameter IN values
550   --
551   --
552   -- Convert constant values to their corresponding boolean value
553   --
554   l_validate :=
555     hr_api.constant_to_boolean
556       (p_constant_value => p_validate);
557   --
558   -- Register Surrogate ID or user key values
559   --
560   --
561   -- Call API
562   --
563   hr_maintain_proposal_api.insert_proposal_component
564     (p_component_id                 => p_component_id
565     ,p_pay_proposal_id              => p_pay_proposal_id
566     ,p_business_group_id            => p_business_group_id
567     ,p_approved                     => p_approved
568     ,p_component_reason             => p_component_reason
569     ,p_change_amount_n              => p_change_amount_n
570     ,p_change_percentage            => p_change_percentage
571     ,p_comments                     => p_comments
572     ,p_attribute_category           => p_attribute_category
573     ,p_attribute1                   => p_attribute1
574     ,p_attribute2                   => p_attribute2
575     ,p_attribute3                   => p_attribute3
576     ,p_attribute4                   => p_attribute4
577     ,p_attribute5                   => p_attribute5
578     ,p_attribute6                   => p_attribute6
579     ,p_attribute7                   => p_attribute7
580     ,p_attribute8                   => p_attribute8
581     ,p_attribute9                   => p_attribute9
582     ,p_attribute10                  => p_attribute10
583     ,p_attribute11                  => p_attribute11
584     ,p_attribute12                  => p_attribute12
585     ,p_attribute13                  => p_attribute13
586     ,p_attribute14                  => p_attribute14
587     ,p_attribute15                  => p_attribute15
588     ,p_attribute16                  => p_attribute16
589     ,p_attribute17                  => p_attribute17
590     ,p_attribute18                  => p_attribute18
591     ,p_attribute19                  => p_attribute19
592     ,p_attribute20                  => p_attribute20
593     ,p_validation_strength          => p_validation_strength
594     ,p_object_version_number        => p_object_version_number
595     ,p_validate                     => l_validate
596     );
597   --
598   -- Convert API warning boolean parameter values to specific
599   -- messages and add them to Multiple Message List
600   --
601   --
602   -- Convert API non-warning boolean parameter values
603   --
604   --
605   -- Derive the API return status value based on whether
606   -- messages of any type exist in the Multiple Message List.
607   -- Also disable Multiple Message Detection.
608   --
609   p_return_status := hr_multi_message.get_return_status_disable;
610   hr_utility.set_location(' Leaving:' || l_proc,20);
611   --
612 exception
613   when hr_multi_message.error_message_exist then
614     --
615     -- Catch the Multiple Message List exception which
616     -- indicates API processing has been aborted because
617     -- at least one message exists in the list.
618     --
619     rollback to insert_proposal_component_swi;
620     --
621     -- Reset IN OUT parameters and set OUT parameters
622     --
623     p_component_id                 := null;
624     p_object_version_number        := null;
625     p_return_status := hr_multi_message.get_return_status_disable;
626     hr_utility.set_location(' Leaving:' || l_proc, 30);
627   when others then
628     --
629     -- When Multiple Message Detection is enabled catch
630     -- any Application specific or other unexpected
631     -- exceptions.  Adding appropriate details to the
632     -- Multiple Message List.  Otherwise re-raise the
633     -- error.
634     --
635     rollback to insert_proposal_component_swi;
636     if hr_multi_message.unexpected_error_add(l_proc) then
637        hr_utility.set_location(' Leaving:' || l_proc,40);
638        raise;
639     end if;
640     --
641     -- Reset IN OUT and set OUT parameters
642     --
643     p_component_id                 := null;
644     p_object_version_number        := null;
645     p_return_status := hr_multi_message.get_return_status_disable;
646     hr_utility.set_location(' Leaving:' || l_proc,50);
647 end insert_proposal_component;
648 -- ----------------------------------------------------------------------------
649 -- |------------------------< insert_salary_proposal >------------------------|
650 -- ----------------------------------------------------------------------------
651 PROCEDURE insert_salary_proposal
652   (p_pay_proposal_id              in number
653   ,p_assignment_id                in     number
654   ,p_business_group_id            in     number
655   ,p_change_date                  in     date      default hr_api.g_date
656   ,p_comments                     in     varchar2  default hr_api.g_varchar2
657   ,p_next_sal_review_date         in     date      default hr_api.g_date
658   ,p_proposal_reason              in     varchar2  default hr_api.g_varchar2
659   ,p_proposed_salary_n            in     number    default hr_api.g_number
660   ,p_forced_ranking               in     number    default hr_api.g_number
661   ,p_date_to            	  in     date      default hr_general.end_of_time
662   ,p_performance_review_id        in     number    default hr_api.g_number
663   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
664   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
665   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
666   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
667   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
668   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
669   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
670   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
671   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
672   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
673   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
674   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
675   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
676   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
677   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
678   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
679   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
680   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
681   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
682   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
683   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
684   ,p_object_version_number           out nocopy number
685   ,p_multiple_components          in     varchar2  default hr_api.g_varchar2
686   ,p_approved                     in     varchar2  default hr_api.g_varchar2
687   ,p_validate                     in     number    default hr_api.g_false_num
688   ,p_element_entry_id             in out nocopy number
689   ,p_return_status                   out nocopy varchar2
690   ) is
691   --
692   -- Variables for API Boolean parameters
693   l_validate                      boolean;
694   l_inv_next_sal_date_warning     boolean;
695   l_proposed_salary_warning       boolean;
696   l_approved_warning              boolean;
697   l_payroll_warning               boolean;
698   --
699   -- Variables for IN/OUT parameters
700   l_element_entry_id              number;
701   l_pay_proposal_id               number := p_pay_proposal_id;
702   --
703   -- Other variables
704   l_proc    varchar2(72) := g_package ||'insert_salary_proposal';
705 Begin
706   hr_utility.set_location(' Entering:' || l_proc,10);
707 --setting the global variable to Y as the proposed
708 --proposals have already been deleted through OA.
709 --schowdhu -04-Dec-2008
710 
711 HR_MAINTAIN_PROPOSAL_API.g_deleted_from_oa:='Y';
712 
713 
714   --
715   -- Issue a savepoint
716   --
717   savepoint insert_salary_proposal_swi;
718   --
719   -- Initialise Multiple Message Detection
720   --
721   hr_multi_message.enable_message_list;
722   --
723   -- Remember IN OUT parameter IN values
724   --
725   l_element_entry_id              := p_element_entry_id;
726   --
727   -- Convert constant values to their corresponding boolean value
728   --
729   l_validate :=
730     hr_api.constant_to_boolean
731       (p_constant_value => p_validate);
732   --
733   -- Register Surrogate ID or user key values
734   --
735   per_pyp_ins.set_base_key_value
736     (p_pay_proposal_id => p_pay_proposal_id
737     );
738   --
739   -- Call API
740   --
741   hr_maintain_proposal_api.insert_salary_proposal
742     (p_pay_proposal_id              => l_pay_proposal_id
743     ,p_assignment_id                => p_assignment_id
744     ,p_business_group_id            => p_business_group_id
745     ,p_change_date                  => p_change_date
746     ,p_comments                     => p_comments
747     ,p_next_sal_review_date         => p_next_sal_review_date
748     ,p_proposal_reason              => p_proposal_reason
749     ,p_proposed_salary_n            => p_proposed_salary_n
750     ,p_forced_ranking               => p_forced_ranking
751     ,p_date_to			    => p_date_to
752     ,p_performance_review_id        => p_performance_review_id
753     ,p_attribute_category           => p_attribute_category
754     ,p_attribute1                   => p_attribute1
755     ,p_attribute2                   => p_attribute2
756     ,p_attribute3                   => p_attribute3
757     ,p_attribute4                   => p_attribute4
758     ,p_attribute5                   => p_attribute5
759     ,p_attribute6                   => p_attribute6
760     ,p_attribute7                   => p_attribute7
761     ,p_attribute8                   => p_attribute8
762     ,p_attribute9                   => p_attribute9
763     ,p_attribute10                  => p_attribute10
764     ,p_attribute11                  => p_attribute11
765     ,p_attribute12                  => p_attribute12
766     ,p_attribute13                  => p_attribute13
767     ,p_attribute14                  => p_attribute14
768     ,p_attribute15                  => p_attribute15
769     ,p_attribute16                  => p_attribute16
770     ,p_attribute17                  => p_attribute17
771     ,p_attribute18                  => p_attribute18
772     ,p_attribute19                  => p_attribute19
773     ,p_attribute20                  => p_attribute20
774     ,p_object_version_number        => p_object_version_number
775     ,p_multiple_components          => p_multiple_components
776     ,p_approved                     => p_approved
777     ,p_validate                     => l_validate
778     ,p_element_entry_id             => p_element_entry_id
779     ,p_inv_next_sal_date_warning    => l_inv_next_sal_date_warning
780     ,p_proposed_salary_warning      => l_proposed_salary_warning
781     ,p_approved_warning             => l_approved_warning
782     ,p_payroll_warning              => l_payroll_warning
783     );
784   --
785   -- Convert API warning boolean parameter values to specific
786   -- messages and add them to Multiple Message List
787   --
788   --
789   -- Convert API non-warning boolean parameter values
790   --
791   --
792   -- Derive the API return status value based on whether
793   -- messages of any type exist in the Multiple Message List.
794   -- Also disable Multiple Message Detection.
795   --
796   p_return_status := hr_multi_message.get_return_status_disable;
797   hr_utility.set_location(' Leaving:' || l_proc,20);
798   --
799 exception
800   when hr_multi_message.error_message_exist then
801     --
802     -- Catch the Multiple Message List exception which
803     -- indicates API processing has been aborted because
804     -- at least one message exists in the list.
805     --
806     rollback to insert_salary_proposal_swi;
807     --
808     -- Reset IN OUT parameters and set OUT parameters
809     --
810 --    p_pay_proposal_id              := null;
811     p_object_version_number        := null;
812     p_element_entry_id             := l_element_entry_id;
813     p_return_status := hr_multi_message.get_return_status_disable;
814     hr_utility.set_location(' Leaving:' || l_proc, 30);
815   when others then
816     --
817     -- When Multiple Message Detection is enabled catch
818     -- any Application specific or other unexpected
819     -- exceptions.  Adding appropriate details to the
820     -- Multiple Message List.  Otherwise re-raise the
821     -- error.
822     --
823     rollback to insert_salary_proposal_swi;
824     if hr_multi_message.unexpected_error_add(l_proc) then
825        hr_utility.set_location(' Leaving:' || l_proc,40);
826        raise;
827     end if;
828     --
829     -- Reset IN OUT and set OUT parameters
830     --
831     -- p_pay_proposal_id              := null;
832     p_object_version_number        := null;
833     p_element_entry_id             := l_element_entry_id;
834     p_return_status := hr_multi_message.get_return_status_disable;
835     hr_utility.set_location(' Leaving:' || l_proc,50);
836 end insert_salary_proposal;
837 -- ----------------------------------------------------------------------------
838 -- |-----------------------< update_proposal_component >----------------------|
839 -- ----------------------------------------------------------------------------
840 PROCEDURE update_proposal_component
841   (p_component_id                 in     number
842   ,p_approved                     in     varchar2  default hr_api.g_varchar2
843   ,p_component_reason             in     varchar2  default hr_api.g_varchar2
844   ,p_change_amount_n              in     number    default hr_api.g_number
845   ,p_change_percentage            in     number    default hr_api.g_number
846   ,p_comments                     in     varchar2  default hr_api.g_varchar2
847   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
848   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
849   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
850   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
851   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
852   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
853   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
854   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
855   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
856   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
857   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
858   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
859   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
860   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
861   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
862   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
863   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
864   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
865   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
866   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
867   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
868   ,p_validation_strength          in     varchar2  default hr_api.g_varchar2
869   ,p_object_version_number        in out nocopy number
870   ,p_validate                     in     number    default hr_api.g_false_num
871   ,p_return_status                   out nocopy varchar2
872   ) is
873   --
874   -- Variables for API Boolean parameters
875   l_validate                      boolean;
876   --
877   -- Variables for IN/OUT parameters
878   l_object_version_number         number;
879   --
880   -- Other variables
881   l_proc    varchar2(72) := g_package ||'update_proposal_component';
882 Begin
883   hr_utility.set_location(' Entering:' || l_proc,10);
884   --
885   -- Issue a savepoint
886   --
887   savepoint update_proposal_component_swi;
888   --
889   -- Initialise Multiple Message Detection
890   --
891   hr_multi_message.enable_message_list;
892   --
893   -- Remember IN OUT parameter IN values
894   --
895   l_object_version_number         := p_object_version_number;
896   --
897   -- Convert constant values to their corresponding boolean value
898   --
899   l_validate :=
900     hr_api.constant_to_boolean
901       (p_constant_value => p_validate);
902   --
903   -- Register Surrogate ID or user key values
904   --
905   --
906   -- Call API
907   --
908   hr_maintain_proposal_api.update_proposal_component
909     (p_component_id                 => p_component_id
910     ,p_approved                     => p_approved
911     ,p_component_reason             => p_component_reason
912     ,p_change_amount_n              => p_change_amount_n
913     ,p_change_percentage            => p_change_percentage
914     ,p_comments                     => p_comments
915     ,p_attribute_category           => p_attribute_category
916     ,p_attribute1                   => p_attribute1
917     ,p_attribute2                   => p_attribute2
918     ,p_attribute3                   => p_attribute3
919     ,p_attribute4                   => p_attribute4
920     ,p_attribute5                   => p_attribute5
921     ,p_attribute6                   => p_attribute6
922     ,p_attribute7                   => p_attribute7
923     ,p_attribute8                   => p_attribute8
924     ,p_attribute9                   => p_attribute9
925     ,p_attribute10                  => p_attribute10
926     ,p_attribute11                  => p_attribute11
927     ,p_attribute12                  => p_attribute12
928     ,p_attribute13                  => p_attribute13
929     ,p_attribute14                  => p_attribute14
930     ,p_attribute15                  => p_attribute15
931     ,p_attribute16                  => p_attribute16
932     ,p_attribute17                  => p_attribute17
933     ,p_attribute18                  => p_attribute18
934     ,p_attribute19                  => p_attribute19
935     ,p_attribute20                  => p_attribute20
936     ,p_validation_strength          => p_validation_strength
937     ,p_object_version_number        => p_object_version_number
938     ,p_validate                     => l_validate
939     );
940   --
941   -- Convert API warning boolean parameter values to specific
942   -- messages and add them to Multiple Message List
943   --
944   --
945   -- Convert API non-warning boolean parameter values
946   --
947   --
948   -- Derive the API return status value based on whether
949   -- messages of any type exist in the Multiple Message List.
950   -- Also disable Multiple Message Detection.
951   --
952   p_return_status := hr_multi_message.get_return_status_disable;
953   hr_utility.set_location(' Leaving:' || l_proc,20);
954   --
955 exception
956   when hr_multi_message.error_message_exist then
957     --
958     -- Catch the Multiple Message List exception which
959     -- indicates API processing has been aborted because
960     -- at least one message exists in the list.
961     --
962     rollback to update_proposal_component_swi;
963     --
964     -- Reset IN OUT parameters and set OUT parameters
965     --
966     p_object_version_number        := l_object_version_number;
967     p_return_status := hr_multi_message.get_return_status_disable;
968     hr_utility.set_location(' Leaving:' || l_proc, 30);
969   when others then
970     --
971     -- When Multiple Message Detection is enabled catch
972     -- any Application specific or other unexpected
973     -- exceptions.  Adding appropriate details to the
974     -- Multiple Message List.  Otherwise re-raise the
975     -- error.
976     --
977     rollback to update_proposal_component_swi;
978     if hr_multi_message.unexpected_error_add(l_proc) then
979        hr_utility.set_location(' Leaving:' || l_proc,40);
980        raise;
981     end if;
982     --
983     -- Reset IN OUT and set OUT parameters
984     --
985     p_object_version_number        := l_object_version_number;
986     p_return_status := hr_multi_message.get_return_status_disable;
987     hr_utility.set_location(' Leaving:' || l_proc,50);
988 end update_proposal_component;
989 -- ----------------------------------------------------------------------------
990 -- |------------------------< update_salary_proposal >------------------------|
991 -- ----------------------------------------------------------------------------
992 PROCEDURE update_salary_proposal
993   (p_pay_proposal_id              in     number
994   ,p_change_date                  in     date      default hr_api.g_date
995   ,p_comments                     in     varchar2  default hr_api.g_varchar2
996   ,p_next_sal_review_date         in     date      default hr_api.g_date
997   ,p_proposal_reason              in     varchar2  default hr_api.g_varchar2
998   ,p_proposed_salary_n            in     number    default hr_api.g_number
999   ,p_forced_ranking               in     number    default hr_api.g_number
1000   ,p_date_to			  in     date      default hr_api.g_date
1001   ,p_performance_review_id        in     number    default hr_api.g_number
1002   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
1003   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
1004   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
1005   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
1006   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
1007   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
1008   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
1009   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
1010   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
1011   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
1012   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
1013   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
1014   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
1015   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
1016   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
1017   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
1018   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
1019   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
1020   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
1021   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
1022   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
1023   ,p_object_version_number        in out nocopy number
1024   ,p_multiple_components          in     varchar2  default hr_api.g_varchar2
1025   ,p_approved                     in     varchar2  default hr_api.g_varchar2
1026   ,p_validate                     in     number    default hr_api.g_false_num
1027   ,p_return_status                   out nocopy varchar2
1028   ) is
1029   --
1030   -- Variables for API Boolean parameters
1031   l_validate                      boolean;
1032   l_inv_next_sal_date_warning     boolean;
1033   l_proposed_salary_warning       boolean;
1034   l_approved_warning              boolean;
1035   l_payroll_warning               boolean;
1036   --
1037   -- Variables for IN/OUT parameters
1038   l_object_version_number         number;
1039   --
1040   -- Other variables
1041   l_proc    varchar2(72) := g_package ||'update_salary_proposal';
1042 Begin
1043   hr_utility.set_location(' Entering:' || l_proc,10);
1044 
1045 --setting the global variable to Y as the proposed
1046 --proposals have already been deleted through OA.
1047 --schowdhu -04-Dec-2008
1048 
1049 HR_MAINTAIN_PROPOSAL_API.g_deleted_from_oa:='Y';
1050 
1051   --
1052   -- Issue a savepoint
1053   --
1054   savepoint update_salary_proposal_swi;
1055   --
1056   -- Initialise Multiple Message Detection
1057   --
1058   hr_multi_message.enable_message_list;
1059   --
1060   -- Remember IN OUT parameter IN values
1061   --
1062   l_object_version_number         := p_object_version_number;
1063   --
1064   -- Convert constant values to their corresponding boolean value
1065   --
1066   l_validate :=
1067     hr_api.constant_to_boolean
1068       (p_constant_value => p_validate);
1069   --
1070   -- Register Surrogate ID or user key values
1071   --
1072   --
1073   -- Call API
1074   --
1075   hr_maintain_proposal_api.update_salary_proposal
1076     (p_pay_proposal_id              => p_pay_proposal_id
1077     ,p_change_date                  => p_change_date
1078     ,p_comments                     => p_comments
1079     ,p_next_sal_review_date         => p_next_sal_review_date
1080     ,p_proposal_reason              => p_proposal_reason
1081     ,p_proposed_salary_n            => p_proposed_salary_n
1082     ,p_forced_ranking               => p_forced_ranking
1083     ,p_date_to			    => p_date_to
1084     ,p_performance_review_id        => p_performance_review_id
1085     ,p_attribute_category           => p_attribute_category
1086     ,p_attribute1                   => p_attribute1
1087     ,p_attribute2                   => p_attribute2
1088     ,p_attribute3                   => p_attribute3
1089     ,p_attribute4                   => p_attribute4
1090     ,p_attribute5                   => p_attribute5
1091     ,p_attribute6                   => p_attribute6
1092     ,p_attribute7                   => p_attribute7
1093     ,p_attribute8                   => p_attribute8
1094     ,p_attribute9                   => p_attribute9
1095     ,p_attribute10                  => p_attribute10
1096     ,p_attribute11                  => p_attribute11
1097     ,p_attribute12                  => p_attribute12
1098     ,p_attribute13                  => p_attribute13
1099     ,p_attribute14                  => p_attribute14
1100     ,p_attribute15                  => p_attribute15
1101     ,p_attribute16                  => p_attribute16
1102     ,p_attribute17                  => p_attribute17
1103     ,p_attribute18                  => p_attribute18
1104     ,p_attribute19                  => p_attribute19
1105     ,p_attribute20                  => p_attribute20
1106     ,p_object_version_number        => p_object_version_number
1107     ,p_multiple_components          => p_multiple_components
1108     ,p_approved                     => p_approved
1109     ,p_validate                     => l_validate
1110     ,p_inv_next_sal_date_warning    => l_inv_next_sal_date_warning
1111     ,p_proposed_salary_warning      => l_proposed_salary_warning
1112     ,p_approved_warning             => l_approved_warning
1113     ,p_payroll_warning              => l_payroll_warning
1114     );
1115   --
1116   -- Convert API warning boolean parameter values to specific
1117   -- messages and add them to Multiple Message List
1118   --
1119   --
1120   -- Convert API non-warning boolean parameter values
1121   --
1122   --
1123   -- Derive the API return status value based on whether
1124   -- messages of any type exist in the Multiple Message List.
1125   -- Also disable Multiple Message Detection.
1126   --
1127   p_return_status := hr_multi_message.get_return_status_disable;
1128   hr_utility.set_location(' Leaving:' || l_proc,20);
1129   --
1130 exception
1131   when hr_multi_message.error_message_exist then
1132     --
1133     -- Catch the Multiple Message List exception which
1134     -- indicates API processing has been aborted because
1135     -- at least one message exists in the list.
1136     --
1137     rollback to update_salary_proposal_swi;
1138     --
1139     -- Reset IN OUT parameters and set OUT parameters
1140     --
1141     p_object_version_number        := l_object_version_number;
1142     p_return_status := hr_multi_message.get_return_status_disable;
1143     hr_utility.set_location(' Leaving:' || l_proc, 30);
1144   when others then
1145     --
1146     -- When Multiple Message Detection is enabled catch
1147     -- any Application specific or other unexpected
1148     -- exceptions.  Adding appropriate details to the
1149     -- Multiple Message List.  Otherwise re-raise the
1150     -- error.
1151     --
1152     rollback to update_salary_proposal_swi;
1153     if hr_multi_message.unexpected_error_add(l_proc) then
1154        hr_utility.set_location(' Leaving:' || l_proc,40);
1155        raise;
1156     end if;
1157     --
1158     -- Reset IN OUT and set OUT parameters
1159     --
1160     p_object_version_number        := l_object_version_number;
1161     p_return_status := hr_multi_message.get_return_status_disable;
1162     hr_utility.set_location(' Leaving:' || l_proc,50);
1163 end update_salary_proposal;
1164 
1165 -- ----------------------------------------------------------------------------
1166 -- |----------------------------< process_api >-------------------------------|
1167 -- ----------------------------------------------------------------------------
1168 procedure process_api
1169 (
1170   p_document            in         CLOB
1171  ,p_return_status       out nocopy VARCHAR2
1172  ,p_validate            in         number    default hr_api.g_false_num
1173  ,p_effective_date      in         date      default null
1174 )
1175 IS
1176    l_postState VARCHAR2(2);
1177    l_return_status VARCHAR2(1);
1178    l_object_version_number number;
1179    l_commitElement xmldom.DOMElement;
1180    l_parser xmlparser.Parser;
1181    l_CommitNode xmldom.DOMNode;
1182    l_proc    varchar2(72) := g_package || 'process_api';
1183 
1184    --
1185    l_pay_proposal_id  number;
1186    l_element_entry_id number;
1187    --
1188 
1189 BEGIN
1190 
1191    hr_utility.set_location(' Entering:' || l_proc,10);
1192    hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
1193 
1194    l_parser      := xmlparser.newParser;
1195    xmlparser.ParseCLOB(l_parser,p_document);
1196    l_CommitNode  := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
1197 
1198    hr_utility.set_location('Extracting the PostState:' || l_proc,20);
1199 
1200    l_commitElement := xmldom.makeElement(l_CommitNode);
1201    l_postState := xmldom.getAttribute(l_commitElement, 'PS');
1202 
1203    --Get in/out parameters
1204    l_pay_proposal_id  :=  hr_transaction_swi.getNumberValue(l_CommitNode,'PayProposalId');
1205    l_element_entry_id  := null;--hr_transaction_swi.getNumberValue(l_CommitNode,'ElementEntryId');
1206    l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
1207 
1208    if l_postState = '2' then
1209      --
1210      hr_maintain_proposal_swi.update_salary_proposal
1211      (p_pay_proposal_id              =>       l_pay_proposal_id
1212      ,p_change_date                  =>       hr_transaction_swi.getDateValue(l_CommitNode,'ChangeDate')
1213      ,p_comments                     =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Comments')
1214      ,p_next_sal_review_date         =>       hr_transaction_swi.getDateValue(l_CommitNode,'NextSalReviewDate')
1215      ,p_proposal_reason              =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'ProposalReason')
1216      ,p_proposed_salary_n            =>       hr_transaction_swi.getNumberValue(l_CommitNode,'ProposedSalaryN')
1217      ,p_forced_ranking               =>       hr_transaction_swi.getNumberValue(l_CommitNode,'ForcedRanking')
1218      ,p_date_to			     =>       hr_transaction_swi.getDateValue(l_CommitNode,'DateTo')
1219      ,p_performance_review_id        =>       hr_transaction_swi.getNumberValue(l_CommitNode,'PerformanceReviewId')
1220      ,p_attribute_category           =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory')
1221      ,p_attribute1                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1')
1222      ,p_attribute2                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2')
1223      ,p_attribute3                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3')
1224      ,p_attribute4                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4')
1225      ,p_attribute5                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5')
1226      ,p_attribute6                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6')
1227      ,p_attribute7                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7')
1228      ,p_attribute8                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8')
1229      ,p_attribute9                   =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9')
1230      ,p_attribute10                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10')
1231      ,p_attribute11                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11')
1232      ,p_attribute12                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12')
1233      ,p_attribute13                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13')
1234      ,p_attribute14                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14')
1235      ,p_attribute15                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15')
1236      ,p_attribute16                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16')
1237      ,p_attribute17                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17')
1238      ,p_attribute18                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18')
1239      ,p_attribute19                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19')
1240      ,p_attribute20                  =>       hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20')
1241      ,p_object_version_number        =>       l_object_version_number
1242      ,p_multiple_components          =>       'N'--hr_transaction_swi.getVarchar2Value(l_CommitNode,'MultipleComponents')
1243      ,p_approved                     =>       'N'--hr_transaction_swi.getVarchar2Value(l_CommitNode,'Approved')
1244      ,p_validate                     =>       p_validate
1245      ,p_return_status                =>       l_return_status
1246      );
1247 
1248      --
1249    elsif l_postState = '3' then
1250      -- call delete offer
1251      --
1252      hr_maintain_proposal_swi.delete_salary_proposal
1253      (p_pay_proposal_id              =>       hr_transaction_swi.getNumberValue(l_CommitNode,'PayProposalId')
1254      ,p_business_group_id            =>       hr_transaction_swi.getNumberValue(l_CommitNode,'BusinessGroupId')
1255      ,p_object_version_number        =>       l_object_version_number
1256      ,p_validate                     =>       p_validate
1257      ,p_return_status                =>       l_return_status
1258      );
1259      --
1260    end if;
1261    p_return_status := l_return_status;
1262    hr_utility.set_location('Exiting:' || l_proc,40);
1263 
1264 end process_api;
1265 
1266 end hr_maintain_proposal_swi;