[Home] [Help]
PACKAGE BODY: APPS.HR_FGI_BUS
Source
1 Package Body hr_fgi_bus as
2 /* $Header: hrfgirhi.pkb 115.3 2002/12/03 11:02:49 hjonnala noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' hr_fgi_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_form_data_group_item_id number default null;
15 --
16 -- ---------------------------------------------------------------------------
17 -- |----------------------< set_security_group_id >--------------------------|
18 -- ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21 (p_form_data_group_item_id in number
22 ) is
23 --
24 l_proc varchar2(72) := g_package||'set_security_group_id';
25 --
26 begin
27 --
28 hr_utility.set_location('Entering:'|| l_proc, 10);
29 --
30 -- No business group context. Security group is not applicable.
31 --
32 null;
33 --
34 hr_utility.set_location(' Leaving:'|| l_proc, 20);
35 --
36 end set_security_group_id;
37 --
38 -- ---------------------------------------------------------------------------
39 -- |---------------------< return_legislation_code >-------------------------|
40 -- ---------------------------------------------------------------------------
41 --
42 Function return_legislation_code
43 (p_form_data_group_item_id in number
44 )
45 Return Varchar2 Is
46 --
47 l_legislation_code varchar2(150);
48 l_proc varchar2(72) := g_package||'return_legislation_code';
49 --
50 Begin
51 --
52 hr_utility.set_location('Entering:'|| l_proc, 10);
53 --
54 -- Legislation code not available for form data group items
55 --
56 l_legislation_code := null;
57 --
58 hr_utility.set_location(' Leaving:'|| l_proc, 40);
59 return l_legislation_code;
60 end return_legislation_code;
61 --
62 -- ----------------------------------------------------------------------------
63 -- |-----------------------< chk_non_updateable_args >------------------------|
64 -- ----------------------------------------------------------------------------
65 -- {Start Of Comments}
66 --
67 -- Description:
68 -- This procedure is used to ensure that non updateable attributes have
69 -- not been updated. If an attribute has been updated an error is generated.
70 --
71 -- Pre Conditions:
72 -- g_old_rec has been populated with details of the values currently in
73 -- the database.
74 --
75 -- In Arguments:
76 -- p_rec has been populated with the updated values the user would like the
77 -- record set to.
78 --
79 -- Post Success:
80 -- Processing continues if all the non updateable attributes have not
81 -- changed.
82 --
83 -- Post Failure:
84 -- An application error is raised if any of the non updatable attributes
85 -- have been altered.
86 --
87 -- {End Of Comments}
88 -- ----------------------------------------------------------------------------
89 Procedure chk_non_updateable_args
90 (p_rec in hr_fgi_shd.g_rec_type
91 ) IS
92 --
93 l_proc varchar2(72) := g_package || 'chk_non_updateable_args';
94 l_error EXCEPTION;
95 l_argument varchar2(30);
96 --
97 Begin
98 --
99 -- Only proceed with the validation if a row exists for the current
100 -- record in the HR Schema.
101 --
102 IF NOT hr_fgi_shd.api_updating
103 (p_form_data_group_item_id => p_rec.form_data_group_item_id
104 ,p_object_version_number => p_rec.object_version_number
105 ) THEN
106 fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
107 fnd_message.set_token('PROCEDURE ', l_proc);
108 fnd_message.set_token('STEP ', '5');
109 fnd_message.raise_error;
110 END IF;
111 --
112 IF (nvl(p_rec.form_data_group_id,hr_api.g_number) <>
113 nvl(hr_fgi_shd.g_old_rec.form_data_group_id,hr_api.g_number)
114 ) THEN
115 l_argument := 'form_data_group_id';
116 RAISE l_error;
117 END IF;
118 --
119 IF (nvl(p_rec.form_item_id,hr_api.g_number) <>
120 nvl(hr_fgi_shd.g_old_rec.form_item_id,hr_api.g_number)
121 ) THEN
122 l_argument := 'form_data_group_id';
123 RAISE l_error;
124 END IF;
125 --
126 EXCEPTION
127 WHEN l_error THEN
128 hr_api.argument_changed_error
129 (p_api_name => l_proc
130 ,p_argument => l_argument);
131 WHEN OTHERS THEN
132 RAISE;
133 End chk_non_updateable_args;
134 --
135 -- ----------------------------------------------------------------------------
136 -- |------------------------< chk_form_data_group_id >------------------------|
137 -- ----------------------------------------------------------------------------
138 Procedure chk_form_data_group_id
139 (p_form_data_group_item_id in number
140 ,p_object_version_number in number
141 ,p_form_data_group_id in number
142 ) is
143 --
144 l_proc varchar2(72) := g_package || 'chk_form_data_group_id';
145 l_api_updating boolean;
146 --
147 Begin
148 hr_utility.set_location('Entering:'||l_proc, 10);
149 --
150 -- Check value has been passed
151 --
152 hr_api.mandatory_arg_error
153 (p_api_name => l_proc
154 ,p_argument => 'form_data_group_id'
155 ,p_argument_value => p_form_data_group_id
156 );
157 --
158 hr_utility.set_location('Leaving:'||l_proc, 100);
159 End chk_form_data_group_id;
160 --
161 -- ----------------------------------------------------------------------------
162 -- |---------------------------< chk_form_item_id >---------------------------|
163 -- ----------------------------------------------------------------------------
164 Procedure chk_form_item_id
165 (p_form_data_group_item_id in number
166 ,p_object_version_number in number
167 ,p_form_item_id in number
168 ) is
169 --
170 l_proc varchar2(72) := g_package || 'chk_form_item_id';
171 l_api_updating boolean;
172 --
173 Begin
174 hr_utility.set_location('Entering:'||l_proc, 10);
175 --
176 -- Check value has been passed
177 --
178 hr_api.mandatory_arg_error
179 (p_api_name => l_proc
180 ,p_argument => 'form_item_id'
181 ,p_argument_value => p_form_item_id
182 );
183 --
184 hr_utility.set_location('Leaving:'||l_proc, 100);
185 End chk_form_item_id;
186 --
187 -- ----------------------------------------------------------------------------
188 -- |-----------------------< chk_data_group_and_item >------------------------|
189 -- ----------------------------------------------------------------------------
190 Procedure chk_data_group_and_item
191 (p_form_data_group_item_id in number
192 ,p_object_version_number in number
193 ,p_form_data_group_id in number
194 ,p_form_item_id in number
195 ) is
196 --
197 cursor csr_data_group is
198 select fdg.application_id
199 ,fdg.form_id
200 from hr_form_data_groups_b fdg
201 where fdg.form_data_group_id = p_form_data_group_id;
202 --
203 cursor csr_item is
204 select fim.application_id
205 ,fim.form_id
206 from hr_form_items_b fim
207 where fim.form_item_id = p_form_item_id;
208 --
209 l_proc varchar2(72) := g_package || 'chk_data_group_and_item';
210 l_api_updating boolean;
211 l_data_group_application_id number;
212 l_data_group_form_id number;
213 l_item_application_id number;
214 l_item_form_id number;
215 --
216 Begin
217 hr_utility.set_location('Entering:'||l_proc, 10);
218 --
219 l_api_updating := hr_fgi_shd.api_updating
220 (p_form_data_group_item_id => p_form_data_group_item_id
221 ,p_object_version_number => p_object_version_number
222 );
223 hr_utility.set_location(l_proc,20);
224 --
225 -- Only proceed with SQL validation if absolutely necessary
226 --
227 if ( ( l_api_updating
228 and ( (nvl(hr_fgi_shd.g_old_rec.form_data_group_id,hr_api.g_number) <>
229 nvl(p_form_data_group_id,hr_api.g_number))
230 or (nvl(hr_fgi_shd.g_old_rec.form_item_id,hr_api.g_number) <>
231 nvl(p_form_item_id,hr_api.g_number))))
232 or (NOT l_api_updating)) then
233 --
234 hr_utility.set_location(l_proc,30);
235 --
236 -- Check the data group and item reference the same form
237 --
238 open csr_data_group;
239 fetch csr_data_group into l_data_group_application_id, l_data_group_form_id;
240 if not csr_data_group%found then
241 close csr_data_group;
242 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
243 fnd_message.set_token('PROCEDURE', l_proc);
244 fnd_message.set_token('STEP','10');
245 fnd_message.raise_error;
246 end if;
247 close csr_data_group;
248 --
249 hr_utility.set_location(l_proc,40);
250 --
251 open csr_item;
252 fetch csr_item into l_item_application_id, l_item_form_id;
253 if not csr_item%found then
254 close csr_item;
255 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
256 fnd_message.set_token('PROCEDURE', l_proc);
257 fnd_message.set_token('STEP','20');
258 fnd_message.raise_error;
259 end if;
260 close csr_item;
261 --
262 hr_utility.set_location(l_proc,50);
263 --
264 if ( nvl(l_data_group_application_id,hr_api.g_number) <> nvl(l_item_application_id,hr_api.g_number)
265 or nvl(l_data_group_form_id,hr_api.g_number) <> nvl(l_item_form_id,hr_api.g_number)) then
266 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
267 fnd_message.set_token('PROCEDURE', l_proc);
268 fnd_message.set_token('STEP','30');
269 fnd_message.raise_error;
270 end if;
271 --
272 end if;
273 --
274 hr_utility.set_location('Leaving:'||l_proc, 100);
275 End chk_data_group_and_item;
276 --
277 -- ----------------------------------------------------------------------------
278 -- |------------------------------< chk_delete >------------------------------|
279 -- ----------------------------------------------------------------------------
280 Procedure chk_delete
281 (p_rec in hr_fgi_shd.g_rec_type
282 ) is
283 --
284 l_proc varchar2(72) := g_package||'chk_delete';
285 --
286 Begin
287 hr_utility.set_location('Entering:'||l_proc, 5);
288 --
289 -- No additional validation required
290 --
291 null;
292 --
293 hr_utility.set_location(' Leaving:'||l_proc, 10);
294 End chk_delete;
295 --
296 -- ----------------------------------------------------------------------------
297 -- |---------------------------< insert_validate >----------------------------|
298 -- ----------------------------------------------------------------------------
299 Procedure insert_validate
300 (p_rec in hr_fgi_shd.g_rec_type
301 ) is
302 --
303 l_proc varchar2(72) := g_package||'insert_validate';
304 --
305 Begin
306 hr_utility.set_location('Entering:'||l_proc, 5);
307 --
308 -- Call all supporting business operations
309 -- No business group context. HR_STANDARD_LOOKUPS used for validation.
310 --
311 chk_form_data_group_id
312 (p_form_data_group_item_id => p_rec.form_data_group_item_id
313 ,p_object_version_number => p_rec.object_version_number
314 ,p_form_data_group_id => p_rec.form_data_group_id
315 );
316 --
317 chk_form_item_id
318 (p_form_data_group_item_id => p_rec.form_data_group_item_id
319 ,p_object_version_number => p_rec.object_version_number
320 ,p_form_item_id => p_rec.form_item_id
321 );
322 --
323 chk_data_group_and_item
324 (p_form_data_group_item_id => p_rec.form_data_group_item_id
325 ,p_object_version_number => p_rec.object_version_number
326 ,p_form_data_group_id => p_rec.form_data_group_id
327 ,p_form_item_id => p_rec.form_item_id
328 );
329 --
330 hr_utility.set_location(' Leaving:'||l_proc, 10);
331 End insert_validate;
332 --
333 -- ----------------------------------------------------------------------------
334 -- |---------------------------< update_validate >----------------------------|
335 -- ----------------------------------------------------------------------------
336 Procedure update_validate
337 (p_rec in hr_fgi_shd.g_rec_type
338 ) is
339 --
340 l_proc varchar2(72) := g_package||'update_validate';
341 --
342 Begin
343 hr_utility.set_location('Entering:'||l_proc, 5);
344 --
345 -- Call all supporting business operations
346 -- No business group context. HR_STANDARD_LOOKUPS used for validation.
347 --
348 chk_non_updateable_args
349 (p_rec => p_rec
350 );
351 --
352 chk_form_data_group_id
353 (p_form_data_group_item_id => p_rec.form_data_group_item_id
354 ,p_object_version_number => p_rec.object_version_number
355 ,p_form_data_group_id => p_rec.form_data_group_id
356 );
357 --
358 chk_form_item_id
359 (p_form_data_group_item_id => p_rec.form_data_group_item_id
360 ,p_object_version_number => p_rec.object_version_number
361 ,p_form_item_id => p_rec.form_item_id
362 );
363 --
364 chk_data_group_and_item
365 (p_form_data_group_item_id => p_rec.form_data_group_item_id
366 ,p_object_version_number => p_rec.object_version_number
367 ,p_form_data_group_id => p_rec.form_data_group_id
368 ,p_form_item_id => p_rec.form_item_id
369 );
370 --
371 hr_utility.set_location(' Leaving:'||l_proc, 10);
372 End update_validate;
373 --
374 -- ----------------------------------------------------------------------------
375 -- |---------------------------< delete_validate >----------------------------|
376 -- ----------------------------------------------------------------------------
377 Procedure delete_validate
378 (p_rec in hr_fgi_shd.g_rec_type
379 ) is
380 --
381 l_proc varchar2(72) := g_package||'delete_validate';
382 --
383 Begin
384 hr_utility.set_location('Entering:'||l_proc, 5);
385 --
386 -- Call all supporting business operations
387 --
388 chk_delete
389 (p_rec => p_rec
390 );
391 --
392 hr_utility.set_location(' Leaving:'||l_proc, 10);
393 End delete_validate;
394 --
395 end hr_fgi_bus;