DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_GRA_BUS

Source


1 Package Body per_gra_bus as
2 /* $Header: pegrarhi.pkb 115.4 2003/08/31 00:48:34 kjagadee ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)	:= ' per_gra_bus.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |----------------------< chk_cagr_grade_id >-------------------------------|
12 -- ----------------------------------------------------------------------------
13 --
14 -- Description
15 --   This procedure is used to check that the primary key for the table
16 --   is created properly. It should be null on insert and
17 --   should not be able to be updated.
18 --
19 -- Pre Conditions
20 --   None.
21 --
22 -- In Parameters
23 --   cagr_grade_id PK of record being inserted or updated.
24 --   object_version_number Object version number of record being
25 --                         inserted or updated.
26 --
27 -- Post Success
28 --   Processing continues
29 --
30 -- Post Failure
31 --   Errors handled by the procedure
32 --
33 -- Access Status
34 --   Internal table handler use only.
35 --
36 --
37 -- {End Of Comments}
38 -- ----------------------------------------------------------------------------
39 Procedure chk_cagr_grade_id(p_cagr_grade_id                in number,
40                             p_object_version_number        in number,
41                             p_effective_date		   in date) is
42   --
43   l_proc         varchar2(72) := g_package||'chk_cagr_grade_id';
44   l_api_updating boolean;
45   --
46 Begin
47   --
48   hr_utility.set_location('Entering:'||l_proc, 5);
49   --
50   l_api_updating := per_gra_shd.api_updating
51     (p_cagr_grade_id                => p_cagr_grade_id,
52      p_object_version_number        => p_object_version_number,
53      p_effective_date		    => p_effective_date);
54   --
55   if (l_api_updating
56      and nvl(p_cagr_grade_id,hr_api.g_number)
57      <>  per_gra_shd.g_old_rec.cagr_grade_id) then
58     --
59     -- raise error as PK has changed
60     --
61     per_gra_shd.constraint_error('PER_CAGR_GRADES_PK');
62     --
63   elsif not l_api_updating then
64     --
65     -- check if PK is null
66     --
67     if p_cagr_grade_id is not null then
68       --
69       -- raise error as PK is not null
70       --
71       per_gra_shd.constraint_error('PER_CAGR_GRADES_PK');
72       --
73     end if;
74     --
75   end if;
76   --
77   hr_utility.set_location('Leaving:'||l_proc, 10);
78   --
79 End chk_cagr_grade_id;
80 --
81 -- ----------------------------------------------------------------------------
82 -- |---------------------< chk_cagr_grade_structure_id >----------------------|
83 -- ----------------------------------------------------------------------------
84 --  Desciption :
85 --
86 --    Validates CAGR_GRADE_STRUCTURE_ID must be not null.
87 --    Validates that CAGR_GRADE_STRUCTURE_ID exits.
88 --
89 --  Pre-conditions:
90 --
91 --
92 --  In Arguments :
93 --    p_cagr_grade_structure_id
94 --
95 -- Post Success
96 --   Processing continues
97 --
98 -- Post Failure
99 --   Errors handled by the procedure
100 --
101 -- Access Status
102 --   Internal table handler use only.
103 --
104 --
105 -- {End Of Comments}
106 -- ----------------------------------------------------------------------------
107 
108 procedure chk_cagr_grade_structure_id(
109 		  p_cagr_grade_structure_id IN NUMBER
110 		 ) is
111 --
112 cursor crs_cgs is
113   SELECT  '1'
114     FROM  per_cagr_grade_structures cgs
115       wHERE  cgs.cagr_grade_structure_id = p_cagr_grade_structure_id;
116 --
117 l_proc         varchar2(72) := g_package||'chk_cagr_grade_structure_id';
118 l_exists VARCHAR2(2);
119 --
120 BEGIN
121    --
122    hr_utility.set_location('Entering:'||l_proc, 5);
123    --
124      hr_api.mandatory_arg_error
125      (p_api_name       => l_proc,
126       p_argument       => 'cagr_grade_structure_id',
127       p_argument_value => p_cagr_grade_structure_id);
128    --
129    hr_utility.set_location(l_proc,10);
130    --
131    OPEN crs_cgs;
132    --
133    FETCH crs_cgs INTO l_exists;
134     hr_utility.set_location(l_proc,15);
135    IF crs_cgs%notfound THEN
136       fnd_message.set_name('PER','PER_52810_INVALID_STRUCTURE');
137       CLOSE crs_cgs;
138       fnd_message.raise_error;
139    END IF;
140    CLOSE crs_cgs;
141    --
142    hr_utility.set_location('Leaving:'||l_proc, 20);
143    --
144 END chk_cagr_grade_structure_id;
145 --
146 -- ----------------------------------------------------------------------------
147 -- |---------------------< chk_cagr_grade_def_id >----------------------------|
148 -- ----------------------------------------------------------------------------
149 --  Desciption :
150 --
151 --    Validates CAGR_GRADE_DEF_ID must be not null.
152 --    Validates that CAGR_GRADE_DEF_ID exits.
153 --
154 --  Pre-conditions:
155 --
156 --
157 --  In Arguments :
158 --    p_cagr_grade_def_id
159 --
160 -- Post Success
161 --   Processing continues
162 --
163 -- Post Failure
164 --   Errors handled by the procedure
165 --
166 -- Access Status
167 --   Internal table handler use only.
168 --
169 --
170 -- {End Of Comments}
171 -- ----------------------------------------------------------------------------
172 procedure chk_cagr_grade_def_id(
173 		  p_cagr_grade_def_id IN NUMBER
174 		 ) is
175 --
176 cursor crs_cgd is
177   SELECT  '1'
178     FROM  per_cagr_grades_def cgs
179       wHERE  cgs.cagr_grade_def_id = p_cagr_grade_def_id;
180 --
181 l_proc         varchar2(72) := g_package||'chk_cagr_grade_def_id';
182 l_exists VARCHAR2(2);
183 --
184 BEGIN
185    --
186    hr_utility.set_location('Entering:'||l_proc, 5);
187    --
188      hr_api.mandatory_arg_error
189      (p_api_name       => l_proc,
190       p_argument       => 'cagr_grade_def_id',
191       p_argument_value => p_cagr_grade_def_id);
192    --
193    hr_utility.set_location(l_proc,10);
194    --
195    OPEN crs_cgd;
196    --
197    FETCH crs_cgd INTO l_exists;
198     hr_utility.set_location(l_proc,15);
199    IF crs_cgd%notfound THEN
200       fnd_message.set_name('PER','PER_52616_INVALID_GRADE_DEF');
201       CLOSE crs_cgd;
202       fnd_message.raise_error;
203    END IF;
204    CLOSE crs_cgd;
205    --
206    hr_utility.set_location('Leaving:'||l_proc, 20);
207    --
208 END chk_cagr_grade_def_id;
209 --
210 -- ----------------------------------------------------------------------------
211 -- |------------------------< chk_sequence >-----------------------------------|
212 -- ---------------------------------------------------------------------------
213 --  Desciption :
214 --
215 --    Validates SEQUENCE must be not null.
216 --    Validates that SEQUENCE does not exit for a same structure.
217 --
218 --  Pre-conditions:
219 --
220 --
221 --  In Arguments :
222 --    p_cagr_grade_id
223 --    p_sequence
224 --    p_cagr_grades_structure_id
225 --
226 -- Post Success
227 --   Processing continues
228 --
229 -- Post Failure
230 --   Errors handled by the procedure
231 --
232 -- Access Status
233 --   Internal table handler use only.
234 --
235 --
236 -- {End Of Comments}
237 -- ----------------------------------------------------------------------------
238 procedure chk_sequence(
239 		  p_cagr_grade_id IN NUMBER,
240 		  p_sequence IN NUMBER,
241 		  p_cagr_grade_structure_id IN NUMBER
242 		 ) IS
243 --
244 cursor c_all_seq IS
245   SELECT  '1'
246     FROM  per_cagr_grades cgs
247       wHERE  cgs.cagr_grade_structure_id = p_cagr_grade_structure_id
248       AND cgs.sequence = p_sequence
249       AND (p_cagr_grade_id <> cgs.cagr_grade_id
250            OR p_cagr_grade_id IS NULL);
251 --
252 l_proc         varchar2(72) := g_package||'chk_seq';
253 l_exists VARCHAR2(2);
254 --
255 BEGIN
256    --
257    hr_utility.set_location('Entering:'||l_proc, 5);
258    --
259      hr_api.mandatory_arg_error
260      (p_api_name       => l_proc,
261       p_argument       => 'sequence',
262       p_argument_value => p_sequence);
263    --
264    hr_utility.set_location(l_proc,10);
265    --
266    OPEN c_all_seq;
267    --
268    FETCH c_all_seq INTO l_exists;
269     hr_utility.set_location(l_proc,15);
270    IF c_all_seq%FOUND THEN
271       fnd_message.set_name('PAY','HR_7127_GRADE_DUP_SEQ');
272       CLOSE c_all_seq;
273       fnd_message.raise_error;
274    END IF;
275    CLOSE c_all_seq;
276    --
277    if p_sequence < 0 then
278      fnd_message.set_name('PAY','PER_7833_DEF_GRADE_SEQUENCE');
279      fnd_message.raise_error;
280    end if;
281    --
282    hr_utility.set_location('Leaving:'||l_proc, 20);
283    --
284 END chk_sequence;
285 --
286 -- ----------------------------------------------------------------------------
287 -- |---------------------------< insert_validate >----------------------------|
288 -- ----------------------------------------------------------------------------
289 Procedure insert_validate(p_rec in per_gra_shd.g_rec_type,
290 			  p_effective_date   in date) is
291 --
292   l_proc  varchar2(72) := g_package||'insert_validate';
293 --
294 Begin
295   hr_utility.set_location('Entering:'||l_proc, 5);
296   --
297   -- Call all supporting business operations
298   --
299   chk_cagr_grade_id
300   (p_cagr_grade_id          => p_rec.cagr_grade_id,
301    p_object_version_number  => p_rec.object_version_number,
302    p_effective_date	    => p_effective_date);
303   --
304   chk_cagr_grade_structure_id
305   (p_cagr_grade_structure_id    => p_rec.cagr_grade_structure_id);
306   --
307   chk_cagr_grade_def_id
308   (p_cagr_grade_def_id    => p_rec.cagr_grade_def_id);
309   --
310   chk_sequence
311   (p_cagr_grade_id 	          => p_rec.cagr_grade_id,
312    p_sequence		          => p_rec.sequence,
313    p_cagr_grade_structure_id	  => p_rec.cagr_grade_structure_id);
314   --
315   --
316   hr_utility.set_location(' Leaving:'||l_proc, 10);
317 End insert_validate;
318 --
319 -- ----------------------------------------------------------------------------
320 -- |---------------------------< update_validate >----------------------------|
321 -- ----------------------------------------------------------------------------
322 Procedure update_validate(p_rec in per_gra_shd.g_rec_type,
323 			  p_effective_date   in date) is
324 --
325   l_proc  varchar2(72) := g_package||'update_validate';
326 --
327 Begin
328   hr_utility.set_location('Entering:'||l_proc, 5);
329   --
330   -- Call all supporting business operations
331   --
332   chk_cagr_grade_id
333   (p_cagr_grade_id          => p_rec.cagr_grade_id,
334    p_object_version_number  => p_rec.object_version_number,
335    p_effective_date	    => p_effective_date);
336   --
337   chk_cagr_grade_structure_id
338   (p_cagr_grade_structure_id    => p_rec.cagr_grade_structure_id);
339   --
340   chk_cagr_grade_def_id
341   (p_cagr_grade_def_id    => p_rec.cagr_grade_def_id);
342   --
343   chk_sequence
344   (p_cagr_grade_id 	          => p_rec.cagr_grade_id,
345    p_sequence		          => p_rec.sequence,
346    p_cagr_grade_structure_id	  => p_rec.cagr_grade_structure_id);
347   --
348   --
349   hr_utility.set_location(' Leaving:'||l_proc, 10);
350 End update_validate;
351 --
352 -- ----------------------------------------------------------------------------
353 -- |---------------------------< delete_validate >----------------------------|
354 -- ----------------------------------------------------------------------------
355 Procedure delete_validate(p_rec in per_gra_shd.g_rec_type,
356 			  p_effective_date   in date) is
357 --
358   l_proc  varchar2(72) := g_package||'delete_validate';
359 --
360 Begin
361   hr_utility.set_location('Entering:'||l_proc, 5);
362   --
363   -- Call all supporting business operations
364   --
365   hr_utility.set_location(' Leaving:'||l_proc, 10);
366 End delete_validate;
367 --
368 end per_gra_bus;