[Home] [Help]
PACKAGE BODY: APPS.QP_LIMIT_ATTRS_UTIL
Source
1 PACKAGE BODY QP_Limit_Attrs_Util AS
2 /* $Header: QPXULATB.pls 120.1 2005/06/10 00:16:20 appldev $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Limit_Attrs_Util';
7
8 -- Procedure Clear_Dependent_Attr
9
10 PROCEDURE Clear_Dependent_Attr
11 ( p_attr_id IN NUMBER := FND_API.G_MISS_NUM
12 , p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
13 , p_old_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type :=
14 QP_Limits_PUB.G_MISS_LIMIT_ATTRS_REC
15 , x_LIMIT_ATTRS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Rec_Type
16 )
17 IS
18 l_index NUMBER := 0;
19 l_src_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22
23 -- Load out record
24
25 x_LIMIT_ATTRS_rec := p_LIMIT_ATTRS_rec;
26
27 -- If attr_id is missing compare old and new records and for
28 -- every changed attribute clear its dependent fields.
29
30 IF p_attr_id = FND_API.G_MISS_NUM THEN
31
32 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute1,p_old_LIMIT_ATTRS_rec.attribute1)
33 THEN
34 l_index := l_index + 1;
35 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE1;
36 END IF;
37
38 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute10,p_old_LIMIT_ATTRS_rec.attribute10)
39 THEN
40 l_index := l_index + 1;
41 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE10;
42 END IF;
43
44 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute11,p_old_LIMIT_ATTRS_rec.attribute11)
45 THEN
46 l_index := l_index + 1;
47 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE11;
48 END IF;
49
50 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute12,p_old_LIMIT_ATTRS_rec.attribute12)
51 THEN
52 l_index := l_index + 1;
53 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE12;
54 END IF;
55
56 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute13,p_old_LIMIT_ATTRS_rec.attribute13)
57 THEN
58 l_index := l_index + 1;
59 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE13;
60 END IF;
61
62 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute14,p_old_LIMIT_ATTRS_rec.attribute14)
63 THEN
64 l_index := l_index + 1;
65 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE14;
66 END IF;
67
68 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute15,p_old_LIMIT_ATTRS_rec.attribute15)
69 THEN
70 l_index := l_index + 1;
71 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE15;
72 END IF;
73
74 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute2,p_old_LIMIT_ATTRS_rec.attribute2)
75 THEN
76 l_index := l_index + 1;
77 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE2;
78 END IF;
79
80 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute3,p_old_LIMIT_ATTRS_rec.attribute3)
81 THEN
82 l_index := l_index + 1;
83 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE3;
84 END IF;
85
86 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute4,p_old_LIMIT_ATTRS_rec.attribute4)
87 THEN
88 l_index := l_index + 1;
89 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE4;
90 END IF;
91
92 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute5,p_old_LIMIT_ATTRS_rec.attribute5)
93 THEN
94 l_index := l_index + 1;
95 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE5;
96 END IF;
97
98 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute6,p_old_LIMIT_ATTRS_rec.attribute6)
99 THEN
100 l_index := l_index + 1;
101 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE6;
102 END IF;
103
104 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute7,p_old_LIMIT_ATTRS_rec.attribute7)
105 THEN
106 l_index := l_index + 1;
107 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE7;
108 END IF;
109
110 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute8,p_old_LIMIT_ATTRS_rec.attribute8)
111 THEN
112 l_index := l_index + 1;
113 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE8;
114 END IF;
115
116 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute9,p_old_LIMIT_ATTRS_rec.attribute9)
117 THEN
118 l_index := l_index + 1;
119 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE9;
120 END IF;
121
122 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.comparison_operator_code,p_old_LIMIT_ATTRS_rec.comparison_operator_code)
123 THEN
124 l_index := l_index + 1;
125 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_COMPARISON_OPERATOR;
126 END IF;
127
128 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.context,p_old_LIMIT_ATTRS_rec.context)
129 THEN
130 l_index := l_index + 1;
131 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_CONTEXT;
132 END IF;
133
134 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.created_by,p_old_LIMIT_ATTRS_rec.created_by)
135 THEN
136 l_index := l_index + 1;
137 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_CREATED_BY;
138 END IF;
139
140 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.creation_date,p_old_LIMIT_ATTRS_rec.creation_date)
141 THEN
142 l_index := l_index + 1;
143 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_CREATION_DATE;
144 END IF;
145
146 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_updated_by,p_old_LIMIT_ATTRS_rec.last_updated_by)
147 THEN
148 l_index := l_index + 1;
149 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LAST_UPDATED_BY;
150 END IF;
151
152 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_update_date,p_old_LIMIT_ATTRS_rec.last_update_date)
153 THEN
154 l_index := l_index + 1;
155 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LAST_UPDATE_DATE;
156 END IF;
157
158 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_update_login,p_old_LIMIT_ATTRS_rec.last_update_login)
159 THEN
160 l_index := l_index + 1;
161 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LAST_UPDATE_LOGIN;
162 END IF;
163
164 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute,p_old_LIMIT_ATTRS_rec.limit_attribute)
165 THEN
166 l_index := l_index + 1;
167 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE;
168 END IF;
169
170 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_context,p_old_LIMIT_ATTRS_rec.limit_attribute_context)
171 THEN
172 l_index := l_index + 1;
173 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE_CONTEXT;
174 END IF;
175
176 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_id,p_old_LIMIT_ATTRS_rec.limit_attribute_id)
177 THEN
178 l_index := l_index + 1;
179 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE;
180 END IF;
181
182
183 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_type,p_old_LIMIT_ATTRS_rec.limit_attribute_type)
184 THEN
185 l_index := l_index + 1;
186 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE_TYPE;
187 END IF;
188
189 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attr_datatype,p_old_LIMIT_ATTRS_rec.limit_attr_datatype)
190 THEN
191 l_index := l_index + 1;
192 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTR_DATATYPE;
193 END IF;
194
195 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attr_value,p_old_LIMIT_ATTRS_rec.limit_attr_value)
196 THEN
197 l_index := l_index + 1;
198 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTR_VALUE;
199 END IF;
200
201 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_id,p_old_LIMIT_ATTRS_rec.limit_id)
202 THEN
203 l_index := l_index + 1;
204 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT;
205 END IF;
206
207 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_application_id,p_old_LIMIT_ATTRS_rec.program_application_id)
208 THEN
209 l_index := l_index + 1;
210 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_PROGRAM_APPLICATION;
211 END IF;
212
213 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_id,p_old_LIMIT_ATTRS_rec.program_id)
214 THEN
215 l_index := l_index + 1;
216 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_PROGRAM;
217 END IF;
218
219 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_update_date,p_old_LIMIT_ATTRS_rec.program_update_date)
220 THEN
221 l_index := l_index + 1;
222 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_PROGRAM_UPDATE_DATE;
223 END IF;
224
225 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.request_id,p_old_LIMIT_ATTRS_rec.request_id)
226 THEN
227 l_index := l_index + 1;
228 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_REQUEST;
229 END IF;
230
231 ELSIF p_attr_id = G_ATTRIBUTE1 THEN
232 l_index := l_index + 1;
233 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE1;
234 ELSIF p_attr_id = G_ATTRIBUTE10 THEN
235 l_index := l_index + 1;
236 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE10;
237 ELSIF p_attr_id = G_ATTRIBUTE11 THEN
238 l_index := l_index + 1;
239 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE11;
240 ELSIF p_attr_id = G_ATTRIBUTE12 THEN
241 l_index := l_index + 1;
242 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE12;
243 ELSIF p_attr_id = G_ATTRIBUTE13 THEN
244 l_index := l_index + 1;
245 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE13;
246 ELSIF p_attr_id = G_ATTRIBUTE14 THEN
247 l_index := l_index + 1;
248 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE14;
249 ELSIF p_attr_id = G_ATTRIBUTE15 THEN
250 l_index := l_index + 1;
251 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE15;
252 ELSIF p_attr_id = G_ATTRIBUTE2 THEN
253 l_index := l_index + 1;
254 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE2;
255 ELSIF p_attr_id = G_ATTRIBUTE3 THEN
256 l_index := l_index + 1;
257 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE3;
258 ELSIF p_attr_id = G_ATTRIBUTE4 THEN
259 l_index := l_index + 1;
260 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE4;
261 ELSIF p_attr_id = G_ATTRIBUTE5 THEN
262 l_index := l_index + 1;
263 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE5;
264 ELSIF p_attr_id = G_ATTRIBUTE6 THEN
265 l_index := l_index + 1;
266 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE6;
267 ELSIF p_attr_id = G_ATTRIBUTE7 THEN
268 l_index := l_index + 1;
269 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE7;
270 ELSIF p_attr_id = G_ATTRIBUTE8 THEN
271 l_index := l_index + 1;
272 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE8;
273 ELSIF p_attr_id = G_ATTRIBUTE9 THEN
274 l_index := l_index + 1;
275 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_ATTRIBUTE9;
276 ELSIF p_attr_id = G_COMPARISON_OPERATOR THEN
277 l_index := l_index + 1;
278 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_COMPARISON_OPERATOR;
279 ELSIF p_attr_id = G_CONTEXT THEN
280 l_index := l_index + 1;
281 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_CONTEXT;
282 ELSIF p_attr_id = G_CREATED_BY THEN
283 l_index := l_index + 1;
284 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_CREATED_BY;
285 ELSIF p_attr_id = G_CREATION_DATE THEN
286 l_index := l_index + 1;
287 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_CREATION_DATE;
288 ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
289 l_index := l_index + 1;
290 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LAST_UPDATED_BY;
291 ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
292 l_index := l_index + 1;
293 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LAST_UPDATE_DATE;
294 ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
295 l_index := l_index + 1;
296 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LAST_UPDATE_LOGIN;
297 ELSIF p_attr_id = G_LIMIT_ATTRIBUTE THEN
298 l_index := l_index + 1;
299 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE;
300 ELSIF p_attr_id = G_LIMIT_ATTRIBUTE_CONTEXT THEN
301 l_index := l_index + 1;
302 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE_CONTEXT;
303 /*ELSIF p_attr_id = G_LIMIT_ATTRIBUTE THEN
304 l_index := l_index + 1;
305 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE;
306 */
307 ELSIF p_attr_id = G_LIMIT_ATTRIBUTE_TYPE THEN
308 l_index := l_index + 1;
309 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTRIBUTE_TYPE;
310 ELSIF p_attr_id = G_LIMIT_ATTR_DATATYPE THEN
311 l_index := l_index + 1;
312 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTR_DATATYPE;
313 ELSIF p_attr_id = G_LIMIT_ATTR_VALUE THEN
314 l_index := l_index + 1;
315 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT_ATTR_VALUE;
316 ELSIF p_attr_id = G_LIMIT THEN
317 l_index := l_index + 1;
318 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_LIMIT;
319 ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
320 l_index := l_index + 1;
321 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_PROGRAM_APPLICATION;
322 ELSIF p_attr_id = G_PROGRAM THEN
323 l_index := l_index + 1;
324 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_PROGRAM;
325 ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
326 l_index := l_index + 1;
327 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_PROGRAM_UPDATE_DATE;
328 ELSIF p_attr_id = G_REQUEST THEN
329 l_index := l_index + 1;
330 l_src_attr_tbl(l_index) := QP_LIMIT_ATTRS_UTIL.G_REQUEST;
331 END IF;
332
333 END Clear_Dependent_Attr;
334
335 -- Procedure Apply_Attribute_Changes
336
337 PROCEDURE Apply_Attribute_Changes
338 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
339 , p_old_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type :=
340 QP_Limits_PUB.G_MISS_LIMIT_ATTRS_REC
341 , x_LIMIT_ATTRS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Rec_Type
342 )
343 IS
344 BEGIN
345
346 -- Load out record
347
348 x_LIMIT_ATTRS_rec := p_LIMIT_ATTRS_rec;
349
350 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute1,p_old_LIMIT_ATTRS_rec.attribute1)
351 THEN
352 NULL;
353 END IF;
354
355 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute10,p_old_LIMIT_ATTRS_rec.attribute10)
356 THEN
357 NULL;
358 END IF;
359
360 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute11,p_old_LIMIT_ATTRS_rec.attribute11)
361 THEN
362 NULL;
363 END IF;
364
365 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute12,p_old_LIMIT_ATTRS_rec.attribute12)
366 THEN
367 NULL;
368 END IF;
369
370 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute13,p_old_LIMIT_ATTRS_rec.attribute13)
371 THEN
372 NULL;
373 END IF;
374
375 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute14,p_old_LIMIT_ATTRS_rec.attribute14)
376 THEN
377 NULL;
378 END IF;
379
380 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute15,p_old_LIMIT_ATTRS_rec.attribute15)
381 THEN
382 NULL;
383 END IF;
384
385 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute2,p_old_LIMIT_ATTRS_rec.attribute2)
386 THEN
387 NULL;
388 END IF;
389
390 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute3,p_old_LIMIT_ATTRS_rec.attribute3)
391 THEN
392 NULL;
393 END IF;
394
395 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute4,p_old_LIMIT_ATTRS_rec.attribute4)
396 THEN
397 NULL;
398 END IF;
399
400 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute5,p_old_LIMIT_ATTRS_rec.attribute5)
401 THEN
402 NULL;
403 END IF;
404
405 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute6,p_old_LIMIT_ATTRS_rec.attribute6)
406 THEN
407 NULL;
408 END IF;
409
410 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute7,p_old_LIMIT_ATTRS_rec.attribute7)
411 THEN
412 NULL;
413 END IF;
414
415 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute8,p_old_LIMIT_ATTRS_rec.attribute8)
416 THEN
417 NULL;
418 END IF;
419
420 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute9,p_old_LIMIT_ATTRS_rec.attribute9)
421 THEN
422 NULL;
423 END IF;
424
425 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.comparison_operator_code,p_old_LIMIT_ATTRS_rec.comparison_operator_code)
426 THEN
427 NULL;
428 END IF;
429
430 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.context,p_old_LIMIT_ATTRS_rec.context)
431 THEN
432 NULL;
433 END IF;
434
435 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.created_by,p_old_LIMIT_ATTRS_rec.created_by)
436 THEN
437 NULL;
438 END IF;
439
440 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.creation_date,p_old_LIMIT_ATTRS_rec.creation_date)
441 THEN
442 NULL;
443 END IF;
444
445 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_updated_by,p_old_LIMIT_ATTRS_rec.last_updated_by)
446 THEN
447 NULL;
448 END IF;
449
450 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_update_date,p_old_LIMIT_ATTRS_rec.last_update_date)
451 THEN
452 NULL;
453 END IF;
454
455 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_update_login,p_old_LIMIT_ATTRS_rec.last_update_login)
456 THEN
457 NULL;
458 END IF;
459
460 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute,p_old_LIMIT_ATTRS_rec.limit_attribute)
461 THEN
462 NULL;
463 END IF;
464
465 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_context,p_old_LIMIT_ATTRS_rec.limit_attribute_context)
466 THEN
467 NULL;
468 END IF;
469
470 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_id,p_old_LIMIT_ATTRS_rec.limit_attribute_id)
471 THEN
472 NULL;
473 END IF;
474
475 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_type,p_old_LIMIT_ATTRS_rec.limit_attribute_type)
476 THEN
477 NULL;
478 END IF;
479
480 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attr_datatype,p_old_LIMIT_ATTRS_rec.limit_attr_datatype)
481 THEN
482 NULL;
483 END IF;
484
485 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attr_value,p_old_LIMIT_ATTRS_rec.limit_attr_value)
486 THEN
487 NULL;
488 END IF;
489
490 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_id,p_old_LIMIT_ATTRS_rec.limit_id)
491 THEN
492 NULL;
493 END IF;
494
495 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_application_id,p_old_LIMIT_ATTRS_rec.program_application_id)
496 THEN
497 NULL;
498 END IF;
499
500 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_id,p_old_LIMIT_ATTRS_rec.program_id)
501 THEN
502 NULL;
503 END IF;
504
505 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_update_date,p_old_LIMIT_ATTRS_rec.program_update_date)
506 THEN
507 NULL;
508 END IF;
509
510 IF NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.request_id,p_old_LIMIT_ATTRS_rec.request_id)
511 THEN
512 NULL;
513 END IF;
514
515 END Apply_Attribute_Changes;
516
517 -- Function Complete_Record
518
519 FUNCTION Complete_Record
520 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
521 , p_old_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
522 ) RETURN QP_Limits_PUB.Limit_Attrs_Rec_Type
523 IS
524 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type := p_LIMIT_ATTRS_rec;
525 BEGIN
526
527 IF l_LIMIT_ATTRS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
528 l_LIMIT_ATTRS_rec.attribute1 := p_old_LIMIT_ATTRS_rec.attribute1;
529 END IF;
530
531 IF l_LIMIT_ATTRS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
532 l_LIMIT_ATTRS_rec.attribute10 := p_old_LIMIT_ATTRS_rec.attribute10;
533 END IF;
534
535 IF l_LIMIT_ATTRS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
536 l_LIMIT_ATTRS_rec.attribute11 := p_old_LIMIT_ATTRS_rec.attribute11;
537 END IF;
538
539 IF l_LIMIT_ATTRS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
540 l_LIMIT_ATTRS_rec.attribute12 := p_old_LIMIT_ATTRS_rec.attribute12;
541 END IF;
542
543 IF l_LIMIT_ATTRS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
544 l_LIMIT_ATTRS_rec.attribute13 := p_old_LIMIT_ATTRS_rec.attribute13;
545 END IF;
546
547 IF l_LIMIT_ATTRS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
548 l_LIMIT_ATTRS_rec.attribute14 := p_old_LIMIT_ATTRS_rec.attribute14;
549 END IF;
550
551 IF l_LIMIT_ATTRS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
552 l_LIMIT_ATTRS_rec.attribute15 := p_old_LIMIT_ATTRS_rec.attribute15;
553 END IF;
554
555 IF l_LIMIT_ATTRS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
556 l_LIMIT_ATTRS_rec.attribute2 := p_old_LIMIT_ATTRS_rec.attribute2;
557 END IF;
558
559 IF l_LIMIT_ATTRS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
560 l_LIMIT_ATTRS_rec.attribute3 := p_old_LIMIT_ATTRS_rec.attribute3;
561 END IF;
562
563 IF l_LIMIT_ATTRS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
564 l_LIMIT_ATTRS_rec.attribute4 := p_old_LIMIT_ATTRS_rec.attribute4;
565 END IF;
566
567 IF l_LIMIT_ATTRS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
568 l_LIMIT_ATTRS_rec.attribute5 := p_old_LIMIT_ATTRS_rec.attribute5;
569 END IF;
570
571 IF l_LIMIT_ATTRS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
572 l_LIMIT_ATTRS_rec.attribute6 := p_old_LIMIT_ATTRS_rec.attribute6;
573 END IF;
574
575 IF l_LIMIT_ATTRS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
576 l_LIMIT_ATTRS_rec.attribute7 := p_old_LIMIT_ATTRS_rec.attribute7;
577 END IF;
578
579 IF l_LIMIT_ATTRS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
580 l_LIMIT_ATTRS_rec.attribute8 := p_old_LIMIT_ATTRS_rec.attribute8;
581 END IF;
582
583 IF l_LIMIT_ATTRS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
584 l_LIMIT_ATTRS_rec.attribute9 := p_old_LIMIT_ATTRS_rec.attribute9;
585 END IF;
586
587 IF l_LIMIT_ATTRS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
588 l_LIMIT_ATTRS_rec.comparison_operator_code := p_old_LIMIT_ATTRS_rec.comparison_operator_code;
589 END IF;
590
591 IF l_LIMIT_ATTRS_rec.context = FND_API.G_MISS_CHAR THEN
592 l_LIMIT_ATTRS_rec.context := p_old_LIMIT_ATTRS_rec.context;
593 END IF;
594
595 IF l_LIMIT_ATTRS_rec.created_by = FND_API.G_MISS_NUM THEN
596 l_LIMIT_ATTRS_rec.created_by := p_old_LIMIT_ATTRS_rec.created_by;
597 END IF;
598
599 IF l_LIMIT_ATTRS_rec.creation_date = FND_API.G_MISS_DATE THEN
600 l_LIMIT_ATTRS_rec.creation_date := p_old_LIMIT_ATTRS_rec.creation_date;
601 END IF;
602
603 IF l_LIMIT_ATTRS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
604 l_LIMIT_ATTRS_rec.last_updated_by := p_old_LIMIT_ATTRS_rec.last_updated_by;
605 END IF;
606
607 IF l_LIMIT_ATTRS_rec.last_update_date = FND_API.G_MISS_DATE THEN
608 l_LIMIT_ATTRS_rec.last_update_date := p_old_LIMIT_ATTRS_rec.last_update_date;
609 END IF;
610
611 IF l_LIMIT_ATTRS_rec.last_update_login = FND_API.G_MISS_NUM THEN
612 l_LIMIT_ATTRS_rec.last_update_login := p_old_LIMIT_ATTRS_rec.last_update_login;
613 END IF;
614
615 IF l_LIMIT_ATTRS_rec.limit_attribute = FND_API.G_MISS_CHAR THEN
616 l_LIMIT_ATTRS_rec.limit_attribute := p_old_LIMIT_ATTRS_rec.limit_attribute;
617 END IF;
618
619 IF l_LIMIT_ATTRS_rec.limit_attribute_context = FND_API.G_MISS_CHAR THEN
620 l_LIMIT_ATTRS_rec.limit_attribute_context := p_old_LIMIT_ATTRS_rec.limit_attribute_context;
621 END IF;
622
623 IF l_LIMIT_ATTRS_rec.limit_attribute_id = FND_API.G_MISS_NUM THEN
624 l_LIMIT_ATTRS_rec.limit_attribute_id := p_old_LIMIT_ATTRS_rec.limit_attribute_id;
625 END IF;
626
627 IF l_LIMIT_ATTRS_rec.limit_attribute_type = FND_API.G_MISS_CHAR THEN
628 l_LIMIT_ATTRS_rec.limit_attribute_type := p_old_LIMIT_ATTRS_rec.limit_attribute_type;
629 END IF;
630
631 IF l_LIMIT_ATTRS_rec.limit_attr_datatype = FND_API.G_MISS_CHAR THEN
632 l_LIMIT_ATTRS_rec.limit_attr_datatype := p_old_LIMIT_ATTRS_rec.limit_attr_datatype;
633 END IF;
634
635 IF l_LIMIT_ATTRS_rec.limit_attr_value = FND_API.G_MISS_CHAR THEN
636 l_LIMIT_ATTRS_rec.limit_attr_value := p_old_LIMIT_ATTRS_rec.limit_attr_value;
637 END IF;
638
639 IF l_LIMIT_ATTRS_rec.limit_id = FND_API.G_MISS_NUM THEN
640 l_LIMIT_ATTRS_rec.limit_id := p_old_LIMIT_ATTRS_rec.limit_id;
641 END IF;
642
643 IF l_LIMIT_ATTRS_rec.program_application_id = FND_API.G_MISS_NUM THEN
644 l_LIMIT_ATTRS_rec.program_application_id := p_old_LIMIT_ATTRS_rec.program_application_id;
645 END IF;
646
647 IF l_LIMIT_ATTRS_rec.program_id = FND_API.G_MISS_NUM THEN
648 l_LIMIT_ATTRS_rec.program_id := p_old_LIMIT_ATTRS_rec.program_id;
649 END IF;
650
651 IF l_LIMIT_ATTRS_rec.program_update_date = FND_API.G_MISS_DATE THEN
652 l_LIMIT_ATTRS_rec.program_update_date := p_old_LIMIT_ATTRS_rec.program_update_date;
653 END IF;
654
655 IF l_LIMIT_ATTRS_rec.request_id = FND_API.G_MISS_NUM THEN
656 l_LIMIT_ATTRS_rec.request_id := p_old_LIMIT_ATTRS_rec.request_id;
657 END IF;
658
659 RETURN l_LIMIT_ATTRS_rec;
660
661 END Complete_Record;
662
663 -- Function Convert_Miss_To_Null
664
665 FUNCTION Convert_Miss_To_Null
666 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
667 ) RETURN QP_Limits_PUB.Limit_Attrs_Rec_Type
668 IS
669 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type := p_LIMIT_ATTRS_rec;
670 BEGIN
671
672 IF l_LIMIT_ATTRS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
673 l_LIMIT_ATTRS_rec.attribute1 := NULL;
674 END IF;
675
676 IF l_LIMIT_ATTRS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
677 l_LIMIT_ATTRS_rec.attribute10 := NULL;
678 END IF;
679
680 IF l_LIMIT_ATTRS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
681 l_LIMIT_ATTRS_rec.attribute11 := NULL;
682 END IF;
683
684 IF l_LIMIT_ATTRS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
685 l_LIMIT_ATTRS_rec.attribute12 := NULL;
686 END IF;
687
688 IF l_LIMIT_ATTRS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
689 l_LIMIT_ATTRS_rec.attribute13 := NULL;
690 END IF;
691
692 IF l_LIMIT_ATTRS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
693 l_LIMIT_ATTRS_rec.attribute14 := NULL;
694 END IF;
695
696 IF l_LIMIT_ATTRS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
697 l_LIMIT_ATTRS_rec.attribute15 := NULL;
698 END IF;
699
700 IF l_LIMIT_ATTRS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
701 l_LIMIT_ATTRS_rec.attribute2 := NULL;
702 END IF;
703
704 IF l_LIMIT_ATTRS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
705 l_LIMIT_ATTRS_rec.attribute3 := NULL;
706 END IF;
707
708 IF l_LIMIT_ATTRS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
709 l_LIMIT_ATTRS_rec.attribute4 := NULL;
710 END IF;
711
712 IF l_LIMIT_ATTRS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
713 l_LIMIT_ATTRS_rec.attribute5 := NULL;
714 END IF;
715
716 IF l_LIMIT_ATTRS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
717 l_LIMIT_ATTRS_rec.attribute6 := NULL;
718 END IF;
719
720 IF l_LIMIT_ATTRS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
721 l_LIMIT_ATTRS_rec.attribute7 := NULL;
722 END IF;
723
724 IF l_LIMIT_ATTRS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
725 l_LIMIT_ATTRS_rec.attribute8 := NULL;
726 END IF;
727
728 IF l_LIMIT_ATTRS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
729 l_LIMIT_ATTRS_rec.attribute9 := NULL;
730 END IF;
731
732 IF l_LIMIT_ATTRS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
733 l_LIMIT_ATTRS_rec.comparison_operator_code := NULL;
734 END IF;
735
736 IF l_LIMIT_ATTRS_rec.context = FND_API.G_MISS_CHAR THEN
737 l_LIMIT_ATTRS_rec.context := NULL;
738 END IF;
739
740 IF l_LIMIT_ATTRS_rec.created_by = FND_API.G_MISS_NUM THEN
741 l_LIMIT_ATTRS_rec.created_by := NULL;
742 END IF;
743
744 IF l_LIMIT_ATTRS_rec.creation_date = FND_API.G_MISS_DATE THEN
745 l_LIMIT_ATTRS_rec.creation_date := NULL;
746 END IF;
747
748 IF l_LIMIT_ATTRS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
749 l_LIMIT_ATTRS_rec.last_updated_by := NULL;
750 END IF;
751
752 IF l_LIMIT_ATTRS_rec.last_update_date = FND_API.G_MISS_DATE THEN
753 l_LIMIT_ATTRS_rec.last_update_date := NULL;
754 END IF;
755
756 IF l_LIMIT_ATTRS_rec.last_update_login = FND_API.G_MISS_NUM THEN
757 l_LIMIT_ATTRS_rec.last_update_login := NULL;
758 END IF;
759
760 IF l_LIMIT_ATTRS_rec.limit_attribute = FND_API.G_MISS_CHAR THEN
761 l_LIMIT_ATTRS_rec.limit_attribute := NULL;
762 END IF;
763
764 IF l_LIMIT_ATTRS_rec.limit_attribute_context = FND_API.G_MISS_CHAR THEN
765 l_LIMIT_ATTRS_rec.limit_attribute_context := NULL;
766 END IF;
767
768 IF l_LIMIT_ATTRS_rec.limit_attribute_id = FND_API.G_MISS_NUM THEN
769 l_LIMIT_ATTRS_rec.limit_attribute_id := NULL;
770 END IF;
771
772 IF l_LIMIT_ATTRS_rec.limit_attribute_type = FND_API.G_MISS_CHAR THEN
773 l_LIMIT_ATTRS_rec.limit_attribute_type := NULL;
774 END IF;
775
776 IF l_LIMIT_ATTRS_rec.limit_attr_datatype = FND_API.G_MISS_CHAR THEN
777 l_LIMIT_ATTRS_rec.limit_attr_datatype := NULL;
778 END IF;
779
780 IF l_LIMIT_ATTRS_rec.limit_attr_value = FND_API.G_MISS_CHAR THEN
781 l_LIMIT_ATTRS_rec.limit_attr_value := NULL;
782 END IF;
783
784 IF l_LIMIT_ATTRS_rec.limit_id = FND_API.G_MISS_NUM THEN
785 l_LIMIT_ATTRS_rec.limit_id := NULL;
786 END IF;
787
788 IF l_LIMIT_ATTRS_rec.program_application_id = FND_API.G_MISS_NUM THEN
789 l_LIMIT_ATTRS_rec.program_application_id := NULL;
790 END IF;
791
792 IF l_LIMIT_ATTRS_rec.program_id = FND_API.G_MISS_NUM THEN
793 l_LIMIT_ATTRS_rec.program_id := NULL;
794 END IF;
795
796 IF l_LIMIT_ATTRS_rec.program_update_date = FND_API.G_MISS_DATE THEN
797 l_LIMIT_ATTRS_rec.program_update_date := NULL;
798 END IF;
799
800 IF l_LIMIT_ATTRS_rec.request_id = FND_API.G_MISS_NUM THEN
801 l_LIMIT_ATTRS_rec.request_id := NULL;
802 END IF;
803
804 RETURN l_LIMIT_ATTRS_rec;
805
806 END Convert_Miss_To_Null;
807
808 -- Procedure Update_Row
809
810 PROCEDURE Update_Row
811 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
812 )
813 IS
814 l_check_active_flag VARCHAR2(1);
815 l_active_flag VARCHAR2(1);
816 BEGIN
817 SELECT active_flag
818 INTO l_active_flag
819 FROM QP_LIMITS a,QP_LIST_HEADERS_B b
820 WHERE a.limit_id=p_LIMIT_ATTRS_rec.limit_id
821 AND b.list_header_id=a.list_header_id;
822
823
824 UPDATE QP_LIMIT_ATTRIBUTES
825 SET ATTRIBUTE1 = p_LIMIT_ATTRS_rec.attribute1
826 , ATTRIBUTE10 = p_LIMIT_ATTRS_rec.attribute10
827 , ATTRIBUTE11 = p_LIMIT_ATTRS_rec.attribute11
828 , ATTRIBUTE12 = p_LIMIT_ATTRS_rec.attribute12
829 , ATTRIBUTE13 = p_LIMIT_ATTRS_rec.attribute13
830 , ATTRIBUTE14 = p_LIMIT_ATTRS_rec.attribute14
831 , ATTRIBUTE15 = p_LIMIT_ATTRS_rec.attribute15
832 , ATTRIBUTE2 = p_LIMIT_ATTRS_rec.attribute2
833 , ATTRIBUTE3 = p_LIMIT_ATTRS_rec.attribute3
834 , ATTRIBUTE4 = p_LIMIT_ATTRS_rec.attribute4
835 , ATTRIBUTE5 = p_LIMIT_ATTRS_rec.attribute5
836 , ATTRIBUTE6 = p_LIMIT_ATTRS_rec.attribute6
837 , ATTRIBUTE7 = p_LIMIT_ATTRS_rec.attribute7
838 , ATTRIBUTE8 = p_LIMIT_ATTRS_rec.attribute8
839 , ATTRIBUTE9 = p_LIMIT_ATTRS_rec.attribute9
840 , COMPARISON_OPERATOR_CODE = p_LIMIT_ATTRS_rec.comparison_operator_code
841 , CONTEXT = p_LIMIT_ATTRS_rec.context
842 , CREATED_BY = p_LIMIT_ATTRS_rec.created_by
843 , CREATION_DATE = p_LIMIT_ATTRS_rec.creation_date
844 , LAST_UPDATED_BY = p_LIMIT_ATTRS_rec.last_updated_by
845 , LAST_UPDATE_DATE = p_LIMIT_ATTRS_rec.last_update_date
846 , LAST_UPDATE_LOGIN = p_LIMIT_ATTRS_rec.last_update_login
847 , LIMIT_ATTRIBUTE = p_LIMIT_ATTRS_rec.limit_attribute
848 , LIMIT_ATTRIBUTE_CONTEXT = p_LIMIT_ATTRS_rec.limit_attribute_context
849 , LIMIT_ATTRIBUTE_ID = p_LIMIT_ATTRS_rec.limit_attribute_id
850 , LIMIT_ATTRIBUTE_TYPE = p_LIMIT_ATTRS_rec.limit_attribute_type
851 , LIMIT_ATTR_DATATYPE = p_LIMIT_ATTRS_rec.limit_attr_datatype
852 , LIMIT_ATTR_VALUE = p_LIMIT_ATTRS_rec.limit_attr_value
853 , LIMIT_ID = p_LIMIT_ATTRS_rec.limit_id
854 , PROGRAM_APPLICATION_ID = p_LIMIT_ATTRS_rec.program_application_id
855 , PROGRAM_ID = p_LIMIT_ATTRS_rec.program_id
856 , PROGRAM_UPDATE_DATE = p_LIMIT_ATTRS_rec.program_update_date
857 , REQUEST_ID = p_LIMIT_ATTRS_rec.request_id
858 WHERE LIMIT_ATTRIBUTE_ID = p_LIMIT_ATTRS_rec.limit_attribute_id
859 ;
860
861 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
862 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
863
864 IF(p_LIMIT_ATTRS_rec.limit_attribute_context IS NOT NULL)
865 AND (p_LIMIT_ATTRS_rec.limit_attribute IS NOT NULL) THEN
866 UPDATE qp_pte_segments SET used_in_setup='Y'
867 WHERE nvl(used_in_setup,'N')='N'
868 AND segment_id IN
869 (SELECT a.segment_id
870 FROM qp_segments_b a,qp_prc_contexts_b b
871 WHERE a.segment_mapping_column=p_LIMIT_ATTRS_rec.limit_attribute
872 AND a.prc_context_id=b.prc_context_id
873 AND b.prc_context_type = p_LIMIT_ATTRS_rec.limit_attribute_type
874 AND b.prc_context_code=p_LIMIT_ATTRS_rec.limit_attribute_context);
875 END IF;
876 END IF;
877
878 EXCEPTION
879
880 WHEN OTHERS THEN
881
882 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
883 THEN
884 OE_MSG_PUB.Add_Exc_Msg
885 ( G_PKG_NAME
886 , 'Update_Row'
887 );
888 END IF;
889
890 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
891
892 END Update_Row;
893
894 -- Procedure Insert_Row
895
896 PROCEDURE Insert_Row
897 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
898 )
899 IS
900 l_check_active_flag VARCHAR2(1);
901 l_active_flag VARCHAR2(1);
902
903 BEGIN
904 SELECT active_flag
905 INTO l_active_flag
906 FROM QP_LIMITS a,QP_LIST_HEADERS_B b
907 WHERE a.limit_id=p_LIMIT_ATTRS_rec.limit_id
908 AND b.list_header_id=a.list_header_id;
909
910 INSERT INTO QP_LIMIT_ATTRIBUTES
911 ( ATTRIBUTE1
912 , ATTRIBUTE10
913 , ATTRIBUTE11
914 , ATTRIBUTE12
915 , ATTRIBUTE13
916 , ATTRIBUTE14
917 , ATTRIBUTE15
918 , ATTRIBUTE2
919 , ATTRIBUTE3
920 , ATTRIBUTE4
921 , ATTRIBUTE5
922 , ATTRIBUTE6
923 , ATTRIBUTE7
924 , ATTRIBUTE8
925 , ATTRIBUTE9
926 , COMPARISON_OPERATOR_CODE
927 , CONTEXT
928 , CREATED_BY
929 , CREATION_DATE
930 , LAST_UPDATED_BY
931 , LAST_UPDATE_DATE
932 , LAST_UPDATE_LOGIN
933 , LIMIT_ATTRIBUTE
934 , LIMIT_ATTRIBUTE_CONTEXT
935 , LIMIT_ATTRIBUTE_ID
936 , LIMIT_ATTRIBUTE_TYPE
937 , LIMIT_ATTR_DATATYPE
938 , LIMIT_ATTR_VALUE
939 , LIMIT_ID
940 , PROGRAM_APPLICATION_ID
941 , PROGRAM_ID
942 , PROGRAM_UPDATE_DATE
943 , REQUEST_ID
944 )
945 VALUES
946 ( p_LIMIT_ATTRS_rec.attribute1
947 , p_LIMIT_ATTRS_rec.attribute10
948 , p_LIMIT_ATTRS_rec.attribute11
949 , p_LIMIT_ATTRS_rec.attribute12
950 , p_LIMIT_ATTRS_rec.attribute13
951 , p_LIMIT_ATTRS_rec.attribute14
952 , p_LIMIT_ATTRS_rec.attribute15
953 , p_LIMIT_ATTRS_rec.attribute2
954 , p_LIMIT_ATTRS_rec.attribute3
955 , p_LIMIT_ATTRS_rec.attribute4
956 , p_LIMIT_ATTRS_rec.attribute5
957 , p_LIMIT_ATTRS_rec.attribute6
958 , p_LIMIT_ATTRS_rec.attribute7
959 , p_LIMIT_ATTRS_rec.attribute8
960 , p_LIMIT_ATTRS_rec.attribute9
961 , p_LIMIT_ATTRS_rec.comparison_operator_code
962 , p_LIMIT_ATTRS_rec.context
963 , p_LIMIT_ATTRS_rec.created_by
964 , p_LIMIT_ATTRS_rec.creation_date
965 , p_LIMIT_ATTRS_rec.last_updated_by
966 , p_LIMIT_ATTRS_rec.last_update_date
967 , p_LIMIT_ATTRS_rec.last_update_login
968 , p_LIMIT_ATTRS_rec.limit_attribute
969 , p_LIMIT_ATTRS_rec.limit_attribute_context
970 , p_LIMIT_ATTRS_rec.limit_attribute_id
971 , p_LIMIT_ATTRS_rec.limit_attribute_type
972 , p_LIMIT_ATTRS_rec.limit_attr_datatype
973 , p_LIMIT_ATTRS_rec.limit_attr_value
974 , p_LIMIT_ATTRS_rec.limit_id
975 , p_LIMIT_ATTRS_rec.program_application_id
976 , p_LIMIT_ATTRS_rec.program_id
977 , p_LIMIT_ATTRS_rec.program_update_date
978 , p_LIMIT_ATTRS_rec.request_id
979 );
980
981 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
982 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
983 IF(p_LIMIT_ATTRS_rec.limit_attribute_context IS NOT NULL)
984 AND (p_LIMIT_ATTRS_rec.limit_attribute IS NOT NULL) THEN
985 UPDATE qp_pte_segments SET used_in_setup='Y'
986 WHERE nvl(used_in_setup,'N')='N'
987 AND segment_id IN
988 (SELECT a.segment_id
989 FROM qp_segments_b a,qp_prc_contexts_b b
990 WHERE a.segment_mapping_column=p_LIMIT_ATTRS_rec.limit_attribute
991 AND a.prc_context_id=b.prc_context_id
992 AND b.prc_context_type = p_LIMIT_ATTRS_rec.limit_attribute_type
993 AND b.prc_context_code=p_LIMIT_ATTRS_rec.limit_attribute_context);
994 END IF;
995 END IF;
996
997
998 EXCEPTION
999
1000 WHEN OTHERS THEN
1001
1002 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1003 THEN
1004 OE_MSG_PUB.Add_Exc_Msg
1005 ( G_PKG_NAME
1006 , 'Insert_Row'
1007 );
1008 END IF;
1009
1010 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1011
1012 END Insert_Row;
1013
1014 -- Procedure Delete_Row
1015
1016 PROCEDURE Delete_Row
1017 ( p_limit_attribute_id IN NUMBER
1018 )
1019 IS
1020 BEGIN
1021
1022 DELETE FROM QP_LIMIT_ATTRIBUTES
1023 WHERE LIMIT_ATTRIBUTE_ID = p_limit_attribute_id
1024 ;
1025
1026
1027 EXCEPTION
1028
1029 WHEN OTHERS THEN
1030
1031 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1032 THEN
1033 OE_MSG_PUB.Add_Exc_Msg
1034 ( G_PKG_NAME
1035 , 'Delete_Row'
1036 );
1037 END IF;
1038
1039 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1040
1041 END Delete_Row;
1042
1043 -- Function Query_Row
1044
1045 FUNCTION Query_Row
1046 ( p_limit_attribute_id IN NUMBER
1047 ) RETURN QP_Limits_PUB.Limit_Attrs_Rec_Type
1048 IS
1049 BEGIN
1050
1051 RETURN Query_Rows
1052 ( p_limit_attribute_id => p_limit_attribute_id
1053 )(1);
1054
1055 END Query_Row;
1056
1057 -- Function Query_Rows
1058
1059 --
1060
1061 FUNCTION Query_Rows
1062 ( p_limit_attribute_id IN NUMBER :=
1063 FND_API.G_MISS_NUM
1064 , p_limit_id IN NUMBER :=
1065 FND_API.G_MISS_NUM
1066 ) RETURN QP_Limits_PUB.Limit_Attrs_Tbl_Type
1067 IS
1068 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1069 l_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
1070
1071 CURSOR l_LIMIT_ATTRS_csr IS
1072 SELECT ATTRIBUTE1
1073 , ATTRIBUTE10
1074 , ATTRIBUTE11
1075 , ATTRIBUTE12
1076 , ATTRIBUTE13
1077 , ATTRIBUTE14
1078 , ATTRIBUTE15
1079 , ATTRIBUTE2
1080 , ATTRIBUTE3
1081 , ATTRIBUTE4
1082 , ATTRIBUTE5
1083 , ATTRIBUTE6
1084 , ATTRIBUTE7
1085 , ATTRIBUTE8
1086 , ATTRIBUTE9
1087 , COMPARISON_OPERATOR_CODE
1088 , CONTEXT
1089 , CREATED_BY
1090 , CREATION_DATE
1091 , LAST_UPDATED_BY
1092 , LAST_UPDATE_DATE
1093 , LAST_UPDATE_LOGIN
1094 , LIMIT_ATTRIBUTE
1095 , LIMIT_ATTRIBUTE_CONTEXT
1096 , LIMIT_ATTRIBUTE_ID
1097 , LIMIT_ATTRIBUTE_TYPE
1098 , LIMIT_ATTR_DATATYPE
1099 , LIMIT_ATTR_VALUE
1100 , LIMIT_ID
1101 , PROGRAM_APPLICATION_ID
1102 , PROGRAM_ID
1103 , PROGRAM_UPDATE_DATE
1104 , REQUEST_ID
1105 FROM QP_LIMIT_ATTRIBUTES
1106 WHERE ( LIMIT_ATTRIBUTE_ID = p_limit_attribute_id
1107 )
1108 OR ( LIMIT_ID = p_limit_id
1109 );
1110
1111 BEGIN
1112
1113 IF
1114 (p_limit_attribute_id IS NOT NULL
1115 AND
1116 p_limit_attribute_id <> FND_API.G_MISS_NUM)
1117 AND
1118 (p_limit_id IS NOT NULL
1119 AND
1120 p_limit_id <> FND_API.G_MISS_NUM)
1121 THEN
1122 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1123 THEN
1124 OE_MSG_PUB.Add_Exc_Msg
1125 ( G_PKG_NAME
1126 , 'Query Rows'
1127 , 'Keys are mutually exclusive: limit_attribute_id = '|| p_limit_attribute_id || ', limit_id = '|| p_limit_id
1128 );
1129 END IF;
1130
1131 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1132
1133 END IF;
1134
1135
1136 -- Loop over fetched records
1137
1138 FOR l_implicit_rec IN l_LIMIT_ATTRS_csr LOOP
1139
1140 l_LIMIT_ATTRS_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
1141 l_LIMIT_ATTRS_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
1142 l_LIMIT_ATTRS_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
1143 l_LIMIT_ATTRS_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
1144 l_LIMIT_ATTRS_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
1145 l_LIMIT_ATTRS_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
1146 l_LIMIT_ATTRS_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
1147 l_LIMIT_ATTRS_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
1148 l_LIMIT_ATTRS_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
1149 l_LIMIT_ATTRS_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
1150 l_LIMIT_ATTRS_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
1151 l_LIMIT_ATTRS_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
1152 l_LIMIT_ATTRS_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
1153 l_LIMIT_ATTRS_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
1154 l_LIMIT_ATTRS_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
1155 l_LIMIT_ATTRS_rec.comparison_operator_code := l_implicit_rec.COMPARISON_OPERATOR_CODE;
1156 l_LIMIT_ATTRS_rec.context := l_implicit_rec.CONTEXT;
1157 l_LIMIT_ATTRS_rec.created_by := l_implicit_rec.CREATED_BY;
1158 l_LIMIT_ATTRS_rec.creation_date := l_implicit_rec.CREATION_DATE;
1159 l_LIMIT_ATTRS_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1160 l_LIMIT_ATTRS_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1161 l_LIMIT_ATTRS_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1162 l_LIMIT_ATTRS_rec.limit_attribute := l_implicit_rec.LIMIT_ATTRIBUTE;
1163 l_LIMIT_ATTRS_rec.limit_attribute_context := l_implicit_rec.LIMIT_ATTRIBUTE_CONTEXT;
1164 l_LIMIT_ATTRS_rec.limit_attribute_id := l_implicit_rec.LIMIT_ATTRIBUTE_ID;
1165 l_LIMIT_ATTRS_rec.limit_attribute_type := l_implicit_rec.LIMIT_ATTRIBUTE_TYPE;
1166 l_LIMIT_ATTRS_rec.limit_attr_datatype := l_implicit_rec.LIMIT_ATTR_DATATYPE;
1167 l_LIMIT_ATTRS_rec.limit_attr_value := l_implicit_rec.LIMIT_ATTR_VALUE;
1168 l_LIMIT_ATTRS_rec.limit_id := l_implicit_rec.LIMIT_ID;
1169 l_LIMIT_ATTRS_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
1170 l_LIMIT_ATTRS_rec.program_id := l_implicit_rec.PROGRAM_ID;
1171 l_LIMIT_ATTRS_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
1172 l_LIMIT_ATTRS_rec.request_id := l_implicit_rec.REQUEST_ID;
1173
1174 l_LIMIT_ATTRS_tbl(l_LIMIT_ATTRS_tbl.COUNT + 1) := l_LIMIT_ATTRS_rec;
1175
1176 END LOOP;
1177
1178
1179 -- PK sent and no rows found
1180
1181 IF
1182 (p_limit_attribute_id IS NOT NULL
1183 AND
1184 p_limit_attribute_id <> FND_API.G_MISS_NUM)
1185 AND
1186 (l_LIMIT_ATTRS_tbl.COUNT = 0)
1187 THEN
1188 RAISE NO_DATA_FOUND;
1189 END IF;
1190
1191
1192 -- Return fetched table
1193
1194 RETURN l_LIMIT_ATTRS_tbl;
1195
1196 EXCEPTION
1197
1198 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1199
1200 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1201
1202 WHEN OTHERS THEN
1203
1204 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1205 THEN
1206 OE_MSG_PUB.Add_Exc_Msg
1207 ( G_PKG_NAME
1208 , 'Query_Rows'
1209 );
1210 END IF;
1211
1212 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1213
1214 END Query_Rows;
1215
1216 -- Procedure lock_Row
1217 --
1218
1219 PROCEDURE Lock_Row
1220 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1221 , p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
1222 , x_LIMIT_ATTRS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Rec_Type
1223 )
1224 IS
1225 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1226 BEGIN
1227
1228 SELECT ATTRIBUTE1
1229 , ATTRIBUTE10
1230 , ATTRIBUTE11
1231 , ATTRIBUTE12
1232 , ATTRIBUTE13
1233 , ATTRIBUTE14
1234 , ATTRIBUTE15
1235 , ATTRIBUTE2
1236 , ATTRIBUTE3
1237 , ATTRIBUTE4
1238 , ATTRIBUTE5
1239 , ATTRIBUTE6
1240 , ATTRIBUTE7
1241 , ATTRIBUTE8
1242 , ATTRIBUTE9
1243 , COMPARISON_OPERATOR_CODE
1244 , CONTEXT
1245 , CREATED_BY
1246 , CREATION_DATE
1247 , LAST_UPDATED_BY
1248 , LAST_UPDATE_DATE
1249 , LAST_UPDATE_LOGIN
1250 , LIMIT_ATTRIBUTE
1251 , LIMIT_ATTRIBUTE_CONTEXT
1252 , LIMIT_ATTRIBUTE_ID
1253 , LIMIT_ATTRIBUTE_TYPE
1254 , LIMIT_ATTR_DATATYPE
1255 , LIMIT_ATTR_VALUE
1256 , LIMIT_ID
1257 , PROGRAM_APPLICATION_ID
1258 , PROGRAM_ID
1259 , PROGRAM_UPDATE_DATE
1260 , REQUEST_ID
1261 INTO l_LIMIT_ATTRS_rec.attribute1
1262 , l_LIMIT_ATTRS_rec.attribute10
1263 , l_LIMIT_ATTRS_rec.attribute11
1264 , l_LIMIT_ATTRS_rec.attribute12
1265 , l_LIMIT_ATTRS_rec.attribute13
1266 , l_LIMIT_ATTRS_rec.attribute14
1267 , l_LIMIT_ATTRS_rec.attribute15
1268 , l_LIMIT_ATTRS_rec.attribute2
1269 , l_LIMIT_ATTRS_rec.attribute3
1270 , l_LIMIT_ATTRS_rec.attribute4
1271 , l_LIMIT_ATTRS_rec.attribute5
1272 , l_LIMIT_ATTRS_rec.attribute6
1273 , l_LIMIT_ATTRS_rec.attribute7
1274 , l_LIMIT_ATTRS_rec.attribute8
1275 , l_LIMIT_ATTRS_rec.attribute9
1276 , l_LIMIT_ATTRS_rec.comparison_operator_code
1277 , l_LIMIT_ATTRS_rec.context
1278 , l_LIMIT_ATTRS_rec.created_by
1279 , l_LIMIT_ATTRS_rec.creation_date
1280 , l_LIMIT_ATTRS_rec.last_updated_by
1281 , l_LIMIT_ATTRS_rec.last_update_date
1282 , l_LIMIT_ATTRS_rec.last_update_login
1283 , l_LIMIT_ATTRS_rec.limit_attribute
1284 , l_LIMIT_ATTRS_rec.limit_attribute_context
1285 , l_LIMIT_ATTRS_rec.limit_attribute_id
1286 , l_LIMIT_ATTRS_rec.limit_attribute_type
1287 , l_LIMIT_ATTRS_rec.limit_attr_datatype
1288 , l_LIMIT_ATTRS_rec.limit_attr_value
1289 , l_LIMIT_ATTRS_rec.limit_id
1290 , l_LIMIT_ATTRS_rec.program_application_id
1291 , l_LIMIT_ATTRS_rec.program_id
1292 , l_LIMIT_ATTRS_rec.program_update_date
1293 , l_LIMIT_ATTRS_rec.request_id
1294 FROM QP_LIMIT_ATTRIBUTES
1295 WHERE LIMIT_ATTRIBUTE_ID = p_LIMIT_ATTRS_rec.limit_attribute_id
1296 FOR UPDATE NOWAIT;
1297
1298 -- Row locked. Compare IN attributes to DB attributes.
1299
1300 IF QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute1,
1301 l_LIMIT_ATTRS_rec.attribute1)
1302 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute10,
1303 l_LIMIT_ATTRS_rec.attribute10)
1304 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute11,
1305 l_LIMIT_ATTRS_rec.attribute11)
1306 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute12,
1307 l_LIMIT_ATTRS_rec.attribute12)
1308 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute13,
1309 l_LIMIT_ATTRS_rec.attribute13)
1310 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute14,
1311 l_LIMIT_ATTRS_rec.attribute14)
1312 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute15,
1313 l_LIMIT_ATTRS_rec.attribute15)
1314 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute2,
1315 l_LIMIT_ATTRS_rec.attribute2)
1316 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute3,
1317 l_LIMIT_ATTRS_rec.attribute3)
1318 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute4,
1319 l_LIMIT_ATTRS_rec.attribute4)
1320 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute5,
1321 l_LIMIT_ATTRS_rec.attribute5)
1322 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute6,
1323 l_LIMIT_ATTRS_rec.attribute6)
1324 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute7,
1325 l_LIMIT_ATTRS_rec.attribute7)
1326 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute8,
1327 l_LIMIT_ATTRS_rec.attribute8)
1328 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.attribute9,
1329 l_LIMIT_ATTRS_rec.attribute9)
1330 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.comparison_operator_code,
1331 l_LIMIT_ATTRS_rec.comparison_operator_code)
1332 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.context,
1333 l_LIMIT_ATTRS_rec.context)
1334 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.created_by,
1335 l_LIMIT_ATTRS_rec.created_by)
1336 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.creation_date,
1337 l_LIMIT_ATTRS_rec.creation_date)
1338 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_updated_by,
1339 l_LIMIT_ATTRS_rec.last_updated_by)
1340 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_update_date,
1341 l_LIMIT_ATTRS_rec.last_update_date)
1342 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.last_update_login,
1343 l_LIMIT_ATTRS_rec.last_update_login)
1344 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute,
1345 l_LIMIT_ATTRS_rec.limit_attribute)
1346 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_context,
1347 l_LIMIT_ATTRS_rec.limit_attribute_context)
1348 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_id,
1349 l_LIMIT_ATTRS_rec.limit_attribute_id)
1350 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_type,
1351 l_LIMIT_ATTRS_rec.limit_attribute_type)
1352 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attr_datatype,
1353 l_LIMIT_ATTRS_rec.limit_attr_datatype)
1354 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attr_value,
1355 l_LIMIT_ATTRS_rec.limit_attr_value)
1356 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_id,
1357 l_LIMIT_ATTRS_rec.limit_id)
1358 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_application_id,
1359 l_LIMIT_ATTRS_rec.program_application_id)
1360 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_id,
1361 l_LIMIT_ATTRS_rec.program_id)
1362 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.program_update_date,
1363 l_LIMIT_ATTRS_rec.program_update_date)
1364 AND QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.request_id,
1365 l_LIMIT_ATTRS_rec.request_id)
1366 THEN
1367
1368 -- Row has not changed. Set out parameter.
1369
1370 x_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_rec;
1371
1372 -- Set return status
1373
1374 x_return_status := FND_API.G_RET_STS_SUCCESS;
1375 x_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1376
1377 ELSE
1378
1379 -- Row has changed by another user.
1380
1381 x_return_status := FND_API.G_RET_STS_ERROR;
1382 x_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_ERROR;
1383
1384 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1385 THEN
1386
1387 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1388 OE_MSG_PUB.Add;
1389
1390 END IF;
1391
1392 END IF;
1393
1394 EXCEPTION
1395
1396 WHEN NO_DATA_FOUND THEN
1397
1398 x_return_status := FND_API.G_RET_STS_ERROR;
1399 x_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_ERROR;
1400
1401 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1402 THEN
1403
1404 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1405 OE_MSG_PUB.Add;
1406
1407 END IF;
1408 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1409
1410 x_return_status := FND_API.G_RET_STS_ERROR;
1411 x_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_ERROR;
1412
1413 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1414 THEN
1415
1416 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1417 OE_MSG_PUB.Add;
1418
1419 END IF;
1420 WHEN OTHERS THEN
1421
1422 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1423 x_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1424
1425 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1426 THEN
1427 OE_MSG_PUB.Add_Exc_Msg
1428 ( G_PKG_NAME
1429 , 'Lock_Row'
1430 );
1431 END IF;
1432
1433 END Lock_Row;
1434
1435 -- Function Get_Values
1436
1437 FUNCTION Get_Values
1438 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
1439 , p_old_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type :=
1440 QP_Limits_PUB.G_MISS_LIMIT_ATTRS_REC
1441 ) RETURN QP_Limits_PUB.Limit_Attrs_Val_Rec_Type
1442 IS
1443 l_LIMIT_ATTRS_val_rec QP_Limits_PUB.Limit_Attrs_Val_Rec_Type;
1444 BEGIN
1445
1446 IF p_LIMIT_ATTRS_rec.comparison_operator_code IS NOT NULL AND
1447 p_LIMIT_ATTRS_rec.comparison_operator_code <> FND_API.G_MISS_CHAR AND
1448 NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.comparison_operator_code,
1449 p_old_LIMIT_ATTRS_rec.comparison_operator_code)
1450 THEN
1451 l_LIMIT_ATTRS_val_rec.comparison_operator := QP_Id_To_Value.Comparison_Operator
1452 ( p_comparison_operator_code => p_LIMIT_ATTRS_rec.comparison_operator_code
1453 );
1454 END IF;
1455
1456 IF p_LIMIT_ATTRS_rec.limit_attribute_id IS NOT NULL AND
1457 p_LIMIT_ATTRS_rec.limit_attribute_id <> FND_API.G_MISS_NUM AND
1458 NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_attribute_id,
1459 p_old_LIMIT_ATTRS_rec.limit_attribute_id)
1460 THEN
1461 l_LIMIT_ATTRS_val_rec.limit_attribute := QP_Id_To_Value.Limit_Attribute
1462 ( p_limit_attribute_id => p_LIMIT_ATTRS_rec.limit_attribute_id
1463 );
1464 END IF;
1465
1466 IF p_LIMIT_ATTRS_rec.limit_id IS NOT NULL AND
1467 p_LIMIT_ATTRS_rec.limit_id <> FND_API.G_MISS_NUM AND
1468 NOT QP_GLOBALS.Equal(p_LIMIT_ATTRS_rec.limit_id,
1469 p_old_LIMIT_ATTRS_rec.limit_id)
1470 THEN
1471 l_LIMIT_ATTRS_val_rec.limit := QP_Id_To_Value.Limit
1472 ( p_limit_id => p_LIMIT_ATTRS_rec.limit_id
1473 );
1474 END IF;
1475
1476 RETURN l_LIMIT_ATTRS_val_rec;
1477
1478 END Get_Values;
1479
1480 -- Function Get_Ids
1481
1482 FUNCTION Get_Ids
1483 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
1484 , p_LIMIT_ATTRS_val_rec IN QP_Limits_PUB.Limit_Attrs_Val_Rec_Type
1485 ) RETURN QP_Limits_PUB.Limit_Attrs_Rec_Type
1486 IS
1487 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1488 BEGIN
1489
1490 -- initialize return_status.
1491
1492 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1493
1494 -- initialize l_LIMIT_ATTRS_rec.
1495
1496 l_LIMIT_ATTRS_rec := p_LIMIT_ATTRS_rec;
1497
1498 IF p_LIMIT_ATTRS_val_rec.comparison_operator <> FND_API.G_MISS_CHAR
1499 THEN
1500
1501 IF p_LIMIT_ATTRS_rec.comparison_operator_code <> FND_API.G_MISS_CHAR THEN
1502
1503 l_LIMIT_ATTRS_rec.comparison_operator_code := p_LIMIT_ATTRS_rec.comparison_operator_code;
1504
1505 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1506 THEN
1507
1508 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1509 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','comparison_operator');
1510 OE_MSG_PUB.Add;
1511
1512 END IF;
1513
1514 ELSE
1515
1516 l_LIMIT_ATTRS_rec.comparison_operator_code := QP_Value_To_Id.comparison_operator
1517 ( p_comparison_operator => p_LIMIT_ATTRS_val_rec.comparison_operator
1518 );
1519
1520 IF l_LIMIT_ATTRS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
1521 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_ERROR;
1522 END IF;
1523
1524 END IF;
1525
1526 END IF;
1527
1528 IF p_LIMIT_ATTRS_val_rec.limit_attribute <> FND_API.G_MISS_CHAR
1529 THEN
1530
1531 IF p_LIMIT_ATTRS_rec.limit_attribute_id <> FND_API.G_MISS_NUM THEN
1532
1533 l_LIMIT_ATTRS_rec.limit_attribute_id := p_LIMIT_ATTRS_rec.limit_attribute_id;
1534
1535 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1536 THEN
1537
1538 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1539 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','limit_attribute');
1540 OE_MSG_PUB.Add;
1541
1542 END IF;
1543
1544 ELSE
1545
1546 l_LIMIT_ATTRS_rec.limit_attribute_id := QP_Value_To_Id.limit_attribute
1547 ( p_limit_attribute => p_LIMIT_ATTRS_val_rec.limit_attribute
1548 );
1549
1550 IF l_LIMIT_ATTRS_rec.limit_attribute_id = FND_API.G_MISS_NUM THEN
1551 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_ERROR;
1552 END IF;
1553
1554 END IF;
1555
1556 END IF;
1557
1558 IF p_LIMIT_ATTRS_val_rec.limit <> FND_API.G_MISS_CHAR
1559 THEN
1560
1561 IF p_LIMIT_ATTRS_rec.limit_id <> FND_API.G_MISS_NUM THEN
1562
1563 l_LIMIT_ATTRS_rec.limit_id := p_LIMIT_ATTRS_rec.limit_id;
1564
1565 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1566 THEN
1567
1568 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1569 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','limit');
1570 OE_MSG_PUB.Add;
1571
1572 END IF;
1573
1574 ELSE
1575
1576 l_LIMIT_ATTRS_rec.limit_id := QP_Value_To_Id.limit
1577 ( p_limit => p_LIMIT_ATTRS_val_rec.limit
1578 );
1579
1580 IF l_LIMIT_ATTRS_rec.limit_id = FND_API.G_MISS_NUM THEN
1581 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_ERROR;
1582 END IF;
1583
1584 END IF;
1585
1586 END IF;
1587
1588
1589 RETURN l_LIMIT_ATTRS_rec;
1590
1591 END Get_Ids;
1592
1593 Procedure Pre_Write_Process
1594 ( p_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type
1595 , p_old_LIMIT_ATTRS_rec IN QP_Limits_PUB.Limit_Attrs_Rec_Type :=
1596 QP_Limits_PUB.G_MISS_LIMIT_ATTRS_REC
1597 , x_LIMIT_ATTRS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Rec_Type
1598 )
1599 IS
1600
1601 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type := p_LIMIT_ATTRS_rec;
1602 l_return_status varchar2(30);
1603
1604 BEGIN
1605
1606
1607 qp_delayed_requests_PVT.log_request
1608 (
1609 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1610 p_entity_id => p_LIMIT_ATTRS_rec.limit_id,
1611 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
1612 p_requesting_entity_id => p_LIMIT_ATTRS_rec.limit_id,
1613 p_request_type => QP_GLOBALS.G_UPDATE_LIMITS_COLUMNS,
1614 x_return_status => l_return_status
1615 );
1616
1617 x_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_rec;
1618
1619 EXCEPTION
1620 WHEN FND_API.G_EXC_ERROR THEN
1621 RAISE;
1622 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1623 RAISE;
1624 WHEN OTHERS THEN
1625 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1626 THEN
1627 oe_msg_pub.Add_Exc_Msg
1628 ( G_PKG_NAME
1629 , 'Pre_Write_Process'
1630 );
1631 END IF;
1632 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1633
1634
1635 END Pre_Write_Process;
1636
1637 END QP_Limit_Attrs_Util;