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