[Home] [Help]
PACKAGE BODY: APPS.HR_PERSONAL_PAY_METHOD_API
Source
1 Package Body hr_personal_pay_method_api as
2 /* $Header: pyppmapi.pkb 120.10 2010/08/02 11:33:01 kskoduri noship $ */
3 --
4 -- Package Variables
5 --
6 g_debug boolean := hr_utility.debug_enabled;
7 g_package varchar2(33) := 'hr_personal_pay_method_api.';
8 --
9 -- ----------------------------------------------------------------------------
10 -- |-------------------------< check_insert_legislation >-------------------------|
11 -- ----------------------------------------------------------------------------
12 --
13 -- {Start Of Comments}
14 --
15 -- Description:
16 -- This private procedure ensures that the legislation rule for the
17 -- for the personal payment method being inserted is the
18 -- of the required business process.
19 --
20 -- Prerequisites:
21 -- None.
22 --
23 -- In Parameters:
24 -- Name Reqd Type Description
25 -- p_personal_payment_method_id Yes number Id of personal payment
26 -- method being deleted.
27 -- p_effective_date Yes date The session date.
28 -- p_leg_code Yes varchar2 Legislation of business
29 -- group
30 --
31 -- Post Success:
32 -- The procedure returns control back to the calling process.
33 --
34 -- Post Failure:
35 -- The process raises an error and stops execution.
36 --
37 -- Access Status:
38 -- Private.
39 --
40 -- {End Of Comments}
41 --
42 procedure check_insert_legislation
43 (p_assignment_id in number
44 ,p_effective_date in out nocopy date
45 ,p_leg_code in varchar2
46 ) is
47 --
48 -- Declare cursors and local variables
49 --
50 l_proc varchar2(72);
51 l_valid varchar2(150);
52 l_effective_date date;
53 --
54 cursor legsel is
55 select pbg.legislation_code
56 from per_business_groups pbg,
57 per_assignments_f asg
58 where pbg.business_group_id = asg.business_group_id
59 and asg.assignment_id = p_assignment_id
60 and p_effective_date between asg.effective_start_date
61 and asg.effective_end_date;
62 --
63 begin
64 if g_debug then
65 l_proc := g_package||'chk_insert_legislation';
66 hr_utility.set_location('Entering:'|| l_proc, 5);
67 end if;
68 --
69 -- Check that p_assignment_id and p_effective_date are not null as they
70 -- are used by the cursor to validate the business group.
71 --
72 hr_api.mandatory_arg_error
73 (p_api_name => l_proc,
74 p_argument => 'assignment_id',
75 p_argument_value => p_assignment_id);
76 --
77 hr_api.mandatory_arg_error
78 (p_api_name => l_proc,
79 p_argument => 'effective_date',
80 p_argument_value => p_effective_date);
81 --
82 if g_debug then
83 hr_utility.set_location(l_proc, 6);
84 end if;
85 --
86 -- Ensure that the legislation rule for the employee assignment
87 -- business group is that of p_leg_code.
88 --
89 open legsel;
90 fetch legsel
91 into l_valid;
92 --
93 if legsel%notfound then
94 close legsel;
95 hr_utility.set_message(801, 'HR_7348_ASSIGNMENT_INVALID');
96 hr_utility.raise_error;
97 end if;
98 if legsel%found and l_valid <> p_leg_code then
99 close legsel;
100 hr_utility.set_message(801, 'HR_7898_PPM_BUS_GRP_INVALID');
101 hr_utility.raise_error;
102 end if;
103 --
104 close legsel;
105 if g_debug then
106 hr_utility.set_location(l_proc, 7);
107 end if;
108 --
109 -- Assign out parameter after truncating the date by using a local
110 -- variable.
111 --
112 l_effective_date := trunc(p_effective_date);
113 p_effective_date := l_effective_date;
114 --
115 if g_debug then
116 hr_utility.set_location('Leaving:'|| l_proc, 8);
117 end if;
118 --
119 end check_insert_legislation;
120 --
121 -- ----------------------------------------------------------------------------
122 -- |-------------------------< check_update_legislation >-------------------------|
123 -- ----------------------------------------------------------------------------
124 --
125 -- {Start Of Comments}
126 --
127 -- Description:
128 -- This private procedure ensures that the legislation rule for the
129 -- for the personal payment method being updated or deleted is the
130 -- of the required business process.
131 --
132 -- Prerequisites:
133 -- None.
134 --
135 -- In Parameters:
136 -- Name Reqd Type Description
137 -- p_personal_payment_method_id Yes number Id of personal payment
138 -- method being deleted.
139 -- p_effective_date Yes date The session date.
140 -- p_leg_code Yes varchar2 Legislation of business
141 -- group
142 --
143 -- Post Success:
144 -- The procedure returns control back to the calling process.
145 --
146 -- Post Failure:
147 -- The process raises an error and stops execution.
148 --
149 -- Access Status:
150 -- Private.
151 --
152 -- {End Of Comments}
153 --
154 procedure check_update_legislation
155 (p_personal_payment_method_id in
156 pay_personal_payment_methods_f.personal_payment_method_id%type
157 ,p_effective_date in date
158 ,p_leg_code in varchar2
159 ) is
160 --
161 -- Declare cursors and local variables
162 --
163 l_proc varchar2(72);
164 l_valid varchar2(150);
165 --
166 cursor legsel is
167 select pbg.legislation_code
168 from per_business_groups pbg,
169 pay_personal_payment_methods_f ppm
170 where pbg.business_group_id = ppm.business_group_id
171 and ppm.personal_payment_method_id = p_personal_payment_method_id
172 and p_effective_date between ppm.effective_start_date
173 and ppm.effective_end_date;
174 --
175 begin
176 --
177 -- Ensure that the legislation rule for the employee assignment business
178 -- group is that of p_leg_code.
179 --
180 if g_debug then
181 l_proc := g_package||'check_update_legislation';
182 hr_utility.set_location('Entering:'|| l_proc, 10);
183 end if;
184 open legsel;
185 fetch legsel
186 into l_valid;
187 --
188 if legsel%notfound then
189 close legsel;
190 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
191 hr_utility.raise_error;
192 end if;
193 if legsel%found and l_valid <> p_leg_code then
194 hr_utility.set_message(801, 'HR_7898_PPM_BUS_GRP_INVALID');
195 hr_utility.raise_error;
196 end if;
197 --
198 close legsel;
199 if g_debug then
200 hr_utility.set_location('Leaving:'|| l_proc, 20);
201 end if;
202 --
203 end check_update_legislation;
204 --
205 -- ----------------------------------------------------------------------------
206 -- |---------------------------< stamp_prenote_date >-------------------------|
207 -- ----------------------------------------------------------------------------
208 --
209 -- {Start Of Comments}
210 --
211 -- Description:
212 -- This private procedure stamps the prenote date on the external account
213 -- row for US legislation. Contains minimal validation - it's called at the
214 -- end of create_personal_pay_method and update_personal_pay_method after
215 -- the EXA and PPM row handlers will have done the validation already.
216 --
217 -- Prerequisites:
218 -- Must only be called for US territory code, and if the payment method
219 -- is for a magtape payment.
220 --
221 -- In Parameters:
222 -- Name Reqd Type Description
223 -- p_personal_payment_method_id Yes number Id of personal payment
224 -- method being created/updated.
225 -- p_effective_date Yes date The session date.
226 -- p_external_account_id Yes number Id of external account row.
227 -- p_external_account_ovn Yes number Object version number of
228 -- external account row.
229 --
230 -- Post Success:
231 -- The procedure returns control back to the calling process.
232 --
233 -- Post Failure:
234 -- The process raises an error and stops execution.
235 --
236 -- Access Status:
237 -- Private.
238 --
239 -- {End Of Comments}
240 --
241 procedure stamp_prenote_date
242 (p_personal_payment_method_id in number
243 ,p_effective_date in date
244 ,p_external_account_id in number
245 ,p_external_account_ovn in out nocopy number
246 ) is
247 l_proc varchar2(2000);
248 l_prenote_date date;
249 l_new_prenote_date date;
250 l_3rd_party_payment varchar2(2000);
251 l_prenote_allowed varchar2(2000);
252 l_validation_days number;
253 --
254 -- Cursor to get payment-related information (PPM->OPM direction).
255 --
256 cursor csr_payment_details
257 (p_personal_payment_method_id in number
258 ,p_effective_date in date
259 ) is
260 select nvl(to_char(opm.defined_balance_id), 'Y') third_party
261 , nvl(ppt.validation_days, 0) validation_days
262 from pay_personal_payment_methods_f ppm
263 , pay_org_payment_methods_f opm
264 , pay_payment_types ppt
265 where ppm.personal_payment_method_id = p_personal_payment_method_id
266 and p_effective_date between
267 ppm.effective_start_date and ppm.effective_end_date
268 and opm.org_payment_method_id = ppm.org_payment_method_id
269 and p_effective_date between
270 opm.effective_start_date and opm.effective_end_date
271 and ppt.payment_type_id = opm.payment_type_id
272 ;
273 --
274 -- Cursor to get payroll information (PPM->ASG->PAYROLL direction).
275 --
276 cursor csr_payroll_details
277 (p_personal_payment_method_id in number
278 ,p_effective_date in date
279 ) is
280 select nvl(pap.prl_information3, 'Y') prenote_allowed
281 from pay_personal_payment_methods_f ppm
282 , per_all_assignments_f paa
283 , pay_all_payrolls_f pap
284 where ppm.personal_payment_method_id = p_personal_payment_method_id
285 and p_effective_date between
286 ppm.effective_start_date and ppm.effective_end_date
287 and paa.assignment_id = ppm.assignment_id
288 and p_effective_date between
289 paa.effective_start_date and paa.effective_end_date
290 and pap.payroll_id = paa.payroll_id
291 and p_effective_date between
292 pap.effective_start_date and pap.effective_end_date
293 ;
294 --
295 -- Cursor to get the current prenote date.
296 --
297 cursor csr_curr_prenote_date
298 (p_external_account_id in number
299 ) is
300 select exa.prenote_date
301 from pay_external_accounts exa
302 where exa.external_account_id = p_external_account_id
303 ;
304 begin
305 if g_debug then
306 l_proc := g_package || 'stamp_prenote_date';
307 hr_utility.set_location('Entering:'|| l_proc, 10);
308 end if;
309 --
310 -- Prenotification is allowed by default.
311 --
312 l_prenote_allowed := 'Y';
313 --
314 -- Get the payment-related information.
315 --
316 open csr_payment_details
317 (p_personal_payment_method_id => p_personal_payment_method_id
318 ,p_effective_date => p_effective_date
319 );
320 fetch csr_payment_details
321 into l_3rd_party_payment
322 , l_validation_days;
323 if csr_payment_details%notfound then
324 if g_debug then
325 hr_utility.set_location('Leaving (csr_payment_details):'|| l_proc, 20);
326 end if;
327 close csr_payment_details;
328 --
329 -- There must've been an invalid primary key for the query to
330 -- return no rows.
331 --
332 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
333 hr_utility.raise_error;
334 end if;
335 close csr_payment_details;
336 --
337 -- Standard prenote date.
338 --
339 l_new_prenote_date := p_effective_date - l_validation_days;
340 --
341 -- Handle prenotification depending on payment type.
342 --
343 if l_3rd_party_payment = 'Y' then
344 --
345 -- bug1870072 requirement.
346 --
347 l_new_prenote_date := l_new_prenote_date - 1;
348 l_prenote_allowed := 'N';
349 else
350 open csr_payroll_details
351 (p_personal_payment_method_id => p_personal_payment_method_id
352 ,p_effective_date => p_effective_date
353 );
354 fetch csr_payroll_details
355 into l_prenote_allowed;
356 if csr_payroll_details%notfound then
357 if g_debug then
358 hr_utility.set_location('Leaving (csr_payroll_details):'|| l_proc, 30);
359 end if;
360 close csr_payroll_details;
361 --
362 -- There must've been an invalid primary key for the query to
363 -- return no rows.
364 --
365 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
366 hr_utility.raise_error;
367 end if;
368 close csr_payroll_details;
369 end if;
370 --
371 -- Stamp the prenote date using the row handler if prenotification is not
372 -- allowed.
373 --
374 if upper(l_prenote_allowed) <> 'Y' then
375 --
376 -- This is an API call (implicit behaviour) so we should only stamp the
377 -- prenote date if it is NULL. Without this restriction, each API call
378 -- would be stamping the prenote date with a new value.
379 --
380 open csr_curr_prenote_date
381 (p_external_account_id => p_external_account_id);
382 fetch csr_curr_prenote_date
383 into l_prenote_date;
384 if csr_curr_prenote_date%notfound then
385 if g_debug then
386 hr_utility.set_location
387 ('Leaving (csr_curr_prenote_date):'|| l_proc, 35);
388 end if;
389 close csr_curr_prenote_date;
390 --
391 -- There must've been an invalid primary key for the query to
392 -- return no rows.
393 --
394 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
395 hr_utility.raise_error;
396 end if;
397 close csr_curr_prenote_date;
398 --
399 -- For bug 9766116
400 -- If the newly calculated prenote_date is less than
401 -- the prenote_date already present in pay_external_accounts
402 -- then updating the prenote_date with the new value
403 if l_prenote_date is null OR ( l_new_prenote_date < l_prenote_date )then
404 if g_debug then
405 hr_utility.set_location('Stamp the prenote date:'|| l_proc, 40);
406 end if;
407 pay_exa_upd.upd
408 (p_external_account_id => p_external_account_id
409 ,p_object_version_number => p_external_account_ovn
410 ,p_territory_code => 'US'
411 ,p_prenote_date => l_new_prenote_date
412 ,p_validate => false
413 );
414 end if;
415 end if;
416 if g_debug then
417 hr_utility.set_location('Leaving:'|| l_proc, 50);
418 end if;
419 end stamp_prenote_date;
420 --
421 -- ----------------------------------------------------------------------------
422 -- |---------------------------< upd_prenote_date >---------------------------|
423 -- ----------------------------------------------------------------------------
424 --
425 -- {Start Of Comments}
426 --
427 -- Description:
428 -- This procedure is used to update the prenote date in pay_external_accounts
429 -- with the value provided by the user. However the prenote date is updated
430 -- only if prenoting is allowed for the payroll(ie. prl_information3 = 'Y').
431 --
432 -- Prerequisites:
433 -- Must be called only from 'US' specific insert and update APIs.
434 --
435 -- In Parameters:
436 -- Name Reqd Type Description
437 -- p_personal_payment_method_id Yes number Id of personal payment
438 -- method being created/updated.
439 -- p_effective_date Yes date The session date.
440 -- p_external_account_id Yes number Id of external account row.
441 -- p_prenote_date Yes date Prenote Date that needs to
442 -- updated on the external
443 -- account row.
444 --
445 -- Post Success:
446 -- The procedure returns control back to the calling process.
447 --
448 -- Post Failure:
449 -- The process raises an error and stops execution.
450 --
451 -- Access Status:
452 -- Private.
453 --
454 -- {End Of Comments}
455 --
456 procedure upd_prenote_date
457 (p_personal_payment_method_id in number
458 ,p_external_account_id in number
459 ,p_effective_date in date
460 ,p_prenote_date in date
461 ) is
462 --
463 l_proc varchar2(72) := 'upd_prenote_date';
464 l_exa_ovn pay_external_accounts.object_version_number%type;
465 l_prenote_allowed pay_all_payrolls_f.prl_information3%type;
466 --
467 cursor csr_payroll_details(p_personal_payment_method_id in number
468 ,p_effective_date in date
469 ) is
470 select nvl(pap.prl_information3, 'Y') prenote_allowed
471 from pay_personal_payment_methods_f ppm
472 , per_all_assignments_f paa
473 , pay_all_payrolls_f pap
474 where ppm.personal_payment_method_id = p_personal_payment_method_id
475 and p_effective_date between
476 ppm.effective_start_date and ppm.effective_end_date
477 and paa.assignment_id = ppm.assignment_id
478 and p_effective_date between
479 paa.effective_start_date and paa.effective_end_date
480 and pap.payroll_id = paa.payroll_id
481 and p_effective_date between
482 pap.effective_start_date and pap.effective_end_date;
483 --
484 cursor csr_exa_ovn(p_external_account_id in number) is
485 select pea.object_version_number
486 from pay_external_accounts pea
487 where pea.external_account_id = p_external_account_id;
488 --
489 begin
490 --
491 if g_debug then
492 hr_utility.set_location('Entering: '|| l_proc, 5);
493 end if;
494 --
495 open csr_payroll_details
496 (p_personal_payment_method_id => p_personal_payment_method_id
497 ,p_effective_date => trunc(p_effective_date)
498 );
499 fetch csr_payroll_details into l_prenote_allowed;
500 if csr_payroll_details%notfound then
501 if g_debug then
502 hr_utility.set_location('Leaving (csr_payroll_details):'|| l_proc, 8);
503 end if;
504 close csr_payroll_details;
505 --
506 -- There must've been an invalid primary key for the query to
507 -- return no rows.
508 --
509 fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
510 fnd_message.raise_error;
511 end if;
512 close csr_payroll_details;
513 --
514 if l_prenote_allowed = 'Y' then
515 --
516 open csr_exa_ovn(p_external_account_id);
517 fetch csr_exa_ovn into l_exa_ovn;
518 if csr_exa_ovn%notfound then
519 if g_debug then
520 hr_utility.set_location('Leaving (csr_exa_ovn):'|| l_proc, 9);
521 end if;
522 close csr_exa_ovn;
523 --
524 -- There must've been an invalid primary key for the query to
525 -- return no rows.
526 --
527 fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
528 fnd_message.raise_error;
529 end if;
530 close csr_exa_ovn;
531 --
532 pay_exa_upd.upd
533 (p_external_account_id => p_external_account_id
534 ,p_object_version_number => l_exa_ovn
535 ,p_territory_code => 'US'
536 ,p_prenote_date => trunc(p_prenote_date)
537 ,p_validate => false
538 );
539 --
540 end if;
541 --
542 if g_debug then
543 hr_utility.set_location('Leaving: '|| l_proc, 10);
544 end if;
545 --
546 end upd_prenote_date;
547 -- ----------------------------------------------------------------------------
548 -- |----------------------< create_personal_pay_method >----------------------|
549 -- ----------------------------------------------------------------------------
550 --
551 procedure create_personal_pay_method
552 (p_validate in boolean default false
553 ,p_effective_date in date
554 ,p_assignment_id in number
555 ,p_run_type_id in number default null
556 ,p_org_payment_method_id in number
557 ,p_amount in number default null
558 ,p_percentage in number default null
559 ,p_priority in number default null
560 ,p_comments in varchar2 default null
561 ,p_attribute_category in varchar2 default null
562 ,p_attribute1 in varchar2 default null
563 ,p_attribute2 in varchar2 default null
564 ,p_attribute3 in varchar2 default null
565 ,p_attribute4 in varchar2 default null
566 ,p_attribute5 in varchar2 default null
567 ,p_attribute6 in varchar2 default null
568 ,p_attribute7 in varchar2 default null
569 ,p_attribute8 in varchar2 default null
570 ,p_attribute9 in varchar2 default null
571 ,p_attribute10 in varchar2 default null
572 ,p_attribute11 in varchar2 default null
573 ,p_attribute12 in varchar2 default null
574 ,p_attribute13 in varchar2 default null
575 ,p_attribute14 in varchar2 default null
576 ,p_attribute15 in varchar2 default null
577 ,p_attribute16 in varchar2 default null
578 ,p_attribute17 in varchar2 default null
579 ,p_attribute18 in varchar2 default null
580 ,p_attribute19 in varchar2 default null
581 ,p_attribute20 in varchar2 default null
582 ,p_territory_code in varchar2 default null
583 ,p_segment1 in varchar2 default null
584 ,p_segment2 in varchar2 default null
585 ,p_segment3 in varchar2 default null
586 ,p_segment4 in varchar2 default null
587 ,p_segment5 in varchar2 default null
588 ,p_segment6 in varchar2 default null
589 ,p_segment7 in varchar2 default null
590 ,p_segment8 in varchar2 default null
591 ,p_segment9 in varchar2 default null
592 ,p_segment10 in varchar2 default null
593 ,p_segment11 in varchar2 default null
594 ,p_segment12 in varchar2 default null
595 ,p_segment13 in varchar2 default null
596 ,p_segment14 in varchar2 default null
597 ,p_segment15 in varchar2 default null
598 ,p_segment16 in varchar2 default null
599 ,p_segment17 in varchar2 default null
600 ,p_segment18 in varchar2 default null
601 ,p_segment19 in varchar2 default null
602 ,p_segment20 in varchar2 default null
603 ,p_segment21 in varchar2 default null
604 ,p_segment22 in varchar2 default null
605 ,p_segment23 in varchar2 default null
606 ,p_segment24 in varchar2 default null
607 ,p_segment25 in varchar2 default null
608 ,p_segment26 in varchar2 default null
609 ,p_segment27 in varchar2 default null
610 ,p_segment28 in varchar2 default null
611 ,p_segment29 in varchar2 default null
612 ,p_segment30 in varchar2 default null
613 /** sbilling **/
614 ,p_concat_segments in varchar2 default null
615 ,p_payee_type in varchar2 default null
616 ,p_payee_id in number default null
617 ,p_ppm_information_category in varchar2 default null --Bug 6439573
618 ,p_ppm_information1 in varchar2 default null
619 ,p_ppm_information2 in varchar2 default null
620 ,p_ppm_information3 in varchar2 default null
621 ,p_ppm_information4 in varchar2 default null
622 ,p_ppm_information5 in varchar2 default null
623 ,p_ppm_information6 in varchar2 default null
624 ,p_ppm_information7 in varchar2 default null
625 ,p_ppm_information8 in varchar2 default null
626 ,p_ppm_information9 in varchar2 default null
627 ,p_ppm_information10 in varchar2 default null
628 ,p_ppm_information11 in varchar2 default null
629 ,p_ppm_information12 in varchar2 default null
630 ,p_ppm_information13 in varchar2 default null
631 ,p_ppm_information14 in varchar2 default null
632 ,p_ppm_information15 in varchar2 default null
633 ,p_ppm_information16 in varchar2 default null
634 ,p_ppm_information17 in varchar2 default null
635 ,p_ppm_information18 in varchar2 default null
636 ,p_ppm_information19 in varchar2 default null
637 ,p_ppm_information20 in varchar2 default null
638 ,p_ppm_information21 in varchar2 default null
639 ,p_ppm_information22 in varchar2 default null
640 ,p_ppm_information23 in varchar2 default null
641 ,p_ppm_information24 in varchar2 default null
642 ,p_ppm_information25 in varchar2 default null
643 ,p_ppm_information26 in varchar2 default null
644 ,p_ppm_information27 in varchar2 default null
645 ,p_ppm_information28 in varchar2 default null
646 ,p_ppm_information29 in varchar2 default null
647 ,p_ppm_information30 in varchar2 default null
648 ,p_personal_payment_method_id out nocopy number
649 ,p_external_account_id out nocopy number
650 ,p_object_version_number out nocopy number
651 ,p_effective_start_date out nocopy date
652 ,p_effective_end_date out nocopy date
653 ,p_comment_id out nocopy number
654 ) is
655 --
656 -- Declare cursors and local variables
657 --
658 l_proc varchar2(72);
659 l_business_group_id per_assignments_f.business_group_id%TYPE;
660 l_external_account_id pay_personal_payment_methods_f.external_account_id%TYPE;
661 l_validate boolean := FALSE;
662 l_exa_ovn number;
663 l_exists varchar2(1);
664 l_category varchar2(2);
665 l_effective_date date;
666 l_ppm_information_category pay_personal_payment_methods_f.ppm_information_category%TYPE;
667 --
668 -- Declare OUT variables.
669 --
670 l_personal_payment_method_id pay_personal_payment_methods_f.personal_payment_method_id%TYPE;
671 l_object_version_number pay_personal_payment_methods_f.object_version_number%TYPE;
672 l_effective_start_date pay_personal_payment_methods_f.effective_start_date%TYPE;
673 l_effective_end_date pay_personal_payment_methods_f.effective_end_date%TYPE;
674 l_comment_id pay_personal_payment_methods_f.comment_id%TYPE;
675 --
676 cursor bgsel is
677 select pa.business_group_id
678 from per_assignments_f pa
679 where pa.assignment_id = p_assignment_id
680 and p_effective_date between pa.effective_start_date
681 and pa.effective_end_date;
682 --
683 -- Bug 4644507. Removed the usage of per_business_groups from the cursor.
684 cursor csr_is_valid is
685 select null
686 from pay_org_payment_methods_f opm,
687 pay_payment_types ppt
688 where opm.org_payment_method_id = p_org_payment_method_id
689 and p_effective_date
690 between opm.effective_start_date
691 and opm.effective_end_date
692 and ppt.payment_type_id = opm.payment_type_id ;
693 --
694 cursor csr_chk_pay_type is
695 select pyt.category
696 from pay_org_payment_methods_f opm
697 , pay_payment_types pyt
698 where p_org_payment_method_id = opm.org_payment_method_id
699 and opm.payment_type_id = pyt.payment_type_id
700 and p_effective_date between opm.effective_start_date
701 and opm.effective_end_date;
702 --
703 cursor csr_ppm_info_category ( p_org_payment_method_id number,
704 p_effective_date date) is
705 select decode(ppt.territory_code,null,null,ppt.territory_code||'_')||UPPER(ppt.payment_type_name) ppm_information_category
706 from pay_payment_types ppt,
707 pay_org_payment_methods_f opm
708 where opm.org_payment_method_id = p_org_payment_method_id
709 and p_effective_date between opm.effective_start_date and opm.effective_end_date
710 and opm.payment_type_id = ppt.payment_type_id;
711 --
712 begin
713 g_debug := hr_utility.debug_enabled;
714 if g_debug then
715 l_proc := g_package||'create_personal_pay_method';
716 hr_utility.set_location('Entering:'|| l_proc, 10);
717 end if;
718 --
719 -- Issue a savepoint.
720 --
721 savepoint create_personal_pay_method;
722 --
723 -- Initialize local variables
724 --
725 l_external_account_id := null;
726 --
727 -- Check that p_assignment_id and p_effective_date are not null as they
728 -- are used by the cursor to derive the business group.
729 --
730 hr_api.mandatory_arg_error
731 (p_api_name => l_proc,
732 p_argument => 'assignment_id',
733 p_argument_value => p_assignment_id
734 );
735 --
736 hr_api.mandatory_arg_error
737 (p_api_name => l_proc
738 ,p_argument => 'org_payment_method_id'
739 ,p_argument_value => p_org_payment_method_id
740 );
741 --
742 hr_api.mandatory_arg_error
743 (p_api_name => l_proc,
744 p_argument => 'effective_date',
745 p_argument_value => p_effective_date);
746 if g_debug then
747 hr_utility.set_location(l_proc, 20);
748 end if;
749 --
750 l_effective_date := trunc(p_effective_date);
751 --
752 begin
753 --
754 -- Start of API User Hook for the before hook of create_personal_pay_method
755 --
756 hr_personal_pay_method_bk1.create_personal_pay_method_b
757 (p_effective_date => l_effective_date
758 ,p_assignment_id => p_assignment_id
759 ,p_org_payment_method_id => p_org_payment_method_id
760 ,p_amount => p_amount
761 ,p_percentage => p_percentage
762 ,p_priority => p_priority
763 ,p_comments => p_comments
764 ,p_attribute_category => p_attribute_category
765 ,p_attribute1 => p_attribute1
766 ,p_attribute2 => p_attribute2
767 ,p_attribute3 => p_attribute3
768 ,p_attribute4 => p_attribute4
769 ,p_attribute5 => p_attribute5
770 ,p_attribute6 => p_attribute6
771 ,p_attribute7 => p_attribute7
772 ,p_attribute8 => p_attribute8
773 ,p_attribute9 => p_attribute9
774 ,p_attribute10 => p_attribute10
775 ,p_attribute11 => p_attribute11
776 ,p_attribute12 => p_attribute12
777 ,p_attribute13 => p_attribute13
778 ,p_attribute14 => p_attribute14
779 ,p_attribute15 => p_attribute15
780 ,p_attribute16 => p_attribute16
781 ,p_attribute17 => p_attribute17
782 ,p_attribute18 => p_attribute18
783 ,p_attribute19 => p_attribute19
784 ,p_attribute20 => p_attribute20
785 ,p_territory_code => p_territory_code
786 ,p_segment1 => p_segment1
787 ,p_segment2 => p_segment2
788 ,p_segment3 => p_segment3
789 -- ,p_segment4 => lpad(p_segment4,9,'0')
790 ,p_segment4 => p_segment4
791 ,p_segment5 => p_segment5
792 ,p_segment6 => p_segment6
793 ,p_segment7 => p_segment7
794 ,p_segment8 => p_segment8
795 ,p_segment9 => p_segment9
796 ,p_segment10 => p_segment10
797 ,p_segment11 => p_segment11
798 ,p_segment12 => p_segment12
799 ,p_segment13 => p_segment13
800 ,p_segment14 => p_segment14
801 ,p_segment15 => p_segment15
802 ,p_segment16 => p_segment16
803 ,p_segment17 => p_segment17
804 ,p_segment18 => p_segment18
805 ,p_segment19 => p_segment19
806 ,p_segment20 => p_segment20
807 ,p_segment21 => p_segment21
808 ,p_segment22 => p_segment22
809 ,p_segment23 => p_segment23
810 ,p_segment24 => p_segment24
811 ,p_segment25 => p_segment25
812 ,p_segment26 => p_segment26
813 ,p_segment27 => p_segment27
814 ,p_segment28 => p_segment28
815 ,p_segment29 => p_segment29
816 ,p_segment30 => p_segment30
817 ,p_payee_type => p_payee_type
818 ,p_payee_id => p_payee_id
819 ,p_ppm_information1 => p_ppm_information1
820 ,p_ppm_information2 => p_ppm_information2
821 ,p_ppm_information3 => p_ppm_information3
822 ,p_ppm_information4 => p_ppm_information4
823 ,p_ppm_information5 => p_ppm_information5
824 ,p_ppm_information6 => p_ppm_information6
825 ,p_ppm_information7 => p_ppm_information7
826 ,p_ppm_information8 => p_ppm_information8
827 ,p_ppm_information9 => p_ppm_information9
828 ,p_ppm_information10 => p_ppm_information10
829 ,p_ppm_information11 => p_ppm_information11
830 ,p_ppm_information12 => p_ppm_information12
831 ,p_ppm_information13 => p_ppm_information13
832 ,p_ppm_information14 => p_ppm_information14
833 ,p_ppm_information15 => p_ppm_information15
834 ,p_ppm_information16 => p_ppm_information16
835 ,p_ppm_information17 => p_ppm_information17
836 ,p_ppm_information18 => p_ppm_information18
837 ,p_ppm_information19 => p_ppm_information19
838 ,p_ppm_information20 => p_ppm_information20
839 ,p_ppm_information21 => p_ppm_information21
840 ,p_ppm_information22 => p_ppm_information22
841 ,p_ppm_information23 => p_ppm_information23
842 ,p_ppm_information24 => p_ppm_information24
843 ,p_ppm_information25 => p_ppm_information25
844 ,p_ppm_information26 => p_ppm_information26
845 ,p_ppm_information27 => p_ppm_information27
846 ,p_ppm_information28 => p_ppm_information28
847 ,p_ppm_information29 => p_ppm_information29
848 ,p_ppm_information30 => p_ppm_information30
849 ,p_ppm_information_category => p_ppm_information_category
850 );
851 exception
852 when hr_api.cannot_find_prog_unit then
853 hr_api.cannot_find_prog_unit_error
854 (p_module_name => 'CREATE_PERSONAL_PAY_METHOD'
855 ,p_hook_type => 'BP'
856 );
857 --
858 -- End of API User Hook for the before hook of create_personal_pay_method
859 --
860 end;
861 --
862 -- Derive the business group id, using the assignment id.
863 --
864 open bgsel;
865 fetch bgsel
866 into l_business_group_id;
867 if g_debug then
868 hr_utility.set_location(l_proc, 30);
869 end if;
870 --
871 if bgsel%notfound then
872 close bgsel;
873 hr_utility.set_message(801, 'HR_7348_ASSIGNMENT_INVALID');
874 Hr_utility.raise_error;
875 end if;
876 close bgsel;
877 if g_debug then
878 hr_utility.set_location(l_proc, 40);
879 end if;
880 --
881 -- Validate the organization payment method
882 --
883 open csr_is_valid;
884 fetch csr_is_valid into l_exists;
885 if csr_is_valid%notfound then
886 close csr_is_valid;
887
888 hr_utility.set_message(801, 'HR_7347_PPM_INVALID_PAY_TYPE');
889 hr_utility.raise_error;
890 end if;
891 close csr_is_valid;
892 if g_debug then
893 hr_utility.set_location(l_proc, 40);
894 end if;
895 --
896 -- Bug 3940935. Derive PPM_INFORMATION_CATEGORY.
897 --
898 if ((p_ppm_information1 is not null or
899 p_ppm_information2 is not null or
900 p_ppm_information3 is not null or
901 p_ppm_information4 is not null or
902 p_ppm_information5 is not null or
903 p_ppm_information6 is not null or
904 p_ppm_information7 is not null or
905 p_ppm_information8 is not null or
906 p_ppm_information9 is not null or
907 p_ppm_information10 is not null or
908 p_ppm_information11 is not null or
909 p_ppm_information12 is not null or
910 p_ppm_information13 is not null or
911 p_ppm_information14 is not null or
912 p_ppm_information15 is not null or
913 p_ppm_information16 is not null or
914 p_ppm_information17 is not null or
915 p_ppm_information18 is not null or
916 p_ppm_information19 is not null or
917 p_ppm_information20 is not null or
918 p_ppm_information21 is not null or
919 p_ppm_information22 is not null or
920 p_ppm_information23 is not null or
921 p_ppm_information24 is not null or
922 p_ppm_information25 is not null or
923 p_ppm_information26 is not null or
924 p_ppm_information27 is not null or
925 p_ppm_information28 is not null or
926 p_ppm_information29 is not null or
927 p_ppm_information30 is not null ) and
928 p_ppm_information_category is null) then --6439573
929
930 open csr_ppm_info_category ( p_org_payment_method_id => p_org_payment_method_id
931 ,p_effective_date => p_effective_date );
932
933 fetch csr_ppm_info_category into l_ppm_information_category;
934 if (csr_ppm_info_category%notfound) then
935 close csr_ppm_info_category;
936 fnd_message.set_name('PAY', 'HR_7462_PLK_INVLD_VALUE');
937 fnd_message.set_token('COLUMN_NAME', 'PPM_INFORMATION_CATEGORY');
938 fnd_message.raise_error;
939 end if;
940 close csr_ppm_info_category;
941 /* Bug 6439573 ppm_info_category is not null, then assigned to the local one */
942 elsif p_ppm_information_category is not null then
943 l_ppm_information_category := p_ppm_information_category;
944 end if;
945 --
946 -- Check that if payment type of the organization payment method
947 -- is not 'MT' then all external account details should be null.
948 --
949 open csr_chk_pay_type;
950 fetch csr_chk_pay_type into l_category;
951 close csr_chk_pay_type;
952 --
953 if (l_category <> 'MT' or l_category is null)
954 and (p_segment1 is not null or
955 p_segment2 is not null or
956 p_segment3 is not null or
957 p_segment4 is not null or
958 p_segment5 is not null or
959 p_segment6 is not null or
960 p_segment7 is not null or
961 p_segment8 is not null or
962 p_segment9 is not null or
963 p_segment10 is not null or
964 p_segment11 is not null or
965 p_segment12 is not null or
966 p_segment13 is not null or
967 p_segment14 is not null or
968 p_segment15 is not null or
969 p_segment16 is not null or
970 p_segment17 is not null or
971 p_segment18 is not null or
972 p_segment19 is not null or
973 p_segment20 is not null or
974 p_segment21 is not null or
975 p_segment22 is not null or
976 p_segment23 is not null or
977 p_segment24 is not null or
978 p_segment25 is not null or
979 p_segment26 is not null or
980 p_segment27 is not null or
981 p_segment28 is not null or
982 p_segment29 is not null or
983 p_segment30 is not null ) then
984 --
985 -- Raise Error
986 hr_utility.set_message(801, 'HR_51377_PPM_NON_MAG_TAPE_SEGM');
987 hr_utility.raise_error;
988 --
989 elsif l_category = 'MT' then
990 --
991 if g_debug then
992 hr_utility.set_location(l_proc, 50);
993 end if;
994 --
995 -- call table handler pay_exa_ins to control the processing of the external
996 -- account combination keyflex, discarding the returning parameter
997 -- p_object_version_number
998 --
999 pay_exa_ins.ins_or_sel
1000 (p_segment1 => p_segment1
1001 ,p_segment2 => p_segment2
1002 ,p_segment3 => p_segment3
1003 -- ,p_segment4 => lpad(p_segment4,9,'0')
1004 ,p_segment4 => p_segment4
1005 ,p_segment5 => p_segment5
1006 ,p_segment6 => p_segment6
1007 ,p_segment7 => p_segment7
1008 ,p_segment8 => p_segment8
1009 ,p_segment9 => p_segment9
1010 ,p_segment10 => p_segment10
1011 ,p_segment11 => p_segment11
1012 ,p_segment12 => p_segment12
1013 ,p_segment13 => p_segment13
1014 ,p_segment14 => p_segment14
1015 ,p_segment15 => p_segment15
1016 ,p_segment16 => p_segment16
1017 ,p_segment17 => p_segment17
1018 ,p_segment18 => p_segment18
1019 ,p_segment19 => p_segment19
1020 ,p_segment20 => p_segment20
1021 ,p_segment21 => p_segment21
1022 ,p_segment22 => p_segment22
1023 ,p_segment23 => p_segment23
1024 ,p_segment24 => p_segment24
1025 ,p_segment25 => p_segment25
1026 ,p_segment26 => p_segment26
1027 ,p_segment27 => p_segment27
1028 ,p_segment28 => p_segment28
1029 ,p_segment29 => p_segment29
1030 ,p_segment30 => p_segment30
1031 /** sbilling **/
1032 ,p_concat_segments => p_concat_segments
1033 ,p_business_group_id => l_business_group_id
1034 ,p_territory_code => p_territory_code
1035 ,p_external_account_id => l_external_account_id
1036 ,p_object_version_number => l_exa_ovn
1037 ,p_validate => l_validate
1038 --
1039 -- Special p_prenote_date value after bug2307154 changes.
1040 --
1041 ,p_prenote_date => hr_api.g_date
1042 );
1043 end if;
1044 --
1045 if g_debug then
1046 hr_utility.set_location(l_proc, 60);
1047 end if;
1048 --
1049 -- Call the row handler to insert the personal payment method.
1050 --
1051 pay_ppm_ins.ins
1052 (p_personal_payment_method_id => l_personal_payment_method_id
1053 ,p_effective_start_date => l_effective_start_date
1054 ,p_effective_end_date => l_effective_end_date
1055 ,p_business_group_id => l_business_group_id
1056 ,p_external_account_id => l_external_account_id
1057 ,p_assignment_id => p_assignment_id
1058 ,p_run_type_id => p_run_type_id
1059 ,p_org_payment_method_id => p_org_payment_method_id
1060 ,p_amount => p_amount
1061 ,p_comment_id => l_comment_id
1062 ,p_comments => p_comments
1063 ,p_percentage => p_percentage
1064 ,p_priority => p_priority
1065 ,p_attribute_category => p_attribute_category
1066 ,p_attribute1 => p_attribute1
1067 ,p_attribute2 => p_attribute2
1068 ,p_attribute3 => p_attribute3
1069 ,p_attribute4 => p_attribute4
1070 ,p_attribute5 => p_attribute5
1071 ,p_attribute6 => p_attribute6
1072 ,p_attribute7 => p_attribute7
1073 ,p_attribute8 => p_attribute8
1074 ,p_attribute9 => p_attribute9
1075 ,p_attribute10 => p_attribute10
1076 ,p_attribute11 => p_attribute11
1077 ,p_attribute12 => p_attribute12
1078 ,p_attribute13 => p_attribute13
1079 ,p_attribute14 => p_attribute14
1080 ,p_attribute15 => p_attribute15
1081 ,p_attribute16 => p_attribute16
1082 ,p_attribute17 => p_attribute17
1083 ,p_attribute18 => p_attribute18
1084 ,p_attribute19 => p_attribute19
1085 ,p_attribute20 => p_attribute20
1086 ,p_object_version_number => l_object_version_number
1087 ,p_payee_type => p_payee_type
1088 ,p_payee_id => p_payee_id
1089 ,p_effective_date => l_effective_date
1090 ,p_validate => l_validate
1091 ,p_ppm_information_category => l_ppm_information_category
1092 ,p_ppm_information1 => p_ppm_information1
1093 ,p_ppm_information2 => p_ppm_information2
1094 ,p_ppm_information3 => p_ppm_information3
1095 ,p_ppm_information4 => p_ppm_information4
1096 ,p_ppm_information5 => p_ppm_information5
1097 ,p_ppm_information6 => p_ppm_information6
1098 ,p_ppm_information7 => p_ppm_information7
1099 ,p_ppm_information8 => p_ppm_information8
1100 ,p_ppm_information9 => p_ppm_information9
1101 ,p_ppm_information10 => p_ppm_information10
1102 ,p_ppm_information11 => p_ppm_information11
1103 ,p_ppm_information12 => p_ppm_information12
1104 ,p_ppm_information13 => p_ppm_information13
1105 ,p_ppm_information14 => p_ppm_information14
1106 ,p_ppm_information15 => p_ppm_information15
1107 ,p_ppm_information16 => p_ppm_information16
1108 ,p_ppm_information17 => p_ppm_information17
1109 ,p_ppm_information18 => p_ppm_information18
1110 ,p_ppm_information19 => p_ppm_information19
1111 ,p_ppm_information20 => p_ppm_information20
1112 ,p_ppm_information21 => p_ppm_information21
1113 ,p_ppm_information22 => p_ppm_information22
1114 ,p_ppm_information23 => p_ppm_information23
1115 ,p_ppm_information24 => p_ppm_information24
1116 ,p_ppm_information25 => p_ppm_information25
1117 ,p_ppm_information26 => p_ppm_information26
1118 ,p_ppm_information27 => p_ppm_information27
1119 ,p_ppm_information28 => p_ppm_information28
1120 ,p_ppm_information29 => p_ppm_information29
1121 ,p_ppm_information30 => p_ppm_information30
1122 );
1123 --
1124 -- Stamp the prenote_date on the external accounts row for 'US' magtape
1125 -- payments only.
1126 --
1127 if g_debug then
1128 hr_utility.set_location(l_proc, 65);
1129 end if;
1130 if p_territory_code = 'US' and l_category = 'MT' then
1131 stamp_prenote_date
1132 (p_personal_payment_method_id => l_personal_payment_method_id
1133 ,p_effective_date => l_effective_date
1134 ,p_external_account_id => l_external_account_id
1135 ,p_external_account_ovn => l_exa_ovn
1136 );
1137 end if;
1138 --
1139 if g_debug then
1140 hr_utility.set_location(l_proc, 70);
1141 end if;
1142 --
1143 begin
1144 --
1145 -- Start of API User Hook for the after hook of create_personal_pay_method
1146 --
1147 hr_personal_pay_method_bk1.create_personal_pay_method_a
1148 (p_effective_date => l_effective_date
1149 ,p_assignment_id => p_assignment_id
1150 ,p_org_payment_method_id => p_org_payment_method_id
1151 ,p_amount => p_amount
1152 ,p_percentage => p_percentage
1153 ,p_priority => p_priority
1154 ,p_comments => p_comments
1155 ,p_attribute_category => p_attribute_category
1156 ,p_attribute1 => p_attribute1
1157 ,p_attribute2 => p_attribute2
1158 ,p_attribute3 => p_attribute3
1159 ,p_attribute4 => p_attribute4
1160 ,p_attribute5 => p_attribute5
1161 ,p_attribute6 => p_attribute6
1162 ,p_attribute7 => p_attribute7
1163 ,p_attribute8 => p_attribute8
1164 ,p_attribute9 => p_attribute9
1165 ,p_attribute10 => p_attribute10
1166 ,p_attribute11 => p_attribute11
1167 ,p_attribute12 => p_attribute12
1168 ,p_attribute13 => p_attribute13
1169 ,p_attribute14 => p_attribute14
1170 ,p_attribute15 => p_attribute15
1171 ,p_attribute16 => p_attribute16
1172 ,p_attribute17 => p_attribute17
1173 ,p_attribute18 => p_attribute18
1174 ,p_attribute19 => p_attribute19
1175 ,p_attribute20 => p_attribute20
1176 ,p_territory_code => p_territory_code
1177 ,p_segment1 => p_segment1
1178 ,p_segment2 => p_segment2
1179 ,p_segment3 => p_segment3
1180 -- ,p_segment4 => lpad(p_segment4,9,'0')
1181 ,p_segment4 => p_segment4
1182 ,p_segment5 => p_segment5
1183 ,p_segment6 => p_segment6
1184 ,p_segment7 => p_segment7
1185 ,p_segment8 => p_segment8
1186 ,p_segment9 => p_segment9
1187 ,p_segment10 => p_segment10
1188 ,p_segment11 => p_segment11
1189 ,p_segment12 => p_segment12
1190 ,p_segment13 => p_segment13
1191 ,p_segment14 => p_segment14
1192 ,p_segment15 => p_segment15
1193 ,p_segment16 => p_segment16
1194 ,p_segment17 => p_segment17
1195 ,p_segment18 => p_segment18
1196 ,p_segment19 => p_segment19
1197 ,p_segment20 => p_segment20
1198 ,p_segment21 => p_segment21
1199 ,p_segment22 => p_segment22
1200 ,p_segment23 => p_segment23
1201 ,p_segment24 => p_segment24
1202 ,p_segment25 => p_segment25
1203 ,p_segment26 => p_segment26
1204 ,p_segment27 => p_segment27
1205 ,p_segment28 => p_segment28
1206 ,p_segment29 => p_segment29
1207 ,p_segment30 => p_segment30
1208 ,p_payee_type => p_payee_type
1209 ,p_payee_id => p_payee_id
1210 ,p_personal_payment_method_id => l_personal_payment_method_id
1211 ,p_external_account_id => l_external_account_id
1212 ,p_object_version_number => l_object_version_number
1213 ,p_effective_start_date => l_effective_start_date
1214 ,p_effective_end_date => l_effective_end_date
1215 ,p_comment_id => l_comment_id
1216 ,p_ppm_information1 => p_ppm_information1
1217 ,p_ppm_information2 => p_ppm_information2
1218 ,p_ppm_information3 => p_ppm_information3
1219 ,p_ppm_information4 => p_ppm_information4
1220 ,p_ppm_information5 => p_ppm_information5
1221 ,p_ppm_information6 => p_ppm_information6
1222 ,p_ppm_information7 => p_ppm_information7
1223 ,p_ppm_information8 => p_ppm_information8
1224 ,p_ppm_information9 => p_ppm_information9
1225 ,p_ppm_information10 => p_ppm_information10
1226 ,p_ppm_information11 => p_ppm_information11
1227 ,p_ppm_information12 => p_ppm_information12
1228 ,p_ppm_information13 => p_ppm_information13
1229 ,p_ppm_information14 => p_ppm_information14
1230 ,p_ppm_information15 => p_ppm_information15
1231 ,p_ppm_information16 => p_ppm_information16
1232 ,p_ppm_information17 => p_ppm_information17
1233 ,p_ppm_information18 => p_ppm_information18
1234 ,p_ppm_information19 => p_ppm_information19
1235 ,p_ppm_information20 => p_ppm_information20
1236 ,p_ppm_information21 => p_ppm_information21
1237 ,p_ppm_information22 => p_ppm_information22
1238 ,p_ppm_information23 => p_ppm_information23
1239 ,p_ppm_information24 => p_ppm_information24
1240 ,p_ppm_information25 => p_ppm_information25
1241 ,p_ppm_information26 => p_ppm_information26
1242 ,p_ppm_information27 => p_ppm_information27
1243 ,p_ppm_information28 => p_ppm_information28
1244 ,p_ppm_information29 => p_ppm_information29
1245 ,p_ppm_information30 => p_ppm_information30
1246 ,p_ppm_information_category => l_ppm_information_category
1247 );
1248 exception
1249 when hr_api.cannot_find_prog_unit then
1250 hr_api.cannot_find_prog_unit_error
1251 (p_module_name => 'CREATE_PERSONAL_PAY_METHOD'
1252 ,p_hook_type => 'AP'
1253 );
1254 --
1255 -- End of API User Hook for the after hook of create_personal_pay_method
1256 --
1257 end;
1258 --
1259 -- When in validation only mode raise the Validate_Enabled exception
1260 --
1261 if p_validate then
1262 raise hr_api.validate_enabled;
1263 end if;
1264 --
1265 -- Set remaining output arguments
1266 --
1267 p_personal_payment_method_id := l_personal_payment_method_id;
1268 p_external_account_id := l_external_account_id;
1269 p_object_version_number := l_object_version_number;
1270 p_effective_start_date := l_effective_start_date;
1271 p_effective_end_date := l_effective_end_date;
1272 p_comment_id := l_comment_id;
1273 --
1274 if g_debug then
1275 hr_utility.set_location(' Leaving:'||l_proc, 80);
1276 end if;
1277 exception
1278 when hr_api.validate_enabled then
1279 --
1280 -- As the Validate_Enabled exception has been raised
1281 -- we must rollback to the savepoint
1282 --
1283 ROLLBACK TO create_personal_pay_method;
1284 --
1285 -- Only set output warning arguments
1286 -- (Any key or derived arguments must be set to null
1287 -- when validation only mode is being used.)
1288 --
1289 p_personal_payment_method_id := null;
1290 p_external_account_id := null;
1291 p_object_version_number := null;
1292 p_effective_start_date := null;
1293 p_effective_end_date := null;
1294 p_comment_id := null;
1295 --
1296 when others then
1297 --
1298 -- A validation or unexpected error has occurred
1299 --
1300 -- Added as part of fix to bug 632479
1301 --
1302 ROLLBACK TO create_personal_pay_method;
1303 p_personal_payment_method_id := null;
1304 p_external_account_id := null;
1305 p_object_version_number := null;
1306 p_effective_start_date := null;
1307 p_effective_end_date := null;
1308 p_comment_id := null;
1309 raise;
1310 --
1311 -- End of fix.
1312 --
1313 if g_debug then
1314 hr_utility.set_location(' Leaving:'||l_proc, 90);
1315 end if;
1316 --
1317 end create_personal_pay_method;
1318 --
1319 -- ----------------------------------------------------------------------------
1320 -- |--------------------< create_gb_personal_pay_method >---------------------|
1321 -- ----------------------------------------------------------------------------
1322 --
1323 procedure create_gb_personal_pay_method
1324 (p_validate in boolean default false
1325 ,p_effective_date in date
1326 ,p_assignment_id in number
1327 ,p_run_type_id in number default null
1328 ,p_org_payment_method_id in number
1329 ,p_account_name in varchar2
1330 ,p_account_number in varchar2
1331 ,p_sort_code in varchar2
1332 ,p_bank_name in varchar2
1333 ,p_account_type in varchar2 default null
1334 ,p_bank_branch in varchar2 default null
1335 ,p_bank_branch_location in varchar2 default null
1336 ,p_bldg_society_account_number in varchar2 default null
1337 ,p_amount in number default null
1338 ,p_percentage in number default null
1339 ,p_priority in number default null
1340 ,p_comments in varchar2 default null
1341 ,p_attribute_category in varchar2 default null
1342 ,p_attribute1 in varchar2 default null
1343 ,p_attribute2 in varchar2 default null
1344 ,p_attribute3 in varchar2 default null
1345 ,p_attribute4 in varchar2 default null
1346 ,p_attribute5 in varchar2 default null
1347 ,p_attribute6 in varchar2 default null
1348 ,p_attribute7 in varchar2 default null
1349 ,p_attribute8 in varchar2 default null
1350 ,p_attribute9 in varchar2 default null
1351 ,p_attribute10 in varchar2 default null
1352 ,p_attribute11 in varchar2 default null
1353 ,p_attribute12 in varchar2 default null
1354 ,p_attribute13 in varchar2 default null
1355 ,p_attribute14 in varchar2 default null
1356 ,p_attribute15 in varchar2 default null
1357 ,p_attribute16 in varchar2 default null
1358 ,p_attribute17 in varchar2 default null
1359 ,p_attribute18 in varchar2 default null
1360 ,p_attribute19 in varchar2 default null
1361 ,p_attribute20 in varchar2 default null
1362 ,p_payee_type in varchar2 default null
1363 ,p_payee_id in number default null
1364 ,p_territory_code in varchar2 default null -- Bug 6469439
1365 ,p_personal_payment_method_id out nocopy number
1366 ,p_external_account_id out nocopy number
1367 ,p_object_version_number out nocopy number
1368 ,p_effective_start_date out nocopy date
1369 ,p_effective_end_date out nocopy date
1370 ,p_comment_id out nocopy number
1371 ,p_segment9 in varchar2 default null -- Bug 7185344
1372 ,p_segment10 in varchar2 default null
1373 ,p_segment11 in varchar2 default null
1374 ,p_segment12 in varchar2 default null
1375 ,p_segment13 in varchar2 default null
1376 ,p_segment14 in varchar2 default null
1377 ,p_segment15 in varchar2 default null
1378 ,p_segment16 in varchar2 default null
1379 ,p_segment17 in varchar2 default null
1380 ,p_segment18 in varchar2 default null
1381 ,p_segment19 in varchar2 default null
1382 ,p_segment20 in varchar2 default null
1383 ,p_segment21 in varchar2 default null
1384 ,p_segment22 in varchar2 default null
1385 ,p_segment23 in varchar2 default null
1386 ,p_segment24 in varchar2 default null
1387 ,p_segment25 in varchar2 default null
1388 ,p_segment26 in varchar2 default null
1389 ,p_segment27 in varchar2 default null
1390 ,p_segment28 in varchar2 default null
1391 ,p_segment29 in varchar2 default null
1392 ,p_segment30 in varchar2 default null -- Bug 7185344
1393 /*Bug# 8717589*/
1394 ,p_ppm_information_category in varchar2 default null
1395 ,p_ppm_information1 in varchar2 default null
1396 ,p_ppm_information2 in varchar2 default null
1397 ,p_ppm_information3 in varchar2 default null
1398 ,p_ppm_information4 in varchar2 default null
1399 ,p_ppm_information5 in varchar2 default null
1400 ,p_ppm_information6 in varchar2 default null
1401 ,p_ppm_information7 in varchar2 default null
1402 ,p_ppm_information8 in varchar2 default null
1403 ,p_ppm_information9 in varchar2 default null
1404 ,p_ppm_information10 in varchar2 default null
1405 ,p_ppm_information11 in varchar2 default null
1406 ,p_ppm_information12 in varchar2 default null
1407 ,p_ppm_information13 in varchar2 default null
1408 ,p_ppm_information14 in varchar2 default null
1409 ,p_ppm_information15 in varchar2 default null
1410 ,p_ppm_information16 in varchar2 default null
1411 ,p_ppm_information17 in varchar2 default null
1412 ,p_ppm_information18 in varchar2 default null
1413 ,p_ppm_information19 in varchar2 default null
1414 ,p_ppm_information20 in varchar2 default null
1415 ,p_ppm_information21 in varchar2 default null
1416 ,p_ppm_information22 in varchar2 default null
1417 ,p_ppm_information23 in varchar2 default null
1418 ,p_ppm_information24 in varchar2 default null
1419 ,p_ppm_information25 in varchar2 default null
1420 ,p_ppm_information26 in varchar2 default null
1421 ,p_ppm_information27 in varchar2 default null
1422 ,p_ppm_information28 in varchar2 default null
1423 ,p_ppm_information29 in varchar2 default null
1424 ,p_ppm_information30 in varchar2 default null
1425 ) is
1426 --
1427 -- Declare cursors and local variables
1428 --
1429 l_proc varchar2(72);
1430 l_valid varchar2(150);
1431 l_effective_date date;
1432 l_territory_code varchar2(30);
1433 --
1434 begin
1435 g_debug := hr_utility.debug_enabled;
1436 --
1437 if g_debug then
1438 l_proc := g_package||'create_gb_personal_pay_method';
1439 hr_utility.set_location('Entering:'|| l_proc, 5);
1440 end if;
1441 --
1442 l_effective_date := p_effective_date;
1443 --
1444 hr_personal_pay_method_api.check_insert_legislation
1445 (p_assignment_id => p_assignment_id
1446 ,p_effective_date => l_effective_date
1447 ,p_leg_code => 'GB');
1448 --
1449 if g_debug then
1450 hr_utility.set_location(l_proc, 7);
1451 end if;
1452 --
1453 if p_territory_code is null then
1454 l_territory_code := 'GB';
1455 else
1456 l_territory_code := p_territory_code;
1457 end if;
1458 --
1459 -- Call the business process to create the personal payment method
1460 --
1461 hr_personal_pay_method_api.create_personal_pay_method
1462 (p_validate => p_validate
1463 ,p_effective_date => l_effective_date
1464 ,p_assignment_id => p_assignment_id
1465 ,p_run_type_id => p_run_type_id
1466 ,p_org_payment_method_id => p_org_payment_method_id
1467 ,p_amount => p_amount
1468 ,p_percentage => p_percentage
1469 ,p_priority => p_priority
1470 ,p_comments => p_comments
1471 ,p_attribute_category => p_attribute_category
1472 ,p_attribute1 => p_attribute1
1473 ,p_attribute2 => p_attribute2
1474 ,p_attribute3 => p_attribute3
1475 ,p_attribute4 => p_attribute4
1476 ,p_attribute5 => p_attribute5
1477 ,p_attribute6 => p_attribute6
1478 ,p_attribute7 => p_attribute7
1479 ,p_attribute8 => p_attribute8
1480 ,p_attribute9 => p_attribute9
1481 ,p_attribute10 => p_attribute10
1482 ,p_attribute11 => p_attribute11
1483 ,p_attribute12 => p_attribute12
1484 ,p_attribute13 => p_attribute13
1485 ,p_attribute14 => p_attribute14
1486 ,p_attribute15 => p_attribute15
1487 ,p_attribute16 => p_attribute16
1488 ,p_attribute17 => p_attribute17
1489 ,p_attribute18 => p_attribute18
1490 ,p_attribute19 => p_attribute19
1491 ,p_attribute20 => p_attribute20
1492 ,p_territory_code => l_territory_code --6469439
1493 ,p_segment1 => p_bank_name
1494 ,p_segment2 => p_bank_branch
1495 ,p_segment3 => p_sort_code
1496 ,p_segment4 => p_account_number
1497 ,p_segment5 => p_account_name
1498 ,p_segment6 => p_account_type
1499 ,p_segment7 => p_bldg_society_account_number
1500 ,p_segment8 => p_bank_branch_location
1501 ,p_payee_type => p_payee_type
1502 ,p_payee_id => p_payee_id
1503 ,p_personal_payment_method_id => p_personal_payment_method_id
1504 ,p_external_account_id => p_external_account_id
1505 ,p_object_version_number => p_object_version_number
1506 ,p_effective_start_date => p_effective_start_date
1507 ,p_effective_end_date => p_effective_end_date
1508 ,p_comment_id => p_comment_id
1509 ,p_segment9 => p_segment9 -- Bug 7185344
1510 ,p_segment10 => p_segment10
1511 ,p_segment11 => p_segment11
1512 ,p_segment12 => p_segment12
1513 ,p_segment13 => p_segment13
1514 ,p_segment14 => p_segment14
1515 ,p_segment15 => p_segment15
1516 ,p_segment16 => p_segment16
1517 ,p_segment17 => p_segment17
1518 ,p_segment18 => p_segment18
1519 ,p_segment19 => p_segment19
1520 ,p_segment20 => p_segment20
1521 ,p_segment21 => p_segment21
1522 ,p_segment22 => p_segment22
1523 ,p_segment23 => p_segment23
1524 ,p_segment24 => p_segment24
1525 ,p_segment25 => p_segment25
1526 ,p_segment26 => p_segment26
1527 ,p_segment27 => p_segment27
1528 ,p_segment28 => p_segment28
1529 ,p_segment29 => p_segment29
1530 ,p_segment30 => p_segment30 -- Bug 7185344
1531 ,p_ppm_information_category => p_ppm_information_category
1532 ,p_ppm_information1 => p_ppm_information1
1533 ,p_ppm_information2 => p_ppm_information2
1534 ,p_ppm_information3 => p_ppm_information3
1535 ,p_ppm_information4 => p_ppm_information4
1536 ,p_ppm_information5 => p_ppm_information5
1537 ,p_ppm_information6 => p_ppm_information6
1538 ,p_ppm_information7 => p_ppm_information7
1539 ,p_ppm_information8 => p_ppm_information8
1540 ,p_ppm_information9 => p_ppm_information9
1541 ,p_ppm_information10 => p_ppm_information10
1542 ,p_ppm_information11 => p_ppm_information11
1543 ,p_ppm_information12 => p_ppm_information12
1544 ,p_ppm_information13 => p_ppm_information13
1545 ,p_ppm_information14 => p_ppm_information14
1546 ,p_ppm_information15 => p_ppm_information15
1547 ,p_ppm_information16 => p_ppm_information16
1548 ,p_ppm_information17 => p_ppm_information17
1549 ,p_ppm_information18 => p_ppm_information18
1550 ,p_ppm_information19 => p_ppm_information19
1551 ,p_ppm_information20 => p_ppm_information20
1552 ,p_ppm_information21 => p_ppm_information21
1553 ,p_ppm_information22 => p_ppm_information22
1554 ,p_ppm_information23 => p_ppm_information23
1555 ,p_ppm_information24 => p_ppm_information24
1556 ,p_ppm_information25 => p_ppm_information25
1557 ,p_ppm_information26 => p_ppm_information26
1558 ,p_ppm_information27 => p_ppm_information27
1559 ,p_ppm_information28 => p_ppm_information28
1560 ,p_ppm_information29 => p_ppm_information29
1561 ,p_ppm_information30 => p_ppm_information30
1562 );
1563 --
1564 if g_debug then
1565 hr_utility.set_location(' Leaving:'||l_proc, 8);
1566 end if;
1567 end create_gb_personal_pay_method;
1568 --
1569 -- ----------------------------------------------------------------------------
1570 -- |--------------------< create_us_personal_pay_method >---------------------|
1571 -- ----------------------------------------------------------------------------
1572 --
1573 procedure create_us_personal_pay_method
1574 (p_validate in boolean default false
1575 ,p_effective_date in date
1576 ,p_assignment_id in number
1577 ,p_run_type_id in number default null
1578 ,p_org_payment_method_id in number
1579 ,p_account_name in varchar2
1580 ,p_account_number in varchar2
1581 ,p_transit_code in varchar2
1582 ,p_bank_name in varchar2
1583 ,p_account_type in varchar2 default null
1584 ,p_bank_branch in varchar2 default null
1585 ,p_amount in number default null
1586 ,p_percentage in number default null
1587 ,p_priority in number default null
1588 ,p_comments in varchar2 default null
1589 ,p_attribute_category in varchar2 default null
1590 ,p_attribute1 in varchar2 default null
1591 ,p_attribute2 in varchar2 default null
1592 ,p_attribute3 in varchar2 default null
1593 ,p_attribute4 in varchar2 default null
1594 ,p_attribute5 in varchar2 default null
1595 ,p_attribute6 in varchar2 default null
1596 ,p_attribute7 in varchar2 default null
1597 ,p_attribute8 in varchar2 default null
1598 ,p_attribute9 in varchar2 default null
1599 ,p_attribute10 in varchar2 default null
1600 ,p_attribute11 in varchar2 default null
1601 ,p_attribute12 in varchar2 default null
1602 ,p_attribute13 in varchar2 default null
1603 ,p_attribute14 in varchar2 default null
1604 ,p_attribute15 in varchar2 default null
1605 ,p_attribute16 in varchar2 default null
1606 ,p_attribute17 in varchar2 default null
1607 ,p_attribute18 in varchar2 default null
1608 ,p_attribute19 in varchar2 default null
1609 ,p_attribute20 in varchar2 default null
1610 ,p_payee_type in varchar2 default null
1611 ,p_payee_id in number default null
1612 ,p_prenote_date in date default null
1613 ,p_territory_code in varchar2 default null -- Bug 6469439
1614 /*Bug# 8717589*/
1615 ,p_ppm_information_category in varchar2 default null
1616 ,p_ppm_information1 in varchar2 default null
1617 ,p_ppm_information2 in varchar2 default null
1618 ,p_ppm_information3 in varchar2 default null
1619 ,p_ppm_information4 in varchar2 default null
1620 ,p_ppm_information5 in varchar2 default null
1621 ,p_ppm_information6 in varchar2 default null
1622 ,p_ppm_information7 in varchar2 default null
1623 ,p_ppm_information8 in varchar2 default null
1624 ,p_ppm_information9 in varchar2 default null
1625 ,p_ppm_information10 in varchar2 default null
1626 ,p_ppm_information11 in varchar2 default null
1627 ,p_ppm_information12 in varchar2 default null
1628 ,p_ppm_information13 in varchar2 default null
1629 ,p_ppm_information14 in varchar2 default null
1630 ,p_ppm_information15 in varchar2 default null
1631 ,p_ppm_information16 in varchar2 default null
1632 ,p_ppm_information17 in varchar2 default null
1633 ,p_ppm_information18 in varchar2 default null
1634 ,p_ppm_information19 in varchar2 default null
1635 ,p_ppm_information20 in varchar2 default null
1636 ,p_ppm_information21 in varchar2 default null
1637 ,p_ppm_information22 in varchar2 default null
1638 ,p_ppm_information23 in varchar2 default null
1639 ,p_ppm_information24 in varchar2 default null
1640 ,p_ppm_information25 in varchar2 default null
1641 ,p_ppm_information26 in varchar2 default null
1642 ,p_ppm_information27 in varchar2 default null
1643 ,p_ppm_information28 in varchar2 default null
1644 ,p_ppm_information29 in varchar2 default null
1645 ,p_ppm_information30 in varchar2 default null
1646 ,p_personal_payment_method_id out nocopy number
1647 ,p_external_account_id out nocopy number
1648 ,p_object_version_number out nocopy number
1649 ,p_effective_start_date out nocopy date
1650 ,p_effective_end_date out nocopy date
1651 ,p_comment_id out nocopy number
1652 ) is
1653 --
1654 -- Declare cursors and local variables
1655 --
1656 l_proc varchar2(72);
1657 l_valid varchar2(150);
1658 l_effective_date date;
1659 l_territory_code varchar2(30);
1660 --
1661 begin
1662 g_debug := hr_utility.debug_enabled;
1663 if g_debug then
1664 l_proc := g_package||'create_us_personal_pay_method';
1665 hr_utility.set_location('Entering:'|| l_proc, 5);
1666 end if;
1667 --
1668 l_effective_date := p_effective_date;
1669 --
1670 --
1671 hr_personal_pay_method_api.check_insert_legislation
1672 (p_assignment_id => p_assignment_id
1673 ,p_effective_date => l_effective_date
1674 ,p_leg_code => 'US');
1675 --
1676 if g_debug then
1677 hr_utility.set_location(l_proc, 7);
1678 end if;
1679 --
1680 if p_territory_code is null then
1681 l_territory_code := 'US';
1682 else
1683 l_territory_code := p_territory_code;
1684 end if;
1685 --
1686 -- Call the business process to create the personal payment method
1687 --
1688 hr_personal_pay_method_api.create_personal_pay_method
1689 (p_validate => p_validate
1690 ,p_effective_date => l_effective_date
1691 ,p_assignment_id => p_assignment_id
1692 ,p_run_type_id => p_run_type_id
1693 ,p_org_payment_method_id => p_org_payment_method_id
1694 ,p_amount => p_amount
1695 ,p_percentage => p_percentage
1696 ,p_priority => p_priority
1697 ,p_comments => p_comments
1698 ,p_attribute_category => p_attribute_category
1699 ,p_attribute1 => p_attribute1
1700 ,p_attribute2 => p_attribute2
1701 ,p_attribute3 => p_attribute3
1702 ,p_attribute4 => p_attribute4
1703 ,p_attribute5 => p_attribute5
1704 ,p_attribute6 => p_attribute6
1705 ,p_attribute7 => p_attribute7
1706 ,p_attribute8 => p_attribute8
1707 ,p_attribute9 => p_attribute9
1708 ,p_attribute10 => p_attribute10
1709 ,p_attribute11 => p_attribute11
1710 ,p_attribute12 => p_attribute12
1711 ,p_attribute13 => p_attribute13
1712 ,p_attribute14 => p_attribute14
1713 ,p_attribute15 => p_attribute15
1714 ,p_attribute16 => p_attribute16
1715 ,p_attribute17 => p_attribute17
1716 ,p_attribute18 => p_attribute18
1717 ,p_attribute19 => p_attribute19
1718 ,p_attribute20 => p_attribute20
1719 ,p_territory_code => l_territory_code --6469439
1720 ,p_segment1 => p_account_name
1721 ,p_segment2 => p_account_type
1722 ,p_segment3 => p_account_number
1723 ,p_segment4 => lpad(p_transit_code,9,'0')
1724 ,p_segment5 => p_bank_name
1725 ,p_segment6 => p_bank_branch
1726 ,p_payee_type => p_payee_type
1727 ,p_payee_id => p_payee_id
1728 ,p_ppm_information_category => p_ppm_information_category
1729 ,p_ppm_information1 => p_ppm_information1
1730 ,p_ppm_information2 => p_ppm_information2
1731 ,p_ppm_information3 => p_ppm_information3
1732 ,p_ppm_information4 => p_ppm_information4
1733 ,p_ppm_information5 => p_ppm_information5
1734 ,p_ppm_information6 => p_ppm_information6
1735 ,p_ppm_information7 => p_ppm_information7
1736 ,p_ppm_information8 => p_ppm_information8
1737 ,p_ppm_information9 => p_ppm_information9
1738 ,p_ppm_information10 => p_ppm_information10
1739 ,p_ppm_information11 => p_ppm_information11
1740 ,p_ppm_information12 => p_ppm_information12
1741 ,p_ppm_information13 => p_ppm_information13
1742 ,p_ppm_information14 => p_ppm_information14
1743 ,p_ppm_information15 => p_ppm_information15
1744 ,p_ppm_information16 => p_ppm_information16
1745 ,p_ppm_information17 => p_ppm_information17
1746 ,p_ppm_information18 => p_ppm_information18
1747 ,p_ppm_information19 => p_ppm_information19
1748 ,p_ppm_information20 => p_ppm_information20
1749 ,p_ppm_information21 => p_ppm_information21
1750 ,p_ppm_information22 => p_ppm_information22
1751 ,p_ppm_information23 => p_ppm_information23
1752 ,p_ppm_information24 => p_ppm_information24
1753 ,p_ppm_information25 => p_ppm_information25
1754 ,p_ppm_information26 => p_ppm_information26
1755 ,p_ppm_information27 => p_ppm_information27
1756 ,p_ppm_information28 => p_ppm_information28
1757 ,p_ppm_information29 => p_ppm_information29
1758 ,p_ppm_information30 => p_ppm_information30
1759 ,p_personal_payment_method_id => p_personal_payment_method_id
1760 ,p_external_account_id => p_external_account_id
1761 ,p_object_version_number => p_object_version_number
1762 ,p_effective_start_date => p_effective_start_date
1763 ,p_effective_end_date => p_effective_end_date
1764 ,p_comment_id => p_comment_id
1765 );
1766 --
1767 -- Update prenote date if external account is generated.
1768 --
1769 if p_prenote_date is not null and p_external_account_id is not null then
1770 --
1771 upd_prenote_date
1772 (p_personal_payment_method_id => p_personal_payment_method_id
1773 ,p_external_account_id => p_external_account_id
1774 ,p_effective_date => l_effective_date
1775 ,p_prenote_date => p_prenote_date);
1776 --
1777 end if;
1778 --
1779 if g_debug then
1780 hr_utility.set_location(' Leaving:'||l_proc, 10);
1781 end if;
1782 end create_us_personal_pay_method;
1783 --
1784 -- ----------------------------------------------------------------------------
1785 -- |--------------------< create_ca_personal_pay_method >---------------------|
1786 -- ----------------------------------------------------------------------------
1787 --
1788 procedure create_ca_personal_pay_method
1789 (p_validate in boolean default false
1790 ,p_effective_date in date
1791 ,p_assignment_id in number
1792 ,p_run_type_id in number default null
1793 ,p_org_payment_method_id in number
1794 ,p_account_name in varchar2
1795 ,p_account_number in varchar2
1796 ,p_transit_code in varchar2
1797 ,p_bank_name in varchar2
1798 ,p_bank_number in varchar2
1799 ,p_account_type in varchar2 default null
1800 ,p_bank_branch in varchar2 default null
1801 ,p_amount in number default null
1802 ,p_percentage in number default null
1803 ,p_priority in number default null
1804 ,p_comments in varchar2 default null
1805 ,p_attribute_category in varchar2 default null
1806 ,p_attribute1 in varchar2 default null
1807 ,p_attribute2 in varchar2 default null
1808 ,p_attribute3 in varchar2 default null
1809 ,p_attribute4 in varchar2 default null
1810 ,p_attribute5 in varchar2 default null
1811 ,p_attribute6 in varchar2 default null
1812 ,p_attribute7 in varchar2 default null
1813 ,p_attribute8 in varchar2 default null
1814 ,p_attribute9 in varchar2 default null
1815 ,p_attribute10 in varchar2 default null
1816 ,p_attribute11 in varchar2 default null
1817 ,p_attribute12 in varchar2 default null
1818 ,p_attribute13 in varchar2 default null
1819 ,p_attribute14 in varchar2 default null
1820 ,p_attribute15 in varchar2 default null
1821 ,p_attribute16 in varchar2 default null
1822 ,p_attribute17 in varchar2 default null
1823 ,p_attribute18 in varchar2 default null
1824 ,p_attribute19 in varchar2 default null
1825 ,p_attribute20 in varchar2 default null
1826 ,p_payee_type in varchar2 default null
1827 ,p_payee_id in number default null
1828 ,p_territory_code in varchar2 default null -- Bug 6469439
1829 /*Bug# 8717589*/
1830 ,p_ppm_information_category in varchar2 default null
1831 ,p_ppm_information1 in varchar2 default null
1832 ,p_ppm_information2 in varchar2 default null
1833 ,p_ppm_information3 in varchar2 default null
1834 ,p_ppm_information4 in varchar2 default null
1835 ,p_ppm_information5 in varchar2 default null
1836 ,p_ppm_information6 in varchar2 default null
1837 ,p_ppm_information7 in varchar2 default null
1838 ,p_ppm_information8 in varchar2 default null
1839 ,p_ppm_information9 in varchar2 default null
1840 ,p_ppm_information10 in varchar2 default null
1841 ,p_ppm_information11 in varchar2 default null
1842 ,p_ppm_information12 in varchar2 default null
1843 ,p_ppm_information13 in varchar2 default null
1844 ,p_ppm_information14 in varchar2 default null
1845 ,p_ppm_information15 in varchar2 default null
1846 ,p_ppm_information16 in varchar2 default null
1847 ,p_ppm_information17 in varchar2 default null
1848 ,p_ppm_information18 in varchar2 default null
1849 ,p_ppm_information19 in varchar2 default null
1850 ,p_ppm_information20 in varchar2 default null
1851 ,p_ppm_information21 in varchar2 default null
1852 ,p_ppm_information22 in varchar2 default null
1853 ,p_ppm_information23 in varchar2 default null
1854 ,p_ppm_information24 in varchar2 default null
1855 ,p_ppm_information25 in varchar2 default null
1856 ,p_ppm_information26 in varchar2 default null
1857 ,p_ppm_information27 in varchar2 default null
1858 ,p_ppm_information28 in varchar2 default null
1859 ,p_ppm_information29 in varchar2 default null
1860 ,p_ppm_information30 in varchar2 default null
1861 ,p_personal_payment_method_id out nocopy number
1862 ,p_external_account_id out nocopy number
1863 ,p_object_version_number out nocopy number
1864 ,p_effective_start_date out nocopy date
1865 ,p_effective_end_date out nocopy date
1866 ,p_comment_id out nocopy number
1867 ) is
1868 --
1869 -- Declare cursors and local variables
1870 --
1871 l_proc varchar2(72);
1872 l_valid varchar2(150);
1873 l_effective_date date;
1874 l_territory_code varchar2(30);
1875 --
1876 begin
1877 g_debug := hr_utility.debug_enabled;
1878 if g_debug then
1879 l_proc := g_package||'create_ca_personal_pay_method';
1880 hr_utility.set_location('Entering:'|| l_proc, 5);
1881 end if;
1882 --
1883 l_effective_date := p_effective_date;
1884 --
1885 --
1886 hr_personal_pay_method_api.check_insert_legislation
1887 (p_assignment_id => p_assignment_id
1888 ,p_effective_date => l_effective_date
1889 ,p_leg_code => 'CA');
1890 --
1891 if g_debug then
1892 hr_utility.set_location(l_proc, 7);
1893 end if;
1894 --
1895 if p_territory_code is null then
1896 l_territory_code := 'CA';
1897 else
1898 l_territory_code := p_territory_code;
1899 end if;
1900 --
1901 -- Call the business process to create the personal payment method
1902 --
1903 hr_personal_pay_method_api.create_personal_pay_method
1904 (p_validate => p_validate
1905 ,p_effective_date => l_effective_date
1906 ,p_assignment_id => p_assignment_id
1907 ,p_run_type_id => p_run_type_id
1908 ,p_org_payment_method_id => p_org_payment_method_id
1909 ,p_amount => p_amount
1910 ,p_percentage => p_percentage
1911 ,p_priority => p_priority
1912 ,p_comments => p_comments
1913 ,p_attribute_category => p_attribute_category
1914 ,p_attribute1 => p_attribute1
1915 ,p_attribute2 => p_attribute2
1916 ,p_attribute3 => p_attribute3
1917 ,p_attribute4 => p_attribute4
1918 ,p_attribute5 => p_attribute5
1919 ,p_attribute6 => p_attribute6
1920 ,p_attribute7 => p_attribute7
1921 ,p_attribute8 => p_attribute8
1922 ,p_attribute9 => p_attribute9
1923 ,p_attribute10 => p_attribute10
1924 ,p_attribute11 => p_attribute11
1925 ,p_attribute12 => p_attribute12
1926 ,p_attribute13 => p_attribute13
1927 ,p_attribute14 => p_attribute14
1928 ,p_attribute15 => p_attribute15
1929 ,p_attribute16 => p_attribute16
1930 ,p_attribute17 => p_attribute17
1931 ,p_attribute18 => p_attribute18
1932 ,p_attribute19 => p_attribute19
1933 ,p_attribute20 => p_attribute20
1934 ,p_territory_code => l_territory_code --6469439
1935 ,p_segment1 => p_account_name
1936 ,p_segment2 => p_account_type
1937 ,p_segment3 => p_account_number
1938 ,p_segment4 => lpad(p_transit_code,5,'0')
1939 ,p_segment5 => p_bank_name
1940 ,p_segment6 => p_bank_branch
1941 ,p_segment7 => p_bank_number
1942 ,p_payee_type => p_payee_type
1943 ,p_payee_id => p_payee_id
1944 ,p_ppm_information_category => p_ppm_information_category
1945 ,p_ppm_information1 => p_ppm_information1
1946 ,p_ppm_information2 => p_ppm_information2
1947 ,p_ppm_information3 => p_ppm_information3
1948 ,p_ppm_information4 => p_ppm_information4
1949 ,p_ppm_information5 => p_ppm_information5
1950 ,p_ppm_information6 => p_ppm_information6
1951 ,p_ppm_information7 => p_ppm_information7
1952 ,p_ppm_information8 => p_ppm_information8
1953 ,p_ppm_information9 => p_ppm_information9
1954 ,p_ppm_information10 => p_ppm_information10
1955 ,p_ppm_information11 => p_ppm_information11
1956 ,p_ppm_information12 => p_ppm_information12
1957 ,p_ppm_information13 => p_ppm_information13
1958 ,p_ppm_information14 => p_ppm_information14
1959 ,p_ppm_information15 => p_ppm_information15
1960 ,p_ppm_information16 => p_ppm_information16
1961 ,p_ppm_information17 => p_ppm_information17
1962 ,p_ppm_information18 => p_ppm_information18
1963 ,p_ppm_information19 => p_ppm_information19
1964 ,p_ppm_information20 => p_ppm_information20
1965 ,p_ppm_information21 => p_ppm_information21
1966 ,p_ppm_information22 => p_ppm_information22
1967 ,p_ppm_information23 => p_ppm_information23
1968 ,p_ppm_information24 => p_ppm_information24
1969 ,p_ppm_information25 => p_ppm_information25
1970 ,p_ppm_information26 => p_ppm_information26
1971 ,p_ppm_information27 => p_ppm_information27
1972 ,p_ppm_information28 => p_ppm_information28
1973 ,p_ppm_information29 => p_ppm_information29
1974 ,p_ppm_information30 => p_ppm_information30
1975 ,p_personal_payment_method_id => p_personal_payment_method_id
1976 ,p_external_account_id => p_external_account_id
1977 ,p_object_version_number => p_object_version_number
1978 ,p_effective_start_date => p_effective_start_date
1979 ,p_effective_end_date => p_effective_end_date
1980 ,p_comment_id => p_comment_id
1981 );
1982 --
1983 if g_debug then
1984 hr_utility.set_location(' Leaving:'||l_proc, 8);
1985 end if;
1986 end create_ca_personal_pay_method;
1987 --
1988 -- ----------------------------------------------------------------------------
1989 -- |----------------------< update_personal_pay_method >----------------------|
1990 -- ----------------------------------------------------------------------------
1991 --
1992 procedure update_personal_pay_method
1993 (p_validate in boolean default false
1994 ,p_effective_date in date
1995 ,p_datetrack_update_mode in varchar2
1996 ,p_personal_payment_method_id in number
1997 ,p_object_version_number in out nocopy number
1998 ,p_amount in number default hr_api.g_number
1999 ,p_comments in varchar2 default hr_api.g_varchar2
2000 ,p_percentage in number default hr_api.g_number
2001 ,p_priority in number default hr_api.g_number
2002 ,p_attribute_category in varchar2 default hr_api.g_varchar2
2003 ,p_attribute1 in varchar2 default hr_api.g_varchar2
2004 ,p_attribute2 in varchar2 default hr_api.g_varchar2
2005 ,p_attribute3 in varchar2 default hr_api.g_varchar2
2006 ,p_attribute4 in varchar2 default hr_api.g_varchar2
2007 ,p_attribute5 in varchar2 default hr_api.g_varchar2
2008 ,p_attribute6 in varchar2 default hr_api.g_varchar2
2009 ,p_attribute7 in varchar2 default hr_api.g_varchar2
2010 ,p_attribute8 in varchar2 default hr_api.g_varchar2
2011 ,p_attribute9 in varchar2 default hr_api.g_varchar2
2012 ,p_attribute10 in varchar2 default hr_api.g_varchar2
2013 ,p_attribute11 in varchar2 default hr_api.g_varchar2
2014 ,p_attribute12 in varchar2 default hr_api.g_varchar2
2015 ,p_attribute13 in varchar2 default hr_api.g_varchar2
2016 ,p_attribute14 in varchar2 default hr_api.g_varchar2
2017 ,p_attribute15 in varchar2 default hr_api.g_varchar2
2018 ,p_attribute16 in varchar2 default hr_api.g_varchar2
2019 ,p_attribute17 in varchar2 default hr_api.g_varchar2
2020 ,p_attribute18 in varchar2 default hr_api.g_varchar2
2021 ,p_attribute19 in varchar2 default hr_api.g_varchar2
2022 ,p_attribute20 in varchar2 default hr_api.g_varchar2
2023 ,p_territory_code in varchar2 default hr_api.g_varchar2
2024 ,p_segment1 in varchar2 default hr_api.g_varchar2
2025 ,p_segment2 in varchar2 default hr_api.g_varchar2
2026 ,p_segment3 in varchar2 default hr_api.g_varchar2
2027 ,p_segment4 in varchar2 default hr_api.g_varchar2
2028 ,p_segment5 in varchar2 default hr_api.g_varchar2
2029 ,p_segment6 in varchar2 default hr_api.g_varchar2
2030 ,p_segment7 in varchar2 default hr_api.g_varchar2
2031 ,p_segment8 in varchar2 default hr_api.g_varchar2
2032 ,p_segment9 in varchar2 default hr_api.g_varchar2
2033 ,p_segment10 in varchar2 default hr_api.g_varchar2
2034 ,p_segment11 in varchar2 default hr_api.g_varchar2
2035 ,p_segment12 in varchar2 default hr_api.g_varchar2
2036 ,p_segment13 in varchar2 default hr_api.g_varchar2
2037 ,p_segment14 in varchar2 default hr_api.g_varchar2
2038 ,p_segment15 in varchar2 default hr_api.g_varchar2
2039 ,p_segment16 in varchar2 default hr_api.g_varchar2
2040 ,p_segment17 in varchar2 default hr_api.g_varchar2
2041 ,p_segment18 in varchar2 default hr_api.g_varchar2
2042 ,p_segment19 in varchar2 default hr_api.g_varchar2
2043 ,p_segment20 in varchar2 default hr_api.g_varchar2
2044 ,p_segment21 in varchar2 default hr_api.g_varchar2
2045 ,p_segment22 in varchar2 default hr_api.g_varchar2
2046 ,p_segment23 in varchar2 default hr_api.g_varchar2
2047 ,p_segment24 in varchar2 default hr_api.g_varchar2
2048 ,p_segment25 in varchar2 default hr_api.g_varchar2
2049 ,p_segment26 in varchar2 default hr_api.g_varchar2
2050 ,p_segment27 in varchar2 default hr_api.g_varchar2
2051 ,p_segment28 in varchar2 default hr_api.g_varchar2
2052 ,p_segment29 in varchar2 default hr_api.g_varchar2
2053 ,p_segment30 in varchar2 default hr_api.g_varchar2
2054 /** sbilling **/
2055 ,p_concat_segments in varchar2 default null
2056 ,p_payee_type in varchar2 default hr_api.g_varchar2
2057 ,p_payee_id in number default hr_api.g_number
2058 ,p_ppm_information_category in varchar2 default hr_api.g_varchar2 --Bug 6439573
2059 ,p_ppm_information1 in varchar2 default hr_api.g_varchar2
2060 ,p_ppm_information2 in varchar2 default hr_api.g_varchar2
2061 ,p_ppm_information3 in varchar2 default hr_api.g_varchar2
2062 ,p_ppm_information4 in varchar2 default hr_api.g_varchar2
2063 ,p_ppm_information5 in varchar2 default hr_api.g_varchar2
2064 ,p_ppm_information6 in varchar2 default hr_api.g_varchar2
2065 ,p_ppm_information7 in varchar2 default hr_api.g_varchar2
2066 ,p_ppm_information8 in varchar2 default hr_api.g_varchar2
2067 ,p_ppm_information9 in varchar2 default hr_api.g_varchar2
2068 ,p_ppm_information10 in varchar2 default hr_api.g_varchar2
2069 ,p_ppm_information11 in varchar2 default hr_api.g_varchar2
2070 ,p_ppm_information12 in varchar2 default hr_api.g_varchar2
2071 ,p_ppm_information13 in varchar2 default hr_api.g_varchar2
2072 ,p_ppm_information14 in varchar2 default hr_api.g_varchar2
2073 ,p_ppm_information15 in varchar2 default hr_api.g_varchar2
2074 ,p_ppm_information16 in varchar2 default hr_api.g_varchar2
2075 ,p_ppm_information17 in varchar2 default hr_api.g_varchar2
2076 ,p_ppm_information18 in varchar2 default hr_api.g_varchar2
2077 ,p_ppm_information19 in varchar2 default hr_api.g_varchar2
2078 ,p_ppm_information20 in varchar2 default hr_api.g_varchar2
2079 ,p_ppm_information21 in varchar2 default hr_api.g_varchar2
2080 ,p_ppm_information22 in varchar2 default hr_api.g_varchar2
2081 ,p_ppm_information23 in varchar2 default hr_api.g_varchar2
2082 ,p_ppm_information24 in varchar2 default hr_api.g_varchar2
2083 ,p_ppm_information25 in varchar2 default hr_api.g_varchar2
2084 ,p_ppm_information26 in varchar2 default hr_api.g_varchar2
2085 ,p_ppm_information27 in varchar2 default hr_api.g_varchar2
2086 ,p_ppm_information28 in varchar2 default hr_api.g_varchar2
2087 ,p_ppm_information29 in varchar2 default hr_api.g_varchar2
2088 ,p_ppm_information30 in varchar2 default hr_api.g_varchar2
2089 ,p_comment_id out nocopy number
2090 ,p_external_account_id out nocopy number
2091 ,p_effective_start_date out nocopy date
2092 ,p_effective_end_date out nocopy date
2093 ) is
2094 --
2095 -- Declare cursors and local variables
2096 --
2097 --
2098 l_proc varchar2(72);
2099 l_business_group_id per_assignments_f.business_group_id%TYPE;
2100 l_validate boolean := FALSE;
2101 l_external_account_id
2102 pay_personal_payment_methods_f.external_account_id%TYPE;
2103 l_object_version_number
2104 pay_external_accounts.object_version_number%TYPE;
2105 l_exa_ovn number;
2106 l_effective_date date;
2107 l_ppm_information_category pay_personal_payment_methods_f.ppm_information_category%TYPE;
2108 --
2109 -- Declare OUT variables
2110 --
2111 l_comment_id
2112 pay_personal_payment_methods_f.comment_id%TYPE;
2113 l_effective_start_date
2114 pay_personal_payment_methods_f.effective_start_date%TYPE;
2115 l_effective_end_date
2116 pay_personal_payment_methods_f.effective_end_date%TYPE;
2117 l_category varchar(2000);
2118 l_territory_code varchar2(2000);
2119 l_exa_territory_code varchar2(2000);
2120 --
2121 cursor bgsel is
2122 select ppm.business_group_id,
2123 ppm.external_account_id
2124 from pay_personal_payment_methods_f ppm
2125 where ppm.personal_payment_method_id = p_personal_payment_method_id
2126 and p_effective_date between ppm.effective_start_date
2127 and ppm.effective_end_date;
2128 --
2129 cursor ovnsel is
2130 select pea.object_version_number
2131 , pea.territory_code
2132 from pay_external_accounts pea
2133 where pea.external_account_id = l_external_account_id;
2134 --
2135 cursor csr_chk_pay_type is
2136 select pyt.category
2137 from pay_personal_payment_methods_f ppm
2138 , pay_org_payment_methods_f opm
2139 , pay_payment_types pyt
2140 where ppm.personal_payment_method_id = p_personal_payment_method_id
2141 and p_effective_date between
2142 ppm.effective_start_date and ppm.effective_end_date
2143 and opm.org_payment_method_id = ppm.org_payment_method_id
2144 and p_effective_date between
2145 opm.effective_start_date and opm.effective_end_date
2146 and opm.payment_type_id = pyt.payment_type_id
2147 ;
2148 --
2149 cursor csr_ppm_info_category ( p_personal_payment_method_id number,
2150 p_effective_date date) is
2151 select decode(ppt.territory_code,null,null,ppt.territory_code||'_')||UPPER(ppt.payment_type_name) ppm_information_category
2152 from pay_payment_types ppt,
2153 pay_org_payment_methods_f opm,
2154 pay_personal_payment_methods_f ppm
2155 where ppm.personal_payment_method_id = p_personal_payment_method_id
2156 and p_effective_date between ppm.effective_start_date and ppm.effective_end_date
2157 and opm.org_payment_method_id = ppm.org_payment_method_id
2158 and p_effective_date between opm.effective_start_date and opm.effective_end_date
2159 and opm.payment_type_id = ppt.payment_type_id;
2160 --
2161 --
2162 -- In Out parameter
2163 --
2164 l_object_version_number1 number;
2165 --
2166 begin
2167 g_debug := hr_utility.debug_enabled;
2168 if g_debug then
2169 l_proc := g_package||'update_personal_pay_method';
2170 hr_utility.set_location('Entering:'|| l_proc, 5);
2171 end if;
2172 --
2173 -- Assign in-out parameters to local variable
2174 -- and issue the savepoint.
2175 --
2176 l_object_version_number1 := p_object_version_number;
2177 --
2178 savepoint update_personal_pay_method;
2179 --
2180 --
2181 -- Check that p_personal_payment_method_id and p_effective_date are not null
2182 -- as they are used by the cursor to derive the business group.
2183 --
2184 hr_api.mandatory_arg_error
2185 (p_api_name => l_proc,
2186 p_argument => 'personal_payment_method_id',
2187 p_argument_value => p_personal_payment_method_id);
2188
2189 hr_api.mandatory_arg_error
2190 (p_api_name => l_proc,
2191 p_argument => 'effective_date',
2192 p_argument_value => p_effective_date);
2193 --
2194 if g_debug then
2195 hr_utility.set_location(l_proc, 6);
2196 end if;
2197 --
2198 l_effective_date := trunc(p_effective_date);
2199 --
2200 begin
2201 --
2202 -- Start of API User Hook for the before hook of update_personal_pay_method
2203 --
2204 hr_personal_pay_method_bk2.update_personal_pay_method_b
2205 (p_effective_date => l_effective_date
2206 ,p_datetrack_update_mode => p_datetrack_update_mode
2207 ,p_personal_payment_method_id => p_personal_payment_method_id
2208 ,p_object_version_number => p_object_version_number
2209 ,p_amount => p_amount
2210 ,p_comments => p_comments
2211 ,p_percentage => p_percentage
2212 ,p_priority => p_priority
2213 ,p_attribute_category => p_attribute_category
2214 ,p_attribute1 => p_attribute1
2215 ,p_attribute2 => p_attribute2
2216 ,p_attribute3 => p_attribute3
2217 ,p_attribute4 => p_attribute4
2218 ,p_attribute5 => p_attribute5
2219 ,p_attribute6 => p_attribute6
2220 ,p_attribute7 => p_attribute7
2221 ,p_attribute8 => p_attribute8
2222 ,p_attribute9 => p_attribute9
2223 ,p_attribute10 => p_attribute10
2224 ,p_attribute11 => p_attribute11
2225 ,p_attribute12 => p_attribute12
2226 ,p_attribute13 => p_attribute13
2227 ,p_attribute14 => p_attribute14
2228 ,p_attribute15 => p_attribute15
2229 ,p_attribute16 => p_attribute16
2230 ,p_attribute17 => p_attribute17
2231 ,p_attribute18 => p_attribute18
2232 ,p_attribute19 => p_attribute19
2233 ,p_attribute20 => p_attribute20
2234 ,p_territory_code => p_territory_code
2235 ,p_segment1 => p_segment1
2236 ,p_segment2 => p_segment2
2237 ,p_segment3 => p_segment3
2238 -- ,p_segment4 => lpad(p_segment4,9,'0')
2239 ,p_segment4 => p_segment4
2240 ,p_segment5 => p_segment5
2241 ,p_segment6 => p_segment6
2242 ,p_segment7 => p_segment7
2243 ,p_segment8 => p_segment8
2244 ,p_segment9 => p_segment9
2245 ,p_segment10 => p_segment10
2246 ,p_segment11 => p_segment11
2247 ,p_segment12 => p_segment12
2248 ,p_segment13 => p_segment13
2249 ,p_segment14 => p_segment14
2250 ,p_segment15 => p_segment15
2251 ,p_segment16 => p_segment16
2252 ,p_segment17 => p_segment17
2253 ,p_segment18 => p_segment18
2254 ,p_segment19 => p_segment19
2255 ,p_segment20 => p_segment20
2256 ,p_segment21 => p_segment21
2257 ,p_segment22 => p_segment22
2258 ,p_segment23 => p_segment23
2259 ,p_segment24 => p_segment24
2260 ,p_segment25 => p_segment25
2261 ,p_segment26 => p_segment26
2262 ,p_segment27 => p_segment27
2263 ,p_segment28 => p_segment28
2264 ,p_segment29 => p_segment29
2265 ,p_segment30 => p_segment30
2266 ,p_payee_type => p_payee_type
2267 ,p_payee_id => p_payee_id
2268 ,p_ppm_information1 => p_ppm_information1
2269 ,p_ppm_information2 => p_ppm_information2
2270 ,p_ppm_information3 => p_ppm_information3
2271 ,p_ppm_information4 => p_ppm_information4
2272 ,p_ppm_information5 => p_ppm_information5
2273 ,p_ppm_information6 => p_ppm_information6
2274 ,p_ppm_information7 => p_ppm_information7
2275 ,p_ppm_information8 => p_ppm_information8
2276 ,p_ppm_information9 => p_ppm_information9
2277 ,p_ppm_information10 => p_ppm_information10
2278 ,p_ppm_information11 => p_ppm_information11
2279 ,p_ppm_information12 => p_ppm_information12
2280 ,p_ppm_information13 => p_ppm_information13
2281 ,p_ppm_information14 => p_ppm_information14
2282 ,p_ppm_information15 => p_ppm_information15
2283 ,p_ppm_information16 => p_ppm_information16
2284 ,p_ppm_information17 => p_ppm_information17
2285 ,p_ppm_information18 => p_ppm_information18
2286 ,p_ppm_information19 => p_ppm_information19
2287 ,p_ppm_information20 => p_ppm_information20
2288 ,p_ppm_information21 => p_ppm_information21
2289 ,p_ppm_information22 => p_ppm_information22
2290 ,p_ppm_information23 => p_ppm_information23
2291 ,p_ppm_information24 => p_ppm_information24
2292 ,p_ppm_information25 => p_ppm_information25
2293 ,p_ppm_information26 => p_ppm_information26
2294 ,p_ppm_information27 => p_ppm_information27
2295 ,p_ppm_information28 => p_ppm_information28
2296 ,p_ppm_information29 => p_ppm_information29
2297 ,p_ppm_information30 => p_ppm_information30
2298 ,p_ppm_information_category => p_ppm_information_category
2299 );
2300 exception
2301 when hr_api.cannot_find_prog_unit then
2302 hr_api.cannot_find_prog_unit_error
2303 (p_module_name => 'UPDATE_PERSONAL_PAY_METHOD'
2304 ,p_hook_type => 'BP'
2305 );
2306 --
2307 -- End of API User Hook for the before hook of update_personal_pay_method
2308 --
2309 end;
2310 --
2311 -- Derive the business group id, using the personal payment method id.
2312 --
2313 open bgsel;
2314 fetch bgsel
2315 into l_business_group_id,
2316 l_external_account_id;
2317 --
2318 if bgsel%notfound then
2319 close bgsel;
2320 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
2321 Hr_utility.raise_error;
2322 end if;
2323 --
2324 close bgsel;
2325 --
2326 if l_external_account_id is not null then
2327 open ovnsel;
2328 fetch ovnsel
2329 into l_object_version_number
2330 , l_territory_code;
2331 if ovnsel%notfound then
2332 close ovnsel;
2333 --
2334 -- The external account primary key is invalid, so raise an error.
2335 --
2336 hr_utility.set_message(801, 'HR_51457_PPM_INVALID_OVN');
2337 hr_utility.raise_error;
2338 end if;
2339 close ovnsel;
2340 end if;
2341 --
2342 if g_debug then
2343 hr_utility.set_location(l_proc, 7);
2344 end if;
2345 --
2346 -- Check that if payment type of the organization payment method
2347 -- is not 'MT' then all external account details should be null.
2348 -- If the values have been defaulted then assume that the code is
2349 -- updating a valid record.
2350 --
2351 open csr_chk_pay_type;
2352 fetch csr_chk_pay_type into l_category;
2353 close csr_chk_pay_type;
2354 --
2355 if l_category <> 'MT'and
2356 (nvl(p_segment1, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2357 nvl(p_segment2, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2358 nvl(p_segment3, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2359 nvl(p_segment4, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2360 nvl(p_segment5, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2361 nvl(p_segment6, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2362 nvl(p_segment7, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2363 nvl(p_segment8, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2364 nvl(p_segment9, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2365 nvl(p_segment10, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2366 nvl(p_segment11, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2367 nvl(p_segment12, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2368 nvl(p_segment13, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2369 nvl(p_segment14, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2370 nvl(p_segment15, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2371 nvl(p_segment16, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2372 nvl(p_segment17, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2373 nvl(p_segment18, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2374 nvl(p_segment19, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2375 nvl(p_segment20, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2376 nvl(p_segment21, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2377 nvl(p_segment22, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2378 nvl(p_segment23, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2379 nvl(p_segment24, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2380 nvl(p_segment25, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2381 nvl(p_segment26, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2382 nvl(p_segment27, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2383 nvl(p_segment28, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2384 nvl(p_segment29, hr_api.g_varchar2) <> hr_api.g_varchar2 or
2385 nvl(p_segment30, hr_api.g_varchar2) <> hr_api.g_varchar2) then
2386 --
2387 -- Raise Error
2388 --
2389 hr_utility.set_message(801, 'HR_51377_PPM_NON_MAG_TAPE_SEGM');
2390 hr_utility.raise_error;
2391 --
2392 elsif l_category = 'MT' then
2393 --
2394 -- Call table handler pay_exa_upd to control the processing of the external
2395 -- account combination keyflex.
2396 --
2397
2398 -- Bug #3829284. When territory code is defaulted with hr_api.g_varchar2
2399 -- pass the derived territory code.
2400
2401 l_exa_territory_code := p_territory_code;
2402
2403 if p_territory_code = hr_api.g_varchar2 then
2404
2405 l_exa_territory_code := l_territory_code;
2406
2407 end if;
2408
2409 pay_exa_upd.upd_or_sel
2410 (p_segment1 => p_segment1
2411 ,p_segment2 => p_segment2
2412 ,p_segment3 => p_segment3
2413 ,p_segment4 => p_segment4
2414 ,p_segment5 => p_segment5
2415 ,p_segment6 => p_segment6
2416 ,p_segment7 => p_segment7
2417 ,p_segment8 => p_segment8
2418 ,p_segment9 => p_segment9
2419 ,p_segment10 => p_segment10
2420 ,p_segment11 => p_segment11
2421 ,p_segment12 => p_segment12
2422 ,p_segment13 => p_segment13
2423 ,p_segment14 => p_segment14
2424 ,p_segment15 => p_segment15
2425 ,p_segment16 => p_segment16
2426 ,p_segment17 => p_segment17
2427 ,p_segment18 => p_segment18
2428 ,p_segment19 => p_segment19
2429 ,p_segment20 => p_segment20
2430 ,p_segment21 => p_segment21
2431 ,p_segment22 => p_segment22
2432 ,p_segment23 => p_segment23
2433 ,p_segment24 => p_segment24
2434 ,p_segment25 => p_segment25
2435 ,p_segment26 => p_segment26
2436 ,p_segment27 => p_segment27
2437 ,p_segment28 => p_segment28
2438 ,p_segment29 => p_segment29
2439 ,p_segment30 => p_segment30
2440 /** sbilling **/
2441 ,p_concat_segments => p_concat_segments
2442 ,p_business_group_id => l_business_group_id
2443 ,p_territory_code => l_exa_territory_code
2444 ,p_external_account_id => l_external_account_id
2445 ,p_object_version_number => l_exa_ovn
2446 ,p_validate => l_validate
2447 --
2448 -- Special p_prenote_date value after bug2307154 changes.
2449 --
2450 ,p_prenote_date => hr_api.g_date
2451 );
2452 end if;
2453 --
2454 -- Bug 3940935. Derive PPM_INFORMATION_CATEGORY.
2455 --
2456 l_ppm_information_category := hr_api.g_varchar2;
2457
2458 if ((p_ppm_information1 <> hr_api.g_varchar2 or
2459 p_ppm_information2 <> hr_api.g_varchar2 or
2460 p_ppm_information3 <> hr_api.g_varchar2 or
2461 p_ppm_information4 <> hr_api.g_varchar2 or
2462 p_ppm_information5 <> hr_api.g_varchar2 or
2463 p_ppm_information6 <> hr_api.g_varchar2 or
2464 p_ppm_information7 <> hr_api.g_varchar2 or
2465 p_ppm_information8 <> hr_api.g_varchar2 or
2466 p_ppm_information9 <> hr_api.g_varchar2 or
2467 p_ppm_information10 <> hr_api.g_varchar2 or
2468 p_ppm_information11 <> hr_api.g_varchar2 or
2469 p_ppm_information12 <> hr_api.g_varchar2 or
2470 p_ppm_information13 <> hr_api.g_varchar2 or
2471 p_ppm_information14 <> hr_api.g_varchar2 or
2472 p_ppm_information15 <> hr_api.g_varchar2 or
2473 p_ppm_information16 <> hr_api.g_varchar2 or
2474 p_ppm_information17 <> hr_api.g_varchar2 or
2475 p_ppm_information18 <> hr_api.g_varchar2 or
2476 p_ppm_information19 <> hr_api.g_varchar2 or
2477 p_ppm_information20 <> hr_api.g_varchar2 or
2478 p_ppm_information21 <> hr_api.g_varchar2 or
2479 p_ppm_information22 <> hr_api.g_varchar2 or
2480 p_ppm_information23 <> hr_api.g_varchar2 or
2481 p_ppm_information24 <> hr_api.g_varchar2 or
2482 p_ppm_information25 <> hr_api.g_varchar2 or
2483 p_ppm_information26 <> hr_api.g_varchar2 or
2484 p_ppm_information27 <> hr_api.g_varchar2 or
2485 p_ppm_information28 <> hr_api.g_varchar2 or
2486 p_ppm_information29 <> hr_api.g_varchar2 or
2487 p_ppm_information30 <> hr_api.g_varchar2 ) and
2488 p_ppm_information_category = hr_api.g_varchar2 )then --6439573
2489
2490 open csr_ppm_info_category ( p_personal_payment_method_id => p_personal_payment_method_id
2491 ,p_effective_date => p_effective_date );
2492
2493 fetch csr_ppm_info_category into l_ppm_information_category;
2494 if (csr_ppm_info_category%notfound) then
2495 close csr_ppm_info_category;
2496 fnd_message.set_name('PAY', 'HR_7462_PLK_INVLD_VALUE');
2497 fnd_message.set_token('COLUMN_NAME', 'PPM_INFORMATION_CATEGORY');
2498 fnd_message.raise_error;
2499 end if;
2500 close csr_ppm_info_category;
2501 /* Bug 6439573 ppm_info_category is not null, then assigned to the local one */
2502 elsif p_ppm_information_category <> hr_api.g_varchar2 then
2503 l_ppm_information_category := p_ppm_information_category;
2504 end if;
2505 --
2506 if g_debug then
2507 hr_utility.set_location(l_proc, 8);
2508 end if;
2509 --
2510 -- Call the row handler to update the personal payment method.
2511 --
2512 pay_ppm_upd.upd
2513 (p_personal_payment_method_id => p_personal_payment_method_id
2514 ,p_effective_start_date => l_effective_start_date
2515 ,p_effective_end_date => l_effective_end_date
2516 ,p_external_account_id => l_external_account_id
2517 ,p_amount => p_amount
2518 ,p_comment_id => l_comment_id
2519 ,p_comments => p_comments
2520 ,p_percentage => p_percentage
2521 ,p_priority => p_priority
2522 ,p_attribute_category => p_attribute_category
2523 ,p_attribute1 => p_attribute1
2524 ,p_attribute2 => p_attribute2
2525 ,p_attribute3 => p_attribute3
2526 ,p_attribute4 => p_attribute4
2527 ,p_attribute5 => p_attribute5
2528 ,p_attribute6 => p_attribute6
2529 ,p_attribute7 => p_attribute7
2530 ,p_attribute8 => p_attribute8
2531 ,p_attribute9 => p_attribute9
2532 ,p_attribute10 => p_attribute10
2533 ,p_attribute11 => p_attribute11
2534 ,p_attribute12 => p_attribute12
2535 ,p_attribute13 => p_attribute13
2536 ,p_attribute14 => p_attribute14
2537 ,p_attribute15 => p_attribute15
2538 ,p_attribute16 => p_attribute16
2539 ,p_attribute17 => p_attribute17
2540 ,p_attribute18 => p_attribute18
2541 ,p_attribute19 => p_attribute19
2542 ,p_attribute20 => p_attribute20
2543 ,p_object_version_number => p_object_version_number
2544 ,p_payee_type => p_payee_type
2545 ,p_payee_id => p_payee_id
2546 ,p_effective_date => l_effective_date
2547 ,p_datetrack_mode => p_datetrack_update_mode
2548 ,p_validate => l_validate
2549 ,p_ppm_information_category => l_ppm_information_category
2550 ,p_ppm_information1 => p_ppm_information1
2551 ,p_ppm_information2 => p_ppm_information2
2552 ,p_ppm_information3 => p_ppm_information3
2553 ,p_ppm_information4 => p_ppm_information4
2554 ,p_ppm_information5 => p_ppm_information5
2555 ,p_ppm_information6 => p_ppm_information6
2556 ,p_ppm_information7 => p_ppm_information7
2557 ,p_ppm_information8 => p_ppm_information8
2558 ,p_ppm_information9 => p_ppm_information9
2559 ,p_ppm_information10 => p_ppm_information10
2560 ,p_ppm_information11 => p_ppm_information11
2561 ,p_ppm_information12 => p_ppm_information12
2562 ,p_ppm_information13 => p_ppm_information13
2563 ,p_ppm_information14 => p_ppm_information14
2564 ,p_ppm_information15 => p_ppm_information15
2565 ,p_ppm_information16 => p_ppm_information16
2566 ,p_ppm_information17 => p_ppm_information17
2567 ,p_ppm_information18 => p_ppm_information18
2568 ,p_ppm_information19 => p_ppm_information19
2569 ,p_ppm_information20 => p_ppm_information20
2570 ,p_ppm_information21 => p_ppm_information21
2571 ,p_ppm_information22 => p_ppm_information22
2572 ,p_ppm_information23 => p_ppm_information23
2573 ,p_ppm_information24 => p_ppm_information24
2574 ,p_ppm_information25 => p_ppm_information25
2575 ,p_ppm_information26 => p_ppm_information26
2576 ,p_ppm_information27 => p_ppm_information27
2577 ,p_ppm_information28 => p_ppm_information28
2578 ,p_ppm_information29 => p_ppm_information29
2579 ,p_ppm_information30 => p_ppm_information30
2580 );
2581 --
2582 -- Stamp the prenote_date on the external accounts row for 'US' magtape
2583 -- payments only.
2584 --
2585 if g_debug then
2586 hr_utility.set_location(l_proc, 9);
2587 end if;
2588 if l_territory_code = 'US' and l_category = 'MT' then
2589 stamp_prenote_date
2590 (p_personal_payment_method_id => p_personal_payment_method_id
2591 ,p_effective_date => l_effective_date
2592 ,p_external_account_id => l_external_account_id
2593 ,p_external_account_ovn => l_exa_ovn
2594 );
2595 end if;
2596 --
2597 if g_debug then
2598 hr_utility.set_location(l_proc, 10);
2599 end if;
2600 --
2601 begin
2602 --
2603 -- Start of API User Hook for the after hook of update_personal_pay_method
2604 --
2605 hr_personal_pay_method_bk2.update_personal_pay_method_a
2606 (p_effective_date => l_effective_date
2607 ,p_datetrack_update_mode => p_datetrack_update_mode
2608 ,p_personal_payment_method_id => p_personal_payment_method_id
2609 ,p_object_version_number => p_object_version_number
2610 ,p_amount => p_amount
2611 ,p_comments => p_comments
2612 ,p_percentage => p_percentage
2613 ,p_priority => p_priority
2614 ,p_attribute_category => p_attribute_category
2615 ,p_attribute1 => p_attribute1
2616 ,p_attribute2 => p_attribute2
2617 ,p_attribute3 => p_attribute3
2618 ,p_attribute4 => p_attribute4
2619 ,p_attribute5 => p_attribute5
2620 ,p_attribute6 => p_attribute6
2621 ,p_attribute7 => p_attribute7
2622 ,p_attribute8 => p_attribute8
2623 ,p_attribute9 => p_attribute9
2624 ,p_attribute10 => p_attribute10
2625 ,p_attribute11 => p_attribute11
2626 ,p_attribute12 => p_attribute12
2627 ,p_attribute13 => p_attribute13
2628 ,p_attribute14 => p_attribute14
2629 ,p_attribute15 => p_attribute15
2630 ,p_attribute16 => p_attribute16
2631 ,p_attribute17 => p_attribute17
2632 ,p_attribute18 => p_attribute18
2633 ,p_attribute19 => p_attribute19
2634 ,p_attribute20 => p_attribute20
2635 ,p_territory_code => p_territory_code
2636 ,p_segment1 => p_segment1
2637 ,p_segment2 => p_segment2
2638 ,p_segment3 => p_segment3
2639 -- ,p_segment4 => lpad(p_segment4,9,'0')
2640 ,p_segment4 => p_segment4
2641 ,p_segment5 => p_segment5
2642 ,p_segment6 => p_segment6
2643 ,p_segment7 => p_segment7
2644 ,p_segment8 => p_segment8
2645 ,p_segment9 => p_segment9
2646 ,p_segment10 => p_segment10
2647 ,p_segment11 => p_segment11
2648 ,p_segment12 => p_segment12
2649 ,p_segment13 => p_segment13
2650 ,p_segment14 => p_segment14
2651 ,p_segment15 => p_segment15
2652 ,p_segment16 => p_segment16
2653 ,p_segment17 => p_segment17
2654 ,p_segment18 => p_segment18
2655 ,p_segment19 => p_segment19
2656 ,p_segment20 => p_segment20
2657 ,p_segment21 => p_segment21
2658 ,p_segment22 => p_segment22
2659 ,p_segment23 => p_segment23
2660 ,p_segment24 => p_segment24
2661 ,p_segment25 => p_segment25
2662 ,p_segment26 => p_segment26
2663 ,p_segment27 => p_segment27
2664 ,p_segment28 => p_segment28
2665 ,p_segment29 => p_segment29
2666 ,p_segment30 => p_segment30
2667 ,p_payee_type => p_payee_type
2668 ,p_payee_id => p_payee_id
2669 ,p_comment_id => l_comment_id
2670 ,p_external_account_id => l_external_account_id
2671 ,p_effective_start_date => l_effective_start_date
2672 ,p_effective_end_date => l_effective_end_date
2673 ,p_ppm_information1 => p_ppm_information1
2674 ,p_ppm_information2 => p_ppm_information2
2675 ,p_ppm_information3 => p_ppm_information3
2676 ,p_ppm_information4 => p_ppm_information4
2677 ,p_ppm_information5 => p_ppm_information5
2678 ,p_ppm_information6 => p_ppm_information6
2679 ,p_ppm_information7 => p_ppm_information7
2680 ,p_ppm_information8 => p_ppm_information8
2681 ,p_ppm_information9 => p_ppm_information9
2682 ,p_ppm_information10 => p_ppm_information10
2683 ,p_ppm_information11 => p_ppm_information11
2684 ,p_ppm_information12 => p_ppm_information12
2685 ,p_ppm_information13 => p_ppm_information13
2686 ,p_ppm_information14 => p_ppm_information14
2687 ,p_ppm_information15 => p_ppm_information15
2688 ,p_ppm_information16 => p_ppm_information16
2689 ,p_ppm_information17 => p_ppm_information17
2690 ,p_ppm_information18 => p_ppm_information18
2691 ,p_ppm_information19 => p_ppm_information19
2692 ,p_ppm_information20 => p_ppm_information20
2693 ,p_ppm_information21 => p_ppm_information21
2694 ,p_ppm_information22 => p_ppm_information22
2695 ,p_ppm_information23 => p_ppm_information23
2696 ,p_ppm_information24 => p_ppm_information24
2697 ,p_ppm_information25 => p_ppm_information25
2698 ,p_ppm_information26 => p_ppm_information26
2699 ,p_ppm_information27 => p_ppm_information27
2700 ,p_ppm_information28 => p_ppm_information28
2701 ,p_ppm_information29 => p_ppm_information29
2702 ,p_ppm_information30 => p_ppm_information30
2703 ,p_ppm_information_category => l_ppm_information_category
2704 );
2705 exception
2706 when hr_api.cannot_find_prog_unit then
2707 hr_api.cannot_find_prog_unit_error
2708 (p_module_name => 'UPDATE_PERSONAL_PAY_METHOD'
2709 ,p_hook_type => 'AP'
2710 );
2711 --
2712 -- End of API User Hook for the after hook of update_personal_pay_method
2713 --
2714 end;
2715 --
2716 -- When in validation only mode raise the Validate_Enabled exception
2717 --
2718 if p_validate then
2719 raise hr_api.validate_enabled;
2720 end if;
2721 --
2722 -- Set remaining output arguments
2723 --
2724 p_comment_id := l_comment_id;
2725 p_external_account_id := l_external_account_id;
2726 p_effective_start_date := l_effective_start_date;
2727 p_effective_end_date := l_effective_end_date;
2728 --
2729 if g_debug then
2730 hr_utility.set_location(' Leaving:'||l_proc, 10);
2731 end if;
2732 --
2733 exception
2734 when hr_api.validate_enabled then
2735 --
2736 -- As the Validate_Enabled exception has been raised
2737 -- we must rollback to the savepoint
2738 --
2739 ROLLBACK TO update_personal_pay_method;
2740 --
2741 -- Only set output warning arguments
2742 -- (Any key or derived arguments must be set to null
2743 -- when validation only mode is being used.)
2744 --
2745 p_object_version_number := l_object_version_number1;
2746 p_comment_id := null;
2747 p_external_account_id := null;
2748 p_effective_start_date := null;
2749 p_effective_end_date := null;
2750 --
2751 when others then
2752 --
2753 -- A validation or unexpected error has occurred
2754 --
2755 -- Added as part of fix to bug 632479
2756 --
2757 ROLLBACK TO update_personal_pay_method;
2758 p_object_version_number := l_object_version_number1;
2759 p_comment_id := null;
2760 p_external_account_id := null;
2761 p_effective_start_date := null;
2762 p_effective_end_date := null;
2763 raise;
2764 --
2765 -- End of fix.
2766 --
2767 if g_debug then
2768 hr_utility.set_location(' Leaving:'||l_proc, 11);
2769 end if;
2770 end update_personal_pay_method;
2771 --
2772 -- ----------------------------------------------------------------------------
2773 -- |--------------------< update_gb_personal_pay_method >---------------------|
2774 -- ----------------------------------------------------------------------------
2775 --
2776 procedure update_gb_personal_pay_method
2777 (p_validate in boolean default false
2778 ,p_effective_date in date
2779 ,p_datetrack_update_mode in varchar2
2780 ,p_personal_payment_method_id in number
2781 ,p_object_version_number in out nocopy number
2782 ,p_account_name in varchar2 default hr_api.g_varchar2
2783 ,p_account_number in varchar2 default hr_api.g_varchar2
2784 ,p_sort_code in varchar2 default hr_api.g_varchar2
2785 ,p_bank_name in varchar2 default hr_api.g_varchar2
2786 ,p_account_type in varchar2 default hr_api.g_varchar2
2787 ,p_bank_branch in varchar2 default hr_api.g_varchar2
2788 ,p_bank_branch_location in varchar2 default hr_api.g_varchar2
2789 ,p_bldg_society_account_number in varchar2 default hr_api.g_varchar2
2790 ,p_amount in number default hr_api.g_number
2791 ,p_comments in varchar2 default hr_api.g_varchar2
2792 ,p_percentage in number default hr_api.g_number
2793 ,p_priority in number default hr_api.g_number
2794 ,p_attribute_category in varchar2 default hr_api.g_varchar2
2795 ,p_attribute1 in varchar2 default hr_api.g_varchar2
2796 ,p_attribute2 in varchar2 default hr_api.g_varchar2
2797 ,p_attribute3 in varchar2 default hr_api.g_varchar2
2798 ,p_attribute4 in varchar2 default hr_api.g_varchar2
2799 ,p_attribute5 in varchar2 default hr_api.g_varchar2
2800 ,p_attribute6 in varchar2 default hr_api.g_varchar2
2801 ,p_attribute7 in varchar2 default hr_api.g_varchar2
2802 ,p_attribute8 in varchar2 default hr_api.g_varchar2
2803 ,p_attribute9 in varchar2 default hr_api.g_varchar2
2804 ,p_attribute10 in varchar2 default hr_api.g_varchar2
2805 ,p_attribute11 in varchar2 default hr_api.g_varchar2
2806 ,p_attribute12 in varchar2 default hr_api.g_varchar2
2807 ,p_attribute13 in varchar2 default hr_api.g_varchar2
2808 ,p_attribute14 in varchar2 default hr_api.g_varchar2
2809 ,p_attribute15 in varchar2 default hr_api.g_varchar2
2810 ,p_attribute16 in varchar2 default hr_api.g_varchar2
2811 ,p_attribute17 in varchar2 default hr_api.g_varchar2
2812 ,p_attribute18 in varchar2 default hr_api.g_varchar2
2813 ,p_attribute19 in varchar2 default hr_api.g_varchar2
2814 ,p_attribute20 in varchar2 default hr_api.g_varchar2
2815 ,p_payee_type in varchar2 default hr_api.g_varchar2
2816 ,p_payee_id in number default hr_api.g_number
2817 ,p_territory_code in varchar2 default hr_api.g_varchar2
2818 ,p_comment_id out nocopy number
2819 ,p_external_account_id out nocopy number
2820 ,p_effective_start_date out nocopy date
2821 ,p_effective_end_date out nocopy date
2822 ,p_segment9 in varchar2 default null -- Bug 7185344
2823 ,p_segment10 in varchar2 default null
2824 ,p_segment11 in varchar2 default null
2825 ,p_segment12 in varchar2 default null
2826 ,p_segment13 in varchar2 default null
2827 ,p_segment14 in varchar2 default null
2828 ,p_segment15 in varchar2 default null
2829 ,p_segment16 in varchar2 default null
2830 ,p_segment17 in varchar2 default null
2831 ,p_segment18 in varchar2 default null
2832 ,p_segment19 in varchar2 default null
2833 ,p_segment20 in varchar2 default null
2834 ,p_segment21 in varchar2 default null
2835 ,p_segment22 in varchar2 default null
2836 ,p_segment23 in varchar2 default null
2837 ,p_segment24 in varchar2 default null
2838 ,p_segment25 in varchar2 default null
2839 ,p_segment26 in varchar2 default null
2840 ,p_segment27 in varchar2 default null
2841 ,p_segment28 in varchar2 default null
2842 ,p_segment29 in varchar2 default null
2843 ,p_segment30 in varchar2 default null -- Bug 7185344
2844 /*Bug# 8717589*/
2845 ,p_ppm_information_category in varchar2 default hr_api.g_varchar2
2846 ,p_ppm_information1 in varchar2 default hr_api.g_varchar2
2847 ,p_ppm_information2 in varchar2 default hr_api.g_varchar2
2848 ,p_ppm_information3 in varchar2 default hr_api.g_varchar2
2849 ,p_ppm_information4 in varchar2 default hr_api.g_varchar2
2850 ,p_ppm_information5 in varchar2 default hr_api.g_varchar2
2851 ,p_ppm_information6 in varchar2 default hr_api.g_varchar2
2852 ,p_ppm_information7 in varchar2 default hr_api.g_varchar2
2853 ,p_ppm_information8 in varchar2 default hr_api.g_varchar2
2854 ,p_ppm_information9 in varchar2 default hr_api.g_varchar2
2855 ,p_ppm_information10 in varchar2 default hr_api.g_varchar2
2856 ,p_ppm_information11 in varchar2 default hr_api.g_varchar2
2857 ,p_ppm_information12 in varchar2 default hr_api.g_varchar2
2858 ,p_ppm_information13 in varchar2 default hr_api.g_varchar2
2859 ,p_ppm_information14 in varchar2 default hr_api.g_varchar2
2860 ,p_ppm_information15 in varchar2 default hr_api.g_varchar2
2861 ,p_ppm_information16 in varchar2 default hr_api.g_varchar2
2862 ,p_ppm_information17 in varchar2 default hr_api.g_varchar2
2863 ,p_ppm_information18 in varchar2 default hr_api.g_varchar2
2864 ,p_ppm_information19 in varchar2 default hr_api.g_varchar2
2865 ,p_ppm_information20 in varchar2 default hr_api.g_varchar2
2866 ,p_ppm_information21 in varchar2 default hr_api.g_varchar2
2867 ,p_ppm_information22 in varchar2 default hr_api.g_varchar2
2868 ,p_ppm_information23 in varchar2 default hr_api.g_varchar2
2869 ,p_ppm_information24 in varchar2 default hr_api.g_varchar2
2870 ,p_ppm_information25 in varchar2 default hr_api.g_varchar2
2871 ,p_ppm_information26 in varchar2 default hr_api.g_varchar2
2872 ,p_ppm_information27 in varchar2 default hr_api.g_varchar2
2873 ,p_ppm_information28 in varchar2 default hr_api.g_varchar2
2874 ,p_ppm_information29 in varchar2 default hr_api.g_varchar2
2875 ,p_ppm_information30 in varchar2 default hr_api.g_varchar2
2876
2877 ) is
2878 --
2879 -- Declare cursors and local variables
2880 --
2881 l_proc varchar2(72);
2882 --
2883 begin
2884 g_debug := hr_utility.debug_enabled;
2885 if g_debug then
2886 l_proc := g_package||'update_gb_personal_pay_method';
2887 hr_utility.set_location('Entering:'|| l_proc, 5);
2888 end if;
2889 --
2890 -- Ensure that the legislation rule for the employee assignment business
2891 -- group is 'GB'.
2892 --
2893 hr_personal_pay_method_api.check_update_legislation
2894 (p_personal_payment_method_id => p_personal_payment_method_id
2895 ,p_effective_date => p_effective_date
2896 ,p_leg_code => 'GB');
2897 --
2898 if g_debug then
2899 hr_utility.set_location(l_proc, 6);
2900 end if;
2901 --
2902 -- Call the business process to update the personal payment method
2903 --
2904 hr_personal_pay_method_api.update_personal_pay_method
2905 (p_validate => p_validate
2906 ,p_effective_date => trunc(p_effective_date)
2907 ,p_datetrack_update_mode => p_datetrack_update_mode
2908 ,p_personal_payment_method_id => p_personal_payment_method_id
2909 ,p_object_version_number => p_object_version_number
2910 ,p_amount => p_amount
2911 ,p_comments => p_comments
2912 ,p_percentage => p_percentage
2913 ,p_priority => p_priority
2914 ,p_attribute_category => p_attribute_category
2915 ,p_attribute1 => p_attribute1
2916 ,p_attribute2 => p_attribute2
2917 ,p_attribute3 => p_attribute3
2918 ,p_attribute4 => p_attribute4
2919 ,p_attribute5 => p_attribute5
2920 ,p_attribute6 => p_attribute6
2921 ,p_attribute7 => p_attribute7
2922 ,p_attribute8 => p_attribute8
2923 ,p_attribute9 => p_attribute9
2924 ,p_attribute10 => p_attribute10
2925 ,p_attribute11 => p_attribute11
2926 ,p_attribute12 => p_attribute12
2927 ,p_attribute13 => p_attribute13
2928 ,p_attribute14 => p_attribute14
2929 ,p_attribute15 => p_attribute15
2930 ,p_attribute16 => p_attribute16
2931 ,p_attribute17 => p_attribute17
2932 ,p_attribute18 => p_attribute18
2933 ,p_attribute19 => p_attribute19
2934 ,p_attribute20 => p_attribute20
2935 ,p_territory_code => p_territory_code --Bug 6469439
2936 ,p_segment1 => p_bank_name
2937 ,p_segment2 => p_bank_branch
2938 ,p_segment3 => p_sort_code
2939 ,p_segment4 => p_account_number
2940 ,p_segment5 => p_account_name
2941 ,p_segment6 => p_account_type
2942 ,p_segment7 => p_bldg_society_account_number
2943 ,p_segment8 => p_bank_branch_location
2944 ,p_payee_type => p_payee_type
2945 ,p_payee_id => p_payee_id
2946 ,p_comment_id => p_comment_id
2947 ,p_external_account_id => p_external_account_id
2948 ,p_effective_start_date => p_effective_start_date
2949 ,p_effective_end_date => p_effective_end_date
2950 ,p_segment9 => p_segment9 -- Bug 7185344
2951 ,p_segment10 => p_segment10
2952 ,p_segment11 => p_segment11
2953 ,p_segment12 => p_segment12
2954 ,p_segment13 => p_segment13
2955 ,p_segment14 => p_segment14
2956 ,p_segment15 => p_segment15
2957 ,p_segment16 => p_segment16
2958 ,p_segment17 => p_segment17
2959 ,p_segment18 => p_segment18
2960 ,p_segment19 => p_segment19
2961 ,p_segment20 => p_segment20
2962 ,p_segment21 => p_segment21
2963 ,p_segment22 => p_segment22
2964 ,p_segment23 => p_segment23
2965 ,p_segment24 => p_segment24
2966 ,p_segment25 => p_segment25
2967 ,p_segment26 => p_segment26
2968 ,p_segment27 => p_segment27
2969 ,p_segment28 => p_segment28
2970 ,p_segment29 => p_segment29
2971 ,p_segment30 => p_segment30 -- Bug 7185344
2972 ,p_ppm_information_category => p_ppm_information_category
2973 ,p_ppm_information1 => p_ppm_information1
2974 ,p_ppm_information2 => p_ppm_information2
2975 ,p_ppm_information3 => p_ppm_information3
2976 ,p_ppm_information4 => p_ppm_information4
2977 ,p_ppm_information5 => p_ppm_information5
2978 ,p_ppm_information6 => p_ppm_information6
2979 ,p_ppm_information7 => p_ppm_information7
2980 ,p_ppm_information8 => p_ppm_information8
2981 ,p_ppm_information9 => p_ppm_information9
2982 ,p_ppm_information10 => p_ppm_information10
2983 ,p_ppm_information11 => p_ppm_information11
2984 ,p_ppm_information12 => p_ppm_information12
2985 ,p_ppm_information13 => p_ppm_information13
2986 ,p_ppm_information14 => p_ppm_information14
2987 ,p_ppm_information15 => p_ppm_information15
2988 ,p_ppm_information16 => p_ppm_information16
2989 ,p_ppm_information17 => p_ppm_information17
2990 ,p_ppm_information18 => p_ppm_information18
2991 ,p_ppm_information19 => p_ppm_information19
2992 ,p_ppm_information20 => p_ppm_information20
2993 ,p_ppm_information21 => p_ppm_information21
2994 ,p_ppm_information22 => p_ppm_information22
2995 ,p_ppm_information23 => p_ppm_information23
2996 ,p_ppm_information24 => p_ppm_information24
2997 ,p_ppm_information25 => p_ppm_information25
2998 ,p_ppm_information26 => p_ppm_information26
2999 ,p_ppm_information27 => p_ppm_information27
3000 ,p_ppm_information28 => p_ppm_information28
3001 ,p_ppm_information29 => p_ppm_information29
3002 ,p_ppm_information30 => p_ppm_information30
3003 );
3004 --
3005 if g_debug then
3006 hr_utility.set_location(' Leaving:'||l_proc, 7);
3007 end if;
3008 end update_gb_personal_pay_method;
3009 --
3010 -- ----------------------------------------------------------------------------
3011 -- |--------------------< update_us_personal_pay_method >---------------------|
3012 -- ----------------------------------------------------------------------------
3013 --
3014 procedure update_us_personal_pay_method
3015 (p_validate in boolean default false
3016 ,p_effective_date in date
3017 ,p_datetrack_update_mode in varchar2
3018 ,p_personal_payment_method_id in number
3019 ,p_object_version_number in out nocopy number
3020 ,p_account_name in varchar2 default hr_api.g_varchar2
3021 ,p_account_number in varchar2 default hr_api.g_varchar2
3022 ,p_transit_code in varchar2 default hr_api.g_varchar2
3023 ,p_bank_name in varchar2 default hr_api.g_varchar2
3024 ,p_account_type in varchar2 default hr_api.g_varchar2
3025 ,p_bank_branch in varchar2 default hr_api.g_varchar2
3026 ,p_amount in number default hr_api.g_number
3027 ,p_comments in varchar2 default hr_api.g_varchar2
3028 ,p_percentage in number default hr_api.g_number
3029 ,p_priority in number default hr_api.g_number
3030 ,p_attribute_category in varchar2 default hr_api.g_varchar2
3031 ,p_attribute1 in varchar2 default hr_api.g_varchar2
3032 ,p_attribute2 in varchar2 default hr_api.g_varchar2
3033 ,p_attribute3 in varchar2 default hr_api.g_varchar2
3034 ,p_attribute4 in varchar2 default hr_api.g_varchar2
3035 ,p_attribute5 in varchar2 default hr_api.g_varchar2
3036 ,p_attribute6 in varchar2 default hr_api.g_varchar2
3037 ,p_attribute7 in varchar2 default hr_api.g_varchar2
3038 ,p_attribute8 in varchar2 default hr_api.g_varchar2
3039 ,p_attribute9 in varchar2 default hr_api.g_varchar2
3040 ,p_attribute10 in varchar2 default hr_api.g_varchar2
3041 ,p_attribute11 in varchar2 default hr_api.g_varchar2
3042 ,p_attribute12 in varchar2 default hr_api.g_varchar2
3043 ,p_attribute13 in varchar2 default hr_api.g_varchar2
3044 ,p_attribute14 in varchar2 default hr_api.g_varchar2
3045 ,p_attribute15 in varchar2 default hr_api.g_varchar2
3046 ,p_attribute16 in varchar2 default hr_api.g_varchar2
3047 ,p_attribute17 in varchar2 default hr_api.g_varchar2
3048 ,p_attribute18 in varchar2 default hr_api.g_varchar2
3049 ,p_attribute19 in varchar2 default hr_api.g_varchar2
3050 ,p_attribute20 in varchar2 default hr_api.g_varchar2
3051 ,p_payee_type in varchar2 default hr_api.g_varchar2
3052 ,p_payee_id in number default hr_api.g_number
3053 ,p_prenote_date in date default hr_api.g_date
3054 ,p_territory_code in varchar2 default hr_api.g_varchar2
3055 /*Bug# 8717589*/
3056 ,p_ppm_information_category in varchar2 default hr_api.g_varchar2
3057 ,p_ppm_information1 in varchar2 default hr_api.g_varchar2
3058 ,p_ppm_information2 in varchar2 default hr_api.g_varchar2
3059 ,p_ppm_information3 in varchar2 default hr_api.g_varchar2
3060 ,p_ppm_information4 in varchar2 default hr_api.g_varchar2
3061 ,p_ppm_information5 in varchar2 default hr_api.g_varchar2
3062 ,p_ppm_information6 in varchar2 default hr_api.g_varchar2
3063 ,p_ppm_information7 in varchar2 default hr_api.g_varchar2
3064 ,p_ppm_information8 in varchar2 default hr_api.g_varchar2
3065 ,p_ppm_information9 in varchar2 default hr_api.g_varchar2
3066 ,p_ppm_information10 in varchar2 default hr_api.g_varchar2
3067 ,p_ppm_information11 in varchar2 default hr_api.g_varchar2
3068 ,p_ppm_information12 in varchar2 default hr_api.g_varchar2
3069 ,p_ppm_information13 in varchar2 default hr_api.g_varchar2
3070 ,p_ppm_information14 in varchar2 default hr_api.g_varchar2
3071 ,p_ppm_information15 in varchar2 default hr_api.g_varchar2
3072 ,p_ppm_information16 in varchar2 default hr_api.g_varchar2
3073 ,p_ppm_information17 in varchar2 default hr_api.g_varchar2
3074 ,p_ppm_information18 in varchar2 default hr_api.g_varchar2
3075 ,p_ppm_information19 in varchar2 default hr_api.g_varchar2
3076 ,p_ppm_information20 in varchar2 default hr_api.g_varchar2
3077 ,p_ppm_information21 in varchar2 default hr_api.g_varchar2
3078 ,p_ppm_information22 in varchar2 default hr_api.g_varchar2
3079 ,p_ppm_information23 in varchar2 default hr_api.g_varchar2
3080 ,p_ppm_information24 in varchar2 default hr_api.g_varchar2
3081 ,p_ppm_information25 in varchar2 default hr_api.g_varchar2
3082 ,p_ppm_information26 in varchar2 default hr_api.g_varchar2
3083 ,p_ppm_information27 in varchar2 default hr_api.g_varchar2
3084 ,p_ppm_information28 in varchar2 default hr_api.g_varchar2
3085 ,p_ppm_information29 in varchar2 default hr_api.g_varchar2
3086 ,p_ppm_information30 in varchar2 default hr_api.g_varchar2
3087 ,p_comment_id out nocopy number
3088 ,p_external_account_id out nocopy number
3089 ,p_effective_start_date out nocopy date
3090 ,p_effective_end_date out nocopy date
3091 ) is
3092 --
3093 -- Declare cursors and local variables
3094 --
3095 l_proc varchar2(72);
3096 --
3097 begin
3098 g_debug := hr_utility.debug_enabled;
3099 if g_debug then
3100 l_proc := g_package||'update_gb_personal_pay_method';
3101 hr_utility.set_location('Entering:'|| l_proc, 5);
3102 end if;
3103 --
3104 -- Ensure that the legislation rule for the employee assignment business
3105 -- group is 'US'.
3106 --
3107 hr_personal_pay_method_api.check_update_legislation
3108 (p_personal_payment_method_id => p_personal_payment_method_id
3109 ,p_effective_date => p_effective_date
3110 ,p_leg_code => 'US');
3111 --
3112 if g_debug then
3113 hr_utility.set_location(l_proc, 6);
3114 end if;
3115 --
3116 -- Call the business process to update the personal payment method
3117 --
3118 hr_personal_pay_method_api.update_personal_pay_method
3119 (p_validate => p_validate
3120 ,p_effective_date => trunc(p_effective_date)
3121 ,p_datetrack_update_mode => p_datetrack_update_mode
3122 ,p_personal_payment_method_id => p_personal_payment_method_id
3123 ,p_object_version_number => p_object_version_number
3124 ,p_amount => p_amount
3125 ,p_comments => p_comments
3126 ,p_percentage => p_percentage
3127 ,p_priority => p_priority
3128 ,p_attribute_category => p_attribute_category
3129 ,p_attribute1 => p_attribute1
3130 ,p_attribute2 => p_attribute2
3131 ,p_attribute3 => p_attribute3
3132 ,p_attribute4 => p_attribute4
3133 ,p_attribute5 => p_attribute5
3134 ,p_attribute6 => p_attribute6
3135 ,p_attribute7 => p_attribute7
3136 ,p_attribute8 => p_attribute8
3137 ,p_attribute9 => p_attribute9
3138 ,p_attribute10 => p_attribute10
3139 ,p_attribute11 => p_attribute11
3140 ,p_attribute12 => p_attribute12
3141 ,p_attribute13 => p_attribute13
3142 ,p_attribute14 => p_attribute14
3143 ,p_attribute15 => p_attribute15
3144 ,p_attribute16 => p_attribute16
3145 ,p_attribute17 => p_attribute17
3146 ,p_attribute18 => p_attribute18
3147 ,p_attribute19 => p_attribute19
3148 ,p_attribute20 => p_attribute20
3149 ,p_territory_code => p_territory_code --Bug 6469439
3150 ,p_segment1 => p_account_name
3151 ,p_segment2 => p_account_type
3152 ,p_segment3 => p_account_number
3153 ,p_segment4 => lpad(p_transit_code,9,'0')
3154 ,p_segment5 => p_bank_name
3155 ,p_segment6 => p_bank_branch
3156 ,p_payee_type => p_payee_type
3157 ,p_payee_id => p_payee_id
3158 ,p_ppm_information_category => p_ppm_information_category
3159 ,p_ppm_information1 => p_ppm_information1
3160 ,p_ppm_information2 => p_ppm_information2
3161 ,p_ppm_information3 => p_ppm_information3
3162 ,p_ppm_information4 => p_ppm_information4
3163 ,p_ppm_information5 => p_ppm_information5
3164 ,p_ppm_information6 => p_ppm_information6
3165 ,p_ppm_information7 => p_ppm_information7
3166 ,p_ppm_information8 => p_ppm_information8
3167 ,p_ppm_information9 => p_ppm_information9
3168 ,p_ppm_information10 => p_ppm_information10
3169 ,p_ppm_information11 => p_ppm_information11
3170 ,p_ppm_information12 => p_ppm_information12
3171 ,p_ppm_information13 => p_ppm_information13
3172 ,p_ppm_information14 => p_ppm_information14
3173 ,p_ppm_information15 => p_ppm_information15
3174 ,p_ppm_information16 => p_ppm_information16
3175 ,p_ppm_information17 => p_ppm_information17
3176 ,p_ppm_information18 => p_ppm_information18
3177 ,p_ppm_information19 => p_ppm_information19
3178 ,p_ppm_information20 => p_ppm_information20
3179 ,p_ppm_information21 => p_ppm_information21
3180 ,p_ppm_information22 => p_ppm_information22
3181 ,p_ppm_information23 => p_ppm_information23
3182 ,p_ppm_information24 => p_ppm_information24
3183 ,p_ppm_information25 => p_ppm_information25
3184 ,p_ppm_information26 => p_ppm_information26
3185 ,p_ppm_information27 => p_ppm_information27
3186 ,p_ppm_information28 => p_ppm_information28
3187 ,p_ppm_information29 => p_ppm_information29
3188 ,p_ppm_information30 => p_ppm_information30
3189 ,p_comment_id => p_comment_id
3190 ,p_external_account_id => p_external_account_id
3191 ,p_effective_start_date => p_effective_start_date
3192 ,p_effective_end_date => p_effective_end_date
3193 );
3194 --
3195 -- Update prenote date if external account is generated.
3196 --
3197 if nvl(p_prenote_date, hr_api.g_date+1) <> hr_api.g_date and p_external_account_id is not null then
3198 --
3199 upd_prenote_date
3200 (p_personal_payment_method_id => p_personal_payment_method_id
3201 ,p_external_account_id => p_external_account_id
3202 ,p_effective_date => p_effective_date
3203 ,p_prenote_date => p_prenote_date);
3204 --
3205 end if;
3206 --
3207 if g_debug then
3208 hr_utility.set_location(' Leaving:'||l_proc, 7);
3209 end if;
3210 end update_us_personal_pay_method;
3211 --
3212 -- ----------------------------------------------------------------------------
3213 -- |--------------------< update_ca_personal_pay_method >---------------------|
3214 -- ----------------------------------------------------------------------------
3215 --
3216 procedure update_ca_personal_pay_method
3217 (p_validate in boolean default false
3218 ,p_effective_date in date
3219 ,p_datetrack_update_mode in varchar2
3220 ,p_personal_payment_method_id in number
3221 ,p_object_version_number in out nocopy number
3222 ,p_account_name in varchar2 default hr_api.g_varchar2
3223 ,p_account_number in varchar2 default hr_api.g_varchar2
3224 ,p_transit_code in varchar2 default hr_api.g_varchar2
3225 ,p_bank_number in varchar2 default hr_api.g_varchar2
3226 ,p_bank_name in varchar2 default hr_api.g_varchar2
3227 ,p_account_type in varchar2 default hr_api.g_varchar2
3228 ,p_bank_branch in varchar2 default hr_api.g_varchar2
3229 ,p_amount in number default hr_api.g_number
3230 ,p_comments in varchar2 default hr_api.g_varchar2
3231 ,p_percentage in number default hr_api.g_number
3232 ,p_priority in number default hr_api.g_number
3233 ,p_attribute_category in varchar2 default hr_api.g_varchar2
3234 ,p_attribute1 in varchar2 default hr_api.g_varchar2
3235 ,p_attribute2 in varchar2 default hr_api.g_varchar2
3236 ,p_attribute3 in varchar2 default hr_api.g_varchar2
3237 ,p_attribute4 in varchar2 default hr_api.g_varchar2
3238 ,p_attribute5 in varchar2 default hr_api.g_varchar2
3239 ,p_attribute6 in varchar2 default hr_api.g_varchar2
3240 ,p_attribute7 in varchar2 default hr_api.g_varchar2
3241 ,p_attribute8 in varchar2 default hr_api.g_varchar2
3242 ,p_attribute9 in varchar2 default hr_api.g_varchar2
3243 ,p_attribute10 in varchar2 default hr_api.g_varchar2
3244 ,p_attribute11 in varchar2 default hr_api.g_varchar2
3245 ,p_attribute12 in varchar2 default hr_api.g_varchar2
3246 ,p_attribute13 in varchar2 default hr_api.g_varchar2
3247 ,p_attribute14 in varchar2 default hr_api.g_varchar2
3248 ,p_attribute15 in varchar2 default hr_api.g_varchar2
3249 ,p_attribute16 in varchar2 default hr_api.g_varchar2
3250 ,p_attribute17 in varchar2 default hr_api.g_varchar2
3251 ,p_attribute18 in varchar2 default hr_api.g_varchar2
3252 ,p_attribute19 in varchar2 default hr_api.g_varchar2
3253 ,p_attribute20 in varchar2 default hr_api.g_varchar2
3254 ,p_payee_type in varchar2 default hr_api.g_varchar2
3255 ,p_payee_id in number default hr_api.g_number
3256 ,p_territory_code in varchar2 default hr_api.g_varchar2
3257 /*Bug# 8717589*/
3258 ,p_ppm_information_category in varchar2 default hr_api.g_varchar2
3259 ,p_ppm_information1 in varchar2 default hr_api.g_varchar2
3260 ,p_ppm_information2 in varchar2 default hr_api.g_varchar2
3261 ,p_ppm_information3 in varchar2 default hr_api.g_varchar2
3262 ,p_ppm_information4 in varchar2 default hr_api.g_varchar2
3263 ,p_ppm_information5 in varchar2 default hr_api.g_varchar2
3264 ,p_ppm_information6 in varchar2 default hr_api.g_varchar2
3265 ,p_ppm_information7 in varchar2 default hr_api.g_varchar2
3266 ,p_ppm_information8 in varchar2 default hr_api.g_varchar2
3267 ,p_ppm_information9 in varchar2 default hr_api.g_varchar2
3268 ,p_ppm_information10 in varchar2 default hr_api.g_varchar2
3269 ,p_ppm_information11 in varchar2 default hr_api.g_varchar2
3270 ,p_ppm_information12 in varchar2 default hr_api.g_varchar2
3271 ,p_ppm_information13 in varchar2 default hr_api.g_varchar2
3272 ,p_ppm_information14 in varchar2 default hr_api.g_varchar2
3273 ,p_ppm_information15 in varchar2 default hr_api.g_varchar2
3274 ,p_ppm_information16 in varchar2 default hr_api.g_varchar2
3275 ,p_ppm_information17 in varchar2 default hr_api.g_varchar2
3276 ,p_ppm_information18 in varchar2 default hr_api.g_varchar2
3277 ,p_ppm_information19 in varchar2 default hr_api.g_varchar2
3278 ,p_ppm_information20 in varchar2 default hr_api.g_varchar2
3279 ,p_ppm_information21 in varchar2 default hr_api.g_varchar2
3280 ,p_ppm_information22 in varchar2 default hr_api.g_varchar2
3281 ,p_ppm_information23 in varchar2 default hr_api.g_varchar2
3282 ,p_ppm_information24 in varchar2 default hr_api.g_varchar2
3283 ,p_ppm_information25 in varchar2 default hr_api.g_varchar2
3284 ,p_ppm_information26 in varchar2 default hr_api.g_varchar2
3285 ,p_ppm_information27 in varchar2 default hr_api.g_varchar2
3286 ,p_ppm_information28 in varchar2 default hr_api.g_varchar2
3287 ,p_ppm_information29 in varchar2 default hr_api.g_varchar2
3288 ,p_ppm_information30 in varchar2 default hr_api.g_varchar2
3289 ,p_comment_id out nocopy number
3290 ,p_external_account_id out nocopy number
3291 ,p_effective_start_date out nocopy date
3292 ,p_effective_end_date out nocopy date
3293 ) is
3294 --
3295 -- Declare cursors and local variables
3296 --
3297 l_proc varchar2(72);
3298 --
3299 begin
3300 g_debug := hr_utility.debug_enabled;
3301 if g_debug then
3302 l_proc := g_package||'update_gb_personal_pay_method';
3303 hr_utility.set_location('Entering:'|| l_proc, 5);
3304 end if;
3305 --
3306 -- Ensure that the legislation rule for the employee assignment business
3307 -- group is 'US'.
3308 --
3309 hr_personal_pay_method_api.check_update_legislation
3310 (p_personal_payment_method_id => p_personal_payment_method_id
3311 ,p_effective_date => p_effective_date
3312 ,p_leg_code => 'CA');
3313 --
3314 if g_debug then
3315 hr_utility.set_location(l_proc, 6);
3316 end if;
3317 --
3318 -- Call the business process to update the personal payment method
3319 --
3320 hr_personal_pay_method_api.update_personal_pay_method
3321 (p_validate => p_validate
3322 ,p_effective_date => trunc(p_effective_date)
3323 ,p_datetrack_update_mode => p_datetrack_update_mode
3324 ,p_personal_payment_method_id => p_personal_payment_method_id
3325 ,p_object_version_number => p_object_version_number
3326 ,p_amount => p_amount
3327 ,p_comments => p_comments
3328 ,p_percentage => p_percentage
3329 ,p_priority => p_priority
3330 ,p_attribute_category => p_attribute_category
3331 ,p_attribute1 => p_attribute1
3332 ,p_attribute2 => p_attribute2
3333 ,p_attribute3 => p_attribute3
3334 ,p_attribute4 => p_attribute4
3335 ,p_attribute5 => p_attribute5
3336 ,p_attribute6 => p_attribute6
3337 ,p_attribute7 => p_attribute7
3338 ,p_attribute8 => p_attribute8
3339 ,p_attribute9 => p_attribute9
3340 ,p_attribute10 => p_attribute10
3341 ,p_attribute11 => p_attribute11
3342 ,p_attribute12 => p_attribute12
3343 ,p_attribute13 => p_attribute13
3344 ,p_attribute14 => p_attribute14
3345 ,p_attribute15 => p_attribute15
3346 ,p_attribute16 => p_attribute16
3347 ,p_attribute17 => p_attribute17
3348 ,p_attribute18 => p_attribute18
3349 ,p_attribute19 => p_attribute19
3350 ,p_attribute20 => p_attribute20
3351 ,p_territory_code => p_territory_code --Bug 6469439
3352 ,p_segment1 => p_account_name
3353 ,p_segment2 => p_account_type
3354 ,p_segment3 => p_account_number
3355 ,p_segment4 => lpad(p_transit_code,5,'0')
3356 ,p_segment5 => p_bank_name
3357 ,p_segment6 => p_bank_branch
3358 ,p_segment7 => p_bank_number
3359 ,p_payee_type => p_payee_type
3360 ,p_payee_id => p_payee_id
3361 ,p_ppm_information_category => p_ppm_information_category
3362 ,p_ppm_information1 => p_ppm_information1
3363 ,p_ppm_information2 => p_ppm_information2
3364 ,p_ppm_information3 => p_ppm_information3
3365 ,p_ppm_information4 => p_ppm_information4
3366 ,p_ppm_information5 => p_ppm_information5
3367 ,p_ppm_information6 => p_ppm_information6
3368 ,p_ppm_information7 => p_ppm_information7
3369 ,p_ppm_information8 => p_ppm_information8
3370 ,p_ppm_information9 => p_ppm_information9
3371 ,p_ppm_information10 => p_ppm_information10
3372 ,p_ppm_information11 => p_ppm_information11
3373 ,p_ppm_information12 => p_ppm_information12
3374 ,p_ppm_information13 => p_ppm_information13
3375 ,p_ppm_information14 => p_ppm_information14
3376 ,p_ppm_information15 => p_ppm_information15
3377 ,p_ppm_information16 => p_ppm_information16
3378 ,p_ppm_information17 => p_ppm_information17
3379 ,p_ppm_information18 => p_ppm_information18
3380 ,p_ppm_information19 => p_ppm_information19
3381 ,p_ppm_information20 => p_ppm_information20
3382 ,p_ppm_information21 => p_ppm_information21
3383 ,p_ppm_information22 => p_ppm_information22
3384 ,p_ppm_information23 => p_ppm_information23
3385 ,p_ppm_information24 => p_ppm_information24
3386 ,p_ppm_information25 => p_ppm_information25
3387 ,p_ppm_information26 => p_ppm_information26
3388 ,p_ppm_information27 => p_ppm_information27
3389 ,p_ppm_information28 => p_ppm_information28
3390 ,p_ppm_information29 => p_ppm_information29
3391 ,p_ppm_information30 => p_ppm_information30
3392 ,p_comment_id => p_comment_id
3393 ,p_external_account_id => p_external_account_id
3394 ,p_effective_start_date => p_effective_start_date
3395 ,p_effective_end_date => p_effective_end_date
3396 );
3397 --
3398 if g_debug then
3399 hr_utility.set_location(' Leaving:'||l_proc, 7);
3400 end if;
3401 end update_ca_personal_pay_method;
3402 --
3403 -- ----------------------------------------------------------------------------
3404 -- |----------------------< delete_personal_pay_method >----------------------|
3405 -- ----------------------------------------------------------------------------
3406 --
3407 procedure delete_personal_pay_method
3408 (p_validate in boolean default false
3409 ,p_effective_date in date
3410 ,p_datetrack_delete_mode in varchar2
3411 ,p_personal_payment_method_id in number
3412 ,p_object_version_number in out nocopy number
3413 ,p_effective_start_date out nocopy date
3414 ,p_effective_end_date out nocopy date
3415 ) is
3416 --
3417 -- Declare cursors and local variables
3418 --
3419 l_proc varchar2(72);
3420 l_validate boolean := FALSE;
3421 --
3422 begin
3423 g_debug := hr_utility.debug_enabled;
3424 if g_debug then
3425 l_proc := g_package||'delete_personal_pay_method';
3426 hr_utility.set_location('Entering:'|| l_proc, 5);
3427 end if;
3428 --
3429 -- Issue a savepoint.
3430 --
3431 savepoint delete_personal_pay_method;
3432 --
3433 if g_debug then
3434 hr_utility.set_location(l_proc, 6);
3435 end if;
3436 --
3437 -- Call the row handler to delete the personal payment method.
3438 --
3439 pay_ppm_del.del
3440 (p_personal_payment_method_id => p_personal_payment_method_id
3441 ,p_effective_start_date => p_effective_start_date
3442 ,p_effective_end_date => p_effective_end_date
3443 ,p_object_version_number => p_object_version_number
3444 ,p_effective_date => trunc(p_effective_date)
3445 ,p_datetrack_mode => p_datetrack_delete_mode
3446 ,p_validate => l_validate
3447 );
3448 --
3449 if g_debug then
3450 hr_utility.set_location(l_proc, 7);
3451 end if;
3452 --
3453 -- When in validation only mode raise the Validate_Enabled exception
3454 --
3455 if p_validate then
3456 raise hr_api.validate_enabled;
3457 end if;
3458 --
3459 if g_debug then
3460 hr_utility.set_location(' Leaving:'||l_proc, 8);
3461 end if;
3462 exception
3463 when hr_api.validate_enabled then
3464 --
3465 -- As the Validate_Enabled exception has been raised
3466 -- we must rollback to the savepoint
3467 --
3468 ROLLBACK TO delete_personal_pay_method;
3469 --
3470 -- Only set output warning arguments
3471 -- (Any key or derived arguments must be set to null
3472 -- when validation only mode is being used.)
3473 --
3474 p_object_version_number := null;
3475 p_effective_start_date := null;
3476 p_effective_end_date := null;
3477 --
3478 when others then
3479 --
3480 -- A validation or unexpected error has occurred
3481 --
3482 -- Added as part of fix to bug 632479
3483 --
3484 ROLLBACK TO delete_personal_pay_method;
3485 p_object_version_number := null;
3486 p_effective_start_date := null;
3487 p_effective_end_date := null;
3488 raise;
3489 --
3490 -- End of fix.
3491 --
3492 if g_debug then
3493 hr_utility.set_location(' Leaving:'||l_proc, 9);
3494 end if;
3495 end delete_personal_pay_method;
3496 --
3497 end hr_personal_pay_method_api;