[Home] [Help]
PACKAGE BODY: APPS.OTA_BJT_BUS
Source
1 Package Body ota_bjt_bus as
2 /* $Header: otbjtrhi.pkb 120.0 2005/05/29 07:03:39 appldev noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' ota_bjt_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_booking_justification_id number default null;
15 g_language varchar2(4) default null;
16 --
17 -- ---------------------------------------------------------------------------
18 -- |----------------------< set_security_group_id >--------------------------|
19 -- ---------------------------------------------------------------------------
20 --
21 Procedure set_security_group_id
22 (p_booking_justification_id in number
23 ,p_associated_column1 in varchar2 default null
24 ) is
25 --
26 -- Declare cursor
27 --
28 cursor csr_sec_grp is
29 select pbg.security_group_id,
30 pbg.legislation_code
31 from per_business_groups_perf pbg
32 ,ota_bkng_justifications_b bjs
33 where bjs.booking_justification_id = p_booking_justification_id
34 and pbg.business_group_id = bjs.business_group_id;
35 --
36 -- Declare local variables
37 --
38 l_security_group_id number;
39 l_proc varchar2(72) := g_package||'set_security_group_id';
40 l_legislation_code varchar2(150);
41 --
42 begin
43 --
44 hr_utility.set_location('Entering:'|| l_proc, 10);
45 --
46 -- Ensure that all the mandatory parameter are not null
47 --
48 hr_api.mandatory_arg_error
49 (p_api_name => l_proc
50 ,p_argument => 'booking_justification_id'
51 ,p_argument_value => p_booking_justification_id
52 );
53 --
54 --
55 open csr_sec_grp;
56 fetch csr_sec_grp into l_security_group_id
57 , l_legislation_code;
58 --
59 if csr_sec_grp%notfound then
60 --
61 close csr_sec_grp;
62 --
63 -- The primary key is invalid therefore we must error
64 --
65 fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
66 hr_multi_message.add
67 (p_associated_column1
68 => nvl(p_associated_column1,'BOOKING_JUSTIFICATION_ID')
69 );
70 --
71 else
72 close csr_sec_grp;
73 --
74 -- Set the security_group_id in CLIENT_INFO
75 --
76 hr_api.set_security_group_id
77 (p_security_group_id => l_security_group_id
78 );
79 --
80 -- Set the sessions legislation context in HR_SESSION_DATA
81 --
82 hr_api.set_legislation_context(l_legislation_code);
83 end if;
84 --
85 hr_utility.set_location(' Leaving:'|| l_proc, 20);
86 --
87 end set_security_group_id;
88 --
89 -- ---------------------------------------------------------------------------
90 -- |---------------------< return_legislation_code >-------------------------|
91 -- ---------------------------------------------------------------------------
92 --
93 Function return_legislation_code
94 (p_booking_justification_id in number
95 ,p_language in varchar2
96 )
97 Return Varchar2 Is
98 --
99 -- Declare cursor
100 --
101 cursor csr_leg_code is
102 select pbg.legislation_code
103 from per_business_groups_perf pbg
104 , ota_bkng_justifications_b bjs
105 where bjs.booking_justification_id = p_booking_justification_id
106 and pbg.business_group_id = bjs.business_group_id;
107 --
108 -- Declare local variables
109 --
110 l_legislation_code varchar2(150);
111 l_proc varchar2(72) := g_package||'return_legislation_code';
112 --
113 Begin
114 --
115 hr_utility.set_location('Entering:'|| l_proc, 10);
116 --
117 -- Ensure that all the mandatory parameter are not null
118 --
119 hr_api.mandatory_arg_error
120 (p_api_name => l_proc
121 ,p_argument => 'booking_justification_id'
122 ,p_argument_value => p_booking_justification_id
123 );
124 --
125 --
126 if (( nvl(ota_bjt_bus.g_booking_justification_id, hr_api.g_number)
127 = p_booking_justification_id)
128 and ( nvl(ota_bjt_bus.g_language, hr_api.g_varchar2)
129 = p_language)) then
130 --
131 -- The legislation code has already been found with a previous
132 -- call to this function. Just return the value in the global
133 -- variable.
134 --
135 l_legislation_code := ota_bjt_bus.g_legislation_code;
136 hr_utility.set_location(l_proc, 20);
137 else
138 --
139 -- The ID is different to the last call to this function
140 -- or this is the first call to this function.
141 --
142 open csr_leg_code;
143 fetch csr_leg_code into l_legislation_code;
144 --
145 if csr_leg_code%notfound then
146 --
147 -- The primary key is invalid therefore we must error
148 --
149 close csr_leg_code;
150 fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
151 fnd_message.raise_error;
152 end if;
153 hr_utility.set_location(l_proc,30);
154 --
155 -- Set the global variables so the values are
156 -- available for the next call to this function.
157 --
158 close csr_leg_code;
159 ota_bjt_bus.g_booking_justification_id := p_booking_justification_id;
160 ota_bjt_bus.g_language := p_language;
161 ota_bjt_bus.g_legislation_code := l_legislation_code;
162 end if;
163 hr_utility.set_location(' Leaving:'|| l_proc, 40);
164 return l_legislation_code;
165 end return_legislation_code;
166 --
167 -- ----------------------------------------------------------------------------
168 -- |-----------------------< chk_non_updateable_args >------------------------|
169 -- ----------------------------------------------------------------------------
170 -- {Start Of Comments}
171 --
172 -- Description:
173 -- This procedure is used to ensure that non updateable attributes have
174 -- not been updated. If an attribute has been updated an error is generated.
175 --
176 -- Pre Conditions:
177 -- g_old_rec has been populated with details of the values currently in
178 -- the database.
179 --
180 -- In Arguments:
181 -- p_rec has been populated with the updated values the user would like the
182 -- record set to.
183 --
184 -- Post Success:
185 -- Processing continues if all the non updateable attributes have not
186 -- changed.
187 --
188 -- Post Failure:
189 -- An application error is raised if any of the non updatable attributes
190 -- have been altered.
191 --
192 -- {End Of Comments}
193 -- ----------------------------------------------------------------------------
194 Procedure chk_non_updateable_args
195 (p_rec in ota_bjt_shd.g_rec_type
196 ) IS
197 --
198 l_proc varchar2(72) := g_package || 'chk_non_updateable_args';
199 --
200 Begin
201 --
202 -- Only proceed with the validation if a row exists for the current
203 -- record in the HR Schema.
204 --
205 IF NOT ota_bjt_shd.api_updating
206 (p_booking_justification_id => p_rec.booking_justification_id
207 ,p_language => p_rec.language
208 ) THEN
209 fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
210 fnd_message.set_token('PROCEDURE ', l_proc);
211 fnd_message.set_token('STEP ', '5');
212 fnd_message.raise_error;
213 END IF;
214 --
215 -- EDIT_HERE: Add checks to ensure non-updateable args have
216 -- not been updated.
217 --
218 End chk_non_updateable_args;
219 --
220 -- ----------------------------------------------------------------------------
221 -- |---------------------------< chk_name >----------------------------|
222 -- ----------------------------------------------------------------------------
223 procedure chk_name
224 (p_justification_text in varchar2
225 ,p_booking_justification_id in number
226 ) IS
227
228 l_business_group_id number;
229 l_exists number;
230 l_proc varchar2(72) := g_package ||'.check_name';
231
232 CURSOR csr_get_bg IS
233 select business_group_id
234 FROM ota_bkng_justifications_b
235 WHERE booking_justification_id = p_booking_justification_id;
236
237 CURSOR csr_get_name(p_business_group_id NUMBER) IS
238 SELECT 1
239 FROM ota_bkng_justifications_tl bjt,
240 ota_bkng_justifications_b bjs
241 WHERE bjs.booking_justification_id = bjt.booking_justification_id
242 AND bjs.business_group_id = p_business_group_id
243 AND bjt.justification_text = p_justification_text
244 AND bjt.language = USERENV('LANG')
245 AND bjt.booking_justification_id <> p_booking_justification_id ;
246 begin
247 hr_utility.set_location(' Entering :'||l_proc, 10);
248 OPEN csr_get_bg;
249 FETCH csr_get_bg INTO l_business_group_id;
250 CLOSE csr_get_bg;
251
252 hr_utility.set_location(' Inside :'||l_proc, 20);
253 IF l_business_group_id IS NOT NULL THEN
254 OPEN csr_get_name(l_business_group_id);
255 FETCH csr_get_name INTO l_exists;
256 IF csr_get_name%FOUND THEN
257 CLOSE csr_get_name;
258 hr_utility.set_location(' Inside :'||l_proc, 30);
259 fnd_message.set_name('OTA', 'OTA_443106_BJS_UNIQUE_NAME');
260 fnd_message.raise_error;
261 ELSE
262 hr_utility.set_location(' Inside :'||l_proc, 40);
263 CLOSE csr_get_name;
264 END IF;
265 END IF;
266 EXCEPTION
267 WHEN app_exception.application_exception THEN
268
269 IF hr_multi_message.exception_add
270 (p_associated_column1 => 'OTA_BOOKING_JUSTIFICATIONS_VL.JUSTIFICATION_TEXT') THEN
271
272 hr_utility.set_location(' Leaving:'||l_proc, 92);
273 RAISE;
274
275 END IF;
276
277 hr_utility.set_location(' Leaving:'||l_proc, 94);
278 end chk_name;
279 --
280 --
281 -- ----------------------------------------------------------------------------
282 -- |---------------------------< insert_validate >----------------------------|
283 -- ----------------------------------------------------------------------------
284 Procedure insert_validate
285 (p_rec in ota_bjt_shd.g_rec_type
286 ,p_booking_justification_id ota_bkng_justifications_b.booking_justification_id%TYPE
287 ) is
288 --
289 l_proc varchar2(72) := g_package||'insert_validate';
290 --
291 Begin
292 hr_utility.set_location('Entering:'||l_proc, 5);
293 --
294 -- Call all supporting business operations
295 --
296 --
297 ota_bjs_bus.set_security_group_id(p_booking_justification_id =>p_booking_justification_id);
298 --
299 -- Validate Dependent Attributes
300 --
301 chk_name( p_justification_text => p_rec.justification_text
302 ,p_booking_justification_id =>p_booking_justification_id);
303 --
304 hr_utility.set_location(' Leaving:'||l_proc, 10);
305 End insert_validate;
306 --
307 -- ----------------------------------------------------------------------------
308 -- |---------------------------< update_validate >----------------------------|
309 -- ----------------------------------------------------------------------------
310 Procedure update_validate
311 (p_rec in ota_bjt_shd.g_rec_type
312 ) is
313 --
314 l_proc varchar2(72) := g_package||'update_validate';
315 --
316 Begin
317 hr_utility.set_location('Entering:'||l_proc, 5);
318 --
319 -- Call all supporting business operations
320 --
321 --
322 ota_bjs_bus.set_security_group_id(p_booking_justification_id =>p_rec.booking_justification_id);
323 --
324 -- Validate Dependent Attributes
325 --
326 chk_non_updateable_args
327 (p_rec => p_rec
328 );
329
330 IF p_rec.justification_text <> hr_api.g_varchar2 THEN
331 chk_name( p_justification_text => p_rec.justification_text
332 ,p_booking_justification_id =>p_rec.booking_justification_id);
333 END IF;
334 --
335 --
336 hr_utility.set_location(' Leaving:'||l_proc, 10);
337 End update_validate;
338 --
339 -- ----------------------------------------------------------------------------
340 -- |---------------------------< delete_validate >----------------------------|
341 -- ----------------------------------------------------------------------------
342 Procedure delete_validate
343 (p_rec in ota_bjt_shd.g_rec_type
344 ) is
345 --
346 l_proc varchar2(72) := g_package||'delete_validate';
347 --
348 Begin
349 hr_utility.set_location('Entering:'||l_proc, 5);
350 --
351 -- Call all supporting business operations
352 --
353 hr_utility.set_location(' Leaving:'||l_proc, 10);
354 End delete_validate;
355 --
356 end ota_bjt_bus;