DBA Data[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;