[Home] [Help]
PACKAGE BODY: APPS.QP_LIMITS_UTIL
Source
1 PACKAGE BODY QP_Limits_Util AS
2 /* $Header: QPXULMTB.pls 120.1.12000000.2 2007/07/27 04:00:14 rassharm ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Limits_Util';
7
8 PROCEDURE Update_List_Header_And_Line
9 (p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type)
10 IS
11
12 l_dummy NUMBER := 0;
13 l_dummy1 NUMBER := 0;
14 l_updated NUMBER := 0; --pattern
15 l_return_status varchar2(30);
16
17 BEGIN
18
19 IF (p_LIMITS_rec.operation = QP_GLOBALS.g_opr_create) THEN
20
21 IF p_LIMITS_rec.list_header_id IS NOT NULL THEN
22 UPDATE QP_LIST_HEADERS_B
23 SET LIMIT_EXISTS_FLAG = 'Y'
24 WHERE list_header_id = p_LIMITS_rec.list_header_id
25 and nvl(LIMIT_EXISTS_FLAG,'N') <> 'Y' ; --Bug no 6193752
26 l_updated := 1; --pattern
27 END IF;
28
29 IF p_LIMITS_rec.list_line_id IS NOT NULL THEN
30 UPDATE QP_LIST_LINES
31 SET LIMIT_EXISTS_FLAG = 'Y'
32 WHERE list_line_id = p_LIMITS_rec.list_line_id
33 and nvl(LIMIT_EXISTS_FLAG,'N') <> 'Y' ; --Bug no 6193752
34 l_updated := 2; --pattern
35 END IF;
36
37 ELSIF (p_LIMITS_rec.operation = QP_GLOBALS.g_opr_delete) OR (p_LIMITS_rec.operation = QP_GLOBALS.g_opr_update) THEN
38
39 IF p_LIMITS_rec.list_header_id IS NOT NULL THEN
40
41 l_dummy := 0;
42 SELECT COUNT(*) INTO l_dummy
43 FROM QP_LIST_HEADERS_B WHERE list_header_id = p_LIMITS_rec.list_header_id;
44
45 IF l_dummy > 0 THEN -- LIST HEADER EXISTS THEN
46
47 l_dummy1 := 0;
48 SELECT COUNT(*) INTO l_dummy1
49 FROM QP_LIMITS WHERE list_header_id = p_LIMITS_rec.list_header_id;
50
51 IF l_dummy1 = 0 THEN
52 UPDATE QP_LIST_HEADERS_B SET LIMIT_EXISTS_FLAG = 'N'
53 WHERE list_header_id = p_LIMITS_rec.list_header_id
54 and nvl(LIMIT_EXISTS_FLAG,'Y') <> 'N' ; --Bug no 6193752
55 l_updated := 1; --pattern
56 ELSIF l_dummy1 > 0 THEN
57 UPDATE QP_LIST_HEADERS_B SET LIMIT_EXISTS_FLAG = 'Y'
58 WHERE list_header_id = p_LIMITS_rec.list_header_id
59 and nvl(LIMIT_EXISTS_FLAG,'N') <> 'Y' ; --Bug no 6193752
60 l_updated := 1; --pattern
61 END IF;
62
63 END IF;
64
65 END IF;
66
67 IF p_LIMITS_rec.list_line_id IS NOT NULL THEN
68
69 l_dummy := 0;
70 SELECT COUNT(*) INTO l_dummy
71 FROM QP_LIST_LINES WHERE list_line_id = p_LIMITS_rec.list_line_id;
72
73 IF l_dummy > 0 THEN -- LIST LINE EXISTS THEN
74
75 l_dummy1 := 0;
76 SELECT COUNT(*) INTO l_dummy1
77 FROM QP_LIMITS WHERE list_line_id = p_LIMITS_rec.list_line_id;
78
79 IF l_dummy1 = 0 THEN
80 UPDATE QP_LIST_LINES SET LIMIT_EXISTS_FLAG = 'N'
81 WHERE list_line_id = p_LIMITS_rec.list_line_id
82 and nvl(LIMIT_EXISTS_FLAG,'Y') <> 'N' ; --Bug no 6193752
83 l_updated := 2; --pattern
84 ELSIF l_dummy1 > 0 THEN
85 UPDATE QP_LIST_LINES SET LIMIT_EXISTS_FLAG = 'Y'
86 WHERE list_line_id = p_LIMITS_rec.list_line_id
87 and nvl(LIMIT_EXISTS_FLAG,'N') <> 'Y' ; --Bug no 6193752
88 l_updated := 2; --pattern
89 END IF;
90
91 END IF;
92
93 END IF;
94
95 END IF;
96 -- pattern
97 IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
98 IF (p_LIMITS_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
99 IF l_updated = 1 then
100 qp_delayed_requests_pvt.log_request(
101 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
102 p_entity_id => p_LIMITS_rec.list_header_id,
103 p_request_unique_key1 => NULL,
104 p_request_unique_key2 => 'UD',
105 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
106 p_requesting_entity_id => p_LIMITS_rec.list_header_id,
107 p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
108 x_return_status => l_return_status);
109 END IF;
110 IF l_updated = 2 then
111 qp_delayed_requests_pvt.log_request(
112 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
113 p_entity_id => p_LIMITS_rec.list_header_id,
114 p_request_unique_key1 => p_LIMITS_rec.list_line_id,
115 p_request_unique_key2 => NULL,
116 p_request_unique_key3 => 'UD',
117 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
118 p_requesting_entity_id => p_LIMITS_rec.list_header_id,
119 p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
120 x_return_status => l_return_status);
121 END IF;
122 END IF;
123 END IF;
124 END Update_List_Header_And_Line;
125
126 -- Procedure Clear_Dependent_Attr
127
128 PROCEDURE Clear_Dependent_Attr
129 ( p_attr_id IN NUMBER := FND_API.G_MISS_NUM
130 , p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
131 , p_old_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type := QP_Limits_PUB.G_MISS_LIMITS_REC
132 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
133 )
134 IS
135 l_index NUMBER := 0;
136 l_src_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
137 l_dep_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
138 BEGIN
139
140 -- Load out record
141
142 x_LIMITS_rec := p_LIMITS_rec;
143
144 -- If attr_id is missing compare old and new records and for
145 -- every changed attribute clear its dependent fields.
146
147 IF p_attr_id = FND_API.G_MISS_NUM THEN
148
149 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.amount, p_old_LIMITS_rec.amount)
150 THEN
151 l_index := l_index + 1;
152 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_AMOUNT;
153 END IF;
154
155 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute1, p_old_LIMITS_rec.attribute1)
156 THEN
157 l_index := l_index + 1;
158 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE1;
159 END IF;
160
161 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute10, p_old_LIMITS_rec.attribute10)
162 THEN
163 l_index := l_index + 1;
164 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE10;
165 END IF;
166
167 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute11, p_old_LIMITS_rec.attribute11)
168 THEN
169 l_index := l_index + 1;
170 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE11;
171 END IF;
172
173 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute12, p_old_LIMITS_rec.attribute12)
174 THEN
175 l_index := l_index + 1;
176 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE12;
177 END IF;
178
179 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute13, p_old_LIMITS_rec.attribute13)
180 THEN
181 l_index := l_index + 1;
182 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE13;
183 END IF;
184
185 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute14, p_old_LIMITS_rec.attribute14)
186 THEN
187 l_index := l_index + 1;
188 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE14;
189 END IF;
190
191 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute15, p_old_LIMITS_rec.attribute15)
192 THEN
193 l_index := l_index + 1;
194 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE15;
195 END IF;
196
197 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute2, p_old_LIMITS_rec.attribute2)
198 THEN
199 l_index := l_index + 1;
200 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE2;
201 END IF;
202
203 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute3, p_old_LIMITS_rec.attribute3)
204 THEN
205 l_index := l_index + 1;
206 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE3;
207 END IF;
208
209 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute4, p_old_LIMITS_rec.attribute4)
210 THEN
211 l_index := l_index + 1;
212 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE4;
213 END IF;
214
215 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute5, p_old_LIMITS_rec.attribute5)
216 THEN
217 l_index := l_index + 1;
218 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE5;
219 END IF;
220
221 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute6, p_old_LIMITS_rec.attribute6)
222 THEN
223 l_index := l_index + 1;
224 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE6;
225 END IF;
226
227 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute7, p_old_LIMITS_rec.attribute7)
228 THEN
229 l_index := l_index + 1;
230 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE7;
231 END IF;
232
233 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute8, p_old_LIMITS_rec.attribute8)
234 THEN
235 l_index := l_index + 1;
236 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE8;
237 END IF;
238
239 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute9, p_old_LIMITS_rec.attribute9)
240 THEN
241 l_index := l_index + 1;
242 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE9;
243 END IF;
244
245 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.basis, p_old_LIMITS_rec.basis)
246 THEN
247 l_index := l_index + 1;
248 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_BASIS;
249 END IF;
250
251 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.context, p_old_LIMITS_rec.context)
252 THEN
253 l_index := l_index + 1;
254 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_CONTEXT;
255 END IF;
256
257 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.created_by, p_old_LIMITS_rec.created_by)
258 THEN
259 l_index := l_index + 1;
260 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_CREATED_BY;
261 END IF;
262
263 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.creation_date, p_old_LIMITS_rec.creation_date)
264 THEN
265 l_index := l_index + 1;
266 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_CREATION_DATE;
267 END IF;
268
269 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.last_updated_by, p_old_LIMITS_rec.last_updated_by)
270 THEN
271 l_index := l_index + 1;
272 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LAST_UPDATED_BY;
273 END IF;
274
275 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.last_update_date, p_old_LIMITS_rec.last_update_date)
276 THEN
277 l_index := l_index + 1;
278 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LAST_UPDATE_DATE;
279 END IF;
280
281 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.last_update_login, p_old_LIMITS_rec.last_update_login)
282 THEN
283 l_index := l_index + 1;
284 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LAST_UPDATE_LOGIN;
285 END IF;
286
287 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_exceed_action_code, p_old_LIMITS_rec.limit_exceed_action_code)
288 THEN
289 l_index := l_index + 1;
290 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_EXCEED_ACTION;
291 END IF;
292
293
294 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_id, p_old_LIMITS_rec.limit_id)
295 THEN
296 l_index := l_index + 1;
297 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT;
298 END IF;
299
300 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_level_code, p_old_LIMITS_rec.limit_level_code)
301 THEN
302 l_index := l_index + 1;
303 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_LEVEL;
304 END IF;
305
306 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_number, p_old_LIMITS_rec.limit_number)
307 THEN
308 l_index := l_index + 1;
309 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_NUMBER;
310 END IF;
311
312 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.list_header_id, p_old_LIMITS_rec.list_header_id)
313 THEN
314 l_index := l_index + 1;
315 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIST_HEADER;
316 END IF;
317
318 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.list_line_id, p_old_LIMITS_rec.list_line_id)
319 THEN
320 l_index := l_index + 1;
321 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIST_LINE;
322 END IF;
323
324 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.organization_flag, p_old_LIMITS_rec.organization_flag)
325 THEN
326 l_index := l_index + 1;
327 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ORGANIZATION;
328 END IF;
329
330 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.program_application_id, p_old_LIMITS_rec.program_application_id)
331 THEN
332 l_index := l_index + 1;
333 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_PROGRAM_APPLICATION;
334 END IF;
335
336 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.program_id, p_old_LIMITS_rec.program_id)
337 THEN
338 l_index := l_index + 1;
339 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_PROGRAM;
340 END IF;
341
342 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.program_update_date, p_old_LIMITS_rec.program_update_date)
343 THEN
344 l_index := l_index + 1;
345 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_PROGRAM_UPDATE_DATE;
346 END IF;
347
348 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.request_id, p_old_LIMITS_rec.request_id)
349 THEN
350 l_index := l_index + 1;
351 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_REQUEST;
352 END IF;
353
354 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_hold_flag, p_old_LIMITS_rec.limit_hold_flag)
355 THEN
356 l_index := l_index + 1;
357 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_HOLD;
358 END IF;
359
360 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_type, p_old_LIMITS_rec.multival_attr1_type)
361 THEN
362 l_index := l_index + 1;
363 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR1_TYPE;
364 END IF;
365
366 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_context, p_old_LIMITS_rec.multival_attr1_context)
367 THEN
368 l_index := l_index + 1;
369 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR1_CONTEXT;
370 END IF;
371
372 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attribute1, p_old_LIMITS_rec.multival_attribute1)
373 THEN
374 l_index := l_index + 1;
375 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTRIBUTE1;
376 END IF;
377
378 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_datatype, p_old_LIMITS_rec.multival_attr1_datatype)
379 THEN
380 l_index := l_index + 1;
381 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR1_DATATYPE;
382 END IF;
383
384 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_type, p_old_LIMITS_rec.multival_attr2_type)
385 THEN
386 l_index := l_index + 1;
387 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR2_TYPE;
388 END IF;
389
390 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_context, p_old_LIMITS_rec.multival_attr2_context)
391 THEN
392 l_index := l_index + 1;
393 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR2_CONTEXT;
394 END IF;
395
396 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attribute2, p_old_LIMITS_rec.multival_attribute2)
397 THEN
398 l_index := l_index + 1;
399 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTRIBUTE2;
400 END IF;
401
402 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_datatype, p_old_LIMITS_rec.multival_attr2_datatype)
403 THEN
404 l_index := l_index + 1;
405 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR2_DATATYPE;
406 END IF;
407
408 ELSIF p_attr_id = G_AMOUNT THEN
409 l_index := l_index + 1;
410 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_AMOUNT;
411 ELSIF p_attr_id = G_ATTRIBUTE1 THEN
412 l_index := l_index + 1;
413 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE1;
414 ELSIF p_attr_id = G_ATTRIBUTE10 THEN
415 l_index := l_index + 1;
416 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE10;
417 ELSIF p_attr_id = G_ATTRIBUTE11 THEN
418 l_index := l_index + 1;
419 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE11;
420 ELSIF p_attr_id = G_ATTRIBUTE12 THEN
421 l_index := l_index + 1;
422 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE12;
423 ELSIF p_attr_id = G_ATTRIBUTE13 THEN
424 l_index := l_index + 1;
425 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE13;
426 ELSIF p_attr_id = G_ATTRIBUTE14 THEN
427 l_index := l_index + 1;
428 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE14;
429 ELSIF p_attr_id = G_ATTRIBUTE15 THEN
430 l_index := l_index + 1;
431 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE15;
432 ELSIF p_attr_id = G_ATTRIBUTE2 THEN
433 l_index := l_index + 1;
434 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE2;
435 ELSIF p_attr_id = G_ATTRIBUTE3 THEN
436 l_index := l_index + 1;
437 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE3;
438 ELSIF p_attr_id = G_ATTRIBUTE4 THEN
439 l_index := l_index + 1;
440 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE4;
441 ELSIF p_attr_id = G_ATTRIBUTE5 THEN
442 l_index := l_index + 1;
443 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE5;
444 ELSIF p_attr_id = G_ATTRIBUTE6 THEN
445 l_index := l_index + 1;
446 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE6;
447 ELSIF p_attr_id = G_ATTRIBUTE7 THEN
448 l_index := l_index + 1;
449 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE7;
450 ELSIF p_attr_id = G_ATTRIBUTE8 THEN
451 l_index := l_index + 1;
452 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE8;
453 ELSIF p_attr_id = G_ATTRIBUTE9 THEN
454 l_index := l_index + 1;
455 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ATTRIBUTE9;
456 ELSIF p_attr_id = G_BASIS THEN
457 l_index := l_index + 1;
458 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_BASIS;
459 ELSIF p_attr_id = G_CONTEXT THEN
460 l_index := l_index + 1;
461 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_CONTEXT;
462 ELSIF p_attr_id = G_CREATED_BY THEN
463 l_index := l_index + 1;
464 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_CREATED_BY;
465 ELSIF p_attr_id = G_CREATION_DATE THEN
466 l_index := l_index + 1;
467 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_CREATION_DATE;
468 ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
469 l_index := l_index + 1;
470 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LAST_UPDATED_BY;
471 ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
472 l_index := l_index + 1;
473 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LAST_UPDATE_DATE;
474 ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
475 l_index := l_index + 1;
476 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LAST_UPDATE_LOGIN;
477 ELSIF p_attr_id = G_LIMIT_EXCEED_ACTION THEN
478 l_index := l_index + 1;
479 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_EXCEED_ACTION;
480 ELSIF p_attr_id = G_LIMIT THEN
481 l_index := l_index + 1;
482 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT;
483 ELSIF p_attr_id = G_LIMIT_LEVEL THEN
484 l_index := l_index + 1;
485 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_LEVEL;
486 ELSIF p_attr_id = G_LIMIT_NUMBER THEN
487 l_index := l_index + 1;
488 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_NUMBER;
489 ELSIF p_attr_id = G_LIST_HEADER THEN
490 l_index := l_index + 1;
491 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIST_HEADER;
492 ELSIF p_attr_id = G_LIST_LINE THEN
493 l_index := l_index + 1;
494 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIST_LINE;
495 ELSIF p_attr_id = G_ORGANIZATION THEN
496 l_index := l_index + 1;
497 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_ORGANIZATION;
498 ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
499 l_index := l_index + 1;
500 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_PROGRAM_APPLICATION;
501 ELSIF p_attr_id = G_PROGRAM THEN
502 l_index := l_index + 1;
503 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_PROGRAM;
504 ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
505 l_index := l_index + 1;
506 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_PROGRAM_UPDATE_DATE;
507 ELSIF p_attr_id = G_REQUEST THEN
508 l_index := l_index + 1;
509 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_REQUEST;
510 ELSIF p_attr_id = G_LIMIT_HOLD THEN
511 l_index := l_index + 1;
512 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_LIMIT_HOLD;
513 ELSIF p_attr_id = G_MULTIVAL_ATTR1_TYPE THEN
514 l_index := l_index + 1;
515 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR1_TYPE;
516 ELSIF p_attr_id = G_MULTIVAL_ATTR1_CONTEXT THEN
517 l_index := l_index + 1;
518 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR1_CONTEXT;
519 ELSIF p_attr_id = G_MULTIVAL_ATTRIBUTE1 THEN
520 l_index := l_index + 1;
521 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTRIBUTE1;
522 ELSIF p_attr_id = G_MULTIVAL_ATTR1_DATATYPE THEN
523 l_index := l_index + 1;
524 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR1_DATATYPE;
525 ELSIF p_attr_id = G_MULTIVAL_ATTR2_TYPE THEN
526 l_index := l_index + 1;
527 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR2_TYPE;
528 ELSIF p_attr_id = G_MULTIVAL_ATTR2_CONTEXT THEN
529 l_index := l_index + 1;
530 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR2_CONTEXT;
531 ELSIF p_attr_id = G_MULTIVAL_ATTRIBUTE2 THEN
532 l_index := l_index + 1;
533 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTRIBUTE2;
534 ELSIF p_attr_id = G_MULTIVAL_ATTR2_DATATYPE THEN
535 l_index := l_index + 1;
536 l_src_attr_tbl(l_index) := QP_LIMITS_UTIL.G_MULTIVAL_ATTR2_DATATYPE;
537 END IF;
538
539 END Clear_Dependent_Attr;
540
541 -- Procedure Apply_Attribute_Changes
542
543 PROCEDURE Apply_Attribute_Changes
544 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
545 , p_old_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type :=
546 QP_Limits_PUB.G_MISS_LIMITS_REC
547 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
548 )
549 IS
550 BEGIN
551
552 -- Load out record
553
554 x_LIMITS_rec := p_LIMITS_rec;
555
556 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.amount, p_old_LIMITS_rec.amount)
557 THEN
558 NULL;
559 END IF;
560
561 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute1, p_old_LIMITS_rec.attribute1)
562 THEN
563 NULL;
564 END IF;
565
566 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute10, p_old_LIMITS_rec.attribute10)
567 THEN
568 NULL;
569 END IF;
570
571 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute11, p_old_LIMITS_rec.attribute11)
572 THEN
573 NULL;
574 END IF;
575
576 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute12, p_old_LIMITS_rec.attribute12)
577 THEN
578 NULL;
579 END IF;
580
581 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute13, p_old_LIMITS_rec.attribute13)
582 THEN
583 NULL;
584 END IF;
585
586 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute14, p_old_LIMITS_rec.attribute14)
587 THEN
588 NULL;
589 END IF;
590
591 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute15, p_old_LIMITS_rec.attribute15)
592 THEN
593 NULL;
594 END IF;
595
596 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute2, p_old_LIMITS_rec.attribute2)
597 THEN
598 NULL;
599 END IF;
600
601 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute3, p_old_LIMITS_rec.attribute3)
602 THEN
603 NULL;
604 END IF;
605
606 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute4, p_old_LIMITS_rec.attribute4)
607 THEN
608 NULL;
609 END IF;
610
611 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute5, p_old_LIMITS_rec.attribute5)
612 THEN
613 NULL;
614 END IF;
615
616 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute6, p_old_LIMITS_rec.attribute6)
617 THEN
618 NULL;
619 END IF;
620
621 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute7, p_old_LIMITS_rec.attribute7)
622 THEN
623 NULL;
624 END IF;
625
626 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute8, p_old_LIMITS_rec.attribute8)
627 THEN
628 NULL;
629 END IF;
630
631 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.attribute9, p_old_LIMITS_rec.attribute9)
632 THEN
633 NULL;
634 END IF;
635
636 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.basis, p_old_LIMITS_rec.basis)
637 THEN
638 NULL;
639 END IF;
640
641 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.context, p_old_LIMITS_rec.context)
642 THEN
643 NULL;
644 END IF;
645
646 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.created_by, p_old_LIMITS_rec.created_by)
647 THEN
648 NULL;
649 END IF;
650
651 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.creation_date, p_old_LIMITS_rec.creation_date)
652 THEN
653 NULL;
654 END IF;
655
656 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.last_updated_by, p_old_LIMITS_rec.last_updated_by)
657 THEN
658 NULL;
659 END IF;
660
661 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.last_update_date, p_old_LIMITS_rec.last_update_date)
662 THEN
663 NULL;
664 END IF;
665
666 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.last_update_login, p_old_LIMITS_rec.last_update_login)
667 THEN
668 NULL;
669 END IF;
670
671 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_exceed_action_code, p_old_LIMITS_rec.limit_exceed_action_code)
672 THEN
673 NULL;
674 END IF;
675
676 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_id, p_old_LIMITS_rec.limit_id)
677 THEN
678 NULL;
679 END IF;
680
681 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_level_code, p_old_LIMITS_rec.limit_level_code)
682 THEN
683 NULL;
684 END IF;
685
686 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_number, p_old_LIMITS_rec.limit_number)
687 THEN
688 NULL;
689 END IF;
690
691 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.list_header_id, p_old_LIMITS_rec.list_header_id)
692 THEN
693 NULL;
694 END IF;
695
696 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.list_line_id, p_old_LIMITS_rec.list_line_id)
697 THEN
698 NULL;
699 END IF;
700
701 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.organization_flag, p_old_LIMITS_rec.organization_flag)
702 THEN
703 NULL;
704 END IF;
705
706 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.program_application_id, p_old_LIMITS_rec.program_application_id)
707 THEN
708 NULL;
709 END IF;
710
711 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.program_id, p_old_LIMITS_rec.program_id)
712 THEN
713 NULL;
714 END IF;
715
716 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.program_update_date, p_old_LIMITS_rec.program_update_date)
717 THEN
718 NULL;
719 END IF;
720
721 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.request_id, p_old_LIMITS_rec.request_id)
722 THEN
723 NULL;
724 END IF;
725
726 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_hold_flag, p_old_LIMITS_rec.limit_hold_flag)
727 THEN
728 NULL;
729 END IF;
730
731 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_type, p_old_LIMITS_rec.multival_attr1_type)
732 THEN
733 NULL;
734 END IF;
735
736 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_context, p_old_LIMITS_rec.multival_attr1_context)
737 THEN
738 NULL;
739 END IF;
740
741 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attribute1, p_old_LIMITS_rec.multival_attribute1)
742 THEN
743 NULL;
744 END IF;
745
746 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_datatype, p_old_LIMITS_rec.multival_attr1_datatype)
747 THEN
748 NULL;
749 END IF;
750
751 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_type, p_old_LIMITS_rec.multival_attr2_type)
752 THEN
753 NULL;
754 END IF;
755
756 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_context, p_old_LIMITS_rec.multival_attr2_context)
757 THEN
758 NULL;
759 END IF;
760
761 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attribute2, p_old_LIMITS_rec.multival_attribute2)
762 THEN
763 NULL;
764 END IF;
765
766 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_datatype, p_old_LIMITS_rec.multival_attr2_datatype)
767 THEN
768 NULL;
769 END IF;
770
771 END Apply_Attribute_Changes;
772
773 -- Function Complete_Record
774
775 FUNCTION Complete_Record
776 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
777 , p_old_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
778 ) RETURN QP_Limits_PUB.Limits_Rec_Type
779 IS
780 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type := p_LIMITS_rec;
781 BEGIN
782
783 IF l_LIMITS_rec.amount = FND_API.G_MISS_NUM THEN
784 l_LIMITS_rec.amount := p_old_LIMITS_rec.amount;
785 END IF;
786
787 IF l_LIMITS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
788 l_LIMITS_rec.attribute1 := p_old_LIMITS_rec.attribute1;
789 END IF;
790
791 IF l_LIMITS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
792 l_LIMITS_rec.attribute10 := p_old_LIMITS_rec.attribute10;
793 END IF;
794
795 IF l_LIMITS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
796 l_LIMITS_rec.attribute11 := p_old_LIMITS_rec.attribute11;
797 END IF;
798
799 IF l_LIMITS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
800 l_LIMITS_rec.attribute12 := p_old_LIMITS_rec.attribute12;
801 END IF;
802
803 IF l_LIMITS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
804 l_LIMITS_rec.attribute13 := p_old_LIMITS_rec.attribute13;
805 END IF;
806
807 IF l_LIMITS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
808 l_LIMITS_rec.attribute14 := p_old_LIMITS_rec.attribute14;
809 END IF;
810
811 IF l_LIMITS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
812 l_LIMITS_rec.attribute15 := p_old_LIMITS_rec.attribute15;
813 END IF;
814
815 IF l_LIMITS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
816 l_LIMITS_rec.attribute2 := p_old_LIMITS_rec.attribute2;
817 END IF;
818
819 IF l_LIMITS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
820 l_LIMITS_rec.attribute3 := p_old_LIMITS_rec.attribute3;
821 END IF;
822
823 IF l_LIMITS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
824 l_LIMITS_rec.attribute4 := p_old_LIMITS_rec.attribute4;
825 END IF;
826
827 IF l_LIMITS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
828 l_LIMITS_rec.attribute5 := p_old_LIMITS_rec.attribute5;
829 END IF;
830
831 IF l_LIMITS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
832 l_LIMITS_rec.attribute6 := p_old_LIMITS_rec.attribute6;
833 END IF;
834
835 IF l_LIMITS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
836 l_LIMITS_rec.attribute7 := p_old_LIMITS_rec.attribute7;
837 END IF;
838
839 IF l_LIMITS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
840 l_LIMITS_rec.attribute8 := p_old_LIMITS_rec.attribute8;
841 END IF;
842
843 IF l_LIMITS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
844 l_LIMITS_rec.attribute9 := p_old_LIMITS_rec.attribute9;
845 END IF;
846
847 IF l_LIMITS_rec.basis = FND_API.G_MISS_CHAR THEN
848 l_LIMITS_rec.basis := p_old_LIMITS_rec.basis;
849 END IF;
850
851 IF l_LIMITS_rec.context = FND_API.G_MISS_CHAR THEN
852 l_LIMITS_rec.context := p_old_LIMITS_rec.context;
853 END IF;
854
855 IF l_LIMITS_rec.created_by = FND_API.G_MISS_NUM THEN
856 l_LIMITS_rec.created_by := p_old_LIMITS_rec.created_by;
857 END IF;
858
859 IF l_LIMITS_rec.creation_date = FND_API.G_MISS_DATE THEN
860 l_LIMITS_rec.creation_date := p_old_LIMITS_rec.creation_date;
861 END IF;
862
863 IF l_LIMITS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
864 l_LIMITS_rec.last_updated_by := p_old_LIMITS_rec.last_updated_by;
865 END IF;
866
867 IF l_LIMITS_rec.last_update_date = FND_API.G_MISS_DATE THEN
868 l_LIMITS_rec.last_update_date := p_old_LIMITS_rec.last_update_date;
869 END IF;
870
871 IF l_LIMITS_rec.last_update_login = FND_API.G_MISS_NUM THEN
872 l_LIMITS_rec.last_update_login := p_old_LIMITS_rec.last_update_login;
873 END IF;
874
875 IF l_LIMITS_rec.limit_exceed_action_code = FND_API.G_MISS_CHAR THEN
876 l_LIMITS_rec.limit_exceed_action_code := p_old_LIMITS_rec.limit_exceed_action_code;
877 END IF;
878
879 IF l_LIMITS_rec.limit_id = FND_API.G_MISS_NUM THEN
880 l_LIMITS_rec.limit_id := p_old_LIMITS_rec.limit_id;
881 END IF;
882
883 IF l_LIMITS_rec.limit_level_code = FND_API.G_MISS_CHAR THEN
884 l_LIMITS_rec.limit_level_code := p_old_LIMITS_rec.limit_level_code;
885 END IF;
886
887 IF l_LIMITS_rec.limit_number = FND_API.G_MISS_NUM THEN
888 l_LIMITS_rec.limit_number := p_old_LIMITS_rec.limit_number;
889 END IF;
890
891 IF l_LIMITS_rec.list_header_id = FND_API.G_MISS_NUM THEN
892 l_LIMITS_rec.list_header_id := p_old_LIMITS_rec.list_header_id;
893 END IF;
894
895 IF l_LIMITS_rec.list_line_id = FND_API.G_MISS_NUM THEN
896 l_LIMITS_rec.list_line_id := p_old_LIMITS_rec.list_line_id;
897 END IF;
898
899 IF l_LIMITS_rec.organization_flag = FND_API.G_MISS_CHAR THEN
900 l_LIMITS_rec.organization_flag := p_old_LIMITS_rec.organization_flag;
901 END IF;
902
903 IF l_LIMITS_rec.program_application_id = FND_API.G_MISS_NUM THEN
904 l_LIMITS_rec.program_application_id := p_old_LIMITS_rec.program_application_id;
905 END IF;
906
907 IF l_LIMITS_rec.program_id = FND_API.G_MISS_NUM THEN
908 l_LIMITS_rec.program_id := p_old_LIMITS_rec.program_id;
909 END IF;
910
911 IF l_LIMITS_rec.program_update_date = FND_API.G_MISS_DATE THEN
912 l_LIMITS_rec.program_update_date := p_old_LIMITS_rec.program_update_date;
913 END IF;
914
915 IF l_LIMITS_rec.request_id = FND_API.G_MISS_NUM THEN
916 l_LIMITS_rec.request_id := p_old_LIMITS_rec.request_id;
917 END IF;
918
919 IF l_LIMITS_rec.limit_hold_flag = FND_API.G_MISS_CHAR THEN
920 l_LIMITS_rec.limit_hold_flag := p_old_LIMITS_rec.limit_hold_flag;
921 END IF;
922
923 IF l_LIMITS_rec.multival_attr1_type = FND_API.G_MISS_CHAR THEN
924 l_LIMITS_rec.multival_attr1_type := p_old_LIMITS_rec.multival_attr1_type;
925 END IF;
926
927 IF l_LIMITS_rec.multival_attr1_context = FND_API.G_MISS_CHAR THEN
928 l_LIMITS_rec.multival_attr1_context := p_old_LIMITS_rec.multival_attr1_context;
929 END IF;
930
931 IF l_LIMITS_rec.multival_attribute1 = FND_API.G_MISS_CHAR THEN
932 l_LIMITS_rec.multival_attribute1 := p_old_LIMITS_rec.multival_attribute1;
933 END IF;
934
935 IF l_LIMITS_rec.multival_attr1_datatype = FND_API.G_MISS_CHAR THEN
936 l_LIMITS_rec.multival_attr1_datatype := p_old_LIMITS_rec.multival_attr1_datatype;
937 END IF;
938
939 IF l_LIMITS_rec.multival_attr2_type = FND_API.G_MISS_CHAR THEN
940 l_LIMITS_rec.multival_attr2_type := p_old_LIMITS_rec.multival_attr2_type;
941 END IF;
942
943 IF l_LIMITS_rec.multival_attr2_context = FND_API.G_MISS_CHAR THEN
944 l_LIMITS_rec.multival_attr2_context := p_old_LIMITS_rec.multival_attr2_context;
945 END IF;
946
947 IF l_LIMITS_rec.multival_attribute2 = FND_API.G_MISS_CHAR THEN
948 l_LIMITS_rec.multival_attribute2 := p_old_LIMITS_rec.multival_attribute2;
949 END IF;
950
951 IF l_LIMITS_rec.multival_attr2_datatype = FND_API.G_MISS_CHAR THEN
952 l_LIMITS_rec.multival_attr2_datatype := p_old_LIMITS_rec.multival_attr2_datatype;
953 END IF;
954
955 RETURN l_LIMITS_rec;
956
957 END Complete_Record;
958
959 -- Function Convert_Miss_To_Null
960
961 FUNCTION Convert_Miss_To_Null
962 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
963 ) RETURN QP_Limits_PUB.Limits_Rec_Type
964 IS
965 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type := p_LIMITS_rec;
966 BEGIN
967
968 IF l_LIMITS_rec.amount = FND_API.G_MISS_NUM THEN
969 l_LIMITS_rec.amount := NULL;
970 END IF;
971
972 IF l_LIMITS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
973 l_LIMITS_rec.attribute1 := NULL;
974 END IF;
975
976 IF l_LIMITS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
977 l_LIMITS_rec.attribute10 := NULL;
978 END IF;
979
980 IF l_LIMITS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
981 l_LIMITS_rec.attribute11 := NULL;
982 END IF;
983
984 IF l_LIMITS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
985 l_LIMITS_rec.attribute12 := NULL;
986 END IF;
987
988 IF l_LIMITS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
989 l_LIMITS_rec.attribute13 := NULL;
990 END IF;
991
992 IF l_LIMITS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
993 l_LIMITS_rec.attribute14 := NULL;
994 END IF;
995
996 IF l_LIMITS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
997 l_LIMITS_rec.attribute15 := NULL;
998 END IF;
999
1000 IF l_LIMITS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1001 l_LIMITS_rec.attribute2 := NULL;
1002 END IF;
1003
1004 IF l_LIMITS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1005 l_LIMITS_rec.attribute3 := NULL;
1006 END IF;
1007
1008 IF l_LIMITS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1009 l_LIMITS_rec.attribute4 := NULL;
1010 END IF;
1011
1012 IF l_LIMITS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1013 l_LIMITS_rec.attribute5 := NULL;
1014 END IF;
1015
1016 IF l_LIMITS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1017 l_LIMITS_rec.attribute6 := NULL;
1018 END IF;
1019
1020 IF l_LIMITS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1021 l_LIMITS_rec.attribute7 := NULL;
1022 END IF;
1023
1024 IF l_LIMITS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1025 l_LIMITS_rec.attribute8 := NULL;
1026 END IF;
1027
1028 IF l_LIMITS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1029 l_LIMITS_rec.attribute9 := NULL;
1030 END IF;
1031
1032 IF l_LIMITS_rec.basis = FND_API.G_MISS_CHAR THEN
1033 l_LIMITS_rec.basis := NULL;
1034 END IF;
1035
1036 IF l_LIMITS_rec.context = FND_API.G_MISS_CHAR THEN
1037 l_LIMITS_rec.context := NULL;
1038 END IF;
1039
1040 IF l_LIMITS_rec.created_by = FND_API.G_MISS_NUM THEN
1041 l_LIMITS_rec.created_by := NULL;
1042 END IF;
1043
1044 IF l_LIMITS_rec.creation_date = FND_API.G_MISS_DATE THEN
1045 l_LIMITS_rec.creation_date := NULL;
1046 END IF;
1047
1048 IF l_LIMITS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1049 l_LIMITS_rec.last_updated_by := NULL;
1050 END IF;
1051
1052 IF l_LIMITS_rec.last_update_date = FND_API.G_MISS_DATE THEN
1053 l_LIMITS_rec.last_update_date := NULL;
1054 END IF;
1055
1056 IF l_LIMITS_rec.last_update_login = FND_API.G_MISS_NUM THEN
1057 l_LIMITS_rec.last_update_login := NULL;
1058 END IF;
1059
1060 IF l_LIMITS_rec.limit_exceed_action_code = FND_API.G_MISS_CHAR THEN
1061 l_LIMITS_rec.limit_exceed_action_code := NULL;
1062 END IF;
1063
1064 IF l_LIMITS_rec.limit_id = FND_API.G_MISS_NUM THEN
1065 l_LIMITS_rec.limit_id := NULL;
1066 END IF;
1067
1068 IF l_LIMITS_rec.limit_level_code = FND_API.G_MISS_CHAR THEN
1069 l_LIMITS_rec.limit_level_code := NULL;
1070 END IF;
1071
1072 IF l_LIMITS_rec.limit_number = FND_API.G_MISS_NUM THEN
1073 l_LIMITS_rec.limit_number := NULL;
1074 END IF;
1075
1076 IF l_LIMITS_rec.list_header_id = FND_API.G_MISS_NUM THEN
1077 l_LIMITS_rec.list_header_id := NULL;
1078 END IF;
1079
1080 IF l_LIMITS_rec.list_line_id = FND_API.G_MISS_NUM THEN
1081 l_LIMITS_rec.list_line_id := NULL;
1082 END IF;
1083
1084 IF l_LIMITS_rec.organization_flag = FND_API.G_MISS_CHAR THEN
1085 l_LIMITS_rec.organization_flag := NULL;
1086 END IF;
1087
1088 IF l_LIMITS_rec.program_application_id = FND_API.G_MISS_NUM THEN
1089 l_LIMITS_rec.program_application_id := NULL;
1090 END IF;
1091
1092 IF l_LIMITS_rec.program_id = FND_API.G_MISS_NUM THEN
1093 l_LIMITS_rec.program_id := NULL;
1094 END IF;
1095
1096 IF l_LIMITS_rec.program_update_date = FND_API.G_MISS_DATE THEN
1097 l_LIMITS_rec.program_update_date := NULL;
1098 END IF;
1099
1100 IF l_LIMITS_rec.request_id = FND_API.G_MISS_NUM THEN
1101 l_LIMITS_rec.request_id := NULL;
1102 END IF;
1103
1104 IF l_LIMITS_rec.limit_hold_flag = FND_API.G_MISS_CHAR THEN
1105 l_LIMITS_rec.limit_hold_flag := NULL;
1106 END IF;
1107
1108 IF l_LIMITS_rec.multival_attr1_type = FND_API.G_MISS_CHAR THEN
1109 l_LIMITS_rec.multival_attr1_type := NULL;
1110 END IF;
1111
1112 IF l_LIMITS_rec.multival_attr1_context = FND_API.G_MISS_CHAR THEN
1113 l_LIMITS_rec.multival_attr1_context := NULL;
1114 END IF;
1115
1116 IF l_LIMITS_rec.multival_attribute1 = FND_API.G_MISS_CHAR THEN
1117 l_LIMITS_rec.multival_attribute1 := NULL;
1118 END IF;
1119
1120 IF l_LIMITS_rec.multival_attr1_datatype = FND_API.G_MISS_CHAR THEN
1121 l_LIMITS_rec.multival_attr1_datatype := NULL;
1122 END IF;
1123
1124 IF l_LIMITS_rec.multival_attr2_type = FND_API.G_MISS_CHAR THEN
1125 l_LIMITS_rec.multival_attr2_type := NULL;
1126 END IF;
1127
1128 IF l_LIMITS_rec.multival_attr2_context = FND_API.G_MISS_CHAR THEN
1129 l_LIMITS_rec.multival_attr2_context := NULL;
1130 END IF;
1131
1132 IF l_LIMITS_rec.multival_attribute2 = FND_API.G_MISS_CHAR THEN
1133 l_LIMITS_rec.multival_attribute2 := NULL;
1134 END IF;
1135
1136 IF l_LIMITS_rec.multival_attr2_datatype = FND_API.G_MISS_CHAR THEN
1137 l_LIMITS_rec.multival_attr2_datatype := NULL;
1138 END IF;
1139
1140 RETURN l_LIMITS_rec;
1141
1142 END Convert_Miss_To_Null;
1143
1144 -- Procedure Update_Row
1145
1146 PROCEDURE Update_Row
1147 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
1148 )
1149
1150 IS
1151 l_check_active_flag VARCHAR2(1);
1152 l_active_flag VARCHAR2(1);
1153 l_LIMITS_rec1 QP_Limits_PUB.Limits_Rec_Type;
1154 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1155 x_retcode NUMBER;
1156 x_errbuf VARCHAR2(250);
1157 BEGIN
1158
1159 l_LIMITS_rec := p_LIMITS_rec;
1160 l_LIMITS_rec1 := Query_Row(p_LIMITS_rec.limit_id);
1161
1162 SELECT active_flag
1163 INTO l_active_flag
1164 FROM QP_LIST_HEADERS_B
1165 WHERE list_header_id=p_LIMITS_rec.list_header_id;
1166
1167 UPDATE QP_LIMITS
1168 SET AMOUNT = p_LIMITS_rec.amount
1169 , ATTRIBUTE1 = p_LIMITS_rec.attribute1
1170 , ATTRIBUTE10 = p_LIMITS_rec.attribute10
1171 , ATTRIBUTE11 = p_LIMITS_rec.attribute11
1172 , ATTRIBUTE12 = p_LIMITS_rec.attribute12
1173 , ATTRIBUTE13 = p_LIMITS_rec.attribute13
1174 , ATTRIBUTE14 = p_LIMITS_rec.attribute14
1175 , ATTRIBUTE15 = p_LIMITS_rec.attribute15
1176 , ATTRIBUTE2 = p_LIMITS_rec.attribute2
1177 , ATTRIBUTE3 = p_LIMITS_rec.attribute3
1178 , ATTRIBUTE4 = p_LIMITS_rec.attribute4
1179 , ATTRIBUTE5 = p_LIMITS_rec.attribute5
1180 , ATTRIBUTE6 = p_LIMITS_rec.attribute6
1181 , ATTRIBUTE7 = p_LIMITS_rec.attribute7
1182 , ATTRIBUTE8 = p_LIMITS_rec.attribute8
1183 , ATTRIBUTE9 = p_LIMITS_rec.attribute9
1184 , BASIS = p_LIMITS_rec.basis
1185 , CONTEXT = p_LIMITS_rec.context
1186 , CREATED_BY = p_LIMITS_rec.created_by
1187 , CREATION_DATE = p_LIMITS_rec.creation_date
1188 , LAST_UPDATED_BY = p_LIMITS_rec.last_updated_by
1189 , LAST_UPDATE_DATE = p_LIMITS_rec.last_update_date
1190 , LAST_UPDATE_LOGIN = p_LIMITS_rec.last_update_login
1191 , LIMIT_EXCEED_ACTION_CODE = p_LIMITS_rec.limit_exceed_action_code
1192 , LIMIT_HOLD_FLAG = p_LIMITS_rec.limit_hold_flag
1193 , LIMIT_ID = p_LIMITS_rec.limit_id
1194 , LIMIT_LEVEL_CODE = p_LIMITS_rec.limit_level_code
1195 , LIMIT_NUMBER = p_LIMITS_rec.limit_number
1196 , LIST_HEADER_ID = p_LIMITS_rec.list_header_id
1197 , LIST_LINE_ID = p_LIMITS_rec.list_line_id
1198 , MULTIVAL_ATTR1_TYPE = p_LIMITS_rec.multival_attr1_type
1199 , MULTIVAL_ATTR1_CONTEXT = p_LIMITS_rec.multival_attr1_context
1200 , MULTIVAL_ATTRIBUTE1 = p_LIMITS_rec.multival_attribute1
1201 , MULTIVAL_ATTR1_DATATYPE = p_LIMITS_rec.multival_attr1_datatype
1202 , MULTIVAL_ATTR2_TYPE = p_LIMITS_rec.multival_attr2_type
1203 , MULTIVAL_ATTR2_CONTEXT = p_LIMITS_rec.multival_attr2_context
1204 , MULTIVAL_ATTRIBUTE2 = p_LIMITS_rec.multival_attribute2
1205 , MULTIVAL_ATTR2_DATATYPE = p_LIMITS_rec.multival_attr2_datatype
1206 , ORGANIZATION_FLAG = p_LIMITS_rec.organization_flag
1207 , PROGRAM_APPLICATION_ID = p_LIMITS_rec.program_application_id
1208 , PROGRAM_ID = p_LIMITS_rec.program_id
1209 , PROGRAM_UPDATE_DATE = p_LIMITS_rec.program_update_date
1210 , REQUEST_ID = p_LIMITS_rec.request_id
1211 WHERE LIMIT_ID = p_LIMITS_rec.limit_id
1212 ;
1213 l_LIMITS_rec.operation := QP_GLOBALS.g_opr_update;
1214
1215 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1216 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1217
1218 IF(p_LIMITS_rec.multival_attr1_context IS NOT NULL) AND
1219 (p_LIMITS_rec.multival_attribute1 IS NOT NULL) THEN
1220 UPDATE qp_pte_segments SET used_in_setup='Y'
1221 WHERE nvl(used_in_setup,'N')='N'
1222 AND segment_id IN
1223 (SELECT a.segment_id
1224 FROM qp_segments_b a,qp_prc_contexts_b b
1225 WHERE a.segment_mapping_column=p_LIMITS_rec.multival_attribute1
1226 AND a.prc_context_id=b.prc_context_id
1227 AND b.prc_context_type = p_LIMITS_rec.multival_attr1_type
1228 AND b.prc_context_code=p_LIMITS_rec.multival_attr1_context);
1229 END IF;
1230
1231 IF(p_LIMITS_rec.multival_attr2_context IS NOT NULL) AND
1232 (p_LIMITS_rec.multival_attribute2 IS NOT NULL) THEN
1233 UPDATE qp_pte_segments SET used_in_setup='Y'
1234 WHERE nvl(used_in_setup,'N')='N'
1235 AND segment_id IN
1236 (SELECT a.segment_id
1237 FROM qp_segments_b a,qp_prc_contexts_b b
1238 WHERE a.segment_mapping_column=p_LIMITS_rec.multival_attribute2
1239 AND a.prc_context_id=b.prc_context_id
1240 AND b.prc_context_type = p_LIMITS_rec.multival_attr2_type
1241 AND b.prc_context_code=p_LIMITS_rec.multival_attr2_context);
1242 END IF;
1243 END IF;
1244
1245 Update_List_Header_And_Line(l_LIMITS_rec);
1246
1247
1248 IF NOT QP_GLOBALS.Equal(p_LIMITS_rec.amount
1249 ,l_limits_rec1.amount)
1250 THEN
1251 QP_LIMIT_CONC_REQ.UPDATE_BALANCES(x_retcode
1252 ,x_errbuf
1253 ,null
1254 ,null
1255 ,p_LIMITS_rec.limit_id
1256 ,null);
1257 IF x_retcode = 2 THEN
1258 OE_MSG_PUB.Add_Exc_Msg
1259 ( G_PKG_NAME
1260 , 'UPDATE_BALANCES'
1261 );
1262 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1263 END IF;
1264 END IF;
1265
1266
1267
1268 EXCEPTION
1269
1270 WHEN OTHERS THEN
1271
1272
1273 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1274 THEN
1275 OE_MSG_PUB.Add_Exc_Msg
1276 ( G_PKG_NAME
1277 , 'Update_Row'
1278 );
1279 END IF;
1280
1281 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1282
1283 END Update_Row;
1284
1285 -- Procedure Insert_Row
1286
1287 PROCEDURE Insert_Row
1288 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
1289 )
1290
1291 IS
1292 l_check_active_flag VARCHAR2(1);
1293 l_active_flag VARCHAR2(1);
1294 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1295
1296 --dbms_output.put_line('Begin Insert Row');
1297 BEGIN
1298 l_LIMITS_rec := p_LIMITS_rec;
1299 SELECT active_flag
1300 INTO l_active_flag
1301 FROM QP_LIST_HEADERS_B
1302 WHERE list_header_id=p_LIMITS_rec.list_header_id;
1303
1304 INSERT INTO QP_LIMITS
1305 ( AMOUNT
1306 , ATTRIBUTE1
1307 , ATTRIBUTE10
1308 , ATTRIBUTE11
1309 , ATTRIBUTE12
1310 , ATTRIBUTE13
1311 , ATTRIBUTE14
1312 , ATTRIBUTE15
1313 , ATTRIBUTE2
1314 , ATTRIBUTE3
1315 , ATTRIBUTE4
1316 , ATTRIBUTE5
1317 , ATTRIBUTE6
1318 , ATTRIBUTE7
1319 , ATTRIBUTE8
1320 , ATTRIBUTE9
1321 , BASIS
1322 , CONTEXT
1323 , CREATED_BY
1324 , CREATION_DATE
1325 , LAST_UPDATED_BY
1326 , LAST_UPDATE_DATE
1327 , LAST_UPDATE_LOGIN
1328 , LIMIT_EXCEED_ACTION_CODE
1329 , LIMIT_HOLD_FLAG
1330 , LIMIT_ID
1331 , LIMIT_LEVEL_CODE
1332 , LIMIT_NUMBER
1333 , LIST_HEADER_ID
1334 , LIST_LINE_ID
1335 , MULTIVAL_ATTR1_TYPE
1336 , MULTIVAL_ATTR1_CONTEXT
1337 , MULTIVAL_ATTRIBUTE1
1338 , MULTIVAL_ATTR1_DATATYPE
1339 , MULTIVAL_ATTR2_TYPE
1340 , MULTIVAL_ATTR2_CONTEXT
1341 , MULTIVAL_ATTRIBUTE2
1342 , MULTIVAL_ATTR2_DATATYPE
1343 , ORGANIZATION_FLAG
1344 , PROGRAM_APPLICATION_ID
1345 , PROGRAM_ID
1346 , PROGRAM_UPDATE_DATE
1347 , REQUEST_ID
1348 )
1349 VALUES
1350 ( p_LIMITS_rec.amount
1351 , p_LIMITS_rec.attribute1
1352 , p_LIMITS_rec.attribute10
1353 , p_LIMITS_rec.attribute11
1354 , p_LIMITS_rec.attribute12
1355 , p_LIMITS_rec.attribute13
1356 , p_LIMITS_rec.attribute14
1357 , p_LIMITS_rec.attribute15
1358 , p_LIMITS_rec.attribute2
1359 , p_LIMITS_rec.attribute3
1360 , p_LIMITS_rec.attribute4
1361 , p_LIMITS_rec.attribute5
1362 , p_LIMITS_rec.attribute6
1363 , p_LIMITS_rec.attribute7
1364 , p_LIMITS_rec.attribute8
1365 , p_LIMITS_rec.attribute9
1366 , p_LIMITS_rec.basis
1367 , p_LIMITS_rec.context
1368 , p_LIMITS_rec.created_by
1369 , p_LIMITS_rec.creation_date
1370 , p_LIMITS_rec.last_updated_by
1371 , p_LIMITS_rec.last_update_date
1372 , p_LIMITS_rec.last_update_login
1373 , p_LIMITS_rec.limit_exceed_action_code
1374 , p_LIMITS_rec.limit_hold_flag
1375 , p_LIMITS_rec.limit_id
1376 , p_LIMITS_rec.limit_level_code
1377 , p_LIMITS_rec.limit_number
1378 , p_LIMITS_rec.list_header_id
1379 , p_LIMITS_rec.list_line_id
1380 , p_LIMITS_rec.multival_attr1_type
1381 , p_LIMITS_rec.multival_attr1_context
1382 , p_LIMITS_rec.multival_attribute1
1383 , p_LIMITS_rec.multival_attr1_datatype
1384 , p_LIMITS_rec.multival_attr2_type
1385 , p_LIMITS_rec.multival_attr2_context
1386 , p_LIMITS_rec.multival_attribute2
1387 , p_LIMITS_rec.multival_attr2_datatype
1388 , p_LIMITS_rec.organization_flag
1389 , p_LIMITS_rec.program_application_id
1390 , p_LIMITS_rec.program_id
1391 , p_LIMITS_rec.program_update_date
1392 , p_LIMITS_rec.request_id
1393 );
1394 l_LIMITS_rec.operation := QP_GLOBALS.g_opr_create;
1395 Update_List_Header_And_Line(l_LIMITS_rec);
1396 --dbms_output.put_line('End Insert Row');
1397 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1398 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1399 IF(p_LIMITS_rec.multival_attr1_context IS NOT NULL) AND
1400 (p_LIMITS_rec.multival_attribute1 IS NOT NULL) THEN
1401 UPDATE qp_pte_segments SET used_in_setup='Y'
1402 WHERE nvl(used_in_setup,'N')='N'
1403 AND segment_id IN
1404 (SELECT a.segment_id
1405 FROM qp_segments_b a,qp_prc_contexts_b b
1406 WHERE a.segment_mapping_column=p_LIMITS_rec.multival_attribute1
1407 AND a.prc_context_id=b.prc_context_id
1408 AND b.prc_context_type = p_LIMITS_rec.multival_attr1_type
1409 AND b.prc_context_code=p_LIMITS_rec.multival_attr1_context);
1410 END IF;
1411
1412 IF(p_LIMITS_rec.multival_attr2_context IS NOT NULL) AND
1413 (p_LIMITS_rec.multival_attribute2 IS NOT NULL) THEN
1414 UPDATE qp_pte_segments SET used_in_setup='Y'
1415 WHERE nvl(used_in_setup,'N')='N'
1416 AND segment_id IN
1417 (SELECT a.segment_id
1418 FROM qp_segments_b a,qp_prc_contexts_b b
1419 WHERE a.segment_mapping_column=p_LIMITS_rec.multival_attribute2
1420 AND a.prc_context_id=b.prc_context_id
1421 AND b.prc_context_type = p_LIMITS_rec.multival_attr2_type
1422 AND b.prc_context_code=p_LIMITS_rec.multival_attr2_context);
1423 END IF;
1424 END IF;
1425
1426 EXCEPTION
1427
1428 WHEN OTHERS THEN
1429
1430 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1431 THEN
1432 OE_MSG_PUB.Add_Exc_Msg
1433 ( G_PKG_NAME
1434 , 'Insert_Row'
1435 );
1436 END IF;
1437
1438 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1439
1440 END Insert_Row;
1441
1442 -- Procedure Delete_Row
1443
1444 PROCEDURE Delete_Row
1445 ( p_limit_id IN NUMBER
1446 )
1447
1448 IS
1449 l_limits_rec QP_Limits_PUB.Limits_Rec_Type;
1450 BEGIN
1451
1452 l_limits_rec := Query_Row(p_limit_id);
1453
1454 l_limits_rec.operation := QP_GLOBALS.g_opr_delete;
1455 --dbms_output.put_line('In Delete_Row ..' || 'Header ' || l_limits_rec.list_header_id || ' line ' || l_limits_rec.list_line_id);
1456
1457 DELETE FROM QP_LIMITS
1458 WHERE LIMIT_ID = p_limit_id;
1459
1460 Update_List_Header_And_Line(l_limits_rec);
1461
1462
1463
1464 EXCEPTION
1465
1466 WHEN OTHERS THEN
1467
1468 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1469 THEN
1470 OE_MSG_PUB.Add_Exc_Msg
1471 ( G_PKG_NAME
1472 , 'Delete_Row'
1473 );
1474 END IF;
1475
1476 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1477
1478 END Delete_Row;
1479
1480 -- Function Query_Row
1481
1482 FUNCTION Query_Row
1483 ( p_limit_id IN NUMBER
1484 ) RETURN QP_Limits_PUB.Limits_Rec_Type
1485 IS
1486 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1487 BEGIN
1488
1489 SELECT AMOUNT
1490 , ATTRIBUTE1
1491 , ATTRIBUTE10
1492 , ATTRIBUTE11
1493 , ATTRIBUTE12
1494 , ATTRIBUTE13
1495 , ATTRIBUTE14
1496 , ATTRIBUTE15
1497 , ATTRIBUTE2
1498 , ATTRIBUTE3
1499 , ATTRIBUTE4
1500 , ATTRIBUTE5
1501 , ATTRIBUTE6
1502 , ATTRIBUTE7
1503 , ATTRIBUTE8
1504 , ATTRIBUTE9
1505 , BASIS
1506 , CONTEXT
1507 , CREATED_BY
1508 , CREATION_DATE
1509 , LAST_UPDATED_BY
1510 , LAST_UPDATE_DATE
1511 , LAST_UPDATE_LOGIN
1512 , LIMIT_EXCEED_ACTION_CODE
1513 , LIMIT_HOLD_FLAG
1514 , LIMIT_ID
1515 , LIMIT_LEVEL_CODE
1516 , LIMIT_NUMBER
1517 , LIST_HEADER_ID
1518 , LIST_LINE_ID
1519 , MULTIVAL_ATTR1_TYPE
1520 , MULTIVAL_ATTR1_CONTEXT
1521 , MULTIVAL_ATTRIBUTE1
1522 , MULTIVAL_ATTR1_DATATYPE
1523 , MULTIVAL_ATTR2_TYPE
1524 , MULTIVAL_ATTR2_CONTEXT
1525 , MULTIVAL_ATTRIBUTE2
1526 , MULTIVAL_ATTR2_DATATYPE
1527 , ORGANIZATION_FLAG
1528 , PROGRAM_APPLICATION_ID
1529 , PROGRAM_ID
1530 , PROGRAM_UPDATE_DATE
1531 , REQUEST_ID
1532 INTO l_LIMITS_rec.amount
1533 , l_LIMITS_rec.attribute1
1534 , l_LIMITS_rec.attribute10
1535 , l_LIMITS_rec.attribute11
1536 , l_LIMITS_rec.attribute12
1537 , l_LIMITS_rec.attribute13
1538 , l_LIMITS_rec.attribute14
1539 , l_LIMITS_rec.attribute15
1540 , l_LIMITS_rec.attribute2
1541 , l_LIMITS_rec.attribute3
1542 , l_LIMITS_rec.attribute4
1543 , l_LIMITS_rec.attribute5
1544 , l_LIMITS_rec.attribute6
1545 , l_LIMITS_rec.attribute7
1546 , l_LIMITS_rec.attribute8
1547 , l_LIMITS_rec.attribute9
1548 , l_LIMITS_rec.basis
1549 , l_LIMITS_rec.context
1550 , l_LIMITS_rec.created_by
1551 , l_LIMITS_rec.creation_date
1552 , l_LIMITS_rec.last_updated_by
1553 , l_LIMITS_rec.last_update_date
1554 , l_LIMITS_rec.last_update_login
1555 , l_LIMITS_rec.limit_exceed_action_code
1556 , l_LIMITS_rec.limit_hold_flag
1557 , l_LIMITS_rec.limit_id
1558 , l_LIMITS_rec.limit_level_code
1559 , l_LIMITS_rec.limit_number
1560 , l_LIMITS_rec.list_header_id
1561 , l_LIMITS_rec.list_line_id
1562 , l_LIMITS_rec.multival_attr1_type
1563 , l_LIMITS_rec.multival_attr1_context
1564 , l_LIMITS_rec.multival_attribute1
1565 , l_LIMITS_rec.multival_attr1_datatype
1566 , l_LIMITS_rec.multival_attr2_type
1567 , l_LIMITS_rec.multival_attr2_context
1568 , l_LIMITS_rec.multival_attribute2
1569 , l_LIMITS_rec.multival_attr2_datatype
1570 , l_LIMITS_rec.organization_flag
1571 , l_LIMITS_rec.program_application_id
1572 , l_LIMITS_rec.program_id
1573 , l_LIMITS_rec.program_update_date
1574 , l_LIMITS_rec.request_id
1575 FROM QP_LIMITS
1576 WHERE LIMIT_ID = p_limit_id
1577 ;
1578
1579 RETURN l_LIMITS_rec;
1580
1581 EXCEPTION
1582
1583 WHEN NO_DATA_FOUND THEN
1584 RETURN l_LIMITS_rec;
1585
1586 WHEN OTHERS THEN
1587
1588 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1589 THEN
1590 OE_MSG_PUB.Add_Exc_Msg
1591 ( G_PKG_NAME
1592 , 'Query_Row'
1593 );
1594 END IF;
1595
1596 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1597
1598 END Query_Row;
1599
1600 -- Procedure lock_Row
1601 --
1602
1603 PROCEDURE Lock_Row
1604 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1605 , p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
1606 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
1607 )
1608 IS
1609 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1610 BEGIN
1611
1612 SELECT AMOUNT
1613 , ATTRIBUTE1
1614 , ATTRIBUTE10
1615 , ATTRIBUTE11
1616 , ATTRIBUTE12
1617 , ATTRIBUTE13
1618 , ATTRIBUTE14
1619 , ATTRIBUTE15
1620 , ATTRIBUTE2
1621 , ATTRIBUTE3
1622 , ATTRIBUTE4
1623 , ATTRIBUTE5
1624 , ATTRIBUTE6
1625 , ATTRIBUTE7
1626 , ATTRIBUTE8
1627 , ATTRIBUTE9
1628 , BASIS
1629 , CONTEXT
1630 , CREATED_BY
1631 , CREATION_DATE
1632 , LAST_UPDATED_BY
1633 , LAST_UPDATE_DATE
1634 , LAST_UPDATE_LOGIN
1635 , LIMIT_EXCEED_ACTION_CODE
1636 , LIMIT_HOLD_FLAG
1637 , LIMIT_ID
1638 , LIMIT_LEVEL_CODE
1639 , LIMIT_NUMBER
1640 , LIST_HEADER_ID
1641 , LIST_LINE_ID
1642 , MULTIVAL_ATTR1_TYPE
1643 , MULTIVAL_ATTR1_CONTEXT
1644 , MULTIVAL_ATTRIBUTE1
1645 , MULTIVAL_ATTR1_DATATYPE
1646 , MULTIVAL_ATTR2_TYPE
1647 , MULTIVAL_ATTR2_CONTEXT
1648 , MULTIVAL_ATTRIBUTE2
1649 , MULTIVAL_ATTR2_DATATYPE
1650 , ORGANIZATION_FLAG
1651 , PROGRAM_APPLICATION_ID
1652 , PROGRAM_ID
1653 , PROGRAM_UPDATE_DATE
1654 , REQUEST_ID
1655 INTO l_LIMITS_rec.amount
1656 , l_LIMITS_rec.attribute1
1657 , l_LIMITS_rec.attribute10
1658 , l_LIMITS_rec.attribute11
1659 , l_LIMITS_rec.attribute12
1660 , l_LIMITS_rec.attribute13
1661 , l_LIMITS_rec.attribute14
1662 , l_LIMITS_rec.attribute15
1663 , l_LIMITS_rec.attribute2
1664 , l_LIMITS_rec.attribute3
1665 , l_LIMITS_rec.attribute4
1666 , l_LIMITS_rec.attribute5
1667 , l_LIMITS_rec.attribute6
1668 , l_LIMITS_rec.attribute7
1669 , l_LIMITS_rec.attribute8
1670 , l_LIMITS_rec.attribute9
1671 , l_LIMITS_rec.basis
1672 , l_LIMITS_rec.context
1673 , l_LIMITS_rec.created_by
1674 , l_LIMITS_rec.creation_date
1675 , l_LIMITS_rec.last_updated_by
1676 , l_LIMITS_rec.last_update_date
1677 , l_LIMITS_rec.last_update_login
1678 , l_LIMITS_rec.limit_exceed_action_code
1679 , l_LIMITS_rec.limit_hold_flag
1680 , l_LIMITS_rec.limit_id
1681 , l_LIMITS_rec.limit_level_code
1682 , l_LIMITS_rec.limit_number
1683 , l_LIMITS_rec.list_header_id
1684 , l_LIMITS_rec.list_line_id
1685 , l_LIMITS_rec.multival_attr1_type
1686 , l_LIMITS_rec.multival_attr1_context
1687 , l_LIMITS_rec.multival_attribute1
1688 , l_LIMITS_rec.multival_attr1_datatype
1689 , l_LIMITS_rec.multival_attr2_type
1690 , l_LIMITS_rec.multival_attr2_context
1691 , l_LIMITS_rec.multival_attribute2
1692 , l_LIMITS_rec.multival_attr2_datatype
1693 , l_LIMITS_rec.organization_flag
1694 , l_LIMITS_rec.program_application_id
1695 , l_LIMITS_rec.program_id
1696 , l_LIMITS_rec.program_update_date
1697 , l_LIMITS_rec.request_id
1698 FROM QP_LIMITS
1699 WHERE LIMIT_ID = p_LIMITS_rec.limit_id
1700 FOR UPDATE NOWAIT;
1701
1702 -- Row locked. Compare IN attributes to DB attributes.
1703
1704 IF QP_GLOBALS.Equal(p_LIMITS_rec.amount,
1705 l_LIMITS_rec.amount)
1706 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute1,
1707 l_LIMITS_rec.attribute1)
1708 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute10,
1709 l_LIMITS_rec.attribute10)
1710 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute11,
1711 l_LIMITS_rec.attribute11)
1712 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute12,
1713 l_LIMITS_rec.attribute12)
1714 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute13,
1715 l_LIMITS_rec.attribute13)
1716 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute14,
1717 l_LIMITS_rec.attribute14)
1718 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute15,
1719 l_LIMITS_rec.attribute15)
1720 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute2,
1721 l_LIMITS_rec.attribute2)
1722 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute3,
1723 l_LIMITS_rec.attribute3)
1724 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute4,
1725 l_LIMITS_rec.attribute4)
1726 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute5,
1727 l_LIMITS_rec.attribute5)
1728 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute6,
1729 l_LIMITS_rec.attribute6)
1730 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute7,
1731 l_LIMITS_rec.attribute7)
1732 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute8,
1733 l_LIMITS_rec.attribute8)
1734 AND QP_GLOBALS.Equal(p_LIMITS_rec.attribute9,
1735 l_LIMITS_rec.attribute9)
1736 AND QP_GLOBALS.Equal(p_LIMITS_rec.basis,
1737 l_LIMITS_rec.basis)
1738 AND QP_GLOBALS.Equal(p_LIMITS_rec.context,
1739 l_LIMITS_rec.context)
1740 AND QP_GLOBALS.Equal(p_LIMITS_rec.created_by,
1741 l_LIMITS_rec.created_by)
1742 AND QP_GLOBALS.Equal(p_LIMITS_rec.creation_date,
1743 l_LIMITS_rec.creation_date)
1744 AND QP_GLOBALS.Equal(p_LIMITS_rec.last_updated_by,
1745 l_LIMITS_rec.last_updated_by)
1746 AND QP_GLOBALS.Equal(p_LIMITS_rec.last_update_date,
1747 l_LIMITS_rec.last_update_date)
1748 AND QP_GLOBALS.Equal(p_LIMITS_rec.last_update_login,
1749 l_LIMITS_rec.last_update_login)
1750 AND QP_GLOBALS.Equal(p_LIMITS_rec.limit_exceed_action_code,
1751 l_LIMITS_rec.limit_exceed_action_code)
1752 AND QP_GLOBALS.Equal(p_LIMITS_rec.limit_hold_flag,
1753 l_LIMITS_rec.limit_hold_flag)
1754 AND QP_GLOBALS.Equal(p_LIMITS_rec.limit_id,
1755 l_LIMITS_rec.limit_id)
1756 AND QP_GLOBALS.Equal(p_LIMITS_rec.limit_level_code,
1757 l_LIMITS_rec.limit_level_code)
1758 AND QP_GLOBALS.Equal(p_LIMITS_rec.limit_number,
1759 l_LIMITS_rec.limit_number)
1760 AND QP_GLOBALS.Equal(p_LIMITS_rec.list_header_id,
1761 l_LIMITS_rec.list_header_id)
1762 AND QP_GLOBALS.Equal(p_LIMITS_rec.list_line_id,
1763 l_LIMITS_rec.list_line_id)
1764 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_type,
1765 l_LIMITS_rec.multival_attr1_type)
1766 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_context,
1767 l_LIMITS_rec.multival_attr1_context)
1768 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attribute1,
1769 l_LIMITS_rec.multival_attribute1)
1770 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr1_datatype,
1771 l_LIMITS_rec.multival_attr1_datatype)
1772 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_type,
1773 l_LIMITS_rec.multival_attr2_type)
1774 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_context,
1775 l_LIMITS_rec.multival_attr2_context)
1776 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attribute2,
1777 l_LIMITS_rec.multival_attribute2)
1778 AND QP_GLOBALS.Equal(p_LIMITS_rec.multival_attr2_datatype,
1779 l_LIMITS_rec.multival_attr2_datatype)
1780 AND QP_GLOBALS.Equal(p_LIMITS_rec.organization_flag,
1781 l_LIMITS_rec.organization_flag)
1782 AND QP_GLOBALS.Equal(p_LIMITS_rec.program_application_id,
1783 l_LIMITS_rec.program_application_id)
1784 AND QP_GLOBALS.Equal(p_LIMITS_rec.program_id,
1785 l_LIMITS_rec.program_id)
1786 AND QP_GLOBALS.Equal(p_LIMITS_rec.program_update_date,
1787 l_LIMITS_rec.program_update_date)
1788 AND QP_GLOBALS.Equal(p_LIMITS_rec.request_id,
1789 l_LIMITS_rec.request_id)
1790 THEN
1791
1792 -- Row has not changed. Set out parameter.
1793
1794 x_LIMITS_rec := l_LIMITS_rec;
1795
1796 -- Set return status
1797
1798 x_return_status := FND_API.G_RET_STS_SUCCESS;
1799 x_LIMITS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1800
1801 ELSE
1802
1803 -- Row has changed by another user.
1804
1805 x_return_status := FND_API.G_RET_STS_ERROR;
1806 x_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
1807
1808 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1809 THEN
1810
1811 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1812 OE_MSG_PUB.Add;
1813
1814 END IF;
1815
1816 END IF;
1817
1818 EXCEPTION
1819
1820 WHEN NO_DATA_FOUND THEN
1821
1822 x_return_status := FND_API.G_RET_STS_ERROR;
1823 x_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
1824
1825 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1826 THEN
1827
1828 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1829 OE_MSG_PUB.Add;
1830
1831 END IF;
1832 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1833
1834 x_return_status := FND_API.G_RET_STS_ERROR;
1835 x_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
1836
1837 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1838 THEN
1839
1840 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1841 OE_MSG_PUB.Add;
1842
1843 END IF;
1844 WHEN OTHERS THEN
1845
1846 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1847 x_LIMITS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1848
1849 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1850 THEN
1851 OE_MSG_PUB.Add_Exc_Msg
1852 ( G_PKG_NAME
1853 , 'Lock_Row'
1854 );
1855 END IF;
1856
1857 END Lock_Row;
1858
1859 -- Function Get_Values
1860
1861 FUNCTION Get_Values
1862 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
1863 , p_old_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type :=
1864 QP_Limits_PUB.G_MISS_LIMITS_REC
1865 ) RETURN QP_Limits_PUB.Limits_Val_Rec_Type
1866 IS
1867 l_LIMITS_val_rec QP_Limits_PUB.Limits_Val_Rec_Type;
1868 BEGIN
1869
1870 IF p_LIMITS_rec.limit_exceed_action_code IS NOT NULL AND
1871 p_LIMITS_rec.limit_exceed_action_code <> FND_API.G_MISS_CHAR AND
1872 NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_exceed_action_code,
1873 p_old_LIMITS_rec.limit_exceed_action_code)
1874 THEN
1875 l_LIMITS_val_rec.limit_exceed_action := QP_Id_To_Value.Limit_Exceed_Action
1876 ( p_limit_exceed_action_code => p_LIMITS_rec.limit_exceed_action_code
1877 );
1878 END IF;
1879
1880 IF p_LIMITS_rec.limit_id IS NOT NULL AND
1881 p_LIMITS_rec.limit_id <> FND_API.G_MISS_NUM AND
1882 NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_id,
1883 p_old_LIMITS_rec.limit_id)
1884 THEN
1885 l_LIMITS_val_rec.limit := QP_Id_To_Value.Limit
1886 ( p_limit_id => p_LIMITS_rec.limit_id
1887 );
1888 END IF;
1889
1890 IF p_LIMITS_rec.limit_level_code IS NOT NULL AND
1891 p_LIMITS_rec.limit_level_code <> FND_API.G_MISS_CHAR AND
1892 NOT QP_GLOBALS.Equal(p_LIMITS_rec.limit_level_code,
1893 p_old_LIMITS_rec.limit_level_code)
1894 THEN
1895 l_LIMITS_val_rec.limit_level := QP_Id_To_Value.Limit_Level
1896 ( p_limit_level_code => p_LIMITS_rec.limit_level_code
1897 );
1898 END IF;
1899
1900 IF p_LIMITS_rec.list_header_id IS NOT NULL AND
1901 p_LIMITS_rec.list_header_id <> FND_API.G_MISS_NUM AND
1902 NOT QP_GLOBALS.Equal(p_LIMITS_rec.list_header_id,
1903 p_old_LIMITS_rec.list_header_id)
1904 THEN
1905 l_LIMITS_val_rec.list_header := QP_Id_To_Value.List_Header
1906 ( p_list_header_id => p_LIMITS_rec.list_header_id
1907 );
1908 END IF;
1909
1910 IF p_LIMITS_rec.list_line_id IS NOT NULL AND
1911 p_LIMITS_rec.list_line_id <> FND_API.G_MISS_NUM AND
1912 NOT QP_GLOBALS.Equal(p_LIMITS_rec.list_line_id,
1913 p_old_LIMITS_rec.list_line_id)
1914 THEN
1915 l_LIMITS_val_rec.list_line := QP_Id_To_Value.List_Line
1916 ( p_list_line_id => p_LIMITS_rec.list_line_id
1917 );
1918 END IF;
1919
1920 IF p_LIMITS_rec.organization_flag IS NOT NULL AND
1921 p_LIMITS_rec.organization_flag <> FND_API.G_MISS_CHAR AND
1922 NOT QP_GLOBALS.Equal(p_LIMITS_rec.organization_flag,
1923 p_old_LIMITS_rec.organization_flag)
1924 THEN
1925 l_LIMITS_val_rec.organization := QP_Id_To_Value.Organization
1926 ( p_organization_flag => p_LIMITS_rec.organization_flag
1927 );
1928 END IF;
1929
1930 -- Commented out this code to eliminate the compilation error.....
1931
1932 RETURN l_LIMITS_val_rec;
1933
1934 END Get_Values;
1935
1936 -- Function Get_Ids
1937
1938 FUNCTION Get_Ids
1939 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
1940 , p_LIMITS_val_rec IN QP_Limits_PUB.Limits_Val_Rec_Type
1941 ) RETURN QP_Limits_PUB.Limits_Rec_Type
1942 IS
1943 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1944 BEGIN
1945
1946 -- initialize return_status.
1947
1948 l_LIMITS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1949
1950 -- initialize l_LIMITS_rec.
1951
1952 l_LIMITS_rec := p_LIMITS_rec;
1953
1954 IF p_LIMITS_val_rec.limit_exceed_action <> FND_API.G_MISS_CHAR
1955 THEN
1956
1957 IF p_LIMITS_rec.limit_exceed_action_code <> FND_API.G_MISS_CHAR THEN
1958
1959 l_LIMITS_rec.limit_exceed_action_code := p_LIMITS_rec.limit_exceed_action_code;
1960
1961 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1962 THEN
1963
1964 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1965 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','limit_exceed_action');
1966 OE_MSG_PUB.Add;
1967
1968 END IF;
1969
1970 ELSE
1971
1972 l_LIMITS_rec.limit_exceed_action_code := QP_Value_To_Id.limit_exceed_action
1973 ( p_limit_exceed_action => p_LIMITS_val_rec.limit_exceed_action
1974 );
1975
1976 IF l_LIMITS_rec.limit_exceed_action_code = FND_API.G_MISS_CHAR THEN
1977 l_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
1978 END IF;
1979
1980 END IF;
1981
1982 END IF;
1983
1984 IF p_LIMITS_val_rec.limit <> FND_API.G_MISS_CHAR
1985 THEN
1986
1987 IF p_LIMITS_rec.limit_id <> FND_API.G_MISS_NUM THEN
1988
1989 l_LIMITS_rec.limit_id := p_LIMITS_rec.limit_id;
1990
1991 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1992 THEN
1993
1994 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1995 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','limit');
1996 OE_MSG_PUB.Add;
1997
1998 END IF;
1999
2000 ELSE
2001
2002 l_LIMITS_rec.limit_id := QP_Value_To_Id.limit
2003 ( p_limit => p_LIMITS_val_rec.limit
2004 );
2005
2006 IF l_LIMITS_rec.limit_id = FND_API.G_MISS_NUM THEN
2007 l_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
2008 END IF;
2009
2010 END IF;
2011
2012 END IF;
2013
2014 IF p_LIMITS_val_rec.limit_level <> FND_API.G_MISS_CHAR
2015 THEN
2016
2017 IF p_LIMITS_rec.limit_level_code <> FND_API.G_MISS_CHAR THEN
2018
2019 l_LIMITS_rec.limit_level_code := p_LIMITS_rec.limit_level_code;
2020
2021 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2022 THEN
2023
2024 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2025 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','limit_level');
2026 OE_MSG_PUB.Add;
2027
2028 END IF;
2029
2030 ELSE
2031
2032 l_LIMITS_rec.limit_level_code := QP_Value_To_Id.limit_level
2033 ( p_limit_level => p_LIMITS_val_rec.limit_level
2034 );
2035
2036 IF l_LIMITS_rec.limit_level_code = FND_API.G_MISS_CHAR THEN
2037 l_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
2038 END IF;
2039
2040 END IF;
2041
2042 END IF;
2043
2044 IF p_LIMITS_val_rec.list_header <> FND_API.G_MISS_CHAR
2045 THEN
2046
2047 IF p_LIMITS_rec.list_header_id <> FND_API.G_MISS_NUM THEN
2048
2049 l_LIMITS_rec.list_header_id := p_LIMITS_rec.list_header_id;
2050
2051 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2052 THEN
2053
2054 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2055 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
2056 OE_MSG_PUB.Add;
2057
2058 END IF;
2059
2060 ELSE
2061
2062 l_LIMITS_rec.list_header_id := QP_Value_To_Id.list_header
2063 ( p_list_header => p_LIMITS_val_rec.list_header
2064 );
2065
2066 IF l_LIMITS_rec.list_header_id = FND_API.G_MISS_NUM THEN
2067 l_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
2068 END IF;
2069
2070 END IF;
2071
2072 END IF;
2073
2074 IF p_LIMITS_val_rec.list_line <> FND_API.G_MISS_CHAR
2075 THEN
2076
2077 IF p_LIMITS_rec.list_line_id <> FND_API.G_MISS_NUM THEN
2078
2079 l_LIMITS_rec.list_line_id := p_LIMITS_rec.list_line_id;
2080
2081 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2082 THEN
2083
2084 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2085 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line');
2086 OE_MSG_PUB.Add;
2087
2088 END IF;
2089
2090 ELSE
2091
2092 l_LIMITS_rec.list_line_id := QP_Value_To_Id.list_line
2093 ( p_list_line => p_LIMITS_val_rec.list_line
2094 );
2095
2096 IF l_LIMITS_rec.list_line_id = FND_API.G_MISS_NUM THEN
2097 l_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
2098 END IF;
2099
2100 END IF;
2101
2102 END IF;
2103
2104 IF p_LIMITS_val_rec.organization <> FND_API.G_MISS_CHAR
2105 THEN
2106
2107 IF p_LIMITS_rec.organization_flag <> FND_API.G_MISS_CHAR THEN
2108
2109 l_LIMITS_rec.organization_flag := p_LIMITS_rec.organization_flag;
2110
2111 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2112 THEN
2113
2114 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2115 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','organization');
2116 OE_MSG_PUB.Add;
2117
2118 END IF;
2119
2120 ELSE
2121
2122 l_LIMITS_rec.organization_flag := QP_Value_To_Id.organization
2123 ( p_organization => p_LIMITS_val_rec.organization
2124 );
2125
2126 IF l_LIMITS_rec.organization_flag = FND_API.G_MISS_CHAR THEN
2127 l_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
2128 END IF;
2129
2130 END IF;
2131
2132 END IF;
2133
2134
2135 RETURN l_LIMITS_rec;
2136
2137 END Get_Ids;
2138
2139 Procedure Pre_Write_Process
2140 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
2141 , p_old_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type :=
2142 QP_Limits_PUB.G_MISS_LIMITS_REC
2143 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
2144 ) IS
2145
2146 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type := p_LIMITS_rec;
2147 l_return_status varchar2(30);
2148
2149 BEGIN
2150
2151
2152 qp_delayed_requests_PVT.log_request
2153 (
2154 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2155 p_entity_id => p_LIMITS_rec.limit_id,
2156 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
2157 p_requesting_entity_id => p_LIMITS_rec.limit_id,
2158 p_request_type => QP_GLOBALS.G_UPDATE_LIMITS_COLUMNS,
2159 x_return_status => l_return_status
2160 );
2161
2162 null;
2163 x_LIMITS_rec := l_LIMITS_rec;
2164
2165 EXCEPTION
2166 WHEN FND_API.G_EXC_ERROR THEN
2167 RAISE;
2168 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2169 RAISE;
2170 WHEN OTHERS THEN
2171 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2172 THEN
2173 oe_msg_pub.Add_Exc_Msg
2174 ( G_PKG_NAME
2175 , 'Pre_Write_Process'
2176 );
2177 END IF;
2178 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2179
2180 END Pre_Write_Process;
2181
2182
2183 END QP_Limits_Util;