DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_PAYROLL_SWI

Source


1 Package Body pay_payroll_swi As
2 /* $Header: pyprlswi.pkb 115.1 2003/12/24 06:20 sdhole noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'pay_payroll_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------------< create_payroll >----------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_payroll
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_effective_date               in     date
14   ,p_payroll_name                 in     varchar2
15   ,p_payroll_type                 in     varchar2  default null
16   ,p_period_type                  in     varchar2
17   ,p_first_period_end_date        in     date
18   ,p_number_of_years              in     number
19   ,p_pay_date_offset              in     number    default 0
20   ,p_direct_deposit_date_offset   in     number    default 0
21   ,p_pay_advice_date_offset       in     number    default 0
22   ,p_cut_off_date_offset          in     number    default 0
23   ,p_midpoint_offset              in     number    default null
24   ,p_default_payment_method_id    in     number    default null
25   ,p_consolidation_set_id         in     number
26   ,p_cost_allocation_keyflex_id   in     number    default null
27   ,p_suspense_account_keyflex_id  in     number    default null
28   ,p_negative_pay_allowed_flag    in     varchar2  default 'N'
29   ,p_gl_set_of_books_id           in     number    default null
30   ,p_soft_coding_keyflex_id       in     number    default null
31   ,p_comments                     in     varchar2  default null
32   ,p_attribute_category           in     varchar2  default null
33   ,p_attribute1                   in     varchar2  default null
34   ,p_attribute2                   in     varchar2  default null
35   ,p_attribute3                   in     varchar2  default null
36   ,p_attribute4                   in     varchar2  default null
37   ,p_attribute5                   in     varchar2  default null
38   ,p_attribute6                   in     varchar2  default null
39   ,p_attribute7                   in     varchar2  default null
40   ,p_attribute8                   in     varchar2  default null
41   ,p_attribute9                   in     varchar2  default null
42   ,p_attribute10                  in     varchar2  default null
43   ,p_attribute11                  in     varchar2  default null
44   ,p_attribute12                  in     varchar2  default null
45   ,p_attribute13                  in     varchar2  default null
46   ,p_attribute14                  in     varchar2  default null
47   ,p_attribute15                  in     varchar2  default null
48   ,p_attribute16                  in     varchar2  default null
49   ,p_attribute17                  in     varchar2  default null
50   ,p_attribute18                  in     varchar2  default null
51   ,p_attribute19                  in     varchar2  default null
52   ,p_attribute20                  in     varchar2  default null
53   ,p_arrears_flag                 in     varchar2  default 'N'
54   ,p_period_reset_years           in     number    default null
55   ,p_multi_assignments_flag       in     varchar2  default null
56   ,p_organization_id              in     number    default null
57   ,p_prl_information_category     in     varchar2  default null
58   ,p_prl_information1             in     varchar2  default null
59   ,p_prl_information2             in     varchar2  default null
60   ,p_prl_information3             in     varchar2  default null
61   ,p_prl_information4             in     varchar2  default null
62   ,p_prl_information5             in     varchar2  default null
63   ,p_prl_information6             in     varchar2  default null
64   ,p_prl_information7             in     varchar2  default null
65   ,p_prl_information8             in     varchar2  default null
66   ,p_prl_information9             in     varchar2  default null
67   ,p_prl_information10            in     varchar2  default null
68   ,p_prl_information11            in     varchar2  default null
69   ,p_prl_information12            in     varchar2  default null
70   ,p_prl_information13            in     varchar2  default null
71   ,p_prl_information14            in     varchar2  default null
72   ,p_prl_information15            in     varchar2  default null
73   ,p_prl_information16            in     varchar2  default null
74   ,p_prl_information17            in     varchar2  default null
75   ,p_prl_information18            in     varchar2  default null
76   ,p_prl_information19            in     varchar2  default null
77   ,p_prl_information20            in     varchar2  default null
78   ,p_prl_information21            in     varchar2  default null
79   ,p_prl_information22            in     varchar2  default null
80   ,p_prl_information23            in     varchar2  default null
81   ,p_prl_information24            in     varchar2  default null
82   ,p_prl_information25            in     varchar2  default null
83   ,p_prl_information26            in     varchar2  default null
84   ,p_prl_information27            in     varchar2  default null
85   ,p_prl_information28            in     varchar2  default null
86   ,p_prl_information29            in     varchar2  default null
87   ,p_prl_information30            in     varchar2  default null
88   ,p_payroll_id                   in     number -- made IN
89   ,p_org_pay_method_usage_id         out nocopy number
90   ,p_prl_object_version_number       out nocopy number
91   ,p_opm_object_version_number       out nocopy number
92   ,p_prl_effective_start_date        out nocopy date
93   ,p_prl_effective_end_date          out nocopy date
94   ,p_opm_effective_start_date        out nocopy date
95   ,p_opm_effective_end_date          out nocopy date
96   ,p_comment_id                      out nocopy number
97   ,p_return_status                   out nocopy varchar2
98   ) is
99   --
100   -- Variables for API Boolean parameters
101   l_validate                      boolean;
102   --
103   -- Variables for IN/OUT parameters
104   l_payroll_id number;
105   --
106   -- Other variables
107   l_proc    varchar2(72) := g_package ||'create_payroll';
108 Begin
109   hr_utility.set_location(' Entering:' || l_proc,10);
110   --
111   -- Issue a savepoint
112   --
113   savepoint create_payroll_swi;
114   --
115   -- Initialise Multiple Message Detection
116   --
117   hr_multi_message.enable_message_list;
118   --
119   -- Remember IN OUT parameter IN values
120   --
121   --
122   -- Convert constant values to their corresponding boolean value
123   --
124   l_validate :=
125     hr_api.constant_to_boolean
126       (p_constant_value => p_validate);
127   --
128   -- Register Surrogate ID or user key values
129   --
130   pay_payroll_api.set_base_key_value
131     (p_payroll_id => p_payroll_id
132     );
133   --
134   -- Call API
135   --
136   pay_payroll_api.create_payroll
137     (p_validate                     => l_validate
138     ,p_effective_date               => p_effective_date
139     ,p_payroll_name                 => p_payroll_name
140     ,p_payroll_type                 => p_payroll_type
141     ,p_period_type                  => p_period_type
142     ,p_first_period_end_date        => p_first_period_end_date
143     ,p_number_of_years              => p_number_of_years
144     ,p_pay_date_offset              => p_pay_date_offset
145     ,p_direct_deposit_date_offset   => p_direct_deposit_date_offset
146     ,p_pay_advice_date_offset       => p_pay_advice_date_offset
147     ,p_cut_off_date_offset          => p_cut_off_date_offset
148     ,p_midpoint_offset              => p_midpoint_offset
149     ,p_default_payment_method_id    => p_default_payment_method_id
150     ,p_consolidation_set_id         => p_consolidation_set_id
151     ,p_cost_allocation_keyflex_id   => p_cost_allocation_keyflex_id
152     ,p_suspense_account_keyflex_id  => p_suspense_account_keyflex_id
153     ,p_negative_pay_allowed_flag    => p_negative_pay_allowed_flag
154     ,p_gl_set_of_books_id           => p_gl_set_of_books_id
155     ,p_soft_coding_keyflex_id       => p_soft_coding_keyflex_id
156     ,p_comments                     => p_comments
157     ,p_attribute_category           => p_attribute_category
158     ,p_attribute1                   => p_attribute1
159     ,p_attribute2                   => p_attribute2
160     ,p_attribute3                   => p_attribute3
161     ,p_attribute4                   => p_attribute4
162     ,p_attribute5                   => p_attribute5
163     ,p_attribute6                   => p_attribute6
164     ,p_attribute7                   => p_attribute7
165     ,p_attribute8                   => p_attribute8
166     ,p_attribute9                   => p_attribute9
167     ,p_attribute10                  => p_attribute10
168     ,p_attribute11                  => p_attribute11
169     ,p_attribute12                  => p_attribute12
170     ,p_attribute13                  => p_attribute13
171     ,p_attribute14                  => p_attribute14
172     ,p_attribute15                  => p_attribute15
173     ,p_attribute16                  => p_attribute16
174     ,p_attribute17                  => p_attribute17
175     ,p_attribute18                  => p_attribute18
176     ,p_attribute19                  => p_attribute19
177     ,p_attribute20                  => p_attribute20
178     ,p_arrears_flag                 => p_arrears_flag
179     ,p_period_reset_years           => p_period_reset_years
180     ,p_multi_assignments_flag       => p_multi_assignments_flag
181     ,p_organization_id              => p_organization_id
182     ,p_prl_information_category     => p_prl_information_category
183     ,p_prl_information1             => p_prl_information1
184     ,p_prl_information2             => p_prl_information2
185     ,p_prl_information3             => p_prl_information3
186     ,p_prl_information4             => p_prl_information4
187     ,p_prl_information5             => p_prl_information5
188     ,p_prl_information6             => p_prl_information6
189     ,p_prl_information7             => p_prl_information7
190     ,p_prl_information8             => p_prl_information8
191     ,p_prl_information9             => p_prl_information9
192     ,p_prl_information10            => p_prl_information10
193     ,p_prl_information11            => p_prl_information11
194     ,p_prl_information12            => p_prl_information12
195     ,p_prl_information13            => p_prl_information13
196     ,p_prl_information14            => p_prl_information14
197     ,p_prl_information15            => p_prl_information15
198     ,p_prl_information16            => p_prl_information16
199     ,p_prl_information17            => p_prl_information17
200     ,p_prl_information18            => p_prl_information18
201     ,p_prl_information19            => p_prl_information19
202     ,p_prl_information20            => p_prl_information20
203     ,p_prl_information21            => p_prl_information21
204     ,p_prl_information22            => p_prl_information22
205     ,p_prl_information23            => p_prl_information23
206     ,p_prl_information24            => p_prl_information24
207     ,p_prl_information25            => p_prl_information25
208     ,p_prl_information26            => p_prl_information26
209     ,p_prl_information27            => p_prl_information27
210     ,p_prl_information28            => p_prl_information28
211     ,p_prl_information29            => p_prl_information29
212     ,p_prl_information30            => p_prl_information30
213     ,p_payroll_id                   => l_payroll_id
214     ,p_org_pay_method_usage_id      => p_org_pay_method_usage_id
215     ,p_prl_object_version_number    => p_prl_object_version_number
216     ,p_opm_object_version_number    => p_opm_object_version_number
217     ,p_prl_effective_start_date     => p_prl_effective_start_date
218     ,p_prl_effective_end_date       => p_prl_effective_end_date
219     ,p_opm_effective_start_date     => p_opm_effective_start_date
220     ,p_opm_effective_end_date       => p_opm_effective_end_date
221     ,p_comment_id                   => p_comment_id
222     );
223   --
224   -- Convert API warning boolean parameter values to specific
225   -- messages and add them to Multiple Message List
226   --
227   --
228   -- Convert API non-warning boolean parameter values
229   --
230   --
231   -- Derive the API return status value based on whether
232   -- messages of any type exist in the Multiple Message List.
233   -- Also disable Multiple Message Detection.
234   --
235   p_return_status := hr_multi_message.get_return_status_disable;
236   hr_utility.set_location(' Leaving:' || l_proc,20);
237   --
238 exception
239   when hr_multi_message.error_message_exist then
240     --
241     -- Catch the Multiple Message List exception which
242     -- indicates API processing has been aborted because
243     -- at least one message exists in the list.
244     --
245     rollback to create_payroll_swi;
246     --
247     -- Reset IN OUT parameters and set OUT parameters
248     --
249     p_org_pay_method_usage_id      := null;
250     p_prl_object_version_number    := null;
251     p_opm_object_version_number    := null;
252     p_prl_effective_start_date     := null;
253     p_prl_effective_end_date       := null;
254     p_opm_effective_start_date     := null;
255     p_opm_effective_end_date       := null;
256     p_comment_id                   := null;
257     p_return_status := hr_multi_message.get_return_status_disable;
258     hr_utility.set_location(' Leaving:' || l_proc, 30);
259   when others then
260     --
261     -- When Multiple Message Detection is enabled catch
262     -- any Application specific or other unexpected
263     -- exceptions.  Adding appropriate details to the
264     -- Multiple Message List.  Otherwise re-raise the
265     -- error.
266     --
267     rollback to create_payroll_swi;
268     if hr_multi_message.unexpected_error_add(l_proc) then
269        hr_utility.set_location(' Leaving:' || l_proc,40);
270        raise;
271     end if;
272     --
273     -- Reset IN OUT and set OUT parameters
274     --
275     p_org_pay_method_usage_id      := null;
276     p_prl_object_version_number    := null;
277     p_opm_object_version_number    := null;
278     p_prl_effective_start_date     := null;
279     p_prl_effective_end_date       := null;
280     p_opm_effective_start_date     := null;
281     p_opm_effective_end_date       := null;
282     p_comment_id                   := null;
283     p_return_status := hr_multi_message.get_return_status_disable;
284     hr_utility.set_location(' Leaving:' || l_proc,50);
285 end create_payroll;
286 -- ----------------------------------------------------------------------------
287 -- |----------------------------< delete_payroll >----------------------------|
288 -- ----------------------------------------------------------------------------
289 PROCEDURE delete_payroll
290   (p_validate                     in     number    default hr_api.g_false_num
291   ,p_effective_date               in     date
292   ,p_datetrack_mode               in     varchar2
293   ,p_payroll_id                   in     number
294   ,p_object_version_number        in out nocopy number
295   ,p_effective_start_date            out nocopy date
296   ,p_effective_end_date              out nocopy date
300   -- Variables for API Boolean parameters
297   ,p_return_status                   out nocopy varchar2
298   ) is
299   --
301   l_validate                      boolean;
302   --
303   -- Variables for IN/OUT parameters
304   l_object_version_number         number;
305   --
306   -- Other variables
307   l_proc    varchar2(72) := g_package ||'delete_payroll';
308 Begin
309   hr_utility.set_location(' Entering:' || l_proc,10);
310   --
311   -- Issue a savepoint
312   --
313   savepoint delete_payroll_swi;
314   --
315   -- Initialise Multiple Message Detection
316   --
317   hr_multi_message.enable_message_list;
318   --
319   -- Remember IN OUT parameter IN values
320   --
321   l_object_version_number         := p_object_version_number;
322   --
323   -- Convert constant values to their corresponding boolean value
324   --
325   l_validate :=
326     hr_api.constant_to_boolean
327       (p_constant_value => p_validate);
328   --
329   -- Register Surrogate ID or user key values
330   --
331   --
332   -- Call API
333   --
334   pay_payroll_api.delete_payroll
335     (p_validate                     => l_validate
336     ,p_effective_date               => p_effective_date
337     ,p_datetrack_mode               => p_datetrack_mode
338     ,p_payroll_id                   => p_payroll_id
339     ,p_object_version_number        => p_object_version_number
340     ,p_effective_start_date         => p_effective_start_date
341     ,p_effective_end_date           => p_effective_end_date
342     );
343   --
344   -- Convert API warning boolean parameter values to specific
345   -- messages and add them to Multiple Message List
346   --
347   --
348   -- Convert API non-warning boolean parameter values
349   --
350   --
351   -- Derive the API return status value based on whether
352   -- messages of any type exist in the Multiple Message List.
353   -- Also disable Multiple Message Detection.
354   --
355   p_return_status := hr_multi_message.get_return_status_disable;
356   hr_utility.set_location(' Leaving:' || l_proc,20);
357   --
358 exception
359   when hr_multi_message.error_message_exist then
360     --
361     -- Catch the Multiple Message List exception which
362     -- indicates API processing has been aborted because
363     -- at least one message exists in the list.
364     --
365     rollback to delete_payroll_swi;
366     --
367     -- Reset IN OUT parameters and set OUT parameters
368     --
369     p_object_version_number        := l_object_version_number;
370     p_effective_start_date         := null;
371     p_effective_end_date           := null;
372     p_return_status := hr_multi_message.get_return_status_disable;
373     hr_utility.set_location(' Leaving:' || l_proc, 30);
374   when others then
375     --
376     -- When Multiple Message Detection is enabled catch
377     -- any Application specific or other unexpected
378     -- exceptions.  Adding appropriate details to the
379     -- Multiple Message List.  Otherwise re-raise the
380     -- error.
381     --
382     rollback to delete_payroll_swi;
383     if hr_multi_message.unexpected_error_add(l_proc) then
384        hr_utility.set_location(' Leaving:' || l_proc,40);
385        raise;
386     end if;
387     --
388     -- Reset IN OUT and set OUT parameters
389     --
390     p_object_version_number        := l_object_version_number;
391     p_effective_start_date         := null;
392     p_effective_end_date           := null;
393     p_return_status := hr_multi_message.get_return_status_disable;
394     hr_utility.set_location(' Leaving:' || l_proc,50);
395 end delete_payroll;
396 -- ----------------------------------------------------------------------------
397 -- |----------------------------< update_payroll >----------------------------|
398 -- ----------------------------------------------------------------------------
399 PROCEDURE update_payroll
400   (p_validate                     in     number    default hr_api.g_false_num
401   ,p_effective_date               in     date
402   ,p_datetrack_mode               in     varchar2
403   ,p_payroll_id                   in out nocopy number
404   ,p_object_version_number        in out nocopy number
405   ,p_payroll_name                 in     varchar2  default hr_api.g_varchar2
406   ,p_number_of_years              in     number    default hr_api.g_number
407   ,p_default_payment_method_id    in     number    default hr_api.g_number
408   ,p_consolidation_set_id         in     number    default hr_api.g_number
409   ,p_cost_allocation_keyflex_id   in     number    default hr_api.g_number
410   ,p_suspense_account_keyflex_id  in     number    default hr_api.g_number
411   ,p_negative_pay_allowed_flag    in     varchar2  default hr_api.g_varchar2
412   ,p_soft_coding_keyflex_id       in     number    default hr_api.g_number
413   ,p_comments                     in     varchar2  default hr_api.g_varchar2
414   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
415   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
416   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
417   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
418   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
419   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
420   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
421   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
422   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
423   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
424   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
428   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
425   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
426   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
427   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
429   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
430   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
431   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
432   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
433   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
434   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
435   ,p_arrears_flag                 in     varchar2  default hr_api.g_varchar2
436   ,p_multi_assignments_flag       in     varchar2  default hr_api.g_varchar2
437   ,p_prl_information_category     in     varchar2  default hr_api.g_varchar2
438   ,p_prl_information1             in     varchar2  default hr_api.g_varchar2
439   ,p_prl_information2             in     varchar2  default hr_api.g_varchar2
440   ,p_prl_information3             in     varchar2  default hr_api.g_varchar2
441   ,p_prl_information4             in     varchar2  default hr_api.g_varchar2
442   ,p_prl_information5             in     varchar2  default hr_api.g_varchar2
443   ,p_prl_information6             in     varchar2  default hr_api.g_varchar2
444   ,p_prl_information7             in     varchar2  default hr_api.g_varchar2
445   ,p_prl_information8             in     varchar2  default hr_api.g_varchar2
446   ,p_prl_information9             in     varchar2  default hr_api.g_varchar2
447   ,p_prl_information10            in     varchar2  default hr_api.g_varchar2
448   ,p_prl_information11            in     varchar2  default hr_api.g_varchar2
449   ,p_prl_information12            in     varchar2  default hr_api.g_varchar2
450   ,p_prl_information13            in     varchar2  default hr_api.g_varchar2
451   ,p_prl_information14            in     varchar2  default hr_api.g_varchar2
452   ,p_prl_information15            in     varchar2  default hr_api.g_varchar2
453   ,p_prl_information16            in     varchar2  default hr_api.g_varchar2
454   ,p_prl_information17            in     varchar2  default hr_api.g_varchar2
455   ,p_prl_information18            in     varchar2  default hr_api.g_varchar2
456   ,p_prl_information19            in     varchar2  default hr_api.g_varchar2
457   ,p_prl_information20            in     varchar2  default hr_api.g_varchar2
458   ,p_prl_information21            in     varchar2  default hr_api.g_varchar2
459   ,p_prl_information22            in     varchar2  default hr_api.g_varchar2
460   ,p_prl_information23            in     varchar2  default hr_api.g_varchar2
461   ,p_prl_information24            in     varchar2  default hr_api.g_varchar2
462   ,p_prl_information25            in     varchar2  default hr_api.g_varchar2
463   ,p_prl_information26            in     varchar2  default hr_api.g_varchar2
464   ,p_prl_information27            in     varchar2  default hr_api.g_varchar2
465   ,p_prl_information28            in     varchar2  default hr_api.g_varchar2
466   ,p_prl_information29            in     varchar2  default hr_api.g_varchar2
467   ,p_prl_information30            in     varchar2  default hr_api.g_varchar2
468   ,p_prl_effective_start_date        out nocopy date
469   ,p_prl_effective_end_date          out nocopy date
470   ,p_comment_id                      out nocopy number
471   ,p_return_status                   out nocopy varchar2
472   ) is
473   --
474   -- Variables for API Boolean parameters
475   l_validate                      boolean;
476   --
477   -- Variables for IN/OUT parameters
478   l_payroll_id                    number;
479   l_object_version_number         number;
480   --
481   -- Other variables
482   l_proc    varchar2(72) := g_package ||'update_payroll';
483 Begin
484   hr_utility.set_location(' Entering:' || l_proc,10);
485   --
486   -- Issue a savepoint
487   --
488   savepoint update_payroll_swi;
489   --
490   -- Initialise Multiple Message Detection
491   --
492   hr_multi_message.enable_message_list;
493   --
494   -- Remember IN OUT parameter IN values
495   --
496   l_payroll_id                    := p_payroll_id;
497   l_object_version_number         := p_object_version_number;
498   --
499   -- Convert constant values to their corresponding boolean value
500   --
501   l_validate :=
502     hr_api.constant_to_boolean
503       (p_constant_value => p_validate);
504   --
505   -- Register Surrogate ID or user key values
506   --
507   --
508   -- Call API
509   --
510   pay_payroll_api.update_payroll
511     (p_validate                     => l_validate
512     ,p_effective_date               => p_effective_date
513     ,p_datetrack_mode               => p_datetrack_mode
514     ,p_payroll_id                   => p_payroll_id
515     ,p_object_version_number        => p_object_version_number
516     ,p_payroll_name                 => p_payroll_name
517     ,p_number_of_years              => p_number_of_years
518     ,p_default_payment_method_id    => p_default_payment_method_id
519     ,p_consolidation_set_id         => p_consolidation_set_id
520     ,p_cost_allocation_keyflex_id   => p_cost_allocation_keyflex_id
521     ,p_suspense_account_keyflex_id  => p_suspense_account_keyflex_id
522     ,p_negative_pay_allowed_flag    => p_negative_pay_allowed_flag
523     ,p_soft_coding_keyflex_id       => p_soft_coding_keyflex_id
524     ,p_comments                     => p_comments
525     ,p_attribute_category           => p_attribute_category
526     ,p_attribute1                   => p_attribute1
527     ,p_attribute2                   => p_attribute2
528     ,p_attribute3                   => p_attribute3
529     ,p_attribute4                   => p_attribute4
530     ,p_attribute5                   => p_attribute5
534     ,p_attribute9                   => p_attribute9
531     ,p_attribute6                   => p_attribute6
532     ,p_attribute7                   => p_attribute7
533     ,p_attribute8                   => p_attribute8
535     ,p_attribute10                  => p_attribute10
536     ,p_attribute11                  => p_attribute11
537     ,p_attribute12                  => p_attribute12
538     ,p_attribute13                  => p_attribute13
539     ,p_attribute14                  => p_attribute14
540     ,p_attribute15                  => p_attribute15
541     ,p_attribute16                  => p_attribute16
542     ,p_attribute17                  => p_attribute17
543     ,p_attribute18                  => p_attribute18
544     ,p_attribute19                  => p_attribute19
545     ,p_attribute20                  => p_attribute20
546     ,p_arrears_flag                 => p_arrears_flag
547     ,p_multi_assignments_flag       => p_multi_assignments_flag
548     ,p_prl_information_category     => p_prl_information_category
549     ,p_prl_information1             => p_prl_information1
550     ,p_prl_information2             => p_prl_information2
551     ,p_prl_information3             => p_prl_information3
552     ,p_prl_information4             => p_prl_information4
553     ,p_prl_information5             => p_prl_information5
554     ,p_prl_information6             => p_prl_information6
555     ,p_prl_information7             => p_prl_information7
556     ,p_prl_information8             => p_prl_information8
557     ,p_prl_information9             => p_prl_information9
558     ,p_prl_information10            => p_prl_information10
559     ,p_prl_information11            => p_prl_information11
560     ,p_prl_information12            => p_prl_information12
561     ,p_prl_information13            => p_prl_information13
562     ,p_prl_information14            => p_prl_information14
563     ,p_prl_information15            => p_prl_information15
564     ,p_prl_information16            => p_prl_information16
565     ,p_prl_information17            => p_prl_information17
566     ,p_prl_information18            => p_prl_information18
567     ,p_prl_information19            => p_prl_information19
568     ,p_prl_information20            => p_prl_information20
569     ,p_prl_information21            => p_prl_information21
570     ,p_prl_information22            => p_prl_information22
571     ,p_prl_information23            => p_prl_information23
572     ,p_prl_information24            => p_prl_information24
573     ,p_prl_information25            => p_prl_information25
574     ,p_prl_information26            => p_prl_information26
575     ,p_prl_information27            => p_prl_information27
576     ,p_prl_information28            => p_prl_information28
577     ,p_prl_information29            => p_prl_information29
578     ,p_prl_information30            => p_prl_information30
579     ,p_prl_effective_start_date     => p_prl_effective_start_date
580     ,p_prl_effective_end_date       => p_prl_effective_end_date
581     ,p_comment_id                   => p_comment_id
582     );
583   --
584   -- Convert API warning boolean parameter values to specific
585   -- messages and add them to Multiple Message List
586   --
587   --
588   -- Convert API non-warning boolean parameter values
589   --
590   --
591   -- Derive the API return status value based on whether
592   -- messages of any type exist in the Multiple Message List.
593   -- Also disable Multiple Message Detection.
594   --
595   p_return_status := hr_multi_message.get_return_status_disable;
596   hr_utility.set_location(' Leaving:' || l_proc,20);
597   --
598 exception
599   when hr_multi_message.error_message_exist then
600     --
601     -- Catch the Multiple Message List exception which
602     -- indicates API processing has been aborted because
603     -- at least one message exists in the list.
604     --
605     rollback to update_payroll_swi;
606     --
607     -- Reset IN OUT parameters and set OUT parameters
608     --
609     p_payroll_id                   := l_payroll_id;
610     p_object_version_number        := l_object_version_number;
611     p_prl_effective_start_date     := null;
612     p_prl_effective_end_date       := null;
613     p_comment_id                   := null;
614     p_return_status := hr_multi_message.get_return_status_disable;
615     hr_utility.set_location(' Leaving:' || l_proc, 30);
616   when others then
617     --
618     -- When Multiple Message Detection is enabled catch
619     -- any Application specific or other unexpected
620     -- exceptions.  Adding appropriate details to the
621     -- Multiple Message List.  Otherwise re-raise the
622     -- error.
623     --
624     rollback to update_payroll_swi;
625     if hr_multi_message.unexpected_error_add(l_proc) then
626        hr_utility.set_location(' Leaving:' || l_proc,40);
627        raise;
628     end if;
629     --
630     -- Reset IN OUT and set OUT parameters
631     --
632     p_payroll_id                   := l_payroll_id;
633     p_object_version_number        := l_object_version_number;
634     p_prl_effective_start_date     := null;
635     p_prl_effective_end_date       := null;
636     p_comment_id                   := null;
637     p_return_status := hr_multi_message.get_return_status_disable;
638     hr_utility.set_location(' Leaving:' || l_proc,50);
639 end update_payroll;
640 end pay_payroll_swi;