[Home] [Help]
PACKAGE BODY: APPS.PER_ELC_BUS
Source
1 Package Body per_elc_bus as
2 /* $Header: peelcrhi.pkb 115.10 2002/12/05 10:37:58 pkakar noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_elc_bus.'; -- Global package name
9 --
10 -- The following two global variables are only to be
11 -- used by the return_legislation_code function.
12 --
13 g_legislation_code varchar2(150) default null;
14 g_election_id number default null;
15 --
16 -- ---------------------------------------------------------------------------
17 -- |--------------------------< chk_rep_body_id >---------------------------|
18 -- ---------------------------------------------------------------------------
19 --
20 -- Description:
21 -- - Validates that a representative body id exists in table
22 -- HR_ALL_ORGANIZATION_UNITS.
23 -- - Validates that the rep_body_id compares with that in
24 -- table HR_ORGANIZATION_INFORMATION
25 --
26 -- Pre-conditions:
27 -- None.
28 --
29 -- In Arguments:
30 -- p_election_id
31 -- p_rep_body_id
32 --
33 --
34 -- Post Success:
35 -- If a row does exist in HR_ALL_ORGANIZATION_UNITS for the given
36 -- representative id then processing continues.
37 --
38 -- Post Failure:
39 -- If a row does not exist in HR_ALL_ORGANIZATION_UNITS for the given
40 -- representative id then an application error will be raised and
41 -- processing is terminated.
42 --
43 -- Access Status:
44 -- Internal Table Handler Use Only.
45 --
46 -- {End Of Comments}
47 -- ----------------------------------------------------------------------------
48 procedure chk_rep_body_id
49 (p_election_id in per_elections.election_id%TYPE
50 ,p_object_version_number in per_elections.object_version_number%TYPE
51 ,p_rep_body_id in per_elections.rep_body_id%TYPE
52 )
53 is
54 --
55 l_proc varchar2(72) := g_package||'chk_rep_body_id';
56 --
57 l_api_updating boolean;
58 l_rep_body_id number;
59 --
60 --
61 cursor csr_valid_rep_body is
62 select hou.organization_id
63 from hr_all_organization_units hou
64 where hou.organization_id = p_rep_body_id
65 and exists(select 1
66 from hr_organization_information hoi
67 where hoi.organization_id = hou.organization_id
68 and hoi.org_information_context='CLASS'
69 and hoi.org_information1='REPBODY'
70 and hoi.org_information2='Y');
71 --
72 begin
73 hr_utility.set_location('Entering:'|| l_proc, 12);
74 --
75 -- Check mandatory parameters have been set
76 --
77 hr_api.mandatory_arg_error
78 (p_api_name => l_proc
79 ,p_argument => 'rep_body_id'
80 ,p_argument_value => p_rep_body_id
81 );
82 --
83 hr_utility.set_location(l_proc, 20);
84 --
85 -- Check if inserting or updating with modified values
86 --
87 l_api_updating := per_elc_shd.api_updating
88 (p_election_id => p_election_id
89 ,p_object_version_number => p_object_version_number
90 );
91 --
92 --
93 if ((l_api_updating and per_elc_shd.g_old_rec.rep_body_id <> p_rep_body_id)
94 or
95 (NOT l_api_updating))
96 then
97 hr_utility.set_location(l_proc, 30);
98 --
99 -- Check that the Representative Body ID is linked to a
100 -- valid representative on hr_all_organiztion_units
101 --
102 open csr_valid_rep_body;
103 fetch csr_valid_rep_body into l_rep_body_id;
104 if csr_valid_rep_body%notfound then
105 --
106 close csr_valid_rep_body;
107 fnd_message.set_name('PER', 'PER_289097_ELC_NO_REP_BODY');
108 hr_utility.raise_error;
109 --
110 end if;
111 close csr_valid_rep_body;
112 end if;
113 --
114 hr_utility.set_location(' Leaving:'|| l_proc, 40);
115 end chk_rep_body_id;
116 --
117 -- ---------------------------------------------------------------------------
118 -- |---------------------------< chk_can_delete >---------------------------|
119 -- ---------------------------------------------------------------------------
120 --
121 -- Description:
122 --
123 -- Pre-conditions:
124 -- None.
125 --
126 -- In Arguments:
127 -- p_election_id
128 --
129 --
130 -- Post Success:
131 --
132 -- Post Failure:
133 --
134 -- Access Status:
135 -- Internal Table Handler Use Only.
136 --
137 -- {End Of Comments}
138 -- ----------------------------------------------------------------------------
139 procedure chk_can_delete
140 (p_election_id in per_elections.election_id%TYPE
141 ,p_object_version_number in per_elections.object_version_number%TYPE
142 )
143 is
144 --
145 l_proc varchar2(72) := g_package||'chk_can_exists';
146 --
147 l_api_updating boolean;
148 l_election_id_a number;
149 l_election_id_b number;
150 --
151 --
152 cursor csr_valid_can_exists is
153 select pec.election_id
154 from per_election_candidates pec
155 where pec.election_id = p_election_id;
156 --
157 cursor csr_valid_con_exists is
158 select con.election_id
159 from per_election_constituencys con
160 where con.election_id = p_election_id;
161 --
162 begin
163 hr_utility.set_location(l_proc, 20);
164 --
165 -- Check if inserting or updating with modified values
166 --
167 l_api_updating := per_elc_shd.api_updating
168 (p_election_id => p_election_id
169 ,p_object_version_number => p_object_version_number
170 );
171 --
172 --
173 -- if ((l_api_updating and per_elc_shd.g_old_rec.election_id <> p_election_id)
174 -- or
175 -- (NOT l_api_updating))
176 -- then
177 hr_utility.set_location(l_proc, 30);
178 --
179 -- Check that the Election ID is not linked to a
180 -- valid candidate on per_election_candidates
181 --
182 open csr_valid_can_exists;
183 fetch csr_valid_can_exists into l_election_id_a;
184 if csr_valid_can_exists%found then
185 --
186 close csr_valid_can_exists;
187 fnd_message.set_name('PER', 'PER_289107_ELC_ID_CAN_EXISTS');
188 hr_utility.raise_error;
189 --
190 end if;
191 close csr_valid_can_exists;
192 --
193 hr_utility.set_location(l_proc, 40);
194 --
195 -- Check that the Election ID is not linked to a
196 -- valid candidate on per_election_constituencies
197 --
198 open csr_valid_con_exists;
199 fetch csr_valid_con_exists into l_election_id_b;
200 if csr_valid_con_exists%found then
201 --
202 close csr_valid_con_exists;
203 fnd_message.set_name('PER', 'PER_289108_ELC_ID_CON_EXISTS');
204 hr_utility.raise_error;
205 --
206 end if;
207 close csr_valid_con_exists;
208 --
209 -- end if;
210 --
211 hr_utility.set_location(' Leaving:'|| l_proc, 40);
212 end chk_can_delete;
213 --
214 -- ---------------------------------------------------------------------------
215 -- |-------------------------< chk_election_date >--------------------------|
216 -- ---------------------------------------------------------------------------
217 --
218 -- Description:
219 -- - Validates that a election date is not equal to null.
220 --
221 -- Pre-conditions:
222 -- None.
223 --
224 -- In Arguments:
225 -- p_election_date
226 --
227 --
228 -- Post Success:
229 --
230 -- Post Failure:
231 --
232 -- Access Status:
233 -- Internal Table Handler Use Only.
234 --
235 -- {End Of Comments}
236 -- ----------------------------------------------------------------------------
237 procedure chk_election_date
238 (p_election_date in per_elections.election_date%TYPE
239 ,p_election_id in per_elections.election_id%TYPE
240 ,p_result_publish_date in per_elections.result_publish_date%TYPE
241 ,p_object_version_number in per_elections.object_version_number%TYPE
242 )
243 is
244 --
245 l_proc varchar2(72) := g_package||'chk_rep_body_id';
246 --
247 l_api_updating boolean;
248 --
249 -- Cursor for text compare. From hr_organization_information
250 --
251 begin
252 hr_utility.set_location('Entering:'|| l_proc, 10);
253 --
254 -- Check mandatory parameters have been set
255 --
256 hr_api.mandatory_arg_error
257 (p_api_name => l_proc
258 ,p_argument => 'election_date'
259 ,p_argument_value => p_election_date
260 );
261 --
262
263 hr_utility.set_location(l_proc, 20);
264 --
265 -- Check if inserting or updating with modified values
266 --
267 l_api_updating := per_elc_shd.api_updating
268 (p_election_id => p_election_id
269 ,p_object_version_number => p_object_version_number
270 );
271 --
272 if ((l_api_updating and per_elc_shd.g_old_rec.election_date <> p_election_date)
273 or
274 (NOT l_api_updating))
275 then
276 hr_utility.set_location(l_proc, 30);
277 --
278 -- Check that the date_from values is less than
279 -- or equal to the date_to value for the current
280 -- record
281 --
282 if p_election_date > nvl(p_result_publish_date, hr_api.g_eot) then
283 fnd_message.set_name('PER', 'PER_289098_ELC_DATE_ERROR');
284 hr_utility.raise_error;
285 end if;
286 --
287 end if;
288 --
289 --
290 hr_utility.set_location(' Leaving:'|| l_proc, 40);
291 end chk_election_date;
292 --
293 -- ---------------------------------------------------------------------------
294 -- |----------------------< set_security_group_id >--------------------------|
295 -- ---------------------------------------------------------------------------
296 --
297 Procedure set_security_group_id
298 (p_election_id in number
299 ) is
300 --
301 -- Declare cursor
302 --
303 cursor csr_sec_grp is
304 select pbg.security_group_id
305 from per_business_groups pbg
306 , per_elections elc
307 where elc.election_id = p_election_id
308 and pbg.business_group_id = elc.business_group_id;
309 --
310 -- Declare local variables
311 --
312 l_security_group_id number;
313 l_proc varchar2(72) := g_package||'set_security_group_id';
314 --
315 begin
316 --
317 hr_utility.set_location('Entering:'|| l_proc, 10);
318 --
319 -- Ensure that all the mandatory parameter are not null
320 --
321 hr_api.mandatory_arg_error
322 (p_api_name => l_proc
323 ,p_argument => 'election_id'
324 ,p_argument_value => p_election_id
325 );
326 --
327 open csr_sec_grp;
328 fetch csr_sec_grp into l_security_group_id;
329 --
330 if csr_sec_grp%notfound then
331 --
332 close csr_sec_grp;
333 --
334 -- The primary key is invalid therefore we must error
335 --
336 fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
337 fnd_message.raise_error;
338 --
339 end if;
340 close csr_sec_grp;
341 --
342 -- Set the security_group_id in CLIENT_INFO
343 --
344 hr_api.set_security_group_id
345 (p_security_group_id => l_security_group_id
346 );
347 --
348 hr_utility.set_location(' Leaving:'|| l_proc, 20);
349 --
350 end set_security_group_id;
351 --
352 -- ---------------------------------------------------------------------------
353 -- |---------------------< return_legislation_code >-------------------------|
354 -- ---------------------------------------------------------------------------
355 --
356 Function return_legislation_code
357 (p_election_id in number
358 )
359 Return Varchar2 Is
360 --
361 -- Declare cursor
362 --
363 cursor csr_leg_code is
364 select pbg.legislation_code
365 from per_business_groups pbg
366 , per_elections elc
367 where elc.election_id = p_election_id
368 and pbg.business_group_id = elc.business_group_id;
369 --
370 -- Declare local variables
371 --
372 l_legislation_code varchar2(150);
373 l_proc varchar2(72) := g_package||'return_legislation_code';
374 --
375 Begin
376 --
377 hr_utility.set_location('Entering:'|| l_proc, 10);
378 --
379 -- Ensure that all the mandatory parameter are not null
380 --
381 hr_api.mandatory_arg_error
382 (p_api_name => l_proc
383 ,p_argument => 'election_id'
384 ,p_argument_value => p_election_id
385 );
386 --
387 if ( nvl(per_elc_bus.g_election_id, hr_api.g_number)
388 = p_election_id) then
389 --
390 -- The legislation code has already been found with a previous
391 -- call to this function. Just return the value in the global
392 -- variable.
393 --
394 l_legislation_code := per_elc_bus.g_legislation_code;
395 hr_utility.set_location(l_proc, 20);
396 else
397 --
398 -- The ID is different to the last call to this function
399 -- or this is the first call to this function.
400 --
401 open csr_leg_code;
402 fetch csr_leg_code into l_legislation_code;
403 --
404 if csr_leg_code%notfound then
405 --
406 -- The primary key is invalid therefore we must error
407 --
408 close csr_leg_code;
409 fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
410 fnd_message.raise_error;
411 end if;
412 hr_utility.set_location(l_proc,30);
413 --
414 -- Set the global variables so the values are
415 -- available for the next call to this function.
416 --
417 close csr_leg_code;
418 per_elc_bus.g_election_id := p_election_id;
419 per_elc_bus.g_legislation_code := l_legislation_code;
420 end if;
421 hr_utility.set_location(' Leaving:'|| l_proc, 40);
422 return l_legislation_code;
423 end return_legislation_code;
424 --
425 -- ----------------------------------------------------------------------------
426 -- |-----------------------------< chk_ddf >----------------------------------|
427 -- ----------------------------------------------------------------------------
428 --
429 -- Description:
430 -- Validates all the Developer Descriptive Flexfield values.
431 --
432 -- Prerequisites:
433 -- All other columns have been validated. Must be called as the
434 -- last step from insert_validate and update_validate.
435 --
436 -- In Arguments:
437 -- p_rec
438 --
439 -- Post Success:
440 -- If the Developer Descriptive Flexfield structure column and data values
441 -- are all valid this procedure will end normally and processing will
442 -- continue.
443 --
444 -- Post Failure:
445 -- If the Developer Descriptive Flexfield structure column value or any of
446 -- the data values are invalid then an application error is raised as
447 -- a PL/SQL exception.
448 --
449 -- Access Status:
450 -- Internal Row Handler Use Only.
451 --
452 -- ----------------------------------------------------------------------------
453 procedure chk_ddf
454 (p_rec in per_elc_shd.g_rec_type
455 ) is
456 --
457 l_proc varchar2(72) := g_package || 'chk_ddf';
458 --
459 begin
460 hr_utility.set_location('Entering:'||l_proc,10);
461 --
462 if ((p_rec.election_id is not null) and (
463 nvl(per_elc_shd.g_old_rec.election_info_category, hr_api.g_varchar2) <>
464 nvl(p_rec.election_info_category, hr_api.g_varchar2) or
465 nvl(per_elc_shd.g_old_rec.election_information1, hr_api.g_varchar2) <>
469 nvl(per_elc_shd.g_old_rec.election_information3, hr_api.g_varchar2) <>
466 nvl(p_rec.election_information1, hr_api.g_varchar2) or
467 nvl(per_elc_shd.g_old_rec.election_information2, hr_api.g_varchar2) <>
468 nvl(p_rec.election_information2, hr_api.g_varchar2) or
470 nvl(p_rec.election_information3, hr_api.g_varchar2) or
471 nvl(per_elc_shd.g_old_rec.election_information4, hr_api.g_varchar2) <>
472 nvl(p_rec.election_information4, hr_api.g_varchar2) or
473 nvl(per_elc_shd.g_old_rec.election_information5, hr_api.g_varchar2) <>
474 nvl(p_rec.election_information5, hr_api.g_varchar2) or
475 nvl(per_elc_shd.g_old_rec.election_information6, hr_api.g_varchar2) <>
476 nvl(p_rec.election_information6, hr_api.g_varchar2) or
477 nvl(per_elc_shd.g_old_rec.election_information7, hr_api.g_varchar2) <>
478 nvl(p_rec.election_information7, hr_api.g_varchar2) or
479 nvl(per_elc_shd.g_old_rec.election_information8, hr_api.g_varchar2) <>
480 nvl(p_rec.election_information8, hr_api.g_varchar2) or
481 nvl(per_elc_shd.g_old_rec.election_information9, hr_api.g_varchar2) <>
482 nvl(p_rec.election_information9, hr_api.g_varchar2) or
483 nvl(per_elc_shd.g_old_rec.election_information10, hr_api.g_varchar2) <>
484 nvl(p_rec.election_information10, hr_api.g_varchar2) or
485 nvl(per_elc_shd.g_old_rec.election_information11, hr_api.g_varchar2) <>
486 nvl(p_rec.election_information11, hr_api.g_varchar2) or
487 nvl(per_elc_shd.g_old_rec.election_information12, hr_api.g_varchar2) <>
488 nvl(p_rec.election_information12, hr_api.g_varchar2) or
489 nvl(per_elc_shd.g_old_rec.election_information13, hr_api.g_varchar2) <>
490 nvl(p_rec.election_information13, hr_api.g_varchar2) or
491 nvl(per_elc_shd.g_old_rec.election_information14, hr_api.g_varchar2) <>
492 nvl(p_rec.election_information14, hr_api.g_varchar2) or
493 nvl(per_elc_shd.g_old_rec.election_information15, hr_api.g_varchar2) <>
494 nvl(p_rec.election_information15, hr_api.g_varchar2) or
495 nvl(per_elc_shd.g_old_rec.election_information16, hr_api.g_varchar2) <>
496 nvl(p_rec.election_information16, hr_api.g_varchar2) or
497 nvl(per_elc_shd.g_old_rec.election_information17, hr_api.g_varchar2) <>
498 nvl(p_rec.election_information17, hr_api.g_varchar2) or
499 nvl(per_elc_shd.g_old_rec.election_information18, hr_api.g_varchar2) <>
500 nvl(p_rec.election_information18, hr_api.g_varchar2) or
501 nvl(per_elc_shd.g_old_rec.election_information19, hr_api.g_varchar2) <>
502 nvl(p_rec.election_information19, hr_api.g_varchar2) or
503 nvl(per_elc_shd.g_old_rec.election_information20, hr_api.g_varchar2) <>
504 nvl(p_rec.election_information20, hr_api.g_varchar2) or
505 nvl(per_elc_shd.g_old_rec.election_information21, hr_api.g_varchar2) <>
506 nvl(p_rec.election_information21, hr_api.g_varchar2) or
507 nvl(per_elc_shd.g_old_rec.election_information22, hr_api.g_varchar2) <>
508 nvl(p_rec.election_information22, hr_api.g_varchar2) or
509 nvl(per_elc_shd.g_old_rec.election_information23, hr_api.g_varchar2) <>
510 nvl(p_rec.election_information23, hr_api.g_varchar2) or
511 nvl(per_elc_shd.g_old_rec.election_information24, hr_api.g_varchar2) <>
512 nvl(p_rec.election_information24, hr_api.g_varchar2) or
513 nvl(per_elc_shd.g_old_rec.election_information25, hr_api.g_varchar2) <>
514 nvl(p_rec.election_information25, hr_api.g_varchar2) or
515 nvl(per_elc_shd.g_old_rec.election_information26, hr_api.g_varchar2) <>
516 nvl(p_rec.election_information26, hr_api.g_varchar2) or
517 nvl(per_elc_shd.g_old_rec.election_information27, hr_api.g_varchar2) <>
518 nvl(p_rec.election_information27, hr_api.g_varchar2) or
519 nvl(per_elc_shd.g_old_rec.election_information28, hr_api.g_varchar2) <>
520 nvl(p_rec.election_information28, hr_api.g_varchar2) or
521 nvl(per_elc_shd.g_old_rec.election_information29, hr_api.g_varchar2) <>
522 nvl(p_rec.election_information29, hr_api.g_varchar2) or
523 nvl(per_elc_shd.g_old_rec.election_information30, hr_api.g_varchar2) <>
524 nvl(p_rec.election_information30, hr_api.g_varchar2) ))
525 or (p_rec.election_id is null) then
526 --
527 -- Only execute the validation if absolutely necessary:
528 -- a) During update, the structure column value or any
529 -- of the attribute values have actually changed.
530 -- b) During insert.
531 --
532 hr_dflex_utility.ins_or_upd_descflex_attribs
533 (p_appl_short_name => 'PER'
534 ,p_descflex_name => 'Election Developer DF'
535 ,p_attribute_category => p_rec.election_info_category
536 ,p_attribute1_name => 'ELECTION_INFORMATION1'
537 ,p_attribute1_value => p_rec.election_information1
538 ,p_attribute2_name => 'ELECTION_INFORMATION2'
539 ,p_attribute2_value => p_rec.election_information2
540 ,p_attribute3_name => 'ELECTION_INFORMATION3'
541 ,p_attribute3_value => p_rec.election_information3
542 ,p_attribute4_name => 'ELECTION_INFORMATION4'
543 ,p_attribute4_value => p_rec.election_information4
544 ,p_attribute5_name => 'ELECTION_INFORMATION5'
545 ,p_attribute5_value => p_rec.election_information5
546 ,p_attribute6_name => 'ELECTION_INFORMATION6'
547 ,p_attribute6_value => p_rec.election_information6
548 ,p_attribute7_name => 'ELECTION_INFORMATION7'
549 ,p_attribute7_value => p_rec.election_information7
550 ,p_attribute8_name => 'ELECTION_INFORMATION8'
551 ,p_attribute8_value => p_rec.election_information8
552 ,p_attribute9_name => 'ELECTION_INFORMATION9'
556 ,p_attribute11_name => 'ELECTION_INFORMATION11'
553 ,p_attribute9_value => p_rec.election_information9
554 ,p_attribute10_name => 'ELECTION_INFORMATION10'
555 ,p_attribute10_value => p_rec.election_information10
557 ,p_attribute11_value => p_rec.election_information11
558 ,p_attribute12_name => 'ELECTION_INFORMATION12'
559 ,p_attribute12_value => p_rec.election_information12
560 ,p_attribute13_name => 'ELECTION_INFORMATION13'
561 ,p_attribute13_value => p_rec.election_information13
562 ,p_attribute14_name => 'ELECTION_INFORMATION14'
563 ,p_attribute14_value => p_rec.election_information14
564 ,p_attribute15_name => 'ELECTION_INFORMATION15'
565 ,p_attribute15_value => p_rec.election_information15
566 ,p_attribute16_name => 'ELECTION_INFORMATION16'
567 ,p_attribute16_value => p_rec.election_information16
568 ,p_attribute17_name => 'ELECTION_INFORMATION17'
569 ,p_attribute17_value => p_rec.election_information17
570 ,p_attribute18_name => 'ELECTION_INFORMATION18'
571 ,p_attribute18_value => p_rec.election_information18
572 ,p_attribute19_name => 'ELECTION_INFORMATION19'
573 ,p_attribute19_value => p_rec.election_information19
574 ,p_attribute20_name => 'ELECTION_INFORMATION20'
575 ,p_attribute20_value => p_rec.election_information20
576 ,p_attribute21_name => 'ELECTION_INFORMATION21'
577 ,p_attribute21_value => p_rec.election_information21
578 ,p_attribute22_name => 'ELECTION_INFORMATION22'
579 ,p_attribute22_value => p_rec.election_information22
580 ,p_attribute23_name => 'ELECTION_INFORMATION23'
581 ,p_attribute23_value => p_rec.election_information23
582 ,p_attribute24_name => 'ELECTION_INFORMATION24'
583 ,p_attribute24_value => p_rec.election_information24
584 ,p_attribute25_name => 'ELECTION_INFORMATION25'
585 ,p_attribute25_value => p_rec.election_information25
586 ,p_attribute26_name => 'ELECTION_INFORMATION26'
587 ,p_attribute26_value => p_rec.election_information26
588 ,p_attribute27_name => 'ELECTION_INFORMATION27'
589 ,p_attribute27_value => p_rec.election_information27
590 ,p_attribute28_name => 'ELECTION_INFORMATION28'
591 ,p_attribute28_value => p_rec.election_information28
592 ,p_attribute29_name => 'ELECTION_INFORMATION29'
593 ,p_attribute29_value => p_rec.election_information29
594 ,p_attribute30_name => 'ELECTION_INFORMATION30'
595 ,p_attribute30_value => p_rec.election_information30
596 );
597 end if;
598 --
599 hr_utility.set_location(' Leaving:'||l_proc,20);
600 end chk_ddf;
601 --
602 -- ----------------------------------------------------------------------------
603 -- |------------------------------< chk_df >----------------------------------|
604 -- ----------------------------------------------------------------------------
605 --
606 -- Description:
607 -- Validates all the Descriptive Flexfield values.
608 --
609 -- Prerequisites:
610 -- All other columns have been validated. Must be called as the
611 -- last step from insert_validate and update_validate.
612 --
613 -- In Arguments:
614 -- p_rec
615 --
616 -- Post Success:
617 -- If the Descriptive Flexfield structure column and data values are
618 -- all valid this procedure will end normally and processing will
619 -- continue.
620 --
621 -- Post Failure:
622 -- If the Descriptive Flexfield structure column value or any of
623 -- the data values are invalid then an application error is raised as
624 -- a PL/SQL exception.
625 --
626 -- Access Status:
627 -- Internal Row Handler Use Only.
628 --
629 -- ----------------------------------------------------------------------------
630 procedure chk_df
631 (p_rec in per_elc_shd.g_rec_type
632 ) is
633 --
634 l_proc varchar2(72) := g_package || 'chk_df';
635 --
636 begin
637 hr_utility.set_location('Entering:'||l_proc,10);
638 --
639 if ((p_rec.election_id is not null) and (
640 nvl(per_elc_shd.g_old_rec.attribute_category, hr_api.g_varchar2) <>
641 nvl(p_rec.attribute_category, hr_api.g_varchar2) or
642 nvl(per_elc_shd.g_old_rec.attribute1, hr_api.g_varchar2) <>
643 nvl(p_rec.attribute1, hr_api.g_varchar2) or
644 nvl(per_elc_shd.g_old_rec.attribute2, hr_api.g_varchar2) <>
645 nvl(p_rec.attribute2, hr_api.g_varchar2) or
646 nvl(per_elc_shd.g_old_rec.attribute3, hr_api.g_varchar2) <>
647 nvl(p_rec.attribute3, hr_api.g_varchar2) or
648 nvl(per_elc_shd.g_old_rec.attribute4, hr_api.g_varchar2) <>
649 nvl(p_rec.attribute4, hr_api.g_varchar2) or
650 nvl(per_elc_shd.g_old_rec.attribute5, hr_api.g_varchar2) <>
651 nvl(p_rec.attribute5, hr_api.g_varchar2) or
652 nvl(per_elc_shd.g_old_rec.attribute6, hr_api.g_varchar2) <>
653 nvl(p_rec.attribute6, hr_api.g_varchar2) or
654 nvl(per_elc_shd.g_old_rec.attribute7, hr_api.g_varchar2) <>
655 nvl(p_rec.attribute7, hr_api.g_varchar2) or
656 nvl(per_elc_shd.g_old_rec.attribute8, hr_api.g_varchar2) <>
660 nvl(per_elc_shd.g_old_rec.attribute10, hr_api.g_varchar2) <>
657 nvl(p_rec.attribute8, hr_api.g_varchar2) or
658 nvl(per_elc_shd.g_old_rec.attribute9, hr_api.g_varchar2) <>
659 nvl(p_rec.attribute9, hr_api.g_varchar2) or
661 nvl(p_rec.attribute10, hr_api.g_varchar2) or
662 nvl(per_elc_shd.g_old_rec.attribute11, hr_api.g_varchar2) <>
663 nvl(p_rec.attribute11, hr_api.g_varchar2) or
664 nvl(per_elc_shd.g_old_rec.attribute12, hr_api.g_varchar2) <>
665 nvl(p_rec.attribute12, hr_api.g_varchar2) or
666 nvl(per_elc_shd.g_old_rec.attribute13, hr_api.g_varchar2) <>
667 nvl(p_rec.attribute13, hr_api.g_varchar2) or
668 nvl(per_elc_shd.g_old_rec.attribute14, hr_api.g_varchar2) <>
669 nvl(p_rec.attribute14, hr_api.g_varchar2) or
670 nvl(per_elc_shd.g_old_rec.attribute15, hr_api.g_varchar2) <>
671 nvl(p_rec.attribute15, hr_api.g_varchar2) or
672 nvl(per_elc_shd.g_old_rec.attribute16, hr_api.g_varchar2) <>
673 nvl(p_rec.attribute16, hr_api.g_varchar2) or
674 nvl(per_elc_shd.g_old_rec.attribute17, hr_api.g_varchar2) <>
675 nvl(p_rec.attribute17, hr_api.g_varchar2) or
676 nvl(per_elc_shd.g_old_rec.attribute18, hr_api.g_varchar2) <>
677 nvl(p_rec.attribute18, hr_api.g_varchar2) or
678 nvl(per_elc_shd.g_old_rec.attribute19, hr_api.g_varchar2) <>
679 nvl(p_rec.attribute19, hr_api.g_varchar2) or
680 nvl(per_elc_shd.g_old_rec.attribute20, hr_api.g_varchar2) <>
681 nvl(p_rec.attribute20, hr_api.g_varchar2) or
682 nvl(per_elc_shd.g_old_rec.attribute21, hr_api.g_varchar2) <>
683 nvl(p_rec.attribute21, hr_api.g_varchar2) or
684 nvl(per_elc_shd.g_old_rec.attribute22, hr_api.g_varchar2) <>
685 nvl(p_rec.attribute22, hr_api.g_varchar2) or
686 nvl(per_elc_shd.g_old_rec.attribute23, hr_api.g_varchar2) <>
687 nvl(p_rec.attribute23, hr_api.g_varchar2) or
688 nvl(per_elc_shd.g_old_rec.attribute24, hr_api.g_varchar2) <>
689 nvl(p_rec.attribute24, hr_api.g_varchar2) or
690 nvl(per_elc_shd.g_old_rec.attribute25, hr_api.g_varchar2) <>
691 nvl(p_rec.attribute25, hr_api.g_varchar2) or
692 nvl(per_elc_shd.g_old_rec.attribute26, hr_api.g_varchar2) <>
693 nvl(p_rec.attribute26, hr_api.g_varchar2) or
694 nvl(per_elc_shd.g_old_rec.attribute27, hr_api.g_varchar2) <>
695 nvl(p_rec.attribute27, hr_api.g_varchar2) or
696 nvl(per_elc_shd.g_old_rec.attribute28, hr_api.g_varchar2) <>
697 nvl(p_rec.attribute28, hr_api.g_varchar2) or
698 nvl(per_elc_shd.g_old_rec.attribute29, hr_api.g_varchar2) <>
699 nvl(p_rec.attribute29, hr_api.g_varchar2) or
700 nvl(per_elc_shd.g_old_rec.attribute30, hr_api.g_varchar2) <>
701 nvl(p_rec.attribute30, hr_api.g_varchar2) ))
702 or (p_rec.election_id is null) then
703 --
704 -- Only execute the validation if absolutely necessary:
705 -- a) During update, the structure column value or any
706 -- of the attribute values have actually changed.
707 -- b) During insert.
708 --
709 hr_dflex_utility.ins_or_upd_descflex_attribs
710 (p_appl_short_name => 'PER'
711 ,p_descflex_name => 'PER_ELECTIONS'
712 ,p_attribute_category => p_rec.attribute_category
713 ,p_attribute1_name => 'ATTRIBUTE1'
714 ,p_attribute1_value => p_rec.attribute1
715 ,p_attribute2_name => 'ATTRIBUTE2'
716 ,p_attribute2_value => p_rec.attribute2
717 ,p_attribute3_name => 'ATTRIBUTE3'
718 ,p_attribute3_value => p_rec.attribute3
719 ,p_attribute4_name => 'ATTRIBUTE4'
720 ,p_attribute4_value => p_rec.attribute4
721 ,p_attribute5_name => 'ATTRIBUTE5'
722 ,p_attribute5_value => p_rec.attribute5
723 ,p_attribute6_name => 'ATTRIBUTE6'
724 ,p_attribute6_value => p_rec.attribute6
725 ,p_attribute7_name => 'ATTRIBUTE7'
726 ,p_attribute7_value => p_rec.attribute7
727 ,p_attribute8_name => 'ATTRIBUTE8'
728 ,p_attribute8_value => p_rec.attribute8
729 ,p_attribute9_name => 'ATTRIBUTE9'
730 ,p_attribute9_value => p_rec.attribute9
731 ,p_attribute10_name => 'ATTRIBUTE10'
732 ,p_attribute10_value => p_rec.attribute10
733 ,p_attribute11_name => 'ATTRIBUTE11'
734 ,p_attribute11_value => p_rec.attribute11
735 ,p_attribute12_name => 'ATTRIBUTE12'
736 ,p_attribute12_value => p_rec.attribute12
737 ,p_attribute13_name => 'ATTRIBUTE13'
738 ,p_attribute13_value => p_rec.attribute13
742 ,p_attribute15_value => p_rec.attribute15
739 ,p_attribute14_name => 'ATTRIBUTE14'
740 ,p_attribute14_value => p_rec.attribute14
741 ,p_attribute15_name => 'ATTRIBUTE15'
743 ,p_attribute16_name => 'ATTRIBUTE16'
744 ,p_attribute16_value => p_rec.attribute16
745 ,p_attribute17_name => 'ATTRIBUTE17'
746 ,p_attribute17_value => p_rec.attribute17
747 ,p_attribute18_name => 'ATTRIBUTE18'
748 ,p_attribute18_value => p_rec.attribute18
749 ,p_attribute19_name => 'ATTRIBUTE19'
750 ,p_attribute19_value => p_rec.attribute19
751 ,p_attribute20_name => 'ATTRIBUTE20'
752 ,p_attribute20_value => p_rec.attribute20
753 ,p_attribute21_name => 'ATTRIBUTE21'
754 ,p_attribute21_value => p_rec.attribute21
755 ,p_attribute22_name => 'ATTRIBUTE22'
756 ,p_attribute22_value => p_rec.attribute22
757 ,p_attribute23_name => 'ATTRIBUTE23'
758 ,p_attribute23_value => p_rec.attribute23
759 ,p_attribute24_name => 'ATTRIBUTE24'
760 ,p_attribute24_value => p_rec.attribute24
761 ,p_attribute25_name => 'ATTRIBUTE25'
762 ,p_attribute25_value => p_rec.attribute25
763 ,p_attribute26_name => 'ATTRIBUTE26'
764 ,p_attribute26_value => p_rec.attribute26
765 ,p_attribute27_name => 'ATTRIBUTE27'
766 ,p_attribute27_value => p_rec.attribute27
767 ,p_attribute28_name => 'ATTRIBUTE28'
768 ,p_attribute28_value => p_rec.attribute28
769 ,p_attribute29_name => 'ATTRIBUTE29'
770 ,p_attribute29_value => p_rec.attribute29
771 ,p_attribute30_name => 'ATTRIBUTE30'
772 ,p_attribute30_value => p_rec.attribute30
773 );
774 end if;
775 --
776 hr_utility.set_location(' Leaving:'||l_proc,20);
777 end chk_df;
778 --
779 -- ----------------------------------------------------------------------------
780 -- |-----------------------< chk_non_updateable_args >------------------------|
781 -- ----------------------------------------------------------------------------
782 -- {Start Of Comments}
783 --
784 -- Description:
785 -- This procedure is used to ensure that non updateable attributes have
786 -- not been updated. If an attribute has been updated an error is generated.
787 --
788 -- Pre Conditions:
789 -- g_old_rec has been populated with details of the values currently in
790 -- the database.
791 --
792 -- In Arguments:
793 -- p_rec has been populated with the updated values the user would like the
794 -- record set to.
795 --
796 -- Post Success:
797 -- Processing continues if all the non updateable attributes have not
798 -- changed.
799 --
800 -- Post Failure:
801 -- An application error is raised if any of the non updatable attributes
802 -- have been altered.
803 --
804 -- {End Of Comments}
805 -- ----------------------------------------------------------------------------
806 Procedure chk_non_updateable_args
807 (p_effective_date in date
808 ,p_rec in per_elc_shd.g_rec_type
809 ) IS
810 --
811 l_proc varchar2(72) := g_package || 'chk_non_updateable_args';
812 l_error EXCEPTION;
813 l_argument varchar2(30);
814 --
815 Begin
816 --
817 -- Only proceed with the validation if a row exists for the current
818 -- record in the HR Schema.
819 --
820 IF NOT per_elc_shd.api_updating
821 (p_election_id => p_rec.election_id
822 ,p_object_version_number => p_rec.object_version_number
823 ) THEN
824 fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
825 fnd_message.set_token('PROCEDURE ', l_proc);
826 fnd_message.set_token('STEP ', '5');
827 fnd_message.raise_error;
828 END IF;
829 --
830 -- EDIT_HERE: Add checks to ensure non-updateable args have
831 -- not been updated.
832 --
833 EXCEPTION
834 WHEN l_error THEN
835 hr_api.argument_changed_error
836 (p_api_name => l_proc
837 ,p_argument => l_argument);
838 WHEN OTHERS THEN
839 RAISE;
840 End chk_non_updateable_args;
841 --
842 -- ----------------------------------------------------------------------------
843 -- |---------------------------< insert_validate >----------------------------|
844 -- ----------------------------------------------------------------------------
845 Procedure insert_validate
846 (p_effective_date in date
847 ,p_rec in per_elc_shd.g_rec_type
848 ) is
849 --
850 l_proc varchar2(72) := g_package||'insert_validate';
851 --
852 Begin
853 hr_utility.set_location('Entering:'||l_proc, 5);
854 --
855 -- Call all supporting business operations
856 --
857 hr_api.validate_bus_grp_id(p_rec.business_group_id); -- Validate Bus Grp
858 --
859 --
860 hr_utility.set_location('Entering: chk_rep_body_id', 10);
861
862 chk_rep_body_id
863 (p_election_id => p_rec.election_id
864 ,p_rep_body_id => p_rec.rep_body_id
865 ,p_object_version_number => p_rec.object_version_number
866 );
867
868 hr_utility.set_location('Entering: chk_election_date', 15);
869
870 chk_election_date
871 (p_election_id => p_rec.election_id
872 ,p_election_date => p_rec.election_date
873 ,p_result_publish_date => p_rec.result_publish_date
874 ,p_object_version_number => p_rec.object_version_number
875 );
876
877 per_elc_bus.chk_ddf(p_rec);
878 --
879 per_elc_bus.chk_df(p_rec);
880 --
881 hr_utility.set_location(' Leaving:'||l_proc, 20);
882 End insert_validate;
883 --
884 -- ----------------------------------------------------------------------------
885 -- |---------------------------< update_validate >----------------------------|
886 -- ----------------------------------------------------------------------------
887 Procedure update_validate
888 (p_effective_date in date
889 ,p_rec in per_elc_shd.g_rec_type
890 ) is
891 --
892 l_proc varchar2(72) := g_package||'update_validate';
893 --
894 Begin
895 hr_utility.set_location('Entering:'||l_proc, 5);
896 --
897 -- Call all supporting business operations
898 --
899 hr_api.validate_bus_grp_id(p_rec.business_group_id); -- Validate Bus Grp
900 --
901 chk_non_updateable_args
902 (p_effective_date => p_effective_date
903 ,p_rec => p_rec
904 );
905 --
906 hr_utility.set_location('Entering: chk_rep_body_id', 10);
907
908 chk_rep_body_id
909 (p_election_id => p_rec.election_id
910 ,p_rep_body_id => p_rec.rep_body_id
911 ,p_object_version_number => p_rec.object_version_number
912 );
913
914 hr_utility.set_location('Entering: chk_election_date', 15);
915
916 chk_election_date
917 (p_election_id => p_rec.election_id
918 ,p_election_date => p_rec.election_date
919 ,p_result_publish_date => p_rec.result_publish_date
920 ,p_object_version_number => p_rec.object_version_number
921 );
922
923 --
924 per_elc_bus.chk_ddf(p_rec);
925 --
926 per_elc_bus.chk_df(p_rec);
927 --
928 hr_utility.set_location(' Leaving:'||l_proc, 20);
929 End update_validate;
930 --
931 -- ----------------------------------------------------------------------------
932 -- |---------------------------< delete_validate >----------------------------|
933 -- ----------------------------------------------------------------------------
934 Procedure delete_validate
935 (p_rec in per_elc_shd.g_rec_type
936 ) is
937 --
938 l_proc varchar2(72) := g_package||'delete_validate';
939 --
940 Begin
941 hr_utility.set_location('Entering:'||l_proc, 5);
942 --
943 -- Call all supporting business operations
944 --
945 per_elc_bus.chk_can_delete
946 (p_election_id => p_rec.election_id
947 ,p_object_version_number => p_rec.object_version_number
948 );
949 --
950 hr_utility.set_location(' Leaving:'||l_proc, 20);
951 End delete_validate;
952 --
953 end per_elc_bus;