DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_PERSON_SWI

Source


1 Package Body hr_person_swi As
2 /* $Header: hrperswi.pkb 115.4 2003/02/12 20:13:31 pzwalker ship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'hr_person_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-----------------------------< update_person >----------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE update_person
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_effective_date               in     date
14   ,p_datetrack_update_mode        in     varchar2
15   ,p_person_id                    in     number
16   ,p_object_version_number        in out nocopy number
17   ,p_person_type_id               in     number    default hr_api.g_number
18   ,p_last_name                    in     varchar2  default hr_api.g_varchar2
19   ,p_applicant_number             in     varchar2  default hr_api.g_varchar2
20   ,p_comments                     in     varchar2  default hr_api.g_varchar2
21   ,p_date_employee_data_verified  in     date      default hr_api.g_date
22   ,p_date_of_birth                in     date      default hr_api.g_date
23   ,p_email_address                in     varchar2  default hr_api.g_varchar2
24   ,p_employee_number              in out nocopy varchar2
25   ,p_expense_check_send_to_addres in     varchar2  default hr_api.g_varchar2
26   ,p_first_name                   in     varchar2  default hr_api.g_varchar2
27   ,p_known_as                     in     varchar2  default hr_api.g_varchar2
28   ,p_marital_status               in     varchar2  default hr_api.g_varchar2
29   ,p_middle_names                 in     varchar2  default hr_api.g_varchar2
30   ,p_nationality                  in     varchar2  default hr_api.g_varchar2
31   ,p_national_identifier          in     varchar2  default hr_api.g_varchar2
32   ,p_previous_last_name           in     varchar2  default hr_api.g_varchar2
33   ,p_registered_disabled_flag     in     varchar2  default hr_api.g_varchar2
34   ,p_sex                          in     varchar2  default hr_api.g_varchar2
35   ,p_title                        in     varchar2  default hr_api.g_varchar2
36   ,p_vendor_id                    in     number    default hr_api.g_number
37   ,p_work_telephone               in     varchar2  default hr_api.g_varchar2
38   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
39   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
40   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
41   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
42   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
43   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
44   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
45   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
46   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
47   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
48   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
49   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
50   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
51   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
52   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
53   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
54   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
55   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
56   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
57   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
58   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
59   ,p_attribute21                  in     varchar2  default hr_api.g_varchar2
60   ,p_attribute22                  in     varchar2  default hr_api.g_varchar2
61   ,p_attribute23                  in     varchar2  default hr_api.g_varchar2
62   ,p_attribute24                  in     varchar2  default hr_api.g_varchar2
63   ,p_attribute25                  in     varchar2  default hr_api.g_varchar2
64   ,p_attribute26                  in     varchar2  default hr_api.g_varchar2
65   ,p_attribute27                  in     varchar2  default hr_api.g_varchar2
66   ,p_attribute28                  in     varchar2  default hr_api.g_varchar2
67   ,p_attribute29                  in     varchar2  default hr_api.g_varchar2
68   ,p_attribute30                  in     varchar2  default hr_api.g_varchar2
69   ,p_per_information_category     in     varchar2  default hr_api.g_varchar2
70   ,p_per_information1             in     varchar2  default hr_api.g_varchar2
71   ,p_per_information2             in     varchar2  default hr_api.g_varchar2
72   ,p_per_information3             in     varchar2  default hr_api.g_varchar2
73   ,p_per_information4             in     varchar2  default hr_api.g_varchar2
74   ,p_per_information5             in     varchar2  default hr_api.g_varchar2
75   ,p_per_information6             in     varchar2  default hr_api.g_varchar2
76   ,p_per_information7             in     varchar2  default hr_api.g_varchar2
77   ,p_per_information8             in     varchar2  default hr_api.g_varchar2
78   ,p_per_information9             in     varchar2  default hr_api.g_varchar2
79   ,p_per_information10            in     varchar2  default hr_api.g_varchar2
80   ,p_per_information11            in     varchar2  default hr_api.g_varchar2
81   ,p_per_information12            in     varchar2  default hr_api.g_varchar2
82   ,p_per_information13            in     varchar2  default hr_api.g_varchar2
83   ,p_per_information14            in     varchar2  default hr_api.g_varchar2
84   ,p_per_information15            in     varchar2  default hr_api.g_varchar2
85   ,p_per_information16            in     varchar2  default hr_api.g_varchar2
86   ,p_per_information17            in     varchar2  default hr_api.g_varchar2
87   ,p_per_information18            in     varchar2  default hr_api.g_varchar2
88   ,p_per_information19            in     varchar2  default hr_api.g_varchar2
89   ,p_per_information20            in     varchar2  default hr_api.g_varchar2
90   ,p_per_information21            in     varchar2  default hr_api.g_varchar2
91   ,p_per_information22            in     varchar2  default hr_api.g_varchar2
92   ,p_per_information23            in     varchar2  default hr_api.g_varchar2
93   ,p_per_information24            in     varchar2  default hr_api.g_varchar2
94   ,p_per_information25            in     varchar2  default hr_api.g_varchar2
95   ,p_per_information26            in     varchar2  default hr_api.g_varchar2
96   ,p_per_information27            in     varchar2  default hr_api.g_varchar2
97   ,p_per_information28            in     varchar2  default hr_api.g_varchar2
98   ,p_per_information29            in     varchar2  default hr_api.g_varchar2
99   ,p_per_information30            in     varchar2  default hr_api.g_varchar2
100   ,p_date_of_death                in     date      default hr_api.g_date
101   ,p_background_check_status      in     varchar2  default hr_api.g_varchar2
102   ,p_background_date_check        in     date      default hr_api.g_date
103   ,p_blood_type                   in     varchar2  default hr_api.g_varchar2
104   ,p_correspondence_language      in     varchar2  default hr_api.g_varchar2
105   ,p_fast_path_employee           in     varchar2  default hr_api.g_varchar2
106   ,p_fte_capacity                 in     number    default hr_api.g_number
107   ,p_hold_applicant_date_until    in     date      default hr_api.g_date
108   ,p_honors                       in     varchar2  default hr_api.g_varchar2
109   ,p_internal_location            in     varchar2  default hr_api.g_varchar2
110   ,p_last_medical_test_by         in     varchar2  default hr_api.g_varchar2
111   ,p_last_medical_test_date       in     date      default hr_api.g_date
112   ,p_mailstop                     in     varchar2  default hr_api.g_varchar2
113   ,p_office_number                in     varchar2  default hr_api.g_varchar2
114   ,p_on_military_service          in     varchar2  default hr_api.g_varchar2
115   ,p_pre_name_adjunct             in     varchar2  default hr_api.g_varchar2
116   ,p_projected_start_date         in     date      default hr_api.g_date
117   ,p_rehire_authorizor            in     varchar2  default hr_api.g_varchar2
118   ,p_rehire_recommendation        in     varchar2  default hr_api.g_varchar2
119   ,p_resume_exists                in     varchar2  default hr_api.g_varchar2
120   ,p_resume_last_updated          in     date      default hr_api.g_date
121   ,p_second_passport_exists       in     varchar2  default hr_api.g_varchar2
122   ,p_student_status               in     varchar2  default hr_api.g_varchar2
123   ,p_work_schedule                in     varchar2  default hr_api.g_varchar2
124   ,p_rehire_reason                in     varchar2  default hr_api.g_varchar2
125   ,p_suffix                       in     varchar2  default hr_api.g_varchar2
126   ,p_benefit_group_id             in     number    default hr_api.g_number
127   ,p_receipt_of_death_cert_date   in     date      default hr_api.g_date
128   ,p_coord_ben_med_pln_no         in     varchar2  default hr_api.g_varchar2
129   ,p_coord_ben_no_cvg_flag        in     varchar2  default hr_api.g_varchar2
130   ,p_coord_ben_med_ext_er         in     varchar2  default hr_api.g_varchar2
131   ,p_coord_ben_med_pl_name        in     varchar2  default hr_api.g_varchar2
132   ,p_coord_ben_med_insr_crr_name  in     varchar2  default hr_api.g_varchar2
133   ,p_coord_ben_med_insr_crr_ident in     varchar2  default hr_api.g_varchar2
134   ,p_coord_ben_med_cvg_strt_dt    in     date      default hr_api.g_date
135   ,p_coord_ben_med_cvg_end_dt     in     date      default hr_api.g_date
136   ,p_uses_tobacco_flag            in     varchar2  default hr_api.g_varchar2
137   ,p_dpdnt_adoption_date          in     date      default hr_api.g_date
138   ,p_dpdnt_vlntry_svce_flag       in     varchar2  default hr_api.g_varchar2
139   ,p_original_date_of_hire        in     date      default hr_api.g_date
140   ,p_adjusted_svc_date            in     date      default hr_api.g_date
141   ,p_town_of_birth                in     varchar2  default hr_api.g_varchar2
142   ,p_region_of_birth              in     varchar2  default hr_api.g_varchar2
143   ,p_country_of_birth             in     varchar2  default hr_api.g_varchar2
144   ,p_global_person_id             in     varchar2  default hr_api.g_varchar2
145   ,p_party_id                     in     number    default hr_api.g_number
146   ,p_npw_number                   in     varchar2  default hr_api.g_varchar2
147   ,p_effective_start_date            out nocopy date
148   ,p_effective_end_date              out nocopy date
149   ,p_party_last_update_date          out nocopy date
150   ,p_full_name                       out nocopy varchar2
151   ,p_comment_id                      out nocopy number
152   ,p_return_status                   out nocopy varchar2
153   ) is
154   --
155   -- Variables for API Boolean parameters
156   l_validate                      boolean;
157   l_name_combination_warning      boolean;
158   l_assign_payroll_warning        boolean;
159   l_orig_hire_warning             boolean;
160   --
161   -- Variables for IN/OUT parameters
162   l_object_version_number         number;
163   l_employee_number               varchar2(30);
164   --
165   -- Other variables
166   l_proc    varchar2(72) := g_package ||'update_person';
167   --
168   -- Cursor to return party last update date
169   cursor csr_party_last_update_date(p_party_id number,
170                                     p_effective_date date) is
171     select hzp.last_update_date
172     from hz_person_profiles hzp
173     where hzp.party_id = p_party_id
174           and p_effective_date
175               between hzp.effective_start_date
176               and nvl(hzp.effective_end_date,hr_api.g_eot);
177   --
178 Begin
179   hr_utility.set_location(' Entering:' || l_proc,10);
180   --
181   -- Issue a savepoint
182   --
183   savepoint update_person_swi;
184   --
185   -- Initialise Multiple Message Detection
186   --
187   hr_multi_message.enable_message_list;
188   --
189   -- Remember IN OUT parameter IN values
190   --
191   l_object_version_number         := p_object_version_number;
192   l_employee_number               := p_employee_number;
193   --
194   -- Convert constant values to their corresponding boolean value
195   --
196   l_validate :=
197     hr_api.constant_to_boolean
198       (p_constant_value => p_validate);
199   --
200   -- Register Surrogate ID or user key values
201   --
202   --
203   -- Call API
204   --
205   hr_person_api.update_person
206     (p_validate                     => l_validate
207     ,p_effective_date               => p_effective_date
208     ,p_datetrack_update_mode        => p_datetrack_update_mode
209     ,p_person_id                    => p_person_id
210     ,p_object_version_number        => p_object_version_number
211     -- advised by core hr not to pass person_type_id
212     -- bug 2660465
213     --,p_person_type_id               => p_person_type_id
214     ,p_last_name                    => p_last_name
215     ,p_applicant_number             => p_applicant_number
216     ,p_comments                     => p_comments
217     ,p_date_employee_data_verified  => p_date_employee_data_verified
218     ,p_date_of_birth                => p_date_of_birth
219     ,p_email_address                => p_email_address
220     ,p_employee_number              => l_employee_number
221     ,p_expense_check_send_to_addres => p_expense_check_send_to_addres
222     ,p_first_name                   => p_first_name
223     ,p_known_as                     => p_known_as
224     ,p_marital_status               => p_marital_status
225     ,p_middle_names                 => p_middle_names
226     ,p_nationality                  => p_nationality
227     ,p_national_identifier          => p_national_identifier
228     ,p_previous_last_name           => p_previous_last_name
229     ,p_registered_disabled_flag     => p_registered_disabled_flag
230     ,p_sex                          => p_sex
231     ,p_title                        => p_title
232     ,p_vendor_id                    => p_vendor_id
233     ,p_work_telephone               => p_work_telephone
234     ,p_attribute_category           => p_attribute_category
235     ,p_attribute1                   => p_attribute1
236     ,p_attribute2                   => p_attribute2
237     ,p_attribute3                   => p_attribute3
238     ,p_attribute4                   => p_attribute4
239     ,p_attribute5                   => p_attribute5
240     ,p_attribute6                   => p_attribute6
241     ,p_attribute7                   => p_attribute7
242     ,p_attribute8                   => p_attribute8
243     ,p_attribute9                   => p_attribute9
244     ,p_attribute10                  => p_attribute10
245     ,p_attribute11                  => p_attribute11
246     ,p_attribute12                  => p_attribute12
247     ,p_attribute13                  => p_attribute13
248     ,p_attribute14                  => p_attribute14
249     ,p_attribute15                  => p_attribute15
250     ,p_attribute16                  => p_attribute16
251     ,p_attribute17                  => p_attribute17
252     ,p_attribute18                  => p_attribute18
253     ,p_attribute19                  => p_attribute19
254     ,p_attribute20                  => p_attribute20
255     ,p_attribute21                  => p_attribute21
256     ,p_attribute22                  => p_attribute22
257     ,p_attribute23                  => p_attribute23
258     ,p_attribute24                  => p_attribute24
259     ,p_attribute25                  => p_attribute25
260     ,p_attribute26                  => p_attribute26
261     ,p_attribute27                  => p_attribute27
262     ,p_attribute28                  => p_attribute28
263     ,p_attribute29                  => p_attribute29
264     ,p_attribute30                  => p_attribute30
265     ,p_per_information_category     => p_per_information_category
266     ,p_per_information1             => p_per_information1
267     ,p_per_information2             => p_per_information2
268     ,p_per_information3             => p_per_information3
269     ,p_per_information4             => p_per_information4
270     ,p_per_information5             => p_per_information5
271     ,p_per_information6             => p_per_information6
272     ,p_per_information7             => p_per_information7
273     ,p_per_information8             => p_per_information8
274     ,p_per_information9             => p_per_information9
275     ,p_per_information10            => p_per_information10
276     ,p_per_information11            => p_per_information11
277     ,p_per_information12            => p_per_information12
278     ,p_per_information13            => p_per_information13
279     ,p_per_information14            => p_per_information14
280     ,p_per_information15            => p_per_information15
281     ,p_per_information16            => p_per_information16
282     ,p_per_information17            => p_per_information17
283     ,p_per_information18            => p_per_information18
284     ,p_per_information19            => p_per_information19
285     ,p_per_information20            => p_per_information20
286     ,p_per_information21            => p_per_information21
287     ,p_per_information22            => p_per_information22
288     ,p_per_information23            => p_per_information23
289     ,p_per_information24            => p_per_information24
290     ,p_per_information25            => p_per_information25
291     ,p_per_information26            => p_per_information26
292     ,p_per_information27            => p_per_information27
293     ,p_per_information28            => p_per_information28
294     ,p_per_information29            => p_per_information29
295     ,p_per_information30            => p_per_information30
296     ,p_date_of_death                => p_date_of_death
297     ,p_background_check_status      => p_background_check_status
298     ,p_background_date_check        => p_background_date_check
299     ,p_blood_type                   => p_blood_type
300     ,p_correspondence_language      => p_correspondence_language
301     ,p_fast_path_employee           => p_fast_path_employee
302     ,p_fte_capacity                 => p_fte_capacity
303     ,p_hold_applicant_date_until    => p_hold_applicant_date_until
304     ,p_honors                       => p_honors
305     ,p_internal_location            => p_internal_location
306     ,p_last_medical_test_by         => p_last_medical_test_by
307     ,p_last_medical_test_date       => p_last_medical_test_date
308     ,p_mailstop                     => p_mailstop
309     ,p_office_number                => p_office_number
310     ,p_on_military_service          => p_on_military_service
311     ,p_pre_name_adjunct             => p_pre_name_adjunct
312     ,p_projected_start_date         => p_projected_start_date
313     ,p_rehire_authorizor            => p_rehire_authorizor
314     ,p_rehire_recommendation        => p_rehire_recommendation
315     ,p_resume_exists                => p_resume_exists
316     ,p_resume_last_updated          => p_resume_last_updated
317     ,p_second_passport_exists       => p_second_passport_exists
318     ,p_student_status               => p_student_status
319     ,p_work_schedule                => p_work_schedule
320     ,p_rehire_reason                => p_rehire_reason
321     ,p_suffix                       => p_suffix
322     ,p_benefit_group_id             => p_benefit_group_id
323     ,p_receipt_of_death_cert_date   => p_receipt_of_death_cert_date
324     ,p_coord_ben_med_pln_no         => p_coord_ben_med_pln_no
325     ,p_coord_ben_no_cvg_flag        => p_coord_ben_no_cvg_flag
326     ,p_coord_ben_med_ext_er         => p_coord_ben_med_ext_er
327     ,p_coord_ben_med_pl_name        => p_coord_ben_med_pl_name
328     ,p_coord_ben_med_insr_crr_name  => p_coord_ben_med_insr_crr_name
329     ,p_coord_ben_med_insr_crr_ident => p_coord_ben_med_insr_crr_ident
330     ,p_coord_ben_med_cvg_strt_dt    => p_coord_ben_med_cvg_strt_dt
331     ,p_coord_ben_med_cvg_end_dt     => p_coord_ben_med_cvg_end_dt
332     ,p_uses_tobacco_flag            => p_uses_tobacco_flag
333     ,p_dpdnt_adoption_date          => p_dpdnt_adoption_date
334     ,p_dpdnt_vlntry_svce_flag       => p_dpdnt_vlntry_svce_flag
335     ,p_original_date_of_hire        => p_original_date_of_hire
336     ,p_adjusted_svc_date            => p_adjusted_svc_date
337     ,p_town_of_birth                => p_town_of_birth
338     ,p_region_of_birth              => p_region_of_birth
339     ,p_country_of_birth             => p_country_of_birth
340     ,p_global_person_id             => p_global_person_id
341     ,p_party_id                     => p_party_id
342     ,p_npw_number                   => p_npw_number
343     ,p_effective_start_date         => p_effective_start_date
344     ,p_effective_end_date           => p_effective_end_date
345     ,p_full_name                    => p_full_name
346     ,p_comment_id                   => p_comment_id
347     ,p_name_combination_warning     => l_name_combination_warning
348     ,p_assign_payroll_warning       => l_assign_payroll_warning
349     ,p_orig_hire_warning            => l_orig_hire_warning
350     );
351   --
352   -- set the party last update out parameter
353   --
354   open csr_party_last_update_date(p_party_id, p_effective_date);
355   fetch csr_party_last_update_date into p_party_last_update_date;
356   close csr_party_last_update_date;
357   --
358   -- Convert API warning boolean parameter values to specific
359   -- messages and add them to Multiple Message List
360   --
361   if l_name_combination_warning then
362      fnd_message.set_name('PER', 'PER_WEB_CONTACT_DUPLICATE');
363       hr_multi_message.add
364         (p_message_type => hr_multi_message.g_warning_msg
365         );
366   end if;
367   if l_assign_payroll_warning then
368      fnd_message.set_name('PER', 'HR_EMP_ASS_NO_DOB ');
369       hr_multi_message.add
370         (p_message_type => hr_multi_message.g_warning_msg
371         );
372   end if;
373   if l_orig_hire_warning then
374      fnd_message.set_name('PER', 'PER_52359_HIRE_DATES_WARN ');
375       hr_multi_message.add
376         (p_message_type => hr_multi_message.g_warning_msg
377         );
378   end if;  --
379   -- Convert API non-warning boolean parameter values
380   --
381   --
382   -- Derive the API return status value based on whether
383   -- messages of any type exist in the Multiple Message List.
384   -- Also disable Multiple Message Detection.
385   --
386   p_return_status := hr_multi_message.get_return_status_disable;
387   hr_utility.set_location(' Leaving:' || l_proc,20);
388   --
389 exception
390   when hr_multi_message.error_message_exist then
391     --
392     -- Catch the Multiple Message List exception which
393     -- indicates API processing has been aborted because
394     -- at least one message exists in the list.
395     --
396     rollback to update_person_swi;
397     --
398     -- Reset IN OUT parameters and set OUT parameters
399     --
400     p_object_version_number        := l_object_version_number;
401     p_employee_number              := l_employee_number;
402     p_effective_start_date         := null;
403     p_effective_end_date           := null;
404     p_full_name                    := null;
405     p_comment_id                   := null;
406     p_return_status := hr_multi_message.get_return_status_disable;
407     hr_utility.set_location(' Leaving:' || l_proc, 30);
408   when others then
409     --
410     -- When Multiple Message Detection is enabled catch
411     -- any Application specific or other unexpected
412     -- exceptions.  Adding appropriate details to the
413     -- Multiple Message List.  Otherwise re-raise the
414     -- error.
415     --
416     rollback to update_person_swi;
417     if hr_multi_message.unexpected_error_add(l_proc) then
418        hr_utility.set_location(' Leaving:' || l_proc,40);
419        raise;
420     end if;
421     --
422     -- Reset IN OUT and set OUT parameters
423     --
424     p_object_version_number        := l_object_version_number;
425     p_employee_number              := l_employee_number;
426     p_effective_start_date         := null;
427     p_effective_end_date           := null;
428     p_full_name                    := null;
429     p_comment_id                   := null;
430     p_return_status := hr_multi_message.get_return_status_disable;
431     hr_utility.set_location(' Leaving:' || l_proc,50);
432 end update_person;
433 end hr_person_swi;