[Home] [Help]
PACKAGE BODY: APPS.HR_TWN_BUS
Source
1 Package Body hr_twn_bus as
2 /* $Header: hrtwnrhi.pkb 115.4 2002/12/03 13:55:19 raranjan noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' hr_twn_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_window_id number default null;
15 --
16 -- ---------------------------------------------------------------------------
17 -- |----------------------< set_security_group_id >--------------------------|
18 -- ---------------------------------------------------------------------------
19 --
20 Procedure set_security_group_id
21 (p_template_window_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_window_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_windows_b twn
53 where tmp.form_template_id = twn.form_template_id
54 and twn.template_window_id = p_template_window_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_window_id'
70 ,p_argument_value => p_template_window_id
71 );
72 --
73 if ( nvl(hr_twn_bus.g_template_window_id, hr_api.g_number)
74 = p_template_window_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_twn_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_twn_bus.g_template_window_id:= p_template_window_id;
105 hr_twn_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_twn_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_twn_shd.api_updating
152 (p_template_window_id => p_rec.template_window_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_window_id,hr_api.g_number) <>
162 nvl(hr_twn_shd.g_old_rec.form_window_id,hr_api.g_number)
163 ) THEN
164 l_argument := 'form_window_id';
165 RAISE l_error;
166 END IF;
167 --
168 IF (nvl(p_rec.form_template_id,hr_api.g_number) <>
169 nvl(hr_twn_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 --
176 EXCEPTION
177 WHEN l_error THEN
178 hr_api.argument_changed_error
179 (p_api_name => l_proc
180 ,p_argument => l_argument);
181 WHEN OTHERS THEN
182 RAISE;
183 End chk_non_updateable_args;
184 --
185 -- ----------------------------------------------------------------------------
186 -- |--------------------------< chk_form_window_id >--------------------------|
187 -- ----------------------------------------------------------------------------
188 Procedure chk_form_window_id
189 (p_template_window_id in number
190 ,p_object_version_number in number
191 ,p_form_window_id in number
192 ) is
193 --
194 l_proc varchar2(72) := g_package || 'chk_form_window_id';
195 l_api_updating boolean;
196 --
197 Begin
198 hr_utility.set_location('Entering:'||l_proc, 10);
199 --
200 -- Check value has been passed
201 --
202 hr_api.mandatory_arg_error
203 (p_api_name => l_proc
204 ,p_argument => 'form_window_id'
205 ,p_argument_value => p_form_window_id
206 );
207 --
208 hr_utility.set_location(' Leaving:'||l_proc, 100);
209 End chk_form_window_id;
210 --
211 -- ----------------------------------------------------------------------------
212 -- |-------------------------< chk_form_template_id >-------------------------|
213 -- ----------------------------------------------------------------------------
214 Procedure chk_form_template_id
215 (p_template_window_id in number
216 ,p_object_version_number in number
217 ,p_form_template_id in number
218 ) is
219 --
220 l_proc varchar2(72) := g_package || 'chk_form_template_id';
221 l_api_updating boolean;
222 --
223 Begin
224 hr_utility.set_location('Entering:'||l_proc, 10);
225 --
226 -- Check value has been passed
227 --
228 hr_api.mandatory_arg_error
229 (p_api_name => l_proc
230 ,p_argument => 'form_template_id'
231 ,p_argument_value => p_form_template_id
232 );
233 --
234 hr_utility.set_location(' Leaving:'||l_proc, 100);
235 End chk_form_template_id;
236 --
237 -- ----------------------------------------------------------------------------
238 -- |------------------------< chk_window_and_template >-----------------------|
239 -- ----------------------------------------------------------------------------
240 Procedure chk_window_and_template
241 (p_template_window_id in number
242 ,p_object_version_number in number
243 ,p_form_window_id in number
244 ,p_form_template_id in number
245 ) is
246 --
247 cursor csr_form_window is
248 select fwn.application_id
249 ,fwn.form_id
250 from hr_form_windows_b fwn
251 where fwn.form_window_id = p_form_window_id;
252 --
253 cursor csr_form_template is
254 select tmp.application_id
255 ,tmp.form_id
256 from hr_form_templates_b tmp
257 where tmp.form_template_id = p_form_template_id;
258 --
259 l_proc varchar2(72) := g_package || 'chk_window_and_template';
260 l_api_updating boolean;
261 l_window_application_id number;
262 l_window_form_id number;
263 l_template_application_id number;
264 l_template_form_id number;
265 --
266 Begin
267 hr_utility.set_location('Entering:'||l_proc, 10);
268 --
269 l_api_updating := hr_twn_shd.api_updating
270 (p_template_window_id => p_template_window_id
271 ,p_object_version_number => p_object_version_number
272 );
273 hr_utility.set_location(l_proc, 20);
274 --
275 -- Only proceed with SQL validation if absolutely necessary
276 --
277 if ( ( l_api_updating
278 and ( nvl(hr_twn_shd.g_old_rec.form_window_id,hr_api.g_number) <>
279 nvl(p_form_window_id,hr_api.g_number)
280 or nvl(hr_twn_shd.g_old_rec.form_template_id,hr_api.g_number) <>
281 nvl(p_form_template_id,hr_api.g_number)))
282 or (NOT l_api_updating)) then
283 --
284 hr_utility.set_location(l_proc,30);
285 --
286 -- Check form window and template reference the same form
287 --
288 open csr_form_window;
289 fetch csr_form_window into l_window_application_id,l_window_form_id;
290 if csr_form_window%notfound then
291 close csr_form_window;
292 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
293 fnd_message.set_token('PROCEDURE', l_proc);
294 fnd_message.set_token('STEP','10');
295 fnd_message.raise_error;
296 end if;
297 close csr_form_window;
298 --
299 open csr_form_template;
300 fetch csr_form_template into l_template_application_id,l_template_form_id;
301 if csr_form_template%notfound then
302 close csr_form_template;
303 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
304 fnd_message.set_token('PROCEDURE', l_proc);
305 fnd_message.set_token('STEP','20');
306 fnd_message.raise_error;
307 end if;
308 close csr_form_template;
309 --
310 hr_utility.set_location(l_proc,40);
311 --
312 if nvl(l_window_application_id,hr_api.g_number) <>
313 nvl(l_template_application_id,hr_api.g_number)
314 or nvl(l_window_form_id,hr_api.g_number) <>
315 nvl(l_template_form_id,hr_api.g_number) then
316 fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
317 fnd_message.set_token('PROCEDURE', l_proc);
318 fnd_message.set_token('STEP','30');
319 fnd_message.raise_error;
320 end if;
321 --
322 end if;
323 --
324 hr_utility.set_location(' Leaving:'||l_proc, 100);
325 End chk_window_and_template;
326 --
327 -- ----------------------------------------------------------------------------
328 -- |------------------------------< chk_delete >------------------------------|
329 -- ----------------------------------------------------------------------------
330 Procedure chk_delete
331 (p_rec in hr_twn_shd.g_rec_type
332 ) is
333 --
334 l_proc varchar2(72) := g_package||'chk_delete';
335 --
336 Begin
337 hr_utility.set_location('Entering:'||l_proc, 5);
338 --
339 -- No additional validation required
340 --
341 null;
342 --
343 hr_utility.set_location(' Leaving:'||l_proc, 10);
344 End chk_delete;
345 --
346 -- ----------------------------------------------------------------------------
347 -- |---------------------------< insert_validate >----------------------------|
348 -- ----------------------------------------------------------------------------
349 Procedure insert_validate
350 (p_rec in hr_twn_shd.g_rec_type
351 ) is
352 --
353 l_proc varchar2(72) := g_package||'insert_validate';
354 --
355 Begin
356 hr_utility.set_location('Entering:'||l_proc, 5);
357 --
358 -- Call all supporting business operations
359 -- No business group context. HR_STANDARD_LOOKUPS used for validation.
360 --
361 chk_form_window_id
362 (p_template_window_id => p_rec.template_window_id
363 ,p_object_version_number => p_rec.object_version_number
364 ,p_form_window_id => p_rec.form_window_id
365 );
366 --
367 chk_form_template_id
368 (p_template_window_id => p_rec.template_window_id
369 ,p_object_version_number => p_rec.object_version_number
370 ,p_form_template_id => p_rec.form_template_id
371 );
372 --
373 chk_window_and_template
374 (p_template_window_id => p_rec.template_window_id
375 ,p_object_version_number => p_rec.object_version_number
376 ,p_form_window_id => p_rec.form_window_id
377 ,p_form_template_id => p_rec.form_template_id
378 );
379 --
380 hr_utility.set_location(' Leaving:'||l_proc, 10);
381 End insert_validate;
382 --
383 -- ----------------------------------------------------------------------------
384 -- |---------------------------< update_validate >----------------------------|
385 -- ----------------------------------------------------------------------------
386 Procedure update_validate
387 (p_rec in hr_twn_shd.g_rec_type
388 ) is
389 --
390 l_proc varchar2(72) := g_package||'update_validate';
391 --
392 Begin
393 hr_utility.set_location('Entering:'||l_proc, 5);
394 --
395 -- Call all supporting business operations
396 -- No business group context. HR_STANDARD_LOOKUPS used for validation.
397 --
398 chk_non_updateable_args
399 (p_rec => p_rec
400 );
401 --
402 chk_form_window_id
403 (p_template_window_id => p_rec.template_window_id
404 ,p_object_version_number => p_rec.object_version_number
405 ,p_form_window_id => p_rec.form_window_id
406 );
407 --
408 chk_form_template_id
409 (p_template_window_id => p_rec.template_window_id
410 ,p_object_version_number => p_rec.object_version_number
411 ,p_form_template_id => p_rec.form_template_id
412 );
413 --
414 chk_window_and_template
415 (p_template_window_id => p_rec.template_window_id
416 ,p_object_version_number => p_rec.object_version_number
417 ,p_form_window_id => p_rec.form_window_id
418 ,p_form_template_id => p_rec.form_template_id
419 );
420 --
421 hr_utility.set_location(' Leaving:'||l_proc, 10);
422 End update_validate;
423 --
424 -- ----------------------------------------------------------------------------
425 -- |---------------------------< delete_validate >----------------------------|
426 -- ----------------------------------------------------------------------------
427 Procedure delete_validate
428 (p_rec in hr_twn_shd.g_rec_type
429 ) is
430 --
431 l_proc varchar2(72) := g_package||'delete_validate';
432 --
433 Begin
434 hr_utility.set_location('Entering:'||l_proc, 5);
435 --
436 -- Call all supporting business operations
437 --
438 chk_delete
439 (p_rec => p_rec
440 );
441 --
442 hr_utility.set_location(' Leaving:'||l_proc, 10);
443 End delete_validate;
444 --
445 end hr_twn_bus;