DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_CWK_TERMINATION_SWI

Source


1 Package Body hr_cwk_termination_swi As
2 /* $Header: hrcwtswi.pkb 120.2.12020000.3 2013/03/13 10:43:14 sudedas ship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_cwk_termination_swi.';
7 lv_transaction_steps hr_transaction_ss.transaction_table;
8 --
9 -- ----------------------------------------------------------------------------
10 -- |---------------------< actual_termination_placement >---------------------|
11 -- ----------------------------------------------------------------------------
12 PROCEDURE actual_termination_placement
13   (p_validate                     in     boolean
14   ,p_effective_date               in     date
15   ,p_person_id                    in     number
16   ,p_date_start                   in     date
17   ,p_object_version_number        in out nocopy number
18   ,p_actual_termination_date      in     date
19   ,p_last_standard_process_date   in out nocopy date
20   ,p_person_type_id               in     number    default hr_api.g_number
21   ,p_assignment_status_type_id    in     number    default hr_api.g_number
22   ,p_termination_reason           in     varchar2  default hr_api.g_varchar2
23   ,p_entries_changed_warning         out nocopy varchar2
24   ,p_return_status                   out nocopy varchar2
25   ) is
26   --
27   -- Variables for API Boolean parameters
28   l_validate                      boolean;
29   l_supervisor_warning            boolean;
30   l_event_warning                 boolean;
31   l_interview_warning             boolean;
32   l_review_warning                boolean;
33   l_recruiter_warning             boolean;
34   l_asg_future_changes_warning    boolean;
35   l_pay_proposal_warning          boolean;
36   l_dod_warning                   boolean;
37   --
38   -- Variables for IN/OUT parameters
39   l_object_version_number         number;
40   l_last_standard_process_date    date;
41   --
42   -- Other variables
43   l_proc    varchar2(72) := g_package ||'actual_termination_placement';
44 Begin
45   hr_utility.set_location(' Entering:' || l_proc,10);
46   --
47   -- Issue a savepoint
48   --
49   savepoint actual_term_placement_swi;
50   --
51   -- Initialise Multiple Message Detection
52   --
53   hr_multi_message.enable_message_list;
54   --
55   -- Remember IN OUT parameter IN values
56   --
57   l_object_version_number         := p_object_version_number;
58   l_last_standard_process_date    := p_last_standard_process_date;
59   --
60   -- Convert constant values to their corresponding boolean value
61   --
62 
63   --
64   -- Register Surrogate ID or user key values
65   --
66   --
67   -- Call API
68   --
69   hr_contingent_worker_api.actual_termination_placement
70     (p_validate                     => p_validate
71     ,p_effective_date               => p_effective_date
72     ,p_person_id                    => p_person_id
73     ,p_date_start                   => p_date_start
74     ,p_object_version_number        => p_object_version_number
75     ,p_actual_termination_date      => p_actual_termination_date
76     ,p_last_standard_process_date   => p_last_standard_process_date
77     ,p_person_type_id               => p_person_type_id
78     ,p_assignment_status_type_id    => p_assignment_status_type_id
79     ,p_termination_reason           => p_termination_reason
80     ,p_supervisor_warning           => l_supervisor_warning
81     ,p_event_warning                => l_event_warning
82     ,p_interview_warning            => l_interview_warning
83     ,p_review_warning               => l_review_warning
84     ,p_recruiter_warning            => l_recruiter_warning
85     ,p_asg_future_changes_warning   => l_asg_future_changes_warning
86     ,p_entries_changed_warning      => p_entries_changed_warning
87     ,p_pay_proposal_warning         => l_pay_proposal_warning
88     ,p_dod_warning                  => l_dod_warning
89     );
90   --
91   -- Convert API warning boolean parameter values to specific
92   -- messages and add them to Multiple Message List
93   --
94   /*
95   if l_supervisor_warning then
96      fnd_message.set_name('PER', 'HR_289757_CWK_IS_SUPER');
97       hr_multi_message.add
98         (p_message_type => hr_multi_message.g_warning_msg
99         );
100   end if;
101   if l_event_warning then
102      fnd_message.set_name('PER', 'HR_289759_CWK_HAS_EVENTS');
103       hr_multi_message.add
104         (p_message_type => hr_multi_message.g_warning_msg
105         );
106   end if;
107   if l_interview_warning then
108      fnd_message.set_name('PER', 'HR_289760_CWK_IS_INTERVIEWER');
109       hr_multi_message.add
110         (p_message_type => hr_multi_message.g_warning_msg
111         );
112   end if;
113   if l_review_warning then
114      fnd_message.set_name('PER', 'HR_289761_CWK_DUE_REVIEW');
115       hr_multi_message.add
116         (p_message_type => hr_multi_message.g_warning_msg
117         );
118   end if;
119   if l_recruiter_warning then
120      fnd_message.set_name('PER', 'HR_289762_CWK_VAC_RECRUITER');
121       hr_multi_message.add
122         (p_message_type => hr_multi_message.g_warning_msg
123         );
124   end if;
125   if l_asg_future_changes_warning then
126      fnd_message.set_name('PER', 'HR_EMP_ASG_FUTURE');
127       hr_multi_message.add
128         (p_message_type => hr_multi_message.g_warning_msg
129         );
130   end if;
131   -- l_pay_proposal_warning Reserved for future Use
132   if l_pay_proposal_warning then
133      fnd_message.set_name('PER', 'HR_PAY_PROPOSAL_WARN');
134       hr_multi_message.add
135         (p_message_type => hr_multi_message.g_warning_msg
136         );
137   end if;
138    if l_dod_warning then
139      fnd_message.set_name('PER', 'PER_52475_DEATH_TERM_DATES');
140       hr_multi_message.add
141         (p_message_type => hr_multi_message.g_warning_msg
142         );
143   end if;
144   */
145   --
146   -- Convert API non-warning boolean parameter values
147   --
148   --
149   -- Derive the API return status value based on whether
150   -- messages of any type exist in the Multiple Message List.
151   -- Also disable Multiple Message Detection.
152   --
153   p_return_status := hr_multi_message.get_return_status_disable;
154   hr_utility.set_location(' Leaving:' || l_proc,20);
155   --
156 exception
157   when hr_multi_message.error_message_exist then
158     --
159     -- Catch the Multiple Message List exception which
160     -- indicates API processing has been aborted because
161     -- at least one message exists in the list.
162     --
163     rollback to actual_term_placement_swi;
164     --
165     -- Reset IN OUT parameters and set OUT parameters
166     --
167     p_object_version_number        := l_object_version_number;
168     p_last_standard_process_date   := l_last_standard_process_date;
169     p_return_status := hr_multi_message.get_return_status_disable;
170     hr_utility.set_location(' Leaving:' || l_proc, 30);
171   when others then
172     --
173     -- When Multiple Message Detection is enabled catch
174     -- any Application specific or other unexpected
175     -- exceptions.  Adding appropriate details to the
176     -- Multiple Message List.  Otherwise re-raise the
177     -- error.
178     --
179     rollback to actual_term_placement_swi;
180     if hr_multi_message.unexpected_error_add(l_proc) then
181        hr_utility.set_location(' Leaving:' || l_proc,40);
182        raise;
183     end if;
184     --
185     -- Reset IN OUT and set OUT parameters
186     --
187     p_object_version_number        := l_object_version_number;
188     p_last_standard_process_date   := l_last_standard_process_date;
189     p_return_status := hr_multi_message.get_return_status_disable;
190     hr_utility.set_location(' Leaving:' || l_proc,50);
191 end actual_termination_placement;
192 -- ----------------------------------------------------------------------------
193 -- |------------------------< final_process_placement >-----------------------|
194 -- ----------------------------------------------------------------------------
195 PROCEDURE final_process_placement
196   (p_validate                     in     boolean
197   ,p_person_id                    in     number
198   ,p_date_start                   in     date
199   ,p_object_version_number        in out nocopy number
200   ,p_final_process_date           in out nocopy date
201   ,p_entries_changed_warning         out nocopy varchar2
202   ,p_return_status                   out nocopy varchar2
203   ) is
204   --
205   -- Variables for API Boolean parameters
206   l_validate                      boolean;
207   l_org_now_no_manager_warning    boolean;
208   l_asg_future_changes_warning    boolean;
209   --
210   -- Variables for IN/OUT parameters
211   l_object_version_number         number;
212   l_final_process_date            date;
213   --
214   -- Other variables
215   l_proc    varchar2(72) := g_package ||'final_process_placement';
216 Begin
217   hr_utility.set_location(' Entering:' || l_proc,10);
218   --
219   -- Issue a savepoint
220   --
221   savepoint final_process_placement_swi;
222   --
223   -- Initialise Multiple Message Detection
224   --
225   hr_multi_message.enable_message_list;
226   --
227   -- Remember IN OUT parameter IN values
228   --
229   l_object_version_number         := p_object_version_number;
230   l_final_process_date            := p_final_process_date;
231   --
232   -- Convert constant values to their corresponding boolean value
233   --
234 
235   --
236   -- Register Surrogate ID or user key values
237   --
238   --
239   -- Call API
240   --
241   hr_contingent_worker_api.final_process_placement
242     (p_validate                     => p_validate
243     ,p_person_id                    => p_person_id
244     ,p_date_start                   => p_date_start
245     ,p_object_version_number        => p_object_version_number
246     ,p_final_process_date           => p_final_process_date
247     ,p_org_now_no_manager_warning   => l_org_now_no_manager_warning
248     ,p_asg_future_changes_warning   => l_asg_future_changes_warning
249     ,p_entries_changed_warning      => p_entries_changed_warning
250     );
251   --
252   -- Convert API warning boolean parameter values to specific
253   -- messages and add them to Multiple Message List
254   --
255 /*
256   if l_org_now_no_manager_warning then
257      fnd_message.set_name('PER', 'HR_ORG_NOW_NO_MANAGER_WARN');
258       hr_multi_message.add
259         (p_message_type => hr_multi_message.g_warning_msg
260         );
261   end if;
262   if l_asg_future_changes_warning then
263      fnd_message.set_name('PER', 'HR_EMP_ASG_FUTURE');
264       hr_multi_message.add
265         (p_message_type => hr_multi_message.g_warning_msg
266         );
267   end if;
268 */
269   --
270   -- Convert API non-warning boolean parameter values
271   --
272   --
273   -- Derive the API return status value based on whether
274   -- messages of any type exist in the Multiple Message List.
275   -- Also disable Multiple Message Detection.
276   --
277   p_return_status := hr_multi_message.get_return_status_disable;
278   hr_utility.set_location(' Leaving:' || l_proc,20);
279   --
280 exception
281   when hr_multi_message.error_message_exist then
282     --
283     -- Catch the Multiple Message List exception which
284     -- indicates API processing has been aborted because
285     -- at least one message exists in the list.
286     --
287     rollback to final_process_placement_swi;
288     --
289     -- Reset IN OUT parameters and set OUT parameters
290     --
291     p_object_version_number        := l_object_version_number;
292     p_final_process_date           := l_final_process_date;
293     p_return_status := hr_multi_message.get_return_status_disable;
294     hr_utility.set_location(' Leaving:' || l_proc, 30);
295   when others then
296     --
297     -- When Multiple Message Detection is enabled catch
298     -- any Application specific or other unexpected
299     -- exceptions.  Adding appropriate details to the
300     -- Multiple Message List.  Otherwise re-raise the
301     -- error.
302     --
303     rollback to final_process_placement_swi;
304     if hr_multi_message.unexpected_error_add(l_proc) then
305        hr_utility.set_location(' Leaving:' || l_proc,40);
306        raise;
307     end if;
308     --
309     -- Reset IN OUT and set OUT parameters
310     --
311     p_object_version_number        := l_object_version_number;
312     p_final_process_date           := l_final_process_date;
313     p_return_status := hr_multi_message.get_return_status_disable;
314     hr_utility.set_location(' Leaving:' || l_proc,50);
315 end final_process_placement;
316 -- ----------------------------------------------------------------------------
317 -- |------------------------< get_length_of_placement >-----------------------|
318 -- ----------------------------------------------------------------------------
319 PROCEDURE get_length_of_placement
320   (p_effective_date               in     date
321   ,p_business_group_id            in     number
322   ,p_person_id                    in     number
323   ,p_date_start                   in     date
324   ,p_total_years                     out nocopy number
325   ,p_total_months                    out nocopy number
326   ,p_return_status                   out nocopy varchar2
327   ) is
328   --
329   -- Variables for API Boolean parameters
330   --
331   -- Variables for IN/OUT parameters
332   --
333   -- Other variables
334   l_proc    varchar2(72) := g_package ||'get_length_of_placement';
335 Begin
336   hr_utility.set_location(' Entering:' || l_proc,10);
337   --
338   -- Issue a savepoint
339   --
340   savepoint get_length_of_placement_swi;
341   --
342   -- Initialise Multiple Message Detection
343   --
344   hr_multi_message.enable_message_list;
345   --
346   -- Remember IN OUT parameter IN values
347   --
348   --
349   -- Convert constant values to their corresponding boolean value
350   --
351   --
352   -- Register Surrogate ID or user key values
353   --
354   --
355   -- Call API
356   --
357   hr_contingent_worker_api.get_length_of_placement
358     (p_effective_date               => p_effective_date
359     ,p_business_group_id            => p_business_group_id
360     ,p_person_id                    => p_person_id
361     ,p_date_start                   => p_date_start
362     ,p_total_years                  => p_total_years
363     ,p_total_months                 => p_total_months
364     );
365   --
366   -- Convert API warning boolean parameter values to specific
367   -- messages and add them to Multiple Message List
368   --
369   --
370   -- Convert API non-warning boolean parameter values
371   --
372   --
373   -- Derive the API return status value based on whether
374   -- messages of any type exist in the Multiple Message List.
375   -- Also disable Multiple Message Detection.
376   --
377   p_return_status := hr_multi_message.get_return_status_disable;
378   hr_utility.set_location(' Leaving:' || l_proc,20);
379   --
380 exception
381   when hr_multi_message.error_message_exist then
382     --
383     -- Catch the Multiple Message List exception which
384     -- indicates API processing has been aborted because
385     -- at least one message exists in the list.
386     --
387     rollback to get_length_of_placement_swi;
388     --
389     -- Reset IN OUT parameters and set OUT parameters
390     --
391     p_total_years                  := null;
392     p_total_months                 := null;
393     p_return_status := hr_multi_message.get_return_status_disable;
394     hr_utility.set_location(' Leaving:' || l_proc, 30);
395   when others then
396     --
397     -- When Multiple Message Detection is enabled catch
398     -- any Application specific or other unexpected
399     -- exceptions.  Adding appropriate details to the
400     -- Multiple Message List.  Otherwise re-raise the
401     -- error.
402     --
403     rollback to get_length_of_placement_swi;
404     if hr_multi_message.unexpected_error_add(l_proc) then
405        hr_utility.set_location(' Leaving:' || l_proc,40);
406        raise;
407     end if;
408     --
409     -- Reset IN OUT and set OUT parameters
410     --
411     p_total_years                  := null;
412     p_total_months                 := null;
413     p_return_status := hr_multi_message.get_return_status_disable;
414     hr_utility.set_location(' Leaving:' || l_proc,50);
415 end get_length_of_placement;
416 -- ----------------------------------------------------------------------------
417 -- |----------------------< reverse_terminate_placement >---------------------|
418 -- ----------------------------------------------------------------------------
419 PROCEDURE reverse_terminate_placement
420   (p_validate                     in     boolean
421   ,p_person_id                    in     number
422   ,p_actual_termination_date      in     date
423   ,p_clear_details                in     varchar2  default hr_api.g_varchar2
424   ,p_return_status                   out nocopy varchar2
425   ) is
426   --
427   -- Variables for API Boolean parameters
428   l_validate                      boolean;
429   l_fut_actns_exist_warning       boolean;
430   --
431   -- Variables for IN/OUT parameters
432   --
433   -- Other variables
434   l_proc    varchar2(72) := g_package ||'reverse_terminate_placement';
435 Begin
436   hr_utility.set_location(' Entering:' || l_proc,10);
437   --
438   -- Issue a savepoint
439   --
440   savepoint reverse_term_placement_swi;
441   --
442   -- Initialise Multiple Message Detection
443   --
444   hr_multi_message.enable_message_list;
445   --
446   -- Remember IN OUT parameter IN values
447   --
448   --
449   -- Convert constant values to their corresponding boolean value
450   --
451 
452   --
453   -- Register Surrogate ID or user key values
454   --
455   --
456   -- Call API
457   --
458   hr_contingent_worker_api.reverse_terminate_placement
459     (p_validate                     => p_validate
460     ,p_person_id                    => p_person_id
461     ,p_actual_termination_date      => p_actual_termination_date
462     ,p_clear_details                => p_clear_details
463     ,p_fut_actns_exist_warning      => l_fut_actns_exist_warning
464     );
465   --
466   -- Convert API warning boolean parameter values to specific
467   -- messages and add them to Multiple Message List
468   --
469   -- l_fut_actns_exist_warning Reserved for Future Use
470 /*  if l_fut_actns_exist_warning then
471      fnd_message.set_name('PER', 'EDIT_HERE: MESSAGE_NAME ');
472       hr_multi_message.add
473         (p_message_type => hr_multi_message.g_warning_msg
474         );
475   end if;
476 */
477 
478   -- Convert API non-warning boolean parameter values
479   --
480   --
481   -- Derive the API return status value based on whether
482   -- messages of any type exist in the Multiple Message List.
483   -- Also disable Multiple Message Detection.
484   --
485   p_return_status := hr_multi_message.get_return_status_disable;
486   hr_utility.set_location(' Leaving:' || l_proc,20);
487   --
488 exception
489   when hr_multi_message.error_message_exist then
490     --
491     -- Catch the Multiple Message List exception which
492     -- indicates API processing has been aborted because
493     -- at least one message exists in the list.
494     --
495     rollback to reverse_term_placement_swi;
496     --
497     -- Reset IN OUT parameters and set OUT parameters
498     --
499     p_return_status := hr_multi_message.get_return_status_disable;
500     hr_utility.set_location(' Leaving:' || l_proc, 30);
501   when others then
502     --
503     -- When Multiple Message Detection is enabled catch
504     -- any Application specific or other unexpected
505     -- exceptions.  Adding appropriate details to the
506     -- Multiple Message List.  Otherwise re-raise the
507     -- error.
508     --
509     rollback to reverse_term_placement_swi;
510     if hr_multi_message.unexpected_error_add(l_proc) then
511        hr_utility.set_location(' Leaving:' || l_proc,40);
512        raise;
513     end if;
514     --
515     -- Reset IN OUT and set OUT parameters
516     --
517     p_return_status := hr_multi_message.get_return_status_disable;
518     hr_utility.set_location(' Leaving:' || l_proc,50);
519 end reverse_terminate_placement;
520 
521 -- ----------------------------------------------------------------------------
522 -- |--------------------------< terminate_placement >-------------------------|
523 -- ----------------------------------------------------------------------------
524 PROCEDURE terminate_placement
525   (p_validate                     in     boolean
526   ,p_effective_date               in     date
527   ,p_person_id                    in     number
528   ,p_date_start                   in     date
529   ,p_object_version_number        in out nocopy number
530   ,p_person_type_id               in     number    default hr_api.g_number
531   ,p_assignment_status_type_id    in     number    default hr_api.g_number
532   ,p_actual_termination_date      in     date      default hr_api.g_date
533   ,p_final_process_date           in out nocopy date
534   ,p_last_standard_process_date   in out nocopy date
535   ,p_termination_reason           in     varchar2  default hr_api.g_varchar2
536   ,p_projected_termination_date   in     date      default hr_api.g_date
537   ,p_rehire_recommendation        in     varchar2  default hr_api.g_varchar2
538   ,p_rehire_reason                in     varchar2  default hr_api.g_varchar2
539   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
540   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
541   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
542   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
543   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
544   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
545   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
546   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
547   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
548   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
549   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
550   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
551   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
552   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
553   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
554   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
555   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
556   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
557   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
558   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
559   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
560   ,p_attribute21                  in     varchar2  default hr_api.g_varchar2
561   ,p_attribute22                  in     varchar2  default hr_api.g_varchar2
562   ,p_attribute23                  in     varchar2  default hr_api.g_varchar2
563   ,p_attribute24                  in     varchar2  default hr_api.g_varchar2
564   ,p_attribute25                  in     varchar2  default hr_api.g_varchar2
565   ,p_attribute26                  in     varchar2  default hr_api.g_varchar2
566   ,p_attribute27                  in     varchar2  default hr_api.g_varchar2
567   ,p_attribute28                  in     varchar2  default hr_api.g_varchar2
568   ,p_attribute29                  in     varchar2  default hr_api.g_varchar2
569   ,p_attribute30                  in     varchar2  default hr_api.g_varchar2
570   ,p_information_category         in     varchar2  default hr_api.g_varchar2
571   ,p_information1                 in     varchar2  default hr_api.g_varchar2
572   ,p_information2                 in     varchar2  default hr_api.g_varchar2
573   ,p_information3                 in     varchar2  default hr_api.g_varchar2
574   ,p_information4                 in     varchar2  default hr_api.g_varchar2
575   ,p_information5                 in     varchar2  default hr_api.g_varchar2
576   ,p_information6                 in     varchar2  default hr_api.g_varchar2
577   ,p_information7                 in     varchar2  default hr_api.g_varchar2
578   ,p_information8                 in     varchar2  default hr_api.g_varchar2
579   ,p_information9                 in     varchar2  default hr_api.g_varchar2
580   ,p_information10                in     varchar2  default hr_api.g_varchar2
581   ,p_information11                in     varchar2  default hr_api.g_varchar2
582   ,p_information12                in     varchar2  default hr_api.g_varchar2
583   ,p_information13                in     varchar2  default hr_api.g_varchar2
584   ,p_information14                in     varchar2  default hr_api.g_varchar2
585   ,p_information15                in     varchar2  default hr_api.g_varchar2
586   ,p_information16                in     varchar2  default hr_api.g_varchar2
587   ,p_information17                in     varchar2  default hr_api.g_varchar2
588   ,p_information18                in     varchar2  default hr_api.g_varchar2
589   ,p_information19                in     varchar2  default hr_api.g_varchar2
590   ,p_information20                in     varchar2  default hr_api.g_varchar2
591   ,p_information21                in     varchar2  default hr_api.g_varchar2
592   ,p_information22                in     varchar2  default hr_api.g_varchar2
593   ,p_information23                in     varchar2  default hr_api.g_varchar2
594   ,p_information24                in     varchar2  default hr_api.g_varchar2
595   ,p_information25                in     varchar2  default hr_api.g_varchar2
596   ,p_information26                in     varchar2  default hr_api.g_varchar2
597   ,p_information27                in     varchar2  default hr_api.g_varchar2
598   ,p_information28                in     varchar2  default hr_api.g_varchar2
599   ,p_information29                in     varchar2  default hr_api.g_varchar2
600   ,p_information30                in     varchar2  default hr_api.g_varchar2
601   ,p_entries_changed_warning         out nocopy varchar2
602   ,p_return_status                   out nocopy varchar2
603   ) is
604   --
605   -- Variables for API Boolean parameters
606   l_validate                      boolean;
607   l_supervisor_warning            boolean;
608   l_event_warning                 boolean;
609   l_interview_warning             boolean;
610   l_review_warning                boolean;
611   l_recruiter_warning             boolean;
612   l_asg_future_changes_warning    boolean;
613   l_pay_proposal_warning          boolean;
614   l_dod_warning                   boolean;
615   l_org_now_no_manager_warning    boolean;
616   l_addl_rights_warning 	  boolean; -- Bug 1370960
617   --
618   -- Variables for IN/OUT parameters
619   l_object_version_number         number;
620   l_final_process_date            date;
621   l_last_standard_process_date    date;
622   --
623   -- Other variables
624   l_proc    varchar2(72) := g_package ||'terminate_placement';
625 Begin
626   hr_utility.set_location(' Entering:' || l_proc,10);
627   --
628   -- Issue a savepoint
629   --
630   savepoint terminate_placement_swi;
631   --
632   -- Initialise Multiple Message Detection
633   --
634   hr_multi_message.enable_message_list;
635   --
636   -- Remember IN OUT parameter IN values
637   --
638   l_object_version_number         := p_object_version_number;
639   l_final_process_date            := p_final_process_date;
640   l_last_standard_process_date    := p_last_standard_process_date;
641   --
642    --
643   -- Core HR API will not support update of field Rehire Recommendation
644   -- and Rehire Reason. Hence we make following call to Person API
645   -- to update the Fields.
646 
647   DECLARE
648       l_person_id                   per_all_people_f.person_id%TYPE;
649       l_per_object_version_number   per_all_people_f.object_version_number%TYPE;
650       l_employee_number             per_all_people_f.employee_number%TYPE;
651       l_effective_start_date        date;
652       l_effective_end_date          date;
653       l_full_name                   per_all_people_f.full_name%TYPE;
654       l_comment_id                  per_all_people_f.comment_id%TYPE;
655       l_name_combination_warning    boolean;
656       l_assign_payroll_warning      boolean;
657       l_orig_hire_warning           boolean;
658 
659   cursor csr_get_derived_details is
660     select per.person_id
661          , per.employee_number
662          , per.object_version_number
663       from per_all_people_f       per
664      where per.person_id             = p_person_id
665      and   p_actual_termination_date between per.effective_start_date
666                                      and     per.effective_end_date;
667 
668   BEGIN
669       open  csr_get_derived_details;
670       fetch csr_get_derived_details
671        into l_person_id
672           , l_employee_number
673           , l_per_object_version_number;
674     SAVEPOINT update_person_details;
675     hr_person_api.update_person (
676        p_validate                     => p_validate
677       ,p_effective_date               => p_effective_date
678       ,p_datetrack_update_mode        => 'CORRECTION'
679       ,p_person_id                    => l_person_id
680       ,p_object_version_number        => l_per_object_version_number
681       ,p_employee_number              => l_employee_number
682       ,p_effective_start_date         => l_effective_start_date
683       ,p_effective_end_date           => l_effective_end_date
684       ,p_rehire_recommendation        => p_rehire_recommendation
685       ,p_rehire_reason                => p_rehire_reason
686       ,p_full_name                    => l_full_name
687       ,p_comment_id                   => l_comment_id
688       ,p_name_combination_warning     => l_name_combination_warning
689       ,p_assign_payroll_warning       => l_assign_payroll_warning
690       ,p_orig_hire_warning            => l_orig_hire_warning
691     );
692     IF p_validate THEN
693         ROLLBACK TO update_person_details;
694     END IF;
695 
696   END;
697   --
698   -- Call API
699   --
700   hr_contingent_worker_api.terminate_placement
701     (p_validate                     => p_validate
702     ,p_effective_date               => p_effective_date
703     ,p_person_id                    => p_person_id
704     ,p_date_start                   => p_date_start
705     ,p_object_version_number        => p_object_version_number
706     ,p_person_type_id               => p_person_type_id
707     ,p_assignment_status_type_id    => p_assignment_status_type_id
708     ,p_actual_termination_date      => p_actual_termination_date
709     ,p_final_process_date           => p_final_process_date
710     ,p_last_standard_process_date   => p_last_standard_process_date
711     ,p_termination_reason           => p_termination_reason
712     ,p_projected_termination_date   => p_projected_termination_date
713 --    ,p_rehire_recommendation        => p_rehire_recommendation
714 --    ,p_rehire_reason                => p_rehire_reason
715     ,p_attribute_category           => p_attribute_category
716     ,p_attribute1                   => p_attribute1
717     ,p_attribute2                   => p_attribute2
718     ,p_attribute3                   => p_attribute3
719     ,p_attribute4                   => p_attribute4
720     ,p_attribute5                   => p_attribute5
721     ,p_attribute6                   => p_attribute6
722     ,p_attribute7                   => p_attribute7
723     ,p_attribute8                   => p_attribute8
724     ,p_attribute9                   => p_attribute9
725     ,p_attribute10                  => p_attribute10
726     ,p_attribute11                  => p_attribute11
727     ,p_attribute12                  => p_attribute12
728     ,p_attribute13                  => p_attribute13
729     ,p_attribute14                  => p_attribute14
730     ,p_attribute15                  => p_attribute15
731     ,p_attribute16                  => p_attribute16
732     ,p_attribute17                  => p_attribute17
733     ,p_attribute18                  => p_attribute18
734     ,p_attribute19                  => p_attribute19
735     ,p_attribute20                  => p_attribute20
736     ,p_attribute21                  => p_attribute21
737     ,p_attribute22                  => p_attribute22
738     ,p_attribute23                  => p_attribute23
739     ,p_attribute24                  => p_attribute24
740     ,p_attribute25                  => p_attribute25
741     ,p_attribute26                  => p_attribute26
742     ,p_attribute27                  => p_attribute27
743     ,p_attribute28                  => p_attribute28
744     ,p_attribute29                  => p_attribute29
745     ,p_attribute30                  => p_attribute30
746     ,p_information_category         => p_information_category
747     ,p_information1                 => p_information1
748     ,p_information2                 => p_information2
749     ,p_information3                 => p_information3
750     ,p_information4                 => p_information4
751     ,p_information5                 => p_information5
752     ,p_information6                 => p_information6
753     ,p_information7                 => p_information7
754     ,p_information8                 => p_information8
755     ,p_information9                 => p_information9
756     ,p_information10                => p_information10
757     ,p_information11                => p_information11
758     ,p_information12                => p_information12
759     ,p_information13                => p_information13
760     ,p_information14                => p_information14
761     ,p_information15                => p_information15
762     ,p_information16                => p_information16
763     ,p_information17                => p_information17
764     ,p_information18                => p_information18
765     ,p_information19                => p_information19
766     ,p_information20                => p_information20
767     ,p_information21                => p_information21
768     ,p_information22                => p_information22
769     ,p_information23                => p_information23
770     ,p_information24                => p_information24
771     ,p_information25                => p_information25
772     ,p_information26                => p_information26
773     ,p_information27                => p_information27
774     ,p_information28                => p_information28
775     ,p_information29                => p_information29
776     ,p_information30                => p_information30
777     ,p_supervisor_warning           => l_supervisor_warning
778     ,p_event_warning                => l_event_warning
779     ,p_interview_warning            => l_interview_warning
780     ,p_review_warning               => l_review_warning
781     ,p_recruiter_warning            => l_recruiter_warning
782     ,p_asg_future_changes_warning   => l_asg_future_changes_warning
783     ,p_entries_changed_warning      => p_entries_changed_warning
784     ,p_pay_proposal_warning         => l_pay_proposal_warning
785     ,p_dod_warning                  => l_dod_warning
786     ,p_org_now_no_manager_warning   => l_org_now_no_manager_warning
787     ,p_addl_rights_warning          => l_addl_rights_warning    -- Fix 1370960
788     );
789   --
790 
791 
792   -- Convert API warning boolean parameter values to specific
793   -- messages and add them to Multiple Message List
794   --
795 /*
796   if l_supervisor_warning then
797      fnd_message.set_name('PER', 'HR_289757_CWK_IS_SUPER');
798       hr_multi_message.add
799         (p_message_type => hr_multi_message.g_warning_msg
800         );
801   end if;
802   if l_event_warning then
803      fnd_message.set_name('PER', 'HR_289759_CWK_HAS_EVENTS');
804       hr_multi_message.add
805         (p_message_type => hr_multi_message.g_warning_msg
806         );
807   end if;
808   if l_interview_warning then
809      fnd_message.set_name('PER', 'HR_289760_CWK_IS_INTERVIEWER');
810       hr_multi_message.add
811         (p_message_type => hr_multi_message.g_warning_msg
812         );
813   end if;
814   if l_review_warning then
815      fnd_message.set_name('PER', 'HR_289761_CWK_DUE_REVIEW');
816       hr_multi_message.add
817         (p_message_type => hr_multi_message.g_warning_msg
818         );
819   end if;
820   if l_recruiter_warning then
821      fnd_message.set_name('PER', 'HR_289762_CWK_VAC_RECRUITER');
822       hr_multi_message.add
823         (p_message_type => hr_multi_message.g_warning_msg
824         );
825   end if;
826   if l_asg_future_changes_warning then
827      fnd_message.set_name('PER', 'HR_EMP_ASG_FUTURE');
828       hr_multi_message.add
829         (p_message_type => hr_multi_message.g_warning_msg
830         );
831   end if;
832   -- l_pay_proposal_warning Reserved for future Use
833    if l_pay_proposal_warning then
834      fnd_message.set_name('PER', 'HR_PAY_PROPOSAL_WARN');
835       hr_multi_message.add
836         (p_message_type => hr_multi_message.g_warning_msg
837         );
838   end if;
839 
840   if l_dod_warning then
841      fnd_message.set_name('PER', 'PER_52475_DEATH_TERM_DATES');
842       hr_multi_message.add
843         (p_message_type => hr_multi_message.g_warning_msg
844         );
845   end if;
846   if l_org_now_no_manager_warning then
847      fnd_message.set_name('PER', 'HR_ORG_NOW_NO_MANAGER_WARN');
848       hr_multi_message.add
849         (p_message_type => hr_multi_message.g_warning_msg
850         );
851   end if;
852 */
853   -- Fix Bug 1370960
854   if l_addl_rights_warning and p_validate then
855      fnd_message.set_name('PER', 'PER_449140_OPEN_CWK_ADDL_RIGHT');
856       hr_multi_message.add
857         (p_message_type => hr_multi_message.g_warning_msg
858         );
859   end if;
860   --
861   -- Convert API non-warning boolean parameter values
862   --
863   --
864   -- Derive the API return status value based on whether
865   -- messages of any type exist in the Multiple Message List.
866   -- Also disable Multiple Message Detection.
867   --
868   p_return_status := hr_multi_message.get_return_status_disable;
869   hr_utility.set_location(' Leaving:' || l_proc,20);
870   --
871 exception
872   when hr_multi_message.error_message_exist then
873     --
874     -- Catch the Multiple Message List exception which
875     -- indicates API processing has been aborted because
876     -- at least one message exists in the list.
877     --
878     rollback to terminate_placement_swi;
879     --
880     -- Reset IN OUT parameters and set OUT parameters
881     --
882     p_object_version_number        := l_object_version_number;
883     p_final_process_date           := l_final_process_date;
884     p_last_standard_process_date   := l_last_standard_process_date;
885     p_return_status := hr_multi_message.get_return_status_disable;
886     hr_utility.set_location(' Leaving:' || l_proc, 30);
887   when others then
888     --
889     -- When Multiple Message Detection is enabled catch
890     -- any Application specific or other unexpected
891     -- exceptions.  Adding appropriate details to the
892     -- Multiple Message List.  Otherwise re-raise the
893     -- error.
894     --
895     rollback to terminate_placement_swi;
896     if hr_multi_message.unexpected_error_add(l_proc) then
897        hr_utility.set_location(' Leaving:' || l_proc,40);
898        raise;
899     end if;
900     --
901     -- Reset IN OUT and set OUT parameters
902     --
903     p_object_version_number        := l_object_version_number;
904     p_final_process_date           := l_final_process_date;
905     p_last_standard_process_date   := l_last_standard_process_date;
906     p_return_status := hr_multi_message.get_return_status_disable;
907     hr_utility.set_location(' Leaving:' || l_proc,50);
908 end terminate_placement;
909 
910 PROCEDURE process_save
911 (  p_item_type                    in     wf_items.item_type%TYPE
912   ,p_item_key                     in     wf_items.item_key%TYPE
913   ,p_actid                        in     varchar2
914   ,p_transaction_mode             in     varchar2 DEFAULT '#'
915   ,p_effective_date               in     date
916   ,p_person_id                    in     number
917   ,p_date_start                   in     date
918   ,p_object_version_number        in     number
919   ,p_person_type_id               in     number    default hr_api.g_number
920   ,p_actual_termination_date      in     date      default hr_api.g_date
921   ,p_final_process_date           in     date
922   ,p_last_standard_process_date   in     date
923   ,p_termination_reason           in     varchar2  default hr_api.g_varchar2
924   ,p_projected_termination_date   in     date      default hr_api.g_date
925   ,p_rehire_recommendation        in     varchar2  default hr_api.g_varchar2
926   ,p_rehire_reason                in     varchar2  default hr_api.g_varchar2
927   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
928   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
929   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
930   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
931   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
932   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
933   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
934   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
935   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
936   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
937   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
938   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
939   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
940   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
941   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
942   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
943   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
944   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
945   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
946   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
947   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
948   ,p_attribute21                  in     varchar2  default hr_api.g_varchar2
949   ,p_attribute22                  in     varchar2  default hr_api.g_varchar2
950   ,p_attribute23                  in     varchar2  default hr_api.g_varchar2
951   ,p_attribute24                  in     varchar2  default hr_api.g_varchar2
952   ,p_attribute25                  in     varchar2  default hr_api.g_varchar2
953   ,p_attribute26                  in     varchar2  default hr_api.g_varchar2
954   ,p_attribute27                  in     varchar2  default hr_api.g_varchar2
955   ,p_attribute28                  in     varchar2  default hr_api.g_varchar2
956   ,p_attribute29                  in     varchar2  default hr_api.g_varchar2
957   ,p_attribute30                  in     varchar2  default hr_api.g_varchar2
958   ,p_information_category          in     varchar2 default hr_api.g_varchar2
959   ,p_information1                  in     varchar2 default hr_api.g_varchar2
960   ,p_information2                  in     varchar2 default hr_api.g_varchar2
961   ,p_information3                  in     varchar2 default hr_api.g_varchar2
962   ,p_information4                  in     varchar2 default hr_api.g_varchar2
963   ,p_information5                  in     varchar2 default hr_api.g_varchar2
964   ,p_information6                  in     varchar2 default hr_api.g_varchar2
965   ,p_information7                  in     varchar2 default hr_api.g_varchar2
966   ,p_information8                  in     varchar2 default hr_api.g_varchar2
967   ,p_information9                  in     varchar2 default hr_api.g_varchar2
968   ,p_information10                 in     varchar2 default hr_api.g_varchar2
969   ,p_information11                 in     varchar2 default hr_api.g_varchar2
970   ,p_information12                 in     varchar2 default hr_api.g_varchar2
971   ,p_information13                 in     varchar2 default hr_api.g_varchar2
972   ,p_information14                 in     varchar2 default hr_api.g_varchar2
973   ,p_information15                 in     varchar2 default hr_api.g_varchar2
974   ,p_information16                 in     varchar2 default hr_api.g_varchar2
975   ,p_information17                 in     varchar2 default hr_api.g_varchar2
976   ,p_information18                 in     varchar2 default hr_api.g_varchar2
977   ,p_information19                 in     varchar2 default hr_api.g_varchar2
978   ,p_information20                 in     varchar2 default hr_api.g_varchar2
979   ,p_information21                 in     varchar2 default hr_api.g_varchar2
980   ,p_information22                 in     varchar2 default hr_api.g_varchar2
981   ,p_information23                 in     varchar2 default hr_api.g_varchar2
982   ,p_information24                 in     varchar2 default hr_api.g_varchar2
983   ,p_information25                 in     varchar2 default hr_api.g_varchar2
984   ,p_information26                 in     varchar2 default hr_api.g_varchar2
985   ,p_information27                 in     varchar2 default hr_api.g_varchar2
986   ,p_information28                 in     varchar2 default hr_api.g_varchar2
987   ,p_information29                 in     varchar2 default hr_api.g_varchar2
988   ,p_information30                 in     varchar2 default hr_api.g_varchar2
989   ,p_review_proc_call             in     varchar2  default hr_api.g_varchar2
990   ,p_effective_date_option        in     varchar2  default hr_api.g_varchar2
991   ,p_login_person_id              in     number
992   ,p_entries_changed_warning         out nocopy varchar2
993   ,p_return_status                   out nocopy varchar2
994   ,p_return_on_warning             in     varchar2 default null --Bug fix 1370960
995 ) Is
996 
997   -- Local params for Saving Transaction
998   lv_cnt                    integer;
999   lv_activity_name          wf_item_activity_statuses_v.activity_name%TYPE;
1000   lv_result                 varchar2(100);
1001   ln_transaction_id         number;
1002   ltt_trans_obj_vers_num    hr_util_web.g_varchar2_tab_type;
1003   ln_trans_step_rows        NUMBER  default 0;
1004   ltt_trans_step_ids        hr_util_web.g_varchar2_tab_type;
1005   ln_transaction_step_id    hr_api_transaction_steps.transaction_step_id%TYPE;
1006   ln_ovn                    hr_api_transaction_steps.object_version_number%TYPE;
1007 
1008   -- In out params for terminate_placement
1009   l_object_version_number      per_periods_of_placement.object_version_number%TYPE;
1010   l_final_process_date         per_periods_of_placement.final_process_Date%TYPE;
1011   l_last_standard_process_date
1012                per_periods_of_placement.last_standard_process_date%TYPE;
1013 
1014   validate_exception        EXCEPTION;
1015 
1016     ItemType         varchar2(200);
1017     ItemKey          varchar2(200);
1018     ActivityId       varchar2(200);
1019     isQkFn           varchar2(10) default 'N';
1020     isSupAsgPGExists varchar2(10) default 'N';
1021     l_old_sup_person_id   number;
1022     l_term_date           date;
1023     l_login_person_id     number;
1024     l_old_sup_asg_id      number;
1025     l_old_sup_bg_id       number;
1026     l_new_sup_person_id   number;
1027     l_new_sup_asg_id      number;
1028     l_validate            varchar2(10);
1029 
1030 BEGIN
1031 
1032   l_object_version_number := p_object_version_number;
1033 
1034   IF p_transaction_mode <> 'SAVE_FOR_LATER' THEN
1035       hr_cwk_termination_swi.terminate_placement
1036           (p_validate                    =>  true
1037           ,p_effective_date              =>  p_effective_date
1038           ,p_person_id                   =>  p_person_id
1039           ,p_date_start                  =>  p_date_start
1040           ,p_object_version_number       =>  l_object_version_number
1041           ,p_person_type_id              =>  p_person_type_id
1042           ,p_actual_termination_date     =>  p_actual_termination_date
1043           ,p_final_process_date          =>  l_final_process_date
1044           ,p_last_standard_process_date  =>  l_last_standard_process_date
1045           ,p_termination_reason          =>  p_termination_reason
1046           ,p_projected_termination_date  =>  p_projected_termination_date
1047           ,p_attribute_category          =>  p_attribute_category
1048           ,p_attribute1                  =>  p_attribute1
1049           ,p_attribute2                  =>  p_attribute2
1050           ,p_attribute3                  =>  p_attribute3
1051           ,p_attribute4                  =>  p_attribute4
1052           ,p_attribute5                  =>  p_attribute5
1053           ,p_attribute6                  =>  p_attribute6
1054           ,p_attribute7                  =>  p_attribute7
1055           ,p_attribute8                  =>  p_attribute8
1056           ,p_attribute9                  =>  p_attribute9
1057           ,p_attribute10                 =>  p_attribute10
1058           ,p_attribute11                 =>  p_attribute11
1059           ,p_attribute12                 =>  p_attribute12
1060           ,p_attribute13                 =>  p_attribute13
1061           ,p_attribute14                 =>  p_attribute14
1062           ,p_attribute15                 =>  p_attribute15
1063           ,p_attribute16                 =>  p_attribute16
1064           ,p_attribute17                 =>  p_attribute17
1065           ,p_attribute18                 =>  p_attribute18
1066           ,p_attribute19                 =>  p_attribute19
1067           ,p_attribute20                 =>  p_attribute20
1068           ,p_attribute21                 =>  p_attribute21
1069           ,p_attribute22                 =>  p_attribute22
1070           ,p_attribute23                 =>  p_attribute23
1071           ,p_attribute24                 =>  p_attribute24
1072           ,p_attribute25                 =>  p_attribute25
1073           ,p_attribute26                 =>  p_attribute26
1074           ,p_attribute27                 =>  p_attribute27
1075           ,p_attribute28                 =>  p_attribute28
1076           ,p_attribute29                 =>  p_attribute29
1077       	  ,p_attribute30	             =>  p_attribute30
1078           ,p_information_category        =>  p_information_category
1079           ,p_information1                =>  p_information1
1080           ,p_information2                =>  p_information2
1081           ,p_information3                =>  p_information3
1082           ,p_information4                =>  p_information4
1083           ,p_information5                =>  p_information5
1084           ,p_information6                =>  p_information6
1085           ,p_information7                =>  p_information7
1086           ,p_information8                =>  p_information8
1087           ,p_information9                =>  p_information9
1088           ,p_information10               =>  p_information10
1089           ,p_information11               =>  p_information11
1090           ,p_information12               =>  p_information12
1091           ,p_information13               =>  p_information13
1092           ,p_information14               =>  p_information14
1093           ,p_information15               =>  p_information15
1094           ,p_information16               =>  p_information16
1095           ,p_information17               =>  p_information17
1096           ,p_information18               =>  p_information18
1097           ,p_information19               =>  p_information19
1098           ,p_information20               =>  p_information20
1099           ,p_information21               =>  p_information21
1100           ,p_information22               =>  p_information22
1101           ,p_information23               =>  p_information23
1102           ,p_information24               =>  p_information24
1103           ,p_information25               =>  p_information25
1104           ,p_information26               =>  p_information26
1105           ,p_information27               =>  p_information27
1106           ,p_information28               =>  p_information28
1107           ,p_information29               =>  p_information29
1108           ,p_information30               =>  p_information30
1109           ,p_entries_changed_warning     =>  p_entries_changed_warning
1110           ,p_return_status               =>  p_return_status
1111           ,p_rehire_recommendation       => p_rehire_recommendation
1112           ,p_rehire_reason               => p_rehire_reason
1113       );
1114   END IF;
1115   IF p_return_status = 'E' AND p_return_on_warning = 'true' THEN
1116      RAISE validate_exception;
1117   END IF;
1118   ---- All validations successful, proceed and save transaction.
1119   lv_cnt := 1;
1120   lv_transaction_steps(lv_cnt).param_name := 'P_PERSON_ID';
1121   lv_transaction_steps(lv_cnt).param_value := p_person_id;
1122   lv_transaction_steps(lv_cnt).param_data_type := 'NUMBER';
1123 
1124   lv_cnt := lv_cnt + 1;
1125   lv_transaction_steps(lv_cnt).param_name := 'P_DATE_START';
1126   lv_transaction_steps(lv_cnt).param_value := to_char(p_date_start, hr_transaction_ss.g_date_format);
1127   lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1128 
1129   lv_cnt := lv_cnt + 1;
1130   lv_transaction_steps(lv_cnt).param_name := 'P_EFFECTIVE_DATE';
1131   lv_transaction_steps(lv_cnt).param_value := to_char(p_effective_date, hr_transaction_ss.g_date_format);
1132   lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1133 
1134   lv_cnt := lv_cnt + 1;
1135   lv_transaction_steps(lv_cnt).param_name := 'P_OBJECT_VERSION_NUMBER';
1136   lv_transaction_steps(lv_cnt).param_value := p_object_version_number;
1137   lv_transaction_steps(lv_cnt).param_data_type := 'NUMBER';
1138 
1139   lv_cnt := lv_cnt + 1;
1140   lv_transaction_steps(lv_cnt).param_name := 'P_PERSON_TYPE_ID';
1141   lv_transaction_steps(lv_cnt).param_value := p_person_type_id;
1142   lv_transaction_steps(lv_cnt).param_data_type := 'NUMBER';
1143 
1144   lv_cnt := lv_cnt + 1;
1145   lv_transaction_steps(lv_cnt).param_name := 'P_ACTUAL_TERMINATION_DATE';
1146   lv_transaction_steps(lv_cnt).param_value := to_char(p_actual_termination_date, hr_transaction_ss.g_date_format);
1147   lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1148 
1149   IF p_final_process_date IS NOT NULL THEN
1150     lv_cnt := lv_cnt + 1;
1151     lv_transaction_steps(lv_cnt).param_name := 'P_FINAL_PROCESS_DATE';
1152     lv_transaction_steps(lv_cnt).param_value := to_char(p_final_process_date, hr_transaction_ss.g_date_format);
1153     lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1154   END IF;
1155 
1156   IF p_last_standard_process_date IS NOT NULL THEN
1157     lv_cnt := lv_cnt + 1;
1158     lv_transaction_steps(lv_cnt).param_name := 'P_LAST_STANDARD_PROCESS_DATE';
1159     lv_transaction_steps(lv_cnt).param_value := to_char(p_last_standard_process_date, hr_transaction_ss.g_date_format);
1160     lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1161   END IF;
1162 
1163   lv_cnt := lv_cnt + 1;
1164   lv_transaction_steps(lv_cnt).param_name := 'P_TERMINATION_REASON';
1165   lv_transaction_steps(lv_cnt).param_value := p_termination_reason;
1166   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1167 
1168   IF p_projected_termination_date IS NOT NULL THEN
1169     lv_cnt := lv_cnt + 1;
1170     lv_transaction_steps(lv_cnt).param_name := 'P_PROJECTED_TERMINATION_DATE';
1171     lv_transaction_steps(lv_cnt).param_value := to_char(p_projected_termination_date, hr_transaction_ss.g_date_format);
1172     lv_transaction_steps(lv_cnt).param_data_type := 'DATE';
1173   END IF;
1174 
1175   lv_cnt := lv_cnt + 1;
1176   lv_transaction_steps(lv_cnt).param_name := 'P_REHIRE_RECOMMENDATION';
1177   lv_transaction_steps(lv_cnt).param_value := p_rehire_recommendation;
1178   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1179 
1180   lv_cnt := lv_cnt + 1;
1181   lv_transaction_steps(lv_cnt).param_name := 'P_REHIRE_REASON';
1182   lv_transaction_steps(lv_cnt).param_value := p_rehire_reason;
1183   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1184 
1185   ------------------------------------------------------------
1186   -- DFF Segments
1187   ------------------------------------------------------------
1188   lv_cnt := lv_cnt + 1;
1189   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE_CATEGORY';
1190   lv_transaction_steps(lv_cnt).param_value := p_attribute_category;
1191   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1192 
1193   lv_cnt := lv_cnt + 1;
1194   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE1';
1195   lv_transaction_steps(lv_cnt).param_value := p_attribute1;
1196   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1197 
1198   lv_cnt := lv_cnt + 1;
1199   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE2';
1200   lv_transaction_steps(lv_cnt).param_value := p_attribute2;
1201   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1202 
1203   lv_cnt := lv_cnt + 1;
1204   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE3';
1205   lv_transaction_steps(lv_cnt).param_value := p_attribute3;
1206   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1207 
1208   lv_cnt := lv_cnt + 1;
1209   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE4';
1210   lv_transaction_steps(lv_cnt).param_value := p_attribute4;
1211   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1212 
1213   lv_cnt := lv_cnt + 1;
1214   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE5';
1215   lv_transaction_steps(lv_cnt).param_value := p_attribute5;
1216   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1217 
1218   lv_cnt := lv_cnt + 1;
1219   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE6';
1220   lv_transaction_steps(lv_cnt).param_value := p_attribute6;
1221   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1222 
1223   lv_cnt := lv_cnt + 1;
1224   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE7';
1225   lv_transaction_steps(lv_cnt).param_value := p_attribute7;
1226   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1227 
1228   lv_cnt := lv_cnt + 1;
1229   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE8';
1230   lv_transaction_steps(lv_cnt).param_value := p_attribute8;
1231   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1232 
1233   lv_cnt := lv_cnt + 1;
1234   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE9';
1235   lv_transaction_steps(lv_cnt).param_value := p_attribute9;
1236   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1237 
1238   lv_cnt := lv_cnt + 1;
1239   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE10';
1240   lv_transaction_steps(lv_cnt).param_value := p_attribute10;
1241   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1242 
1243   lv_cnt := lv_cnt + 1;
1244   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE11';
1245   lv_transaction_steps(lv_cnt).param_value := p_attribute11;
1246   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1247 
1248   lv_cnt := lv_cnt + 1;
1249   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE12';
1250   lv_transaction_steps(lv_cnt).param_value := p_attribute12;
1251   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1252 
1253   lv_cnt := lv_cnt + 1;
1254   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE13';
1255   lv_transaction_steps(lv_cnt).param_value := p_attribute13;
1256   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1257 
1258   lv_cnt := lv_cnt + 1;
1259   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE14';
1260   lv_transaction_steps(lv_cnt).param_value := p_attribute14;
1261   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1262 
1263   lv_cnt := lv_cnt + 1;
1264   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE15';
1265   lv_transaction_steps(lv_cnt).param_value := p_attribute15;
1266   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1267 
1268   lv_cnt := lv_cnt + 1;
1269   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE16';
1270   lv_transaction_steps(lv_cnt).param_value := p_attribute16;
1271   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1272 
1273   lv_cnt := lv_cnt + 1;
1274   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE17';
1275   lv_transaction_steps(lv_cnt).param_value := p_attribute17;
1276   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1277 
1278   lv_cnt := lv_cnt + 1;
1279   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE18';
1280   lv_transaction_steps(lv_cnt).param_value := p_attribute18;
1281   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1282 
1283   lv_cnt := lv_cnt + 1;
1284   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE19';
1285   lv_transaction_steps(lv_cnt).param_value := p_attribute19;
1286   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1287 
1288   lv_cnt := lv_cnt + 1;
1289   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE20';
1290   lv_transaction_steps(lv_cnt).param_value := p_attribute20;
1291   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1292 
1293   lv_cnt := lv_cnt + 1;
1294   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE21';
1295   lv_transaction_steps(lv_cnt).param_value := p_attribute21;
1296   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1297 
1298   lv_cnt := lv_cnt + 1;
1299   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE22';
1300   lv_transaction_steps(lv_cnt).param_value := p_attribute22;
1301   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1302 
1303   lv_cnt := lv_cnt + 1;
1304   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE23';
1305   lv_transaction_steps(lv_cnt).param_value := p_attribute23;
1306   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1307 
1308   lv_cnt := lv_cnt + 1;
1309   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE24';
1310   lv_transaction_steps(lv_cnt).param_value := p_attribute24;
1311   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1312 
1313   lv_cnt := lv_cnt + 1;
1314   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE25';
1315   lv_transaction_steps(lv_cnt).param_value := p_attribute25;
1316   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1317 
1318   lv_cnt := lv_cnt + 1;
1319   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE26';
1320   lv_transaction_steps(lv_cnt).param_value := p_attribute26;
1321   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1322 
1323   lv_cnt := lv_cnt + 1;
1324   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE27';
1325   lv_transaction_steps(lv_cnt).param_value := p_attribute27;
1326   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1327 
1328   lv_cnt := lv_cnt + 1;
1329   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE28';
1330   lv_transaction_steps(lv_cnt).param_value := p_attribute28;
1331   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1332 
1333   lv_cnt := lv_cnt + 1;
1334   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE29';
1335   lv_transaction_steps(lv_cnt).param_value := p_attribute29;
1336   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1337 
1338   lv_cnt := lv_cnt + 1;
1339   lv_transaction_steps(lv_cnt).param_name := 'P_ATTRIBUTE30';
1340   lv_transaction_steps(lv_cnt).param_value := p_attribute30;
1341   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1342 
1343   lv_cnt := lv_cnt + 1;
1344   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION_CATEGORY';
1345   lv_transaction_steps(lv_cnt).param_value := p_information_category;
1346   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1347 
1348   lv_cnt := lv_cnt + 1;
1349   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION1';
1350   lv_transaction_steps(lv_cnt).param_value := p_information1;
1351   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1352 
1353   lv_cnt := lv_cnt + 1;
1354   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION2';
1355   lv_transaction_steps(lv_cnt).param_value := p_information2;
1356   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1357 
1358   lv_cnt := lv_cnt + 1;
1359   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION3';
1360   lv_transaction_steps(lv_cnt).param_value := p_information3;
1361   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1362 
1363   lv_cnt := lv_cnt + 1;
1364   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION4';
1365   lv_transaction_steps(lv_cnt).param_value := p_information4;
1366   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1367 
1368   lv_cnt := lv_cnt + 1;
1369   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION5';
1370   lv_transaction_steps(lv_cnt).param_value := p_information5;
1371   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1372 
1373   lv_cnt := lv_cnt + 1;
1374   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION6';
1375   lv_transaction_steps(lv_cnt).param_value := p_information6;
1376   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1377 
1378   lv_cnt := lv_cnt + 1;
1379   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION7';
1380   lv_transaction_steps(lv_cnt).param_value := p_information7;
1381   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1382 
1383   lv_cnt := lv_cnt + 1;
1384   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION8';
1385   lv_transaction_steps(lv_cnt).param_value := p_information8;
1386   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1387 
1388   lv_cnt := lv_cnt + 1;
1389   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION9';
1390   lv_transaction_steps(lv_cnt).param_value := p_information9;
1391   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1392 
1393   lv_cnt := lv_cnt + 1;
1394   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION10';
1395   lv_transaction_steps(lv_cnt).param_value := p_information10;
1396   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1397 
1398   lv_cnt := lv_cnt + 1;
1399   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION11';
1400   lv_transaction_steps(lv_cnt).param_value := p_information11;
1401   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1402 
1403   lv_cnt := lv_cnt + 1;
1404   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION12';
1405   lv_transaction_steps(lv_cnt).param_value := p_information12;
1406   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1407 
1408   lv_cnt := lv_cnt + 1;
1409   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION13';
1410   lv_transaction_steps(lv_cnt).param_value := p_information13;
1411   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1412 
1413   lv_cnt := lv_cnt + 1;
1414   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION14';
1415   lv_transaction_steps(lv_cnt).param_value := p_information14;
1416   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1417 
1418   lv_cnt := lv_cnt + 1;
1419   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION15';
1420   lv_transaction_steps(lv_cnt).param_value := p_information15;
1421   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1422 
1423   lv_cnt := lv_cnt + 1;
1424   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION16';
1425   lv_transaction_steps(lv_cnt).param_value := p_information16;
1426   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1427 
1428   lv_cnt := lv_cnt + 1;
1429   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION17';
1430   lv_transaction_steps(lv_cnt).param_value := p_information17;
1431   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1432 
1433   lv_cnt := lv_cnt + 1;
1434   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION18';
1435   lv_transaction_steps(lv_cnt).param_value := p_information18;
1436   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1437 
1438   lv_cnt := lv_cnt + 1;
1439   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION19';
1440   lv_transaction_steps(lv_cnt).param_value := p_information19;
1441   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1442 
1443   lv_cnt := lv_cnt + 1;
1444   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION20';
1445   lv_transaction_steps(lv_cnt).param_value := p_information20;
1446   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1447 
1448       lv_cnt := lv_cnt + 1;
1449   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION21';
1450   lv_transaction_steps(lv_cnt).param_value := p_information21;
1451   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1452 
1453   lv_cnt := lv_cnt + 1;
1454   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION22';
1455   lv_transaction_steps(lv_cnt).param_value := p_information22;
1456   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1457 
1458   lv_cnt := lv_cnt + 1;
1459   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION23';
1460   lv_transaction_steps(lv_cnt).param_value := p_information23;
1461   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1462 
1463   lv_cnt := lv_cnt + 1;
1464   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION24';
1465   lv_transaction_steps(lv_cnt).param_value := p_information24;
1466   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1467 
1468   lv_cnt := lv_cnt + 1;
1469   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION25';
1470   lv_transaction_steps(lv_cnt).param_value := p_information25;
1471   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1472 
1473   lv_cnt := lv_cnt + 1;
1474   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION26';
1475   lv_transaction_steps(lv_cnt).param_value := p_information26;
1476   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1477 
1478   lv_cnt := lv_cnt + 1;
1479   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION27';
1480   lv_transaction_steps(lv_cnt).param_value := p_information27;
1481   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1482 
1483   lv_cnt := lv_cnt + 1;
1484   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION28';
1485   lv_transaction_steps(lv_cnt).param_value := p_information28;
1486   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1487 
1488   lv_cnt := lv_cnt + 1;
1489   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION29';
1490   lv_transaction_steps(lv_cnt).param_value := p_information29;
1491   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1492 
1493   lv_cnt := lv_cnt + 1;
1494   lv_transaction_steps(lv_cnt).param_name := 'P_INFORMATION30';
1495   lv_transaction_steps(lv_cnt).param_value := p_information30;
1496   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1497 
1498   ----------------------------------------------------------------------
1499   -- Store the activity internal name for this particular
1500   -- activity with other information.
1501   ----------------------------------------------------------------------
1502   lv_activity_name := HR_CWK_TERMINATION_SWI.gv_TERMINATION_ACTIVITY_NAME;
1503   lv_cnt := lv_cnt + 1;
1504   lv_transaction_steps(lv_cnt).param_name := 'P_ACTIVITY_NAME';
1505   lv_transaction_steps(lv_cnt).param_value := lv_activity_name;
1506   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1507 
1508   ----------------------------------------------------------------------
1509   -- Store the the Review Procedure Call and
1510   -- activity id with other information.
1511   ----------------------------------------------------------------------
1512   lv_cnt := lv_cnt + 1;
1513   lv_transaction_steps(lv_cnt).param_name := 'P_REVIEW_PROC_CALL';
1514   IF p_review_proc_call IS NULL THEN
1515       lv_transaction_steps(lv_cnt).param_value
1516           := wf_engine.GetActivityAttrText( p_item_type,p_item_key, p_actid
1517                                         ,'HR_REVIEW_REGION_ITEM', False);
1518   ELSE
1519       lv_transaction_steps(lv_cnt).param_value := p_review_proc_call;
1520   END IF;
1521 
1522   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1523   lv_cnt := lv_cnt + 1;
1524   lv_transaction_steps(lv_cnt).param_name := 'P_REVIEW_ACTID';
1525   lv_transaction_steps(lv_cnt).param_value := p_actid;
1526   lv_transaction_steps(lv_cnt).param_data_type := 'VARCHAR2';
1527 
1528   -------------------------------------------------------------------
1529   -- Check if Transaction Already Exists !
1530   -------------------------------------------------------------------
1531 
1532   ln_transaction_id := hr_transaction_ss.get_transaction_id (
1533                             p_Item_Type => p_item_type,
1534                             p_Item_Key  => p_item_key
1535                        );
1536   IF ln_transaction_id IS NULL THEN
1537     -- Create a New Transaction
1538     hr_transaction_ss.start_transaction (
1539         itemtype                => p_item_type,
1540         itemkey                 => p_item_key,
1541         actid                   => TO_NUMBER(p_actid),
1542         funmode                 => 'RUN',
1543         p_effective_date_option => p_effective_date_option,
1544         p_login_person_id       => p_login_person_id,
1545         result                  => lv_result
1546     );
1547 
1548     ln_transaction_id := hr_transaction_ss.get_transaction_id (
1549                             p_Item_Type => p_item_type,
1550                             p_Item_Key  => p_item_key
1551                          );
1552   END IF;
1553   ---------------------------------------------------------------------
1554   -- There is already a transaction for this process.
1555   -- Retieve the transaction step for this current
1556   -- activity. We will update this transaction step with
1557   -- the new information.
1558   ---------------------------------------------------------------------
1559 
1560     hr_transaction_api.get_transaction_step_info(
1561              p_item_type                => p_item_type
1562             ,p_item_key                 => p_item_key
1563             ,p_activity_id              => to_number(p_actid)
1564             ,p_transaction_step_id      => ltt_trans_step_ids
1565             ,p_object_version_number    => ltt_trans_obj_vers_num
1566             ,p_rows                     => ln_trans_step_rows
1567          );
1568 
1569     IF ln_trans_step_rows < 1
1570     THEN
1571       --------------------------------------------------------------------
1572       -- There is no transaction step for this transaction.
1573       -- Create a step within this new transaction
1574       --------------------------------------------------------------------
1575       hr_transaction_api.create_transaction_step (
1576         p_validate              => false,
1577         p_creator_person_id     => p_login_person_id,
1578         p_transaction_id        => ln_transaction_id,
1579         p_api_name              => g_package || 'PROCESS_API',
1580         p_Item_Type             => p_item_type,
1581         p_Item_Key              => p_item_key,
1582         p_activity_id           => TO_NUMBER(p_actid),
1583         p_transaction_step_id   => ln_transaction_step_id,
1584         p_object_version_number => ln_ovn
1585       );
1586     ELSE
1587       --------------------------------------------------------------------
1588       -- There are transaction steps for this transaction.
1589       -- Get the Transaction Step ID for this activity.
1590       --------------------------------------------------------------------
1591       ln_transaction_step_id  :=
1592         hr_transaction_ss.get_activity_trans_step_id (
1593           p_activity_name     => lv_activity_name,
1594           p_trans_step_id_tbl => ltt_trans_step_ids
1595         );
1596 
1597     END IF;
1598     -- Save Transaction Step.
1599 
1600     hr_transaction_ss.save_transaction_step (
1601       p_item_Type           => p_item_type,
1602       p_item_Key            => p_item_key,
1603       p_actid               => TO_NUMBER(p_actid),
1604       p_login_person_id     => p_login_person_id,
1605       p_transaction_step_id => ln_transaction_step_id,
1606       p_api_name            => 'hr_cwk_termination_swi.process_save',
1607       p_transaction_data    => lv_transaction_steps
1608     );
1609 
1610 IF ( p_transaction_mode = 'SAVE_FOR_LATER' ) THEN
1611 
1612     -- Quick Termination changes start from here
1613 
1614     if ( p_item_type is not null and p_item_key is not null ) then
1615 
1616         isQKFn := wf_engine.getItemAttrText(p_item_type, p_item_key, 'HR_QUICK_FUNCTION', true);
1617 
1618         if ( ActivityId is not null ) then
1619             isSupAsgPGExists := wf_engine.getActivityAttrText(p_item_type, p_item_key, p_actid, 'REASSIGN_DIRECTS');
1620         end if;
1621 
1622     end if;
1623 
1624     if (isQKFn = 'Y' and isSupAsgPGExists = 'Y' ) then
1625 
1626          l_term_date := hr_transaction_api.get_date_value(ln_transaction_step_id, 'P_ACTUAL_TERMINATION_DATE');
1627 
1628          l_old_sup_person_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_OLD_SUP_PER_ID', true);
1629          l_old_sup_asg_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_OLD_SUP_ASG_ID', true);
1630          l_old_sup_bg_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_OLD_SUP_BG_ID', true);
1631          l_new_sup_person_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_NEW_SUP_PER_ID', true);
1632          l_new_sup_asg_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_NEW_SUP_ASG_ID', true);
1633          l_login_person_id := wf_engine.getItemAttrText(p_item_type, p_item_key, 'QK_TERM_LOGIN_PER_ID', true);
1634 
1635 
1636          if ( l_old_sup_person_id is not null and
1637               l_old_sup_asg_id is not null and
1638               l_old_sup_bg_id is not null and
1639               l_new_sup_person_id is not null and
1640               l_new_sup_asg_id is not null and
1641               l_login_person_id is not null
1642             ) then
1643 
1644               hr_utility.trace('Called hr_termination_ss.moveAllDirectReports from process_save');
1645 
1646               hr_termination_ss.moveAllDirectReports(
1647                                 p_validate => 'Y',
1648                                 p_item_type => p_item_type,
1649                                 p_item_key => p_item_key,
1650                                 p_old_sup_person_id => l_old_sup_person_id,
1651                                 p_old_sup_asg_id => l_old_sup_asg_id,
1652                                 p_old_sup_bg_id => l_old_sup_bg_id,
1653                                 p_new_sup_person_id => l_new_sup_person_id,
1654                                 p_new_sup_asg_id => l_new_sup_asg_id,
1655                                 p_login_person_id => l_login_person_id,
1656                                 p_term_date => to_char(l_term_date, 'YYYY-MM-DD'),
1657                                 p_flow_identifier => 'TERMINATION_FLOW');
1658         end if;
1659 
1660     end if;
1661     -- Quick Termination changes ends here
1662 
1663 END IF;
1664 
1665 EXCEPTION
1666 WHEN validate_exception THEN
1667      -- Multi Messaging: Do not raise exception.
1668      -- The Calling Proc in Java will look at this status
1669      -- and retrieve all Messages
1670      p_return_status := hr_multi_message.get_return_status_disable;
1671 
1672 END process_save;
1673 
1674 PROCEDURE getTransactionDetails
1675 (  p_transaction_step_id          in      varchar2
1676   ,p_person_id                    out nocopy     number
1677   ,p_date_start                   out nocopy     date
1678   ,p_object_version_number        out nocopy     number
1679   ,p_person_type_id               out nocopy     number
1680   ,p_actual_termination_date      out nocopy     date
1681   ,p_final_process_date           out nocopy     date
1682   ,p_last_standard_process_date   out nocopy     date
1683   ,p_termination_reason           out nocopy     varchar2
1684   ,p_rehire_recommendation        out nocopy     varchar2
1685   ,p_rehire_reason                out nocopy     varchar2
1686   ,p_projected_termination_date   out nocopy     date
1687   ,p_attribute_category           out nocopy     varchar2
1688   ,p_attribute1                   out nocopy     varchar2
1689   ,p_attribute2                   out nocopy     varchar2
1690   ,p_attribute3                   out nocopy     varchar2
1691   ,p_attribute4                   out nocopy     varchar2
1692   ,p_attribute5                   out nocopy     varchar2
1693   ,p_attribute6                   out nocopy     varchar2
1694   ,p_attribute7                   out nocopy     varchar2
1695   ,p_attribute8                   out nocopy     varchar2
1696   ,p_attribute9                   out nocopy     varchar2
1697   ,p_attribute10                  out nocopy     varchar2
1698   ,p_attribute11                  out nocopy     varchar2
1699   ,p_attribute12                  out nocopy     varchar2
1700   ,p_attribute13                  out nocopy     varchar2
1701   ,p_attribute14                  out nocopy     varchar2
1702   ,p_attribute15                  out nocopy     varchar2
1703   ,p_attribute16                  out nocopy     varchar2
1704   ,p_attribute17                  out nocopy     varchar2
1705   ,p_attribute18                  out nocopy     varchar2
1706   ,p_attribute19                  out nocopy     varchar2
1707   ,p_attribute20                  out nocopy     varchar2
1708   ,p_attribute21                  out nocopy     varchar2
1709   ,p_attribute22                  out nocopy     varchar2
1710   ,p_attribute23                  out nocopy     varchar2
1711   ,p_attribute24                  out nocopy     varchar2
1712   ,p_attribute25                  out nocopy     varchar2
1713   ,p_attribute26                  out nocopy     varchar2
1714   ,p_attribute27                  out nocopy     varchar2
1715   ,p_attribute28                  out nocopy     varchar2
1716   ,p_attribute29                  out nocopy     varchar2
1717   ,p_attribute30                  out nocopy     varchar2
1718   ,p_information_category         out NOCOPY     varchar2
1719   ,p_information1                 out nocopy     varchar2
1720   ,p_information2                 out nocopy     varchar2
1721   ,p_information3                 out nocopy     varchar2
1722   ,p_information4                 out nocopy     varchar2
1723   ,p_information5                 out nocopy     varchar2
1724   ,p_information6                 out nocopy     varchar2
1725   ,p_information7                 out nocopy     varchar2
1726   ,p_information8                 out nocopy     varchar2
1727   ,p_information9                 out nocopy     varchar2
1728   ,p_information10                out nocopy     varchar2
1729   ,p_information11                out nocopy     varchar2
1730   ,p_information12                out nocopy     varchar2
1731   ,p_information13                out nocopy     varchar2
1732   ,p_information14                out nocopy     varchar2
1733   ,p_information15                out nocopy     varchar2
1734   ,p_information16                out nocopy     varchar2
1735   ,p_information17                out nocopy     varchar2
1736   ,p_information18                out nocopy     varchar2
1737   ,p_information19                out nocopy     varchar2
1738   ,p_information20                out nocopy     varchar2
1739   ,p_information21                out nocopy     varchar2
1740   ,p_information22                out nocopy     varchar2
1741   ,p_information23                out nocopy     varchar2
1742   ,p_information24                out nocopy     varchar2
1743   ,p_information25                out nocopy     varchar2
1744   ,p_information26                out nocopy     varchar2
1745   ,p_information27                out nocopy     varchar2
1746   ,p_information28                out nocopy     varchar2
1747   ,p_information29                out nocopy     varchar2
1748   ,p_information30                out nocopy     varchar2
1749 ) IS
1750 
1751 l_proc    varchar2(72) := g_package ||'getTransactionDetails';
1752 
1753 BEGIN
1754 
1755 hr_utility.set_location(' Entering:' || l_proc, 5);
1756   --
1757     p_person_id :=
1758       hr_transaction_api.get_number_value
1759       (p_transaction_step_id => p_transaction_step_id
1760       ,p_name                => 'P_PERSON_ID');
1761   --
1762     p_date_start :=
1763       hr_transaction_api.get_date_value
1764       (p_transaction_step_id => p_transaction_step_id
1765       ,p_name                => 'P_DATE_START');
1766   --
1767     p_object_version_number :=
1768       hr_transaction_api.get_number_value
1769       (p_transaction_step_id => p_transaction_step_id
1770       ,p_name                => 'P_OBJECT_VERSION_NUMBER');
1771   --
1772     p_person_type_id :=
1773       hr_transaction_api.get_number_value
1774       (p_transaction_step_id => p_transaction_step_id
1775       ,p_name                => 'P_PERSON_TYPE_ID');
1776   --
1777 --    p_assignment_status_type_id :=
1778 --      hr_transaction_api.get_number_value
1779 --      (p_transaction_step_id => p_transaction_step_id
1780 --      ,p_name                => 'P_ASSIGNMENT_STATUS_TYPE_ID');
1781   --
1782     p_actual_termination_date :=
1783       hr_transaction_api.get_date_value
1784       (p_transaction_step_id => p_transaction_step_id
1785       ,p_name                => 'P_ACTUAL_TERMINATION_DATE');
1786   --
1787     p_final_process_date :=
1788       hr_transaction_api.get_date_value
1789       (p_transaction_step_id => p_transaction_step_id
1790       ,p_name                => 'P_FINAL_PROCESS_DATE');
1791   --
1792     p_last_standard_process_date :=
1793       hr_transaction_api.get_date_value
1794       (p_transaction_step_id => p_transaction_step_id
1795       ,p_name                => 'P_LAST_STANDARD_PROCESS_DATE');
1796   --
1797     p_termination_reason :=
1798       hr_transaction_api.get_varchar2_value
1799       (p_transaction_step_id => p_transaction_step_id
1800       ,p_name                => 'P_TERMINATION_REASON');
1801   --
1802     p_rehire_recommendation :=
1803       hr_transaction_api.get_varchar2_value
1804       (p_transaction_step_id => p_transaction_step_id
1805       ,p_name                => 'P_REHIRE_RECOMMENDATION');
1806   --
1807     p_rehire_reason :=
1808       hr_transaction_api.get_varchar2_value
1809       (p_transaction_step_id => p_transaction_step_id
1810       ,p_name                => 'P_REHIRE_REASON');
1811   --
1812     p_projected_termination_date :=
1813       hr_transaction_api.get_date_value
1814       (p_transaction_step_id => p_transaction_step_id
1815       ,p_name                => 'P_PROJECTED_TERMINATION_DATE');
1816   --
1817     p_attribute_category :=
1818       hr_transaction_api.get_varchar2_value
1819       (p_transaction_step_id => p_transaction_step_id
1820       ,p_name                => 'P_ATTRIBUTE_CATEGORY');
1821   --
1822     p_attribute1 :=
1823       hr_transaction_api.get_varchar2_value
1824       (p_transaction_step_id => p_transaction_step_id
1825       ,p_name                => 'P_ATTRIBUTE1');
1826   --
1827     p_attribute2 :=
1828       hr_transaction_api.get_varchar2_value
1829       (p_transaction_step_id => p_transaction_step_id
1830       ,p_name                => 'P_ATTRIBUTE2');
1831   --
1832     p_attribute3 :=
1833       hr_transaction_api.get_varchar2_value
1834       (p_transaction_step_id => p_transaction_step_id
1835       ,p_name                => 'P_ATTRIBUTE3');
1836   --
1837     p_attribute4 :=
1838       hr_transaction_api.get_varchar2_value
1839       (p_transaction_step_id => p_transaction_step_id
1840       ,p_name                => 'P_ATTRIBUTE4');
1841   --
1842     p_attribute5 :=
1843       hr_transaction_api.get_varchar2_value
1844       (p_transaction_step_id => p_transaction_step_id
1845       ,p_name                => 'P_ATTRIBUTE5');
1846   --
1847     p_attribute6 :=
1848       hr_transaction_api.get_varchar2_value
1849       (p_transaction_step_id => p_transaction_step_id
1850       ,p_name                => 'P_ATTRIBUTE6');
1851   --
1852     p_attribute7 :=
1853       hr_transaction_api.get_varchar2_value
1854       (p_transaction_step_id => p_transaction_step_id
1855       ,p_name                => 'P_ATTRIBUTE7');
1856   --
1857     p_attribute8 :=
1858       hr_transaction_api.get_varchar2_value
1859       (p_transaction_step_id => p_transaction_step_id
1860       ,p_name                => 'P_ATTRIBUTE8');
1861   --
1862     p_attribute9 :=
1863       hr_transaction_api.get_varchar2_value
1864       (p_transaction_step_id => p_transaction_step_id
1865       ,p_name                => 'P_ATTRIBUTE9');
1866   --
1867     p_attribute10 :=
1868       hr_transaction_api.get_varchar2_value
1869       (p_transaction_step_id => p_transaction_step_id
1870       ,p_name                => 'P_ATTRIBUTE10');
1871   --
1872     p_attribute11 :=
1873       hr_transaction_api.get_varchar2_value
1874       (p_transaction_step_id => p_transaction_step_id
1875       ,p_name                => 'P_ATTRIBUTE11');
1876   --
1877     p_attribute12 :=
1878       hr_transaction_api.get_varchar2_value
1879       (p_transaction_step_id => p_transaction_step_id
1880       ,p_name                => 'P_ATTRIBUTE12');
1881   --
1882     p_attribute13 :=
1883       hr_transaction_api.get_varchar2_value
1884       (p_transaction_step_id => p_transaction_step_id
1885       ,p_name                => 'P_ATTRIBUTE13');
1886   --
1887     p_attribute14 :=
1888       hr_transaction_api.get_varchar2_value
1889       (p_transaction_step_id => p_transaction_step_id
1890       ,p_name                => 'P_ATTRIBUTE14');
1891   --
1892     p_attribute15 :=
1893       hr_transaction_api.get_varchar2_value
1894       (p_transaction_step_id => p_transaction_step_id
1895       ,p_name                => 'P_ATTRIBUTE15');
1896   --
1897     p_attribute16 :=
1898       hr_transaction_api.get_varchar2_value
1899       (p_transaction_step_id => p_transaction_step_id
1900       ,p_name                => 'P_ATTRIBUTE16');
1901   --
1902     p_attribute17 :=
1903       hr_transaction_api.get_varchar2_value
1904       (p_transaction_step_id => p_transaction_step_id
1905       ,p_name                => 'P_ATTRIBUTE17');
1906   --
1907     p_attribute18 :=
1908       hr_transaction_api.get_varchar2_value
1909       (p_transaction_step_id => p_transaction_step_id
1910       ,p_name                => 'P_ATTRIBUTE18');
1911   --
1912     p_attribute19 :=
1913       hr_transaction_api.get_varchar2_value
1914       (p_transaction_step_id => p_transaction_step_id
1915       ,p_name                => 'P_ATTRIBUTE19');
1916   --
1917     p_attribute20 :=
1918       hr_transaction_api.get_varchar2_value
1919       (p_transaction_step_id => p_transaction_step_id
1920       ,p_name                => 'P_ATTRIBUTE20');
1921   --
1922     p_attribute21 :=
1923       hr_transaction_api.get_varchar2_value
1924       (p_transaction_step_id => p_transaction_step_id
1925       ,p_name                => 'P_ATTRIBUTE21');
1926   --
1927     p_attribute22 :=
1928       hr_transaction_api.get_varchar2_value
1929       (p_transaction_step_id => p_transaction_step_id
1930       ,p_name                => 'P_ATTRIBUTE22');
1931   --
1932     p_attribute23 :=
1933       hr_transaction_api.get_varchar2_value
1934       (p_transaction_step_id => p_transaction_step_id
1935       ,p_name                => 'P_ATTRIBUTE23');
1936   --
1937     p_attribute24 :=
1938       hr_transaction_api.get_varchar2_value
1939       (p_transaction_step_id => p_transaction_step_id
1940       ,p_name                => 'P_ATTRIBUTE24');
1941   --
1942     p_attribute25 :=
1943       hr_transaction_api.get_varchar2_value
1944       (p_transaction_step_id => p_transaction_step_id
1945       ,p_name                => 'P_ATTRIBUTE25');
1946   --
1947     p_attribute26 :=
1948       hr_transaction_api.get_varchar2_value
1949       (p_transaction_step_id => p_transaction_step_id
1950       ,p_name                => 'P_ATTRIBUTE26');
1951   --
1952     p_attribute27 :=
1953       hr_transaction_api.get_varchar2_value
1954       (p_transaction_step_id => p_transaction_step_id
1955       ,p_name                => 'P_ATTRIBUTE27');
1956   --
1957     p_attribute28 :=
1958       hr_transaction_api.get_varchar2_value
1959       (p_transaction_step_id => p_transaction_step_id
1960       ,p_name                => 'P_ATTRIBUTE28');
1961   --
1962     p_attribute29 :=
1963       hr_transaction_api.get_varchar2_value
1964       (p_transaction_step_id => p_transaction_step_id
1965       ,p_name                => 'P_ATTRIBUTE29');
1966   --
1967     p_attribute30 :=
1968       hr_transaction_api.get_varchar2_value
1969       (p_transaction_step_id => p_transaction_step_id
1970       ,p_name                => 'P_ATTRIBUTE30');
1971   --
1972     p_information_category :=
1973       hr_transaction_api.get_varchar2_value
1974       (p_transaction_step_id => p_transaction_step_id
1975       ,p_name                => 'P_INFORMATION_CATEGORY');
1976   --
1977     p_information1 :=
1978       hr_transaction_api.get_varchar2_value
1979       (p_transaction_step_id => p_transaction_step_id
1980       ,p_name                => 'P_INFORMATION1');
1981   --
1982     p_information2 :=
1983       hr_transaction_api.get_varchar2_value
1984       (p_transaction_step_id => p_transaction_step_id
1985       ,p_name                => 'P_INFORMATION2');
1986   --
1987     p_information3 :=
1988       hr_transaction_api.get_varchar2_value
1989       (p_transaction_step_id => p_transaction_step_id
1990       ,p_name                => 'P_INFORMATION3');
1991   --
1992     p_information4 :=
1993       hr_transaction_api.get_varchar2_value
1994       (p_transaction_step_id => p_transaction_step_id
1995       ,p_name                => 'P_INFORMATION4');
1996   --
1997     p_information5 :=
1998       hr_transaction_api.get_varchar2_value
1999       (p_transaction_step_id => p_transaction_step_id
2000       ,p_name                => 'P_INFORMATION5');
2001   --
2002     p_information6 :=
2003       hr_transaction_api.get_varchar2_value
2004       (p_transaction_step_id => p_transaction_step_id
2005       ,p_name                => 'P_INFORMATION6');
2006   --
2007     p_information7 :=
2008       hr_transaction_api.get_varchar2_value
2009       (p_transaction_step_id => p_transaction_step_id
2010       ,p_name                => 'P_INFORMATION7');
2011   --
2012     p_information8 :=
2013       hr_transaction_api.get_varchar2_value
2014       (p_transaction_step_id => p_transaction_step_id
2015       ,p_name                => 'P_INFORMATION8');
2016   --
2017     p_information9 :=
2018       hr_transaction_api.get_varchar2_value
2019       (p_transaction_step_id => p_transaction_step_id
2020       ,p_name                => 'P_INFORMATION9');
2021   --
2022     p_information10 :=
2023       hr_transaction_api.get_varchar2_value
2024       (p_transaction_step_id => p_transaction_step_id
2025       ,p_name                => 'P_INFORMATION10');
2026   --
2027     p_information11 :=
2028       hr_transaction_api.get_varchar2_value
2029       (p_transaction_step_id => p_transaction_step_id
2030       ,p_name                => 'P_INFORMATION11');
2031   --
2032     p_information12 :=
2033       hr_transaction_api.get_varchar2_value
2034       (p_transaction_step_id => p_transaction_step_id
2035       ,p_name                => 'P_INFORMATION12');
2036   --
2037     p_information13 :=
2038       hr_transaction_api.get_varchar2_value
2039       (p_transaction_step_id => p_transaction_step_id
2040       ,p_name                => 'P_INFORMATION13');
2041   --
2042     p_information14 :=
2043       hr_transaction_api.get_varchar2_value
2044       (p_transaction_step_id => p_transaction_step_id
2045       ,p_name                => 'P_INFORMATION14');
2046   --
2047     p_information15 :=
2048       hr_transaction_api.get_varchar2_value
2049       (p_transaction_step_id => p_transaction_step_id
2050       ,p_name                => 'P_INFORMATION15');
2051   --
2052     p_information16 :=
2053       hr_transaction_api.get_varchar2_value
2054       (p_transaction_step_id => p_transaction_step_id
2055       ,p_name                => 'P_INFORMATION16');
2056   --
2057     p_information17 :=
2058       hr_transaction_api.get_varchar2_value
2059       (p_transaction_step_id => p_transaction_step_id
2060       ,p_name                => 'P_INFORMATION17');
2061   --
2062     p_information18 :=
2063       hr_transaction_api.get_varchar2_value
2064       (p_transaction_step_id => p_transaction_step_id
2065       ,p_name                => 'P_INFORMATION18');
2066   --
2067     p_information19 :=
2068       hr_transaction_api.get_varchar2_value
2069       (p_transaction_step_id => p_transaction_step_id
2070       ,p_name                => 'P_INFORMATION19');
2071   --
2072     p_information20 :=
2073       hr_transaction_api.get_varchar2_value
2074       (p_transaction_step_id => p_transaction_step_id
2075       ,p_name                => 'P_INFORMATION20');
2076 
2077   --
2078     p_information21 :=
2079       hr_transaction_api.get_varchar2_value
2080       (p_transaction_step_id => p_transaction_step_id
2081       ,p_name                => 'P_INFORMATION21');
2082   --
2083     p_information22 :=
2084       hr_transaction_api.get_varchar2_value
2085       (p_transaction_step_id => p_transaction_step_id
2086       ,p_name                => 'P_INFORMATION22');
2087   --
2088     p_information23 :=
2089       hr_transaction_api.get_varchar2_value
2090       (p_transaction_step_id => p_transaction_step_id
2091       ,p_name                => 'P_INFORMATION23');
2092   --
2093     p_information24 :=
2094       hr_transaction_api.get_varchar2_value
2095       (p_transaction_step_id => p_transaction_step_id
2096       ,p_name                => 'P_INFORMATION24');
2097   --
2098     p_information25 :=
2099       hr_transaction_api.get_varchar2_value
2100       (p_transaction_step_id => p_transaction_step_id
2101       ,p_name                => 'P_INFORMATION25');
2102   --
2103     p_information26 :=
2104       hr_transaction_api.get_varchar2_value
2105       (p_transaction_step_id => p_transaction_step_id
2106       ,p_name                => 'P_INFORMATION26');
2107   --
2108     p_information27 :=
2109       hr_transaction_api.get_varchar2_value
2110       (p_transaction_step_id => p_transaction_step_id
2111       ,p_name                => 'P_INFORMATION27');
2112   --
2113     p_information28 :=
2114       hr_transaction_api.get_varchar2_value
2115       (p_transaction_step_id => p_transaction_step_id
2116       ,p_name                => 'P_INFORMATION28');
2117   --
2118     p_information29 :=
2119       hr_transaction_api.get_varchar2_value
2120       (p_transaction_step_id => p_transaction_step_id
2121       ,p_name                => 'P_INFORMATION29');
2122   --
2123     p_information30 :=
2124       hr_transaction_api.get_varchar2_value
2125       (p_transaction_step_id => p_transaction_step_id
2126       ,p_name                => 'P_INFORMATION30');
2127 
2128 hr_utility.set_location(' Leaving:' || l_proc, 10);
2129 
2130 END getTransactionDetails;
2131 
2132 procedure process_api
2133 (    p_validate			  in	boolean  default false
2134     ,p_transaction_step_id	  in	number   default null
2135     ,p_effective_date		  in	varchar2 default NULL
2136 ) IS
2137 
2138 /*l_person_id                    VARCHAR2(100);
2139 l_date_start                   VARCHAR2(100);
2140 l_object_version_number        VARCHAR2(100);
2141 l_person_type_id               VARCHAR2(100);
2142 l_actual_termination_date      VARCHAR2(100);
2143 l_final_process_date           VARCHAR2(100);
2144 l_last_standard_process_date   VARCHAR2(100);*/
2145 /*l_projected_termination_date   VARCHAR2(100);*/
2146 
2147 l_attribute_category   per_periods_of_placement.attribute_category%TYPE;
2148 l_attribute1                   per_periods_of_placement.attribute1%TYPE;
2149 l_attribute2                   per_periods_of_placement.attribute2%TYPE;
2150 l_attribute3                   per_periods_of_placement.attribute3%TYPE;
2151 l_attribute4                   per_periods_of_placement.attribute4%TYPE;
2152 l_attribute5                   per_periods_of_placement.attribute5%TYPE;
2153 l_attribute6                   per_periods_of_placement.attribute6%TYPE;
2154 l_attribute7                   per_periods_of_placement.attribute7%TYPE;
2155 l_attribute8                   per_periods_of_placement.attribute8%TYPE;
2156 l_attribute9                   per_periods_of_placement.attribute9%TYPE;
2157 l_attribute10                  per_periods_of_placement.attribute10%TYPE;
2158 l_attribute11                  per_periods_of_placement.attribute11%TYPE;
2159 l_attribute12                  per_periods_of_placement.attribute12%TYPE;
2160 l_attribute13                  per_periods_of_placement.attribute13%TYPE;
2161 l_attribute14                  per_periods_of_placement.attribute14%TYPE;
2162 l_attribute15                  per_periods_of_placement.attribute15%TYPE;
2163 l_attribute16                  per_periods_of_placement.attribute16%TYPE;
2164 l_attribute17                  per_periods_of_placement.attribute17%TYPE;
2165 l_attribute18                  per_periods_of_placement.attribute18%TYPE;
2166 l_attribute19                  per_periods_of_placement.attribute19%TYPE;
2167 l_attribute20                  per_periods_of_placement.attribute20%TYPE;
2168 l_attribute21                  per_periods_of_placement.attribute21%TYPE;
2169 l_attribute22                  per_periods_of_placement.attribute22%TYPE;
2170 l_attribute23                  per_periods_of_placement.attribute23%TYPE;
2171 l_attribute24                  per_periods_of_placement.attribute24%TYPE;
2172 l_attribute25                  per_periods_of_placement.attribute25%TYPE;
2173 l_attribute26                  per_periods_of_placement.attribute26%TYPE;
2174 l_attribute27                  per_periods_of_placement.attribute27%TYPE;
2175 l_attribute28                  per_periods_of_placement.attribute28%TYPE;
2176 l_attribute29                  per_periods_of_placement.attribute29%TYPE;
2177 l_attribute30                  per_periods_of_placement.attribute30%TYPE;
2178 
2179 l_information_category    per_periods_of_placement.information_category%TYPE;
2180 l_information1                 per_periods_of_placement.information1%TYPE;
2181 l_information2                 per_periods_of_placement.information2%TYPE;
2182 l_information3                 per_periods_of_placement.information3%TYPE;
2183 l_information4                 per_periods_of_placement.information4%TYPE;
2184 l_information5                 per_periods_of_placement.information5%TYPE;
2185 l_information6                 per_periods_of_placement.information6%TYPE;
2186 l_information7                 per_periods_of_placement.information7%TYPE;
2187 l_information8                 per_periods_of_placement.information8%TYPE;
2188 l_information9                 per_periods_of_placement.information9%TYPE;
2189 l_information10                per_periods_of_placement.information10%TYPE;
2190 l_information11                per_periods_of_placement.information11%TYPE;
2191 l_information12                per_periods_of_placement.information12%TYPE;
2192 l_information13                per_periods_of_placement.information13%TYPE;
2193 l_information14                per_periods_of_placement.information14%TYPE;
2194 l_information15                per_periods_of_placement.information15%TYPE;
2195 l_information16                per_periods_of_placement.information16%TYPE;
2196 l_information17                per_periods_of_placement.information17%TYPE;
2197 l_information18                per_periods_of_placement.information18%TYPE;
2198 l_information19                per_periods_of_placement.information19%TYPE;
2199 l_information20                per_periods_of_placement.information20%TYPE;
2200 l_information21                per_periods_of_placement.information21%TYPE;
2201 l_information22                per_periods_of_placement.information22%TYPE;
2202 l_information23                per_periods_of_placement.information23%TYPE;
2203 l_information24                per_periods_of_placement.information24%TYPE;
2204 l_information25                per_periods_of_placement.information25%TYPE;
2205 l_information26                per_periods_of_placement.information26%TYPE;
2206 l_information27                per_periods_of_placement.information27%TYPE;
2207 l_information28                per_periods_of_placement.information28%TYPE;
2208 l_information29                per_periods_of_placement.information29%TYPE;
2209 l_information30                per_periods_of_placement.information30%TYPE;
2210 
2211 l_entries_changed_warning      VARCHAR2(30);
2212 l_return_status                VARCHAR2(30);
2213 
2214 l_person_id                    per_periods_of_placement.person_id%TYPE;
2215 l_date_start                   per_periods_of_placement.date_start%TYPE;
2216 l_object_version_number        per_periods_of_placement.object_version_number%TYPE;
2217 l_person_type_id               per_all_people_f.person_type_id%TYPE;
2218 l_actual_termination_date      per_periods_of_placement.actual_termination_date%TYPE;
2219 l_final_process_date           per_periods_of_placement.final_process_date%TYPE;
2220 l_last_standard_process_date   per_periods_of_placement.last_standard_process_date%TYPE;
2221 l_projected_termination_date   per_periods_of_placement.projected_termination_date%TYPE;
2222 l_termination_reason           per_periods_of_placement.termination_reason%TYPE;
2223 l_rehire_recommendation        per_all_people_f.rehire_recommendation%TYPE;
2224 l_rehire_reason                per_all_people_f.rehire_reason%TYPE;
2225 
2226 l_proc    varchar2(72) := g_package ||'process_api';
2227 l_effective_date	    date;
2228 
2229     ItemType         varchar2(200);
2230     ItemKey          varchar2(200);
2231     ActivityId       number;
2232     isQkFn           varchar2(10) default 'N';
2233     isSupAsgPGExists varchar2(10) default 'N';
2234     l_old_sup_person_id   number;
2235     l_term_date           date;
2236     l_login_person_id     number;
2237     l_old_sup_asg_id      number;
2238     l_old_sup_bg_id       number;
2239     l_new_sup_person_id   number;
2240     l_new_sup_asg_id      number;
2241     l_validate            varchar2(10);
2242 
2243 BEGIN
2244 
2245 hr_utility.set_location(' Entering:' || l_proc, 5);
2246 
2247 hr_cwk_termination_swi.getTransactionDetails
2248 (  p_transaction_step_id              =>  p_transaction_step_id
2249   ,p_person_id                   	    =>  l_person_id
2250   ,p_date_start                  	    =>  l_date_start
2251   ,p_object_version_number       	    =>  l_object_version_number
2252   ,p_person_type_id              	    =>  l_person_type_id
2253   ,p_actual_termination_date     	    =>  l_actual_termination_date
2254   ,p_final_process_date          	    =>  l_final_process_date
2255   ,p_last_standard_process_date  	    =>  l_last_standard_process_date
2256   ,p_termination_reason          	    =>  l_termination_reason
2257   ,p_rehire_recommendation              =>  l_rehire_recommendation
2258   ,p_rehire_reason                      =>  l_rehire_reason
2259   ,p_projected_termination_date  	    =>  l_projected_termination_date
2260   ,p_attribute_category          	    =>  l_attribute_category
2261   ,p_attribute1                  	    =>  l_attribute1
2262   ,p_attribute2                  	    =>  l_attribute2
2263   ,p_attribute3                  	    =>  l_attribute3
2264   ,p_attribute4                  	    =>  l_attribute4
2265   ,p_attribute5                  	    =>  l_attribute5
2266   ,p_attribute6                  	    =>  l_attribute6
2267   ,p_attribute7                  	    =>  l_attribute7
2268   ,p_attribute8                  	    =>  l_attribute8
2269   ,p_attribute9                  	    =>  l_attribute9
2270   ,p_attribute10                 	    =>  l_attribute10
2271   ,p_attribute11                 	    =>  l_attribute11
2272   ,p_attribute12                 	    =>  l_attribute12
2273   ,p_attribute13                 	    =>  l_attribute13
2274   ,p_attribute14                 	    =>  l_attribute14
2275   ,p_attribute15                 	    =>  l_attribute15
2276   ,p_attribute16                 	    =>  l_attribute16
2277   ,p_attribute17                 	    =>  l_attribute17
2278   ,p_attribute18                 	    =>  l_attribute18
2279   ,p_attribute19                 	    =>  l_attribute19
2280   ,p_attribute20                 	    =>  l_attribute20
2281   ,p_attribute21                 	    =>  l_attribute21
2282   ,p_attribute22                 	    =>  l_attribute22
2283   ,p_attribute23                 	    =>  l_attribute23
2284   ,p_attribute24                 	    =>  l_attribute24
2285   ,p_attribute25                 	    =>  l_attribute25
2286   ,p_attribute26                 	    =>  l_attribute26
2287   ,p_attribute27                 	    =>  l_attribute27
2288   ,p_attribute28                 	    =>  l_attribute28
2289   ,p_attribute29                 	    =>  l_attribute29
2290   ,p_attribute30                 	    =>  l_attribute30
2291   ,p_information_category               =>  l_information_category
2292   ,p_information1                       =>  l_information1
2293   ,p_information2                       =>  l_information2
2294   ,p_information3                       =>  l_information3
2295   ,p_information4                       =>  l_information4
2296   ,p_information5                       =>  l_information5
2297   ,p_information6                       =>  l_information6
2298   ,p_information7                       =>  l_information7
2299   ,p_information8                       =>  l_information8
2300   ,p_information9                       =>  l_information9
2301   ,p_information10                      =>  l_information10
2302   ,p_information11                      =>  l_information11
2303   ,p_information12                      =>  l_information12
2304   ,p_information13                      =>  l_information13
2305   ,p_information14                      =>  l_information14
2306   ,p_information15                      =>  l_information15
2307   ,p_information16                      =>  l_information16
2308   ,p_information17                      =>  l_information17
2309   ,p_information18                      =>  l_information18
2310   ,p_information19                      =>  l_information19
2311   ,p_information20                      =>  l_information20
2312   ,p_information21                      =>  l_information21
2313   ,p_information22                      =>  l_information22
2314   ,p_information23                      =>  l_information23
2315   ,p_information24                      =>  l_information24
2316   ,p_information25                      =>  l_information25
2317   ,p_information26                      =>  l_information26
2318   ,p_information27                      =>  l_information27
2319   ,p_information28                      =>  l_information28
2320   ,p_information29                      =>  l_information29
2321   ,p_information30                      =>  l_information30
2322 );
2323 
2324 /*person_id                    :=  to_number(l_person_id);
2325 object_version_number        :=	 to_number(l_object_version_number);
2326 person_type_id               :=	 to_number(l_person_type_id);
2327 date_start :=
2328       hr_transaction_api.get_date_value
2329       (p_transaction_step_id => p_transaction_step_id
2330       ,p_name                => 'P_DATE_START');
2331 actual_termination_date :=
2332       hr_transaction_api.get_date_value
2333       (p_transaction_step_id => p_transaction_step_id
2334       ,p_name                => 'P_ACTUAL_TERMINATION_DATE');
2335 final_process_date :=
2336       hr_transaction_api.get_date_value
2337       (p_transaction_step_id => p_transaction_step_id
2338       ,p_name                => 'P_FINAL_PROCESS_DATE');
2339 last_standard_process_date :=
2340       hr_transaction_api.get_date_value
2341       (p_transaction_step_id => p_transaction_step_id
2342       ,p_name                => 'P_LAST_STANDARD_PROCESS_DATE');
2343 projected_termination_date :=
2344       hr_transaction_api.get_date_value
2345       (p_transaction_step_id => p_transaction_step_id
2346       ,p_name                => 'P_PROJECTED_TERMINATION_DATE');
2347 */
2348 l_effective_date :=
2349       hr_transaction_api.get_date_value
2350       (p_transaction_step_id => p_transaction_step_id
2351       ,p_name                => 'P_EFFECTIVE_DATE');
2352 
2353 
2354 hr_cwk_termination_swi.terminate_placement
2355     (p_validate                    =>  false
2356     ,p_effective_date              =>  l_effective_date
2357     ,p_person_id                   =>  l_person_id
2358     ,p_date_start                  =>  l_date_start
2359     ,p_object_version_number       =>  l_object_version_number
2360     ,p_person_type_id              =>  l_person_type_id
2361     ,p_actual_termination_date     =>  l_actual_termination_date
2362     ,p_final_process_date          =>  l_final_process_date
2363     ,p_last_standard_process_date  =>  l_last_standard_process_date
2364     ,p_termination_reason          =>  l_termination_reason
2365     ,p_projected_termination_date  =>  l_projected_termination_date
2366     ,p_rehire_recommendation       =>  l_rehire_recommendation
2367     ,p_rehire_reason               =>  l_rehire_reason
2368     ,p_attribute_category          =>  l_attribute_category
2369     ,p_attribute1                  =>  l_attribute1
2370     ,p_attribute2                  =>  l_attribute2
2371     ,p_attribute3                  =>  l_attribute3
2372     ,p_attribute4                  =>  l_attribute4
2373     ,p_attribute5                  =>  l_attribute5
2374     ,p_attribute6                  =>  l_attribute6
2375     ,p_attribute7                  =>  l_attribute7
2376     ,p_attribute8                  =>  l_attribute8
2377     ,p_attribute9                  =>  l_attribute9
2378     ,p_attribute10                 =>  l_attribute10
2379     ,p_attribute11                 =>  l_attribute11
2380     ,p_attribute12                 =>  l_attribute12
2381     ,p_attribute13                 =>  l_attribute13
2382     ,p_attribute14                 =>  l_attribute14
2383     ,p_attribute15                 =>  l_attribute15
2384     ,p_attribute16                 =>  l_attribute16
2385     ,p_attribute17                 =>  l_attribute17
2386     ,p_attribute18                 =>  l_attribute18
2387     ,p_attribute19                 =>  l_attribute19
2388     ,p_attribute20                 =>  l_attribute20
2389     ,p_attribute21                 =>  l_attribute21
2390     ,p_attribute22                 =>  l_attribute22
2391     ,p_attribute23                 =>  l_attribute23
2392     ,p_attribute24                 =>  l_attribute24
2393     ,p_attribute25                 =>  l_attribute25
2394     ,p_attribute26                 =>  l_attribute26
2395     ,p_attribute27                 =>  l_attribute27
2396     ,p_attribute28                 =>  l_attribute28
2397     ,p_attribute29                 =>  l_attribute29
2398     ,p_attribute30	           =>  l_attribute30
2399     ,p_entries_changed_warning     =>  l_entries_changed_warning
2400     ,p_return_status               =>  l_return_status
2401 );
2402 
2403     -- Quick Termination changes start from here
2404 
2405 BEGIN
2406     hr_transaction_api.get_transaction_step_info(
2407                 p_transaction_step_id
2408                ,ItemType
2409                ,ItemKey
2410                ,ActivityId);
2411 
2412     if ( ItemType is not null and ItemKey is not null ) then
2413 
2414         isQKFn := wf_engine.getItemAttrText(ItemType, ItemKey, 'HR_QUICK_FUNCTION');
2415 
2416         if ( ActivityId is not null ) then
2417             isSupAsgPGExists := wf_engine.getActivityAttrText(ItemType, ItemKey, ActivityId, 'REASSIGN_DIRECTS');
2418         end if;
2419 
2420     end if;
2421 
2422     if (isQKFn = 'Y' and isSupAsgPGExists = 'Y' ) then
2423 
2424          l_term_date := hr_transaction_api.get_date_value(p_transaction_step_id, 'P_ACTUAL_TERMINATION_DATE');
2425 
2426          l_old_sup_person_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_OLD_SUP_PER_ID', true);
2427          l_old_sup_asg_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_OLD_SUP_ASG_ID', true);
2428          l_old_sup_bg_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_OLD_SUP_BG_ID', true);
2429          l_new_sup_person_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_NEW_SUP_PER_ID', true);
2430          l_new_sup_asg_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_NEW_SUP_ASG_ID', true);
2431          l_login_person_id := wf_engine.getItemAttrText(ItemType, ItemKey, 'QK_TERM_LOGIN_PER_ID', true);
2432 
2433 
2434          if ( l_old_sup_person_id is not null and
2435               l_old_sup_asg_id is not null and
2436               l_old_sup_bg_id is not null and
2437               l_new_sup_person_id is not null and
2438               l_new_sup_asg_id is not null and
2439               l_login_person_id is not null
2440             ) then
2441 
2442               --l_proc := l_proc || ' hr_termination_ss.moveAllDirectReports';
2443 
2444               if ( p_validate ) then
2445                    l_validate := 'Y';
2446               else
2447                    l_validate := 'N';
2448               end if;
2449 
2450               hr_utility.trace('Called moveAllDirectReports from process_api');
2451 
2452               BEGIN
2453               hr_termination_ss.moveAllDirectReports(
2454                                 p_validate => l_validate,
2455                                 p_item_type => ItemType,
2456                                 p_item_key => ItemKey,
2457                                 p_old_sup_person_id => l_old_sup_person_id,
2458                                 p_old_sup_asg_id => l_old_sup_asg_id,
2459                                 p_old_sup_bg_id => l_old_sup_bg_id,
2460                                 p_new_sup_person_id => l_new_sup_person_id,
2461                                 p_new_sup_asg_id => l_new_sup_asg_id,
2462                                 p_login_person_id => l_login_person_id,
2463                                 p_term_date => to_char(l_term_date, 'YYYY-MM-DD'),
2464                                 p_flow_identifier => 'TERMINATION_FLOW');
2465               EXCEPTION
2466               WHEN OTHERS THEN
2467                  hr_utility.trace('Inner block of moveAllDirectReports call');
2468               END;
2469         end if;
2470 
2471     end if;
2472 EXCEPTION
2473 WHEN OTHERS THEN
2474     hr_utility.trace('Exception in outer block of moveAllDirectReports call');
2475 END;
2476     -- Quick Termination changes ends here
2477 
2478 if l_return_status = 'E' then
2479 	raise hr_multi_message.error_message_exist;
2480 end if;
2481 hr_utility.set_location(' Leaving:' || l_proc, 10);
2482 END;
2483 
2484 end hr_cwk_termination_swi;