[Home] [Help]
PACKAGE BODY: APPS.PAY_SFR_BUS
Source
1 Package Body pay_sfr_bus as
2 /* $Header: pysfrrhi.pkb 120.0 2005/05/29 08:40:36 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' pay_sfr_bus.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |-----------------------< chk_non_updateable_args >------------------------|
12 -- ----------------------------------------------------------------------------
13 Procedure chk_non_updateable_args
14 (p_rec in pay_sfr_shd.g_rec_type
15 ) is
16 --
17 -- Cursor to disallow update if a core formula result rule has been
18 -- generated from this shadow formula result rule.
19 --
20 cursor csr_disallow_update is
21 select null
22 from pay_template_core_objects tco
23 where tco.core_object_type = pay_tco_shd.g_sfr_lookup_type
24 and tco.shadow_object_id = p_rec.formula_result_rule_id;
25 --
26 l_proc varchar2(72) := g_package||'chk_non_updateable_args';
27 l_updating boolean;
28 l_error exception;
29 l_argument varchar2(30);
30 l_api_updating boolean;
31 l_disallow varchar2(1);
32 --
33 Begin
34 hr_utility.set_location('Entering:'||l_proc, 5);
35 l_api_updating := pay_sfr_shd.api_updating
36 (p_formula_result_rule_id => p_rec.formula_result_rule_id
37 ,p_object_version_number => p_rec.object_version_number
38 );
39 if not l_api_updating then
40 hr_utility.set_message(801,'HR_6153_ALL_PROCEDURE_FAIL');
41 hr_utility.set_message_token('PROCEDURE', l_proc);
42 hr_utility.set_message_token('STEP', '10');
43 hr_utility.raise_error;
44 end if;
45 --
46 hr_utility.set_location(l_proc, 15);
47 --
48 -- Check that the update is actually allowed.
49 --
50 open csr_disallow_update;
51 fetch csr_disallow_update into l_disallow;
52 if csr_disallow_update%found then
53 hr_utility.set_location(l_proc, 20);
54 close csr_disallow_update;
55 fnd_message.set_name('PAY', 'PAY_50094_SFR_CORE_ROW_EXISTS');
56 fnd_message.raise_error;
57 end if;
58 close csr_disallow_update;
59 --
60 -- p_shadow_element_type_id
61 --
62 if nvl(p_rec.shadow_element_type_id, hr_api.g_number) <>
63 nvl(pay_sfr_shd.g_old_rec.shadow_element_type_id, hr_api.g_number)
64 then
65 hr_utility.set_location(l_proc, 25);
66 l_argument := 'p_shadow_element_type_id';
67 raise l_error;
68 end if;
69 hr_utility.set_location(' Leaving:'||l_proc, 25);
70 exception
71 when l_error then
72 hr_utility.set_location('Leaving:'||l_proc, 30);
73 hr_api.argument_changed_error
74 (p_api_name => l_proc
75 ,p_argument => l_argument);
76 when others then
77 hr_utility.set_location('Leaving:'||l_proc, 35);
78 raise;
79 End chk_non_updateable_args;
80 -- ----------------------------------------------------------------------------
81 -- |----------------------< chk_shadow_element_type_id >----------------------|
82 -- ----------------------------------------------------------------------------
83 Procedure chk_shadow_element_type_id
84 (p_shadow_element_type_id in number
85 ) is
86 --
87 -- Cursor to check that the element type exists.
88 --
89 cursor csr_shadow_element_type_exists is
90 select null
91 from pay_shadow_element_types pset
92 where pset.element_type_id = p_shadow_element_type_id;
93 --
94 l_proc varchar2(72) := g_package||'chk_shadow_element_type_id';
95 l_exists varchar2(1);
96 --
97 Begin
98 hr_utility.set_location('Entering:'||l_proc, 5);
99 --
100 -- Check that the shadow element type is not null.
101 --
102 hr_api.mandatory_arg_error
103 (p_api_name => l_proc
104 ,p_argument => 'p_shadow_element_type_id'
105 ,p_argument_value => p_shadow_element_type_id
106 );
107 --
108 -- Check that the shadow element type exists.
109 --
110 open csr_shadow_element_type_exists;
111 fetch csr_shadow_element_type_exists into l_exists;
112 if csr_shadow_element_type_exists%notfound then
113 hr_utility.set_location(' Leaving:'||l_proc, 10);
114 close csr_shadow_element_type_exists;
115 fnd_message.set_name('PAY', 'PAY_50095_ETM_INVALID_ELE_TYPE');
116 fnd_message.raise_error;
117 end if;
118 close csr_shadow_element_type_exists;
119 hr_utility.set_location(' Leaving:'||l_proc, 20);
120 End chk_shadow_element_type_id;
121 -- ----------------------------------------------------------------------------
122 -- |-----------------------< chk_result_rule_type >---------------------------|
123 -- ----------------------------------------------------------------------------
124 Procedure chk_result_rule_type
125 (p_effective_date in date
126 ,p_result_rule_type in varchar2
127 ,p_formula_result_rule_id in number
128 ,p_object_version_number in number
129 ) is
130 --
131 l_proc varchar2(72) := g_package||'chk_result_rule_type';
132 l_api_updating boolean;
133 --
134 Begin
135 hr_utility.set_location('Entering:'||l_proc, 5);
136 l_api_updating := pay_sfr_shd.api_updating
137 (p_formula_result_rule_id => p_formula_result_rule_id
138 ,p_object_version_number => p_object_version_number
139 );
140 if (l_api_updating and
141 nvl(p_result_rule_type, hr_api.g_varchar2) <>
142 nvl(pay_sfr_shd.g_old_rec.result_rule_type, hr_api.g_varchar2))
143 or not l_api_updating
144 then
145 --
146 -- Result rule type is mandatory.
147 --
148 hr_api.mandatory_arg_error
149 (p_api_name => l_proc
150 ,p_argument => 'p_result_rule_type'
151 ,p_argument_value => p_result_rule_type
152 );
153 --
154 -- Validate against hr_lookups.
155 --
156 if hr_api.not_exists_in_hr_lookups
157 (p_effective_date => p_effective_date
158 ,p_lookup_type => 'RESULT_RULE_TYPE'
159 ,p_lookup_code => p_result_rule_type
160 )
161 then
162 hr_utility.set_location(' Leaving:'||l_proc, 10);
163 fnd_message.set_name('PAY', 'HR_52966_INVALID_LOOKUP');
164 fnd_message.set_token('LOOKUP_TYPE', 'RESULT_RULE_TYPE');
165 fnd_message.set_token('COLUMN', 'RESULT_RULE_TYPE');
166 fnd_message.raise_error;
167 end if;
168 end if;
169 hr_utility.set_location(' Leaving:'||l_proc, 20);
170 End chk_result_rule_type;
171 -- ----------------------------------------------------------------------------
172 -- |--------------------------< chk_element_type_id >-------------------------|
173 -- ----------------------------------------------------------------------------
174 Procedure chk_element_type_id
175 (p_element_type_id in number
176 ,p_element_name in varchar2
177 ,p_shadow_element_type_id in number
178 ,p_result_rule_type in varchar2
179 ,p_formula_result_rule_id in number
180 ,p_object_version_number in number
181 ) is
182 --
183 -- Cursor to check that the element type exists (and is in the same
184 -- template as the shadow element type).
185 --
186 cursor csr_element_type_exists is
187 select null
188 from pay_shadow_element_types pset
189 , pay_shadow_element_types pset1
190 where pset.element_type_id = p_shadow_element_type_id
191 and pset1.element_type_id = p_element_type_id
192 and pset1.template_id = pset.template_id;
193 --
194 l_proc varchar2(72) := g_package||'chk_element_type_id';
195 l_exists varchar2(1);
196 l_api_updating boolean;
197 --
198 Begin
199 hr_utility.set_location('Entering:'||l_proc, 5);
200 l_api_updating := pay_sfr_shd.api_updating
201 (p_formula_result_rule_id => p_formula_result_rule_id
202 ,p_object_version_number => p_object_version_number
203 );
204 if (l_api_updating and nvl(p_element_type_id, hr_api.g_number) <>
205 nvl(pay_sfr_shd.g_old_rec.element_type_id, hr_api.g_number)) or
206 not l_api_updating
207 then
208 if p_element_type_id is not null then
209 --
210 -- Check that the element type exists.
211 --
212 open csr_element_type_exists;
213 fetch csr_element_type_exists into l_exists;
214 if csr_element_type_exists%notfound then
215 hr_utility.set_location(' Leaving:'||l_proc, 10);
216 close csr_element_type_exists;
217 fnd_message.set_name('PAY', 'PAY_50096_SFR_ELE_ETM_MISMATCH');
218 fnd_message.raise_error;
219 end if;
220 close csr_element_type_exists;
221 end if;
222 end if;
223 --
224 -- Confirm that at least one of p_element_type_id and p_element_name is
225 -- null.
226 --
227 if p_element_type_id is not null and p_element_name is not null then
228 hr_utility.set_location(' Leaving:'||l_proc, 15);
229 fnd_message.set_name('PAY', 'PAY_50214_SFR_ELE_NOT_NULL');
230 fnd_message.raise_error;
231 end if;
232 hr_utility.set_location(' Leaving:'||l_proc, 20);
233 End chk_element_type_id;
234 -- ----------------------------------------------------------------------------
235 -- |--------------------------< chk_input_value_id >--------------------------|
236 -- ----------------------------------------------------------------------------
237 Procedure chk_input_value_id
238 (p_input_value_id in number
239 ,p_shadow_element_type_id in number
240 ,p_result_rule_type in varchar2
241 ,p_formula_result_rule_id in number
242 ,p_object_version_number in number
243 ) is
244 --
245 -- Cursor to check that the input value exists (and is in the same
246 -- template as the shadow element type).
247 --
248 cursor csr_input_value_exists is
249 select null
250 from pay_shadow_element_types pset
251 , pay_shadow_element_types pset1
252 , pay_shadow_input_values psiv
253 where pset.element_type_id = p_shadow_element_type_id
254 and pset1.template_id = pset.template_id
255 and psiv.input_value_id = p_input_value_id
256 and psiv.element_type_id = pset1.element_type_id;
257 --
258 l_proc varchar2(72) := g_package||'chk_input_value_id';
259 l_exists varchar2(1);
260 l_api_updating boolean;
261 --
262 Begin
263 hr_utility.set_location('Entering:'||l_proc, 5);
264 l_api_updating := pay_sfr_shd.api_updating
265 (p_formula_result_rule_id => p_formula_result_rule_id
266 ,p_object_version_number => p_object_version_number
267 );
268 if (l_api_updating and nvl(p_input_value_id, hr_api.g_number) <>
269 nvl(pay_sfr_shd.g_old_rec.input_value_id, hr_api.g_number)) or
270 not l_api_updating
271 then
272 if p_input_value_id is not null then
273 --
274 -- Check that the input value exists.
275 --
276 open csr_input_value_exists;
277 fetch csr_input_value_exists into l_exists;
278 if csr_input_value_exists%notfound then
279 hr_utility.set_location(' Leaving:'||l_proc, 10);
280 close csr_input_value_exists;
281 fnd_message.set_name('PAY', 'PAY_50098_ETM_INVALID_INP_VAL');
282 fnd_message.raise_error;
283 end if;
284 close csr_input_value_exists;
285 end if;
286 end if;
287 hr_utility.set_location(' Leaving:'||l_proc, 20);
288 End chk_input_value_id;
289 -- ----------------------------------------------------------------------------
290 -- |---------------------------< chk_result_name >---------------------------|
291 -- ----------------------------------------------------------------------------
292 Procedure chk_result_name
293 (p_result_name in varchar2
294 ,p_formula_result_rule_id in number
295 ,p_object_version_number in number
296 ) is
297 --
298 l_proc varchar2(72) := g_package||'chk_result_name';
299 l_legislation_code varchar2(2000);
300 l_exists varchar2(1);
301 l_value varchar2(2000);
302 l_output varchar2(2000);
303 l_rgeflg varchar2(2000);
304 l_api_updating boolean;
305 --
306 Begin
307 hr_utility.set_location('Entering:'||l_proc, 5);
308 l_api_updating := pay_sfr_shd.api_updating
309 (p_formula_result_rule_id => p_formula_result_rule_id
310 ,p_object_version_number => p_object_version_number
311 );
312 if (l_api_updating and nvl(p_result_name, hr_api.g_varchar2) <>
313 nvl(pay_sfr_shd.g_old_rec.result_name, hr_api.g_varchar2)) or
314 not l_api_updating
315 then
316 --
317 -- Check that the name format is correct (not null database item name).
318 --
319 l_value := p_result_name;
320 hr_chkfmt.checkformat
321 (value => l_value
322 ,format => 'PAY_NAME'
323 ,output => l_output
324 ,minimum => null
325 ,maximum => null
326 ,nullok => 'N'
327 ,rgeflg => l_rgeflg
328 ,curcode => null
329 );
330 end if;
331 hr_utility.set_location(' Leaving:'||l_proc, 20);
332 End chk_result_name;
333 -- ----------------------------------------------------------------------------
334 -- |-------------------------< chk_severity_level >---------------------------|
335 -- ----------------------------------------------------------------------------
336 Procedure chk_severity_level
337 (p_effective_date in date
338 ,p_severity_level in varchar2
339 ,p_result_rule_type in varchar2
340 ,p_formula_result_rule_id in number
341 ,p_object_version_number in number
342 ) is
343 --
344 l_proc varchar2(72) := g_package||'chk_severity_level';
345 l_api_updating boolean;
346 l_result_rule_changed boolean;
347 --
348 Begin
349 hr_utility.set_location('Entering:'||l_proc, 5);
350 l_api_updating := pay_sfr_shd.api_updating
351 (p_formula_result_rule_id => p_formula_result_rule_id
352 ,p_object_version_number => p_object_version_number
353 );
354 l_result_rule_changed :=
355 l_api_updating and nvl(p_result_rule_type, hr_api.g_varchar2) <>
356 nvl(pay_sfr_shd.g_old_rec.result_rule_type, hr_api.g_varchar2);
357 --
358 if (l_api_updating and
359 nvl(p_severity_level, hr_api.g_varchar2) <>
360 nvl(pay_sfr_shd.g_old_rec.severity_level, hr_api.g_varchar2))
361 or not l_api_updating or l_result_rule_changed
362 then
363 --
364 -- Severity level is mandatory if result rule type is 'M'.
365 --
366 if p_result_rule_type = 'M' then
367 hr_api.mandatory_arg_error
368 (p_api_name => l_proc
369 ,p_argument => 'p_severity_level'
370 ,p_argument_value => p_severity_level
371 );
372 --
373 -- Validate against hr_lookups.
374 --
375 if hr_api.not_exists_in_hr_lookups
376 (p_effective_date => p_effective_date
377 ,p_lookup_type => 'MESSAGE_LEVEL'
378 ,p_lookup_code => p_severity_level
379 )
380 then
381 hr_utility.set_location(' Leaving:'||l_proc, 10);
382 fnd_message.set_name('PAY', 'HR_52966_INVALID_LOOKUP');
383 fnd_message.set_token('LOOKUP_TYPE', 'MESSAGE_LEVEL');
384 fnd_message.set_token('COLUMN', 'SEVERITY_LEVEL');
385 fnd_message.raise_error;
386 end if;
387 --
388 -- Severity level must be null otherwise.
389 --
390 elsif p_severity_level is not null then
391 hr_utility.set_location(' Leaving:'||l_proc, 10);
392 fnd_message.set_name('PAY', 'PAY_50097_SFR_SEV_LVL_NOT_NULL');
393 fnd_message.set_token('RESULT_RULE_TYPE', p_result_rule_type);
394 fnd_message.raise_error;
395 end if;
396 end if;
397 hr_utility.set_location(' Leaving:'||l_proc, 20);
401 -- ----------------------------------------------------------------------------
398 End chk_severity_level;
399 -- ----------------------------------------------------------------------------
400 -- |-------------------------< chk_exclusion_rule_id >------------------------|
402 Procedure chk_exclusion_rule_id
403 (p_exclusion_rule_id in number
404 ,p_shadow_element_type_id in number
405 ,p_formula_result_rule_id in number
406 ,p_object_version_number in number
407 ) is
408 --
409 -- Cursor to check that the exclusion_rule_id is valid.
410 --
411 cursor csr_exclusion_rule_id_valid is
412 select null
413 from pay_shadow_element_types pset
414 , pay_template_exclusion_rules ter
415 where pset.element_type_id = p_shadow_element_type_id
416 and ter.template_id = pset.template_id
417 and ter.exclusion_rule_id = p_exclusion_rule_id;
418 --
419 l_proc varchar2(72) := g_package||'chk_exclusion_rule_id';
420 l_api_updating boolean;
421 l_valid varchar2(1);
422 --
423 Begin
424 hr_utility.set_location('Entering:'||l_proc, 5);
425 l_api_updating := pay_sfr_shd.api_updating
426 (p_formula_result_rule_id => p_formula_result_rule_id
427 ,p_object_version_number => p_object_version_number
428 );
429 if (l_api_updating and nvl(p_exclusion_rule_id, hr_api.g_number) <>
430 nvl(pay_sfr_shd.g_old_rec.exclusion_rule_id, hr_api.g_number)) or
431 not l_api_updating
432 then
433 if p_exclusion_rule_id is not null then
434 open csr_exclusion_rule_id_valid;
435 fetch csr_exclusion_rule_id_valid into l_valid;
436 if csr_exclusion_rule_id_valid%notfound then
437 hr_utility.set_location('Leaving:'||l_proc, 10);
438 close csr_exclusion_rule_id_valid;
439 fnd_message.set_name('PAY', 'PAY_50100_ETM_INVALID_EXC_RULE');
440 fnd_message.raise_error;
441 end if;
442 close csr_exclusion_rule_id_valid;
443 end if;
444 end if;
445 hr_utility.set_location(' Leaving:'||l_proc, 15);
446 End chk_exclusion_rule_id;
447 -- ----------------------------------------------------------------------------
448 -- |------------------------------< chk_delete >------------------------------|
449 -- ----------------------------------------------------------------------------
450 Procedure chk_delete
451 (p_formula_result_rule_id in number
452 ) is
453 --
454 -- Cursors to check for rows referencing the balance classification.
455 --
456 cursor csr_core_objects is
457 select null
458 from pay_template_core_objects tco
459 where tco.core_object_type = pay_tco_shd.g_sfr_lookup_type
460 and tco.shadow_object_id = p_formula_result_rule_id;
461 --
462 l_proc varchar2(72) := g_package||'chk_delete';
463 l_error exception;
464 l_exists varchar2(1);
465 --
466 Begin
467 hr_utility.set_location('Entering:'||l_proc, 5);
468 --
469 open csr_core_objects;
470 fetch csr_core_objects into l_exists;
471 if csr_core_objects%found then
472 hr_utility.set_location(' Leaving:'||l_proc, 10);
473 close csr_core_objects;
474 raise l_error;
475 end if;
476 close csr_core_objects;
477 hr_utility.set_location(' Leaving:'||l_proc, 25);
478 exception
479 when l_error then
480 fnd_message.set_name('PAY', 'PAY_50099_SFR_INVALID_DELETE');
481 fnd_message.raise_error;
482 when others then
483 hr_utility.set_location(' Leaving:'||l_proc, 30);
484 raise;
485 End chk_delete;
486 -- ----------------------------------------------------------------------------
487 -- |---------------------------< insert_validate >----------------------------|
488 -- ----------------------------------------------------------------------------
489 Procedure insert_validate
490 (p_effective_date in date
491 ,p_rec in pay_sfr_shd.g_rec_type
492 ) is
493 --
494 l_proc varchar2(72) := g_package||'insert_validate';
495 --
496 Begin
497 hr_utility.set_location('Entering:'||l_proc, 5);
498 --
499 -- Call all supporting business operations
500 --
501 chk_shadow_element_type_id(p_rec.shadow_element_type_id);
502 --
503 chk_result_rule_type
504 (p_effective_date => p_effective_date
505 ,p_result_rule_type => p_rec.result_rule_type
506 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
507 ,p_object_version_number => p_rec.object_version_number
508 );
509 --
510 chk_element_type_id
511 (p_element_type_id => p_rec.element_type_id
512 ,p_element_name => p_rec.element_name
513 ,p_shadow_element_type_id => p_rec.shadow_element_type_id
514 ,p_result_rule_type => p_rec.result_rule_type
515 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
516 ,p_object_version_number => p_rec.object_version_number
517 );
518 --
519 chk_input_value_id
520 (p_input_value_id => p_rec.input_value_id
521 ,p_shadow_element_type_id => p_rec.shadow_element_type_id
522 ,p_result_rule_type => p_rec.result_rule_type
523 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
524 ,p_object_version_number => p_rec.object_version_number
525 );
526 --
527 chk_result_name
528 (p_result_name => p_rec.result_name
532 --
529 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
530 ,p_object_version_number => p_rec.object_version_number
531 );
533 chk_severity_level
534 (p_effective_date => p_effective_date
535 ,p_severity_level => p_rec.severity_level
536 ,p_result_rule_type => p_rec.result_rule_type
537 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
538 ,p_object_version_number => p_rec.object_version_number
539 );
540 --
541 chk_exclusion_rule_id
542 (p_exclusion_rule_id => p_rec.exclusion_rule_id
543 ,p_shadow_element_type_id => p_rec.shadow_element_type_id
544 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
545 ,p_object_version_number => p_rec.object_version_number
546 );
547 hr_utility.set_location(' Leaving:'||l_proc, 10);
548 End insert_validate;
549 --
550 -- ----------------------------------------------------------------------------
551 -- |---------------------------< update_validate >----------------------------|
552 -- ----------------------------------------------------------------------------
553 Procedure update_validate
554 (p_effective_date in date
555 ,p_rec in pay_sfr_shd.g_rec_type
556 ) is
557 --
558 l_proc varchar2(72) := g_package||'update_validate';
559 --
560 Begin
561 hr_utility.set_location('Entering:'||l_proc, 5);
562 --
563 -- Call all supporting business operations
564 --
565 chk_non_updateable_args(p_rec);
566 --
567 chk_result_rule_type
568 (p_effective_date => p_effective_date
569 ,p_result_rule_type => p_rec.result_rule_type
570 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
571 ,p_object_version_number => p_rec.object_version_number
572 );
573 --
574 chk_element_type_id
575 (p_element_type_id => p_rec.element_type_id
576 ,p_element_name => p_rec.element_name
577 ,p_shadow_element_type_id => p_rec.shadow_element_type_id
578 ,p_result_rule_type => p_rec.result_rule_type
579 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
580 ,p_object_version_number => p_rec.object_version_number
581 );
582 --
583 chk_input_value_id
584 (p_input_value_id => p_rec.input_value_id
585 ,p_shadow_element_type_id => p_rec.shadow_element_type_id
586 ,p_result_rule_type => p_rec.result_rule_type
587 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
588 ,p_object_version_number => p_rec.object_version_number
589 );
590 --
591 chk_result_name
592 (p_result_name => p_rec.result_name
593 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
594 ,p_object_version_number => p_rec.object_version_number
595 );
596 --
597 chk_severity_level
598 (p_effective_date => p_effective_date
599 ,p_severity_level => p_rec.severity_level
600 ,p_result_rule_type => p_rec.result_rule_type
601 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
602 ,p_object_version_number => p_rec.object_version_number
603 );
604 --
605 chk_exclusion_rule_id
606 (p_exclusion_rule_id => p_rec.exclusion_rule_id
607 ,p_shadow_element_type_id => p_rec.shadow_element_type_id
608 ,p_formula_result_rule_id => p_rec.formula_result_rule_id
609 ,p_object_version_number => p_rec.object_version_number
610 );
611 --
612 hr_utility.set_location(' Leaving:'||l_proc, 10);
613 End update_validate;
614 --
615 -- ----------------------------------------------------------------------------
616 -- |---------------------------< delete_validate >----------------------------|
617 -- ----------------------------------------------------------------------------
618 Procedure delete_validate(p_rec in pay_sfr_shd.g_rec_type) is
619 --
620 l_proc varchar2(72) := g_package||'delete_validate';
621 --
622 Begin
623 hr_utility.set_location('Entering:'||l_proc, 5);
624 --
625 -- Call all supporting business operations
626 --
627 chk_delete(p_rec.formula_result_rule_id);
628 --
629 hr_utility.set_location(' Leaving:'||l_proc, 10);
630 End delete_validate;
631 --
632 end pay_sfr_bus;