[Home] [Help]
PACKAGE BODY: APPS.HR_TDG_BUS
Source
1 Package Body hr_tdg_bus as
2 /* $Header: hrtdgrhi.pkb 115.3 2002/12/03 10:33:25 raranjan noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' hr_tdg_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_template_data_group_id number default null;
15 --
16 -- ---------------------------------------------------------------------------
17 -- |----------------------< set_security_group_id >--------------------------|
18 -- ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21 (p_template_data_group_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_template_data_group_id in number
44 )
45 Return Varchar2 Is
46 --
47 -- Declare cursor
48 --
49 cursor csr_leg_code is
50 select tmp.legislation_code
51 from hr_form_templates_b tmp
52 ,hr_template_data_groups tdg
53 where tmp.form_template_id = tdg.form_template_id
54 and tdg.template_data_group_id = p_template_data_group_id;
55 --
56 -- Declare local variables
57 --
58 l_legislation_code varchar2(150);
59 l_proc varchar2(72) := g_package||'return_legislation_code';
60 --
61 Begin
62 --
63 hr_utility.set_location('Entering:'|| l_proc, 10);
64 --
65 -- Ensure that all the mandatory parameter are not null
66 --
67 hr_api.mandatory_arg_error
68 (p_api_name => l_proc
69 ,p_argument => 'template_data_group_id'
70 ,p_argument_value => p_template_data_group_id
71 );
72 --
73 if ( nvl(hr_tdg_bus.g_template_data_group_id, hr_api.g_number)
74 = p_template_data_group_id) then
75 --
76 -- The legislation code has already been found with a previous
77 -- call to this function. Just return the value in the global
78 -- variable.
79 --
80 l_legislation_code := hr_tdg_bus.g_legislation_code;
81 hr_utility.set_location(l_proc, 20);
82 else
83 --
84 -- The ID is different to the last call to this function
85 -- or this is the first call to this function.
86 --
87 open csr_leg_code;
88 fetch csr_leg_code into l_legislation_code;
89 --
90 if csr_leg_code%notfound then
91 --
92 -- The primary key is invalid therefore we must error
93 --
94 close csr_leg_code;
95 fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
96 fnd_message.raise_error;
97 end if;
98 hr_utility.set_location(l_proc,30);
99 --
100 -- Set the global variables so the values are
101 -- available for the next call to this function.
102 --
103 close csr_leg_code;
104 hr_tdg_bus.g_template_data_group_id := p_template_data_group_id;
105 hr_tdg_bus.g_legislation_code := l_legislation_code;
106 end if;
107 hr_utility.set_location(' Leaving:'|| l_proc, 40);
108 return l_legislation_code;
109 end return_legislation_code;
110 --
111 -- ----------------------------------------------------------------------------
112 -- |-----------------------< chk_non_updateable_args >------------------------|
113 -- ----------------------------------------------------------------------------
114 -- {Start Of Comments}
115 --
116 -- Description:
117 -- This procedure is used to ensure that non updateable attributes have
118 -- not been updated. If an attribute has been updated an error is generated.
119 --
120 -- Pre Conditions:
121 -- g_old_rec has been populated with details of the values currently in
122 -- the database.
123 --
124 -- In Arguments:
125 -- p_rec has been populated with the updated values the user would like the
126 -- record set to.
127 --
128 -- Post Success:
129 -- Processing continues if all the non updateable attributes have not
130 -- changed.
131 --
132 -- Post Failure:
133 -- An application error is raised if any of the non updatable attributes
134 -- have been altered.
135 --
136 -- {End Of Comments}
137 -- ----------------------------------------------------------------------------
138 Procedure chk_non_updateable_args
139 (p_rec in hr_tdg_shd.g_rec_type
140 ) IS
141 --
142 l_proc varchar2(72) := g_package || 'chk_non_updateable_args';
143 l_error EXCEPTION;
144 l_argument varchar2(30);
145 --
146 Begin
147 --
148 -- Only proceed with the validation if a row exists for the current
149 -- record in the HR Schema.
150 --
151 IF NOT hr_tdg_shd.api_updating
152 (p_template_data_group_id => p_rec.template_data_group_id
153 ,p_object_version_number => p_rec.object_version_number
154 ) THEN
155 fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
156 fnd_message.set_token('PROCEDURE ', l_proc);
157 fnd_message.set_token('STEP ', '5');
158 fnd_message.raise_error;
159 END IF;
160 --
161 IF (nvl(p_rec.form_data_group_id,hr_api.g_number) <>
162 nvl(hr_tdg_shd.g_old_rec.form_data_group_id,hr_api.g_number)
163 ) THEN
164 l_argument := 'form_data_group_id';
165 RAISE l_error;
166 END IF;
167 --
168 IF (nvl(p_rec.form_template_id,hr_api.g_number) <>
169 nvl(hr_tdg_shd.g_old_rec.form_template_id,hr_api.g_number)
170 ) THEN
171 l_argument := 'form_template_id';
172 RAISE l_error;
173 END IF;
174 --
175 EXCEPTION
176 WHEN l_error THEN
177 hr_api.argument_changed_error
178 (p_api_name => l_proc
179 ,p_argument => l_argument);
180 WHEN OTHERS THEN
181 RAISE;
182 End chk_non_updateable_args;
183 --
184 -- ----------------------------------------------------------------------------
185 -- |------------------------< chk_form_data_group_id >------------------------|
186 -- ----------------------------------------------------------------------------
187 Procedure chk_form_data_group_id
188 (p_template_data_group_id in number
189 ,p_object_version_number in number
190 ,p_form_data_group_id in number
191 ) is
192 --
193 l_proc varchar2(72) := g_package || 'chk_form_data_group_id';
194 l_api_updating boolean;
195 --
196 Begin
197 hr_utility.set_location('Entering:'||l_proc, 10);
198 --
199 -- Check value has been passed
200 --
201 hr_api.mandatory_arg_error
202 (p_api_name => l_proc
203 ,p_argument => 'form_data_group_id'
204 ,p_argument_value => p_form_data_group_id
205 );
206 --
207 hr_utility.set_location('Leaving:'||l_proc, 100);
208 End chk_form_data_group_id;
209 --
210 -- ----------------------------------------------------------------------------
211 -- |-------------------------< chk_form_template_id >-------------------------|
212 -- ----------------------------------------------------------------------------
213 Procedure chk_form_template_id
214 (p_template_data_group_id in number
215 ,p_object_version_number in number
216 ,p_form_template_id in number
217 ) is
218 --
219 l_proc varchar2(72) := g_package || 'chk_form_template_id';
220 l_api_updating boolean;
221 --
222 Begin
223 hr_utility.set_location('Entering:'||l_proc, 10);
224 --
225 -- Check value has been passed
226 --
227 hr_api.mandatory_arg_error
228 (p_api_name => l_proc
229 ,p_argument => 'form_template_id'
230 ,p_argument_value => p_form_template_id
231 );
232 --
233 hr_utility.set_location('Leaving:'||l_proc, 100);
234 End chk_form_template_id;
235 --
236 -- ----------------------------------------------------------------------------
237 -- |---------------------< chk_data_group_and_template >----------------------|
238 -- ----------------------------------------------------------------------------
239 Procedure chk_data_group_and_template
240 (p_template_data_group_id in number
241 ,p_object_version_number in number
242 ,p_form_data_group_id in number
243 ,p_form_template_id in number
244 ) is
245 --
246 cursor csr_form_data_group is
247 select fdg.application_id
248 ,fdg.form_id
249 from hr_form_data_groups_b fdg
250 where fdg.form_data_group_id = p_form_data_group_id;
251 --
252 cursor csr_form_template is
253 select tmp.application_id
254 ,tmp.form_id
255 from hr_form_templates_b tmp
256 where tmp.form_template_id = p_form_template_id;
257 --
258 l_proc varchar2(72) := g_package || 'chk_data_group_and_template';
259 l_api_updating boolean;
260 l_data_group_application_id number;
261 l_data_group_form_id number;
262 l_template_application_id number;
263 l_template_form_id number;
264 --
265 Begin
266 hr_utility.set_location('Entering:'||l_proc, 10);
267 --
268 l_api_updating := hr_tdg_shd.api_updating
269 (p_template_data_group_id => p_template_data_group_id
270 ,p_object_version_number => p_object_version_number
271 );
272 hr_utility.set_location(l_proc,20);
273 --
274 -- Only proceed with SQL validation if absolutely necessary
275 --
276 if ( ( l_api_updating
277 and ( nvl(hr_tdg_shd.g_old_rec.form_data_group_id,hr_api.g_number) <>
278 nvl(p_form_data_group_id,hr_api.g_number)
279 or nvl(hr_tdg_shd.g_old_rec.form_template_id,hr_api.g_number) <>
280 nvl(p_form_template_id,hr_api.g_number)))
281 or (NOT l_api_updating)) then
282 --
283 hr_utility.set_location(l_proc,30);
284 --
285 -- Check data group and template reference the same form
286 --
287 open csr_form_data_group;
288 fetch csr_form_data_group into l_data_group_application_id, l_data_group_form_id;
289 if csr_form_data_group%notfound then
290 close csr_form_data_group;
291 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
292 fnd_message.set_token('PROCEDURE', l_proc);
293 fnd_message.set_token('STEP','10');
294 fnd_message.raise_error;
295 end if;
296 close csr_form_data_group;
297 --
298 open csr_form_template;
299 fetch csr_form_template into l_template_application_id, l_template_form_id;
300 if csr_form_template%notfound then
301 close csr_form_template;
302 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
303 fnd_message.set_token('PROCEDURE', l_proc);
304 fnd_message.set_token('STEP','20');
305 fnd_message.raise_error;
306 end if;
307 close csr_form_template;
308 --
309 hr_utility.set_location(l_proc,40);
310 --
311 if nvl(l_data_group_application_id,hr_api.g_number) <>
312 nvl(l_template_application_id,hr_api.g_number)
313 or nvl(l_data_group_form_id,hr_api.g_number) <>
314 nvl(l_template_form_id,hr_api.g_number) then
315 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
316 fnd_message.set_token('PROCEDURE', l_proc);
317 fnd_message.set_token('STEP','30');
318 fnd_message.raise_error;
319 end if;
320 --
321 end if;
322 --
323 hr_utility.set_location('Leaving:'||l_proc, 100);
324 End chk_data_group_and_template;
325 --
326 -- ----------------------------------------------------------------------------
327 -- |------------------------------< chk_delete >------------------------------|
328 -- ----------------------------------------------------------------------------
329 Procedure chk_delete
330 (p_rec in hr_tdg_shd.g_rec_type
331 ) is
332 --
333 l_proc varchar2(72) := g_package||'chk_delete';
334 --
335 Begin
336 hr_utility.set_location('Entering:'||l_proc, 5);
337 --
338 -- No additional validation required
339 --
340 null;
341 --
342 hr_utility.set_location(' Leaving:'||l_proc, 10);
343 End chk_delete;
344 --
345 -- ----------------------------------------------------------------------------
346 -- |---------------------------< insert_validate >----------------------------|
347 -- ----------------------------------------------------------------------------
348 Procedure insert_validate
349 (p_rec in hr_tdg_shd.g_rec_type
350 ) is
351 --
352 l_proc varchar2(72) := g_package||'insert_validate';
353 --
354 Begin
355 hr_utility.set_location('Entering:'||l_proc, 5);
356 --
357 -- Call all supporting business operations
358 -- No business group context. HR_STANDARD_LOOKUPS used for validation.
359 --
360 chk_form_data_group_id
361 (p_template_data_group_id => p_rec.template_data_group_id
362 ,p_object_version_number => p_rec.object_version_number
363 ,p_form_data_group_id => p_rec.form_data_group_id
364 );
365 --
366 chk_form_template_id
367 (p_template_data_group_id => p_rec.template_data_group_id
368 ,p_object_version_number => p_rec.object_version_number
369 ,p_form_template_id => p_rec.form_template_id
370 );
371 --
372 chk_data_group_and_template
373 (p_template_data_group_id => p_rec.template_data_group_id
374 ,p_object_version_number => p_rec.object_version_number
375 ,p_form_data_group_id => p_rec.form_data_group_id
376 ,p_form_template_id => p_rec.form_template_id
377 );
378 --
379 hr_utility.set_location(' Leaving:'||l_proc, 10);
380 End insert_validate;
381 --
382 -- ----------------------------------------------------------------------------
383 -- |---------------------------< update_validate >----------------------------|
384 -- ----------------------------------------------------------------------------
385 Procedure update_validate
386 (p_rec in hr_tdg_shd.g_rec_type
387 ) is
388 --
389 l_proc varchar2(72) := g_package||'update_validate';
390 --
391 Begin
392 hr_utility.set_location('Entering:'||l_proc, 5);
393 --
394 -- Call all supporting business operations
395 -- No business group context. HR_STANDARD_LOOKUPS used for validation.
396 --
397 chk_non_updateable_args
398 (p_rec => p_rec
399 );
400 --
401 chk_form_data_group_id
402 (p_template_data_group_id => p_rec.template_data_group_id
403 ,p_object_version_number => p_rec.object_version_number
404 ,p_form_data_group_id => p_rec.form_data_group_id
405 );
406 --
407 chk_form_template_id
408 (p_template_data_group_id => p_rec.template_data_group_id
409 ,p_object_version_number => p_rec.object_version_number
410 ,p_form_template_id => p_rec.form_template_id
411 );
412 --
413 chk_data_group_and_template
414 (p_template_data_group_id => p_rec.template_data_group_id
415 ,p_object_version_number => p_rec.object_version_number
416 ,p_form_data_group_id => p_rec.form_data_group_id
417 ,p_form_template_id => p_rec.form_template_id
418 );
419 --
420 hr_utility.set_location(' Leaving:'||l_proc, 10);
421 End update_validate;
422 --
423 -- ----------------------------------------------------------------------------
424 -- |---------------------------< delete_validate >----------------------------|
425 -- ----------------------------------------------------------------------------
426 Procedure delete_validate
427 (p_rec in hr_tdg_shd.g_rec_type
428 ) is
429 --
430 l_proc varchar2(72) := g_package||'delete_validate';
431 --
432 Begin
433 hr_utility.set_location('Entering:'||l_proc, 5);
434 --
435 -- Call all supporting business operations
436 --
437 chk_delete
438 (p_rec => p_rec
439 );
440 --
441 hr_utility.set_location(' Leaving:'||l_proc, 10);
442 End delete_validate;
443 --
444 end hr_tdg_bus;