[Home] [Help]
PACKAGE BODY: APPS.QP_QP_FORM_LIMITS
Source
1 PACKAGE BODY QP_QP_Form_Limits AS
2 /* $Header: QPXFLMTB.pls 120.1 2005/06/13 03:40:43 appldev $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_QP_Form_Limits';
7
8 -- Global variables holding cached record.
9
10 g_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
11 g_db_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14
15 PROCEDURE Write_LIMITS
16 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
17 , p_db_record IN BOOLEAN := FALSE
18 );
19
20 FUNCTION Get_LIMITS
21 ( p_db_record IN BOOLEAN := FALSE
22 , p_limit_id IN NUMBER
23 )
24 RETURN QP_Limits_PUB.Limits_Rec_Type;
25
26 PROCEDURE Clear_LIMITS;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl QP_Limits_PUB.Limits_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
38 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 , x_amount OUT NOCOPY /* file.sql.39 change */ NUMBER
40 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 , x_basis OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 , x_limit_exceed_action_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 , x_limit_hold_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 , x_limit_id OUT NOCOPY /* file.sql.39 change */ NUMBER
60 , x_limit_level_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
61 , x_limit_number OUT NOCOPY /* file.sql.39 change */ NUMBER
62 , x_list_header_id OUT NOCOPY /* file.sql.39 change */ NUMBER
63 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
64 , x_organization_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
65 , x_limit_exceed_action OUT NOCOPY /* file.sql.39 change */ VARCHAR2
66 , x_limit OUT NOCOPY /* file.sql.39 change */ VARCHAR2
67 , x_limit_level OUT NOCOPY /* file.sql.39 change */ VARCHAR2
68 , x_list_header OUT NOCOPY /* file.sql.39 change */ VARCHAR2
69 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
70 , x_multival_attr1_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 , x_multival_attr1_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
72 , x_multival_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
73 , x_multival_attr1_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
74 , x_multival_attr2_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
75 , x_multival_attr2_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 , x_multival_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
77 , x_multival_attr2_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
78 , x_organization OUT NOCOPY /* file.sql.39 change */ VARCHAR2
79 )
80 IS
81 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
82 l_LIMITS_val_rec QP_Limits_PUB.Limits_Val_Rec_Type;
83 l_control_rec QP_GLOBALS.Control_Rec_Type;
84 l_return_status VARCHAR2(1);
85 l_x_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
86 l_x_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
87 l_x_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
88 l_x_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
89 l_x_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
90 BEGIN
91
92 -- Set control flags.
93
94 l_control_rec.controlled_operation := TRUE;
95 l_control_rec.default_attributes := TRUE;
96
97 l_control_rec.change_attributes := FALSE;
98 l_control_rec.validate_entity := FALSE;
99 l_control_rec.write_to_DB := FALSE;
100 l_control_rec.process := FALSE;
101
102 -- Instruct API to retain its caches
103
104 l_control_rec.clear_api_cache := FALSE;
105 l_control_rec.clear_api_requests := FALSE;
106
107 -- Load IN parameters if any exist
108
109
110 -- Defaulting of flex values is currently done by the form.
111 -- Set flex attributes to NULL in order to avoid defaulting them.
112
113 l_LIMITS_rec.attribute1 := NULL;
114 l_LIMITS_rec.attribute10 := NULL;
115 l_LIMITS_rec.attribute11 := NULL;
116 l_LIMITS_rec.attribute12 := NULL;
117 l_LIMITS_rec.attribute13 := NULL;
118 l_LIMITS_rec.attribute14 := NULL;
119 l_LIMITS_rec.attribute15 := NULL;
120 l_LIMITS_rec.attribute2 := NULL;
121 l_LIMITS_rec.attribute3 := NULL;
122 l_LIMITS_rec.attribute4 := NULL;
123 l_LIMITS_rec.attribute5 := NULL;
124 l_LIMITS_rec.attribute6 := NULL;
125 l_LIMITS_rec.attribute7 := NULL;
126 l_LIMITS_rec.attribute8 := NULL;
127 l_LIMITS_rec.attribute9 := NULL;
128 l_LIMITS_rec.context := NULL;
129
130 -- Set Operation to Create
131
132 l_LIMITS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
133
134 -- Call QP_Limits_PVT.Process_Limits
135
136 QP_Limits_PVT.Process_Limits
137 ( p_api_version_number => 1.0
138 , p_init_msg_list => FND_API.G_TRUE
139 , x_return_status => l_return_status
140 , x_msg_count => x_msg_count
141 , x_msg_data => x_msg_data
142 , p_control_rec => l_control_rec
143 , p_LIMITS_rec => l_LIMITS_rec
144 , x_LIMITS_rec => l_x_LIMITS_rec
145 , x_LIMIT_ATTRS_tbl => l_x_LIMIT_ATTRS_tbl
146 , x_LIMIT_BALANCES_tbl => l_x_LIMIT_BALANCES_tbl
147 );
148
149 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
150 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
151 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
152 RAISE FND_API.G_EXC_ERROR;
153 END IF;
154
155
156 -- Load OUT parameters.
157
158 x_amount := l_x_LIMITS_rec.amount;
159 x_attribute1 := l_x_LIMITS_rec.attribute1;
160 x_attribute10 := l_x_LIMITS_rec.attribute10;
161 x_attribute11 := l_x_LIMITS_rec.attribute11;
162 x_attribute12 := l_x_LIMITS_rec.attribute12;
163 x_attribute13 := l_x_LIMITS_rec.attribute13;
164 x_attribute14 := l_x_LIMITS_rec.attribute14;
165 x_attribute15 := l_x_LIMITS_rec.attribute15;
166 x_attribute2 := l_x_LIMITS_rec.attribute2;
167 x_attribute3 := l_x_LIMITS_rec.attribute3;
168 x_attribute4 := l_x_LIMITS_rec.attribute4;
169 x_attribute5 := l_x_LIMITS_rec.attribute5;
170 x_attribute6 := l_x_LIMITS_rec.attribute6;
171 x_attribute7 := l_x_LIMITS_rec.attribute7;
172 x_attribute8 := l_x_LIMITS_rec.attribute8;
173 x_attribute9 := l_x_LIMITS_rec.attribute9;
174 x_basis := l_x_LIMITS_rec.basis;
175 x_context := l_x_LIMITS_rec.context;
176 x_limit_exceed_action_code := l_x_LIMITS_rec.limit_exceed_action_code;
177 x_limit_hold_flag := l_x_LIMITS_rec.limit_hold_flag;
178 x_limit_id := l_x_LIMITS_rec.limit_id;
179 x_limit_level_code := l_x_LIMITS_rec.limit_level_code;
180 x_limit_number := l_x_LIMITS_rec.limit_number;
181 x_list_header_id := l_x_LIMITS_rec.list_header_id;
182 x_list_line_id := l_x_LIMITS_rec.list_line_id;
183 x_multival_attr1_type := l_x_LIMITS_rec.multival_attr1_type;
184 x_multival_attr1_context := l_x_LIMITS_rec.multival_attr1_context;
185 x_multival_attribute1 := l_x_LIMITS_rec.multival_attribute1;
186 x_multival_attr1_datatype := l_x_LIMITS_rec.multival_attr1_datatype;
187 x_multival_attr2_type := l_x_LIMITS_rec.multival_attr2_type;
188 x_multival_attr2_context := l_x_LIMITS_rec.multival_attr2_context;
189 x_multival_attribute2 := l_x_LIMITS_rec.multival_attribute2;
190 x_multival_attr2_datatype := l_x_LIMITS_rec.multival_attr2_datatype;
191 x_organization_flag := l_x_LIMITS_rec.organization_flag;
192
193 -- Load display out parameters if any
194
195 l_LIMITS_val_rec := QP_Limits_Util.Get_Values
196 ( p_LIMITS_rec => l_x_LIMITS_rec
197 );
198 x_limit_exceed_action := l_LIMITS_val_rec.limit_exceed_action;
199 x_limit := l_LIMITS_val_rec.limit;
200 x_limit_level := l_LIMITS_val_rec.limit_level;
201 x_list_header := l_LIMITS_val_rec.list_header;
202 x_list_line := l_LIMITS_val_rec.list_line;
203 x_organization := l_LIMITS_val_rec.organization;
204
205 -- Write to cache.
206 -- Set db_flag to False before writing to cache
207
208 l_x_LIMITS_rec.db_flag := FND_API.G_FALSE;
209
210 Write_LIMITS
211 ( p_LIMITS_rec => l_x_LIMITS_rec
212 );
213
214 -- Set return status.
215
216 x_return_status := FND_API.G_RET_STS_SUCCESS;
217
218 -- Get message count and data
219
220 OE_MSG_PUB.Count_And_Get
221 ( p_count => x_msg_count
222 , p_data => x_msg_data
223 );
224
225
226 EXCEPTION
227
228 WHEN FND_API.G_EXC_ERROR THEN
229
230 x_return_status := FND_API.G_RET_STS_ERROR;
231
232 -- Get message count and data
233
234 OE_MSG_PUB.Count_And_Get
235 ( p_count => x_msg_count
236 , p_data => x_msg_data
237 );
238
239 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
240
241 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
242
243 -- Get message count and data
244
245 OE_MSG_PUB.Count_And_Get
246 ( p_count => x_msg_count
247 , p_data => x_msg_data
248 );
249
250 WHEN OTHERS THEN
251
252 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
253
254 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
255 THEN
256 OE_MSG_PUB.Add_Exc_Msg
257 ( G_PKG_NAME
258 , 'Default_Attributes'
259 );
260 END IF;
261
262 -- Get message count and data
263
264 OE_MSG_PUB.Count_And_Get
265 ( p_count => x_msg_count
266 , p_data => x_msg_data
267 );
268
269 END Default_Attributes;
270
271 -- Procedure : Change_Attribute
272 --
273
274 PROCEDURE Change_Attribute
275 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
276 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
277 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
278 , p_limit_id IN NUMBER
279 , p_attr_id IN NUMBER
280 , p_attr_value IN VARCHAR2
281 , p_attribute1 IN VARCHAR2
282 , p_attribute10 IN VARCHAR2
283 , p_attribute11 IN VARCHAR2
284 , p_attribute12 IN VARCHAR2
285 , p_attribute13 IN VARCHAR2
286 , p_attribute14 IN VARCHAR2
287 , p_attribute15 IN VARCHAR2
288 , p_attribute2 IN VARCHAR2
289 , p_attribute3 IN VARCHAR2
290 , p_attribute4 IN VARCHAR2
291 , p_attribute5 IN VARCHAR2
292 , p_attribute6 IN VARCHAR2
293 , p_attribute7 IN VARCHAR2
294 , p_attribute8 IN VARCHAR2
295 , p_attribute9 IN VARCHAR2
296 , p_context IN VARCHAR2
297 , x_amount OUT NOCOPY /* file.sql.39 change */ NUMBER
298 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
299 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
300 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
301 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
302 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
303 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
304 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
305 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
306 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
307 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
308 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
309 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
310 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
311 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
312 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
313 , x_basis OUT NOCOPY /* file.sql.39 change */ VARCHAR2
314 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
315 , x_limit_exceed_action_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
316 , x_limit_hold_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
317 , x_limit_id OUT NOCOPY /* file.sql.39 change */ NUMBER
318 , x_limit_level_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
319 , x_limit_number OUT NOCOPY /* file.sql.39 change */ NUMBER
320 , x_list_header_id OUT NOCOPY /* file.sql.39 change */ NUMBER
321 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
322 , x_multival_attr1_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
323 , x_multival_attr1_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
324 , x_multival_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
325 , x_multival_attr1_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
326 , x_multival_attr2_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
327 , x_multival_attr2_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
328 , x_multival_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
329 , x_multival_attr2_datatype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
330 , x_organization_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
331 , x_limit_exceed_action OUT NOCOPY /* file.sql.39 change */ VARCHAR2
332 , x_limit OUT NOCOPY /* file.sql.39 change */ VARCHAR2
333 , x_limit_level OUT NOCOPY /* file.sql.39 change */ VARCHAR2
334 , x_list_header OUT NOCOPY /* file.sql.39 change */ VARCHAR2
335 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
336 , x_organization OUT NOCOPY /* file.sql.39 change */ VARCHAR2
337 )
338 IS
339 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
340 l_old_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
341 l_LIMITS_val_rec QP_Limits_PUB.Limits_Val_Rec_Type;
342 l_control_rec QP_GLOBALS.Control_Rec_Type;
343 l_return_status VARCHAR2(1);
344 l_x_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
345 l_x_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
346 l_x_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
347 l_x_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
348 l_x_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
349 BEGIN
350
351 -- Set control flags.
352
353 l_control_rec.controlled_operation := TRUE;
354 l_control_rec.change_attributes := TRUE;
355
356 l_control_rec.default_attributes := FALSE;
357 l_control_rec.validate_entity := FALSE;
358 l_control_rec.write_to_DB := FALSE;
359 l_control_rec.process := FALSE;
360
361 -- Instruct API to retain its caches
362
363 l_control_rec.clear_api_cache := FALSE;
364 l_control_rec.clear_api_requests := FALSE;
365
366 -- Read LIMITS from cache
367
368 l_LIMITS_rec := Get_LIMITS
369 ( p_db_record => FALSE
370 , p_limit_id => p_limit_id
371 );
372
373 l_old_LIMITS_rec := l_LIMITS_rec;
374
375 IF p_attr_id = QP_Limits_Util.G_AMOUNT THEN
376 l_LIMITS_rec.amount := TO_NUMBER(p_attr_value);
377 ELSIF p_attr_id = QP_Limits_Util.G_BASIS THEN
378 l_LIMITS_rec.basis := p_attr_value;
379 ELSIF p_attr_id = QP_Limits_Util.G_LIMIT_EXCEED_ACTION THEN
380 l_LIMITS_rec.limit_exceed_action_code := p_attr_value;
381 ELSIF p_attr_id = QP_Limits_Util.G_LIMIT_HOLD THEN
382 l_LIMITS_rec.limit_hold_flag := p_attr_value;
383 ELSIF p_attr_id = QP_Limits_Util.G_LIMIT THEN
384 l_LIMITS_rec.limit_id := TO_NUMBER(p_attr_value);
385 ELSIF p_attr_id = QP_Limits_Util.G_LIMIT_LEVEL THEN
386 l_LIMITS_rec.limit_level_code := p_attr_value;
387 ELSIF p_attr_id = QP_Limits_Util.G_LIMIT_NUMBER THEN
388 l_LIMITS_rec.limit_number := TO_NUMBER(p_attr_value);
389 ELSIF p_attr_id = QP_Limits_Util.G_LIST_HEADER THEN
390 l_LIMITS_rec.list_header_id := TO_NUMBER(p_attr_value);
391 ELSIF p_attr_id = QP_Limits_Util.G_LIST_LINE THEN
392 l_LIMITS_rec.list_line_id := TO_NUMBER(p_attr_value);
393 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTR1_TYPE THEN
394 l_LIMITS_rec.multival_attr1_type := p_attr_value;
395 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTR1_CONTEXT THEN
396 l_LIMITS_rec.multival_attr1_context := p_attr_value;
397 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTRIBUTE1 THEN
398 l_LIMITS_rec.multival_attribute1 := p_attr_value;
399 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTR1_DATATYPE THEN
400 l_LIMITS_rec.multival_attr1_datatype := p_attr_value;
401 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTR2_TYPE THEN
402 l_LIMITS_rec.multival_attr2_type := p_attr_value;
403 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTR2_CONTEXT THEN
404 l_LIMITS_rec.multival_attr2_context := p_attr_value;
405 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTRIBUTE2 THEN
406 l_LIMITS_rec.multival_attribute2 := p_attr_value;
407 ELSIF p_attr_id = QP_Limits_Util.G_MULTIVAL_ATTR2_DATATYPE THEN
408 l_LIMITS_rec.multival_attr2_datatype := p_attr_value;
409 ELSIF p_attr_id = QP_Limits_Util.G_ORGANIZATION THEN
410 l_LIMITS_rec.organization_flag := p_attr_value;
411 ELSIF p_attr_id = QP_Limits_Util.G_ATTRIBUTE1
412 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE10
413 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE11
414 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE12
415 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE13
416 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE14
417 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE15
418 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE2
419 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE3
420 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE4
421 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE5
422 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE6
423 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE7
424 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE8
425 OR p_attr_id = QP_Limits_Util.G_ATTRIBUTE9
426 OR p_attr_id = QP_Limits_Util.G_CONTEXT
427 THEN
428
429 l_LIMITS_rec.attribute1 := p_attribute1;
430 l_LIMITS_rec.attribute10 := p_attribute10;
431 l_LIMITS_rec.attribute11 := p_attribute11;
432 l_LIMITS_rec.attribute12 := p_attribute12;
433 l_LIMITS_rec.attribute13 := p_attribute13;
434 l_LIMITS_rec.attribute14 := p_attribute14;
435 l_LIMITS_rec.attribute15 := p_attribute15;
436 l_LIMITS_rec.attribute2 := p_attribute2;
437 l_LIMITS_rec.attribute3 := p_attribute3;
438 l_LIMITS_rec.attribute4 := p_attribute4;
439 l_LIMITS_rec.attribute5 := p_attribute5;
440 l_LIMITS_rec.attribute6 := p_attribute6;
441 l_LIMITS_rec.attribute7 := p_attribute7;
442 l_LIMITS_rec.attribute8 := p_attribute8;
443 l_LIMITS_rec.attribute9 := p_attribute9;
444 l_LIMITS_rec.context := p_context;
445
446 ELSE
447
448 -- Unexpected error, unrecognized attribute
449
450 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
451 THEN
452 OE_MSG_PUB.Add_Exc_Msg
453 ( G_PKG_NAME
454 , 'Change_Attribute'
455 , 'Unrecognized attribute'
456 );
457 END IF;
458
459 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
460
461 END IF;
462
463 -- Set Operation.
464
465 IF FND_API.To_Boolean(l_LIMITS_rec.db_flag) THEN
466 l_LIMITS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
467 ELSE
468 l_LIMITS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
469 END IF;
470
471 -- Call QP_Limits_PVT.Process_Limits
472
473 QP_Limits_PVT.Process_Limits
474 ( p_api_version_number => 1.0
475 , p_init_msg_list => FND_API.G_TRUE
476 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
477 , x_return_status => l_return_status
478 , x_msg_count => x_msg_count
479 , x_msg_data => x_msg_data
480 , p_control_rec => l_control_rec
481 , p_LIMITS_rec => l_LIMITS_rec
482 , p_old_LIMITS_rec => l_old_LIMITS_rec
483 , x_LIMITS_rec => l_x_LIMITS_rec
484 , x_LIMIT_ATTRS_tbl => l_x_LIMIT_ATTRS_tbl
485 , x_LIMIT_BALANCES_tbl => l_x_LIMIT_BALANCES_tbl
486 );
487
488 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
489 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
490 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
491 RAISE FND_API.G_EXC_ERROR;
492 END IF;
493
494
495 -- Init OUT parameters to missing.
496
497 x_amount := FND_API.G_MISS_NUM;
498 x_attribute1 := FND_API.G_MISS_CHAR;
499 x_attribute10 := FND_API.G_MISS_CHAR;
500 x_attribute11 := FND_API.G_MISS_CHAR;
501 x_attribute12 := FND_API.G_MISS_CHAR;
502 x_attribute13 := FND_API.G_MISS_CHAR;
503 x_attribute14 := FND_API.G_MISS_CHAR;
504 x_attribute15 := FND_API.G_MISS_CHAR;
505 x_attribute2 := FND_API.G_MISS_CHAR;
506 x_attribute3 := FND_API.G_MISS_CHAR;
507 x_attribute4 := FND_API.G_MISS_CHAR;
508 x_attribute5 := FND_API.G_MISS_CHAR;
509 x_attribute6 := FND_API.G_MISS_CHAR;
510 x_attribute7 := FND_API.G_MISS_CHAR;
511 x_attribute8 := FND_API.G_MISS_CHAR;
512 x_attribute9 := FND_API.G_MISS_CHAR;
513 x_basis := FND_API.G_MISS_CHAR;
514 x_context := FND_API.G_MISS_CHAR;
515 x_limit_exceed_action_code := FND_API.G_MISS_CHAR;
516 x_limit_hold_flag := FND_API.G_MISS_CHAR;
517 x_limit_id := FND_API.G_MISS_NUM;
518 x_limit_level_code := FND_API.G_MISS_CHAR;
519 x_limit_number := FND_API.G_MISS_NUM;
520 x_list_header_id := FND_API.G_MISS_NUM;
521 x_list_line_id := FND_API.G_MISS_NUM;
522 x_multival_attr1_type := FND_API.G_MISS_CHAR;
523 x_multival_attr1_context := FND_API.G_MISS_CHAR;
524 x_multival_attribute1 := FND_API.G_MISS_CHAR;
525 x_multival_attr1_datatype := FND_API.G_MISS_CHAR;
526 x_multival_attr2_type := FND_API.G_MISS_CHAR;
527 x_multival_attr2_context := FND_API.G_MISS_CHAR;
528 x_multival_attribute2 := FND_API.G_MISS_CHAR;
529 x_multival_attr2_datatype := FND_API.G_MISS_CHAR;
530 x_organization_flag := FND_API.G_MISS_CHAR;
531 x_limit_exceed_action := FND_API.G_MISS_CHAR;
532 x_limit := FND_API.G_MISS_CHAR;
533 x_limit_level := FND_API.G_MISS_CHAR;
534 x_list_header := FND_API.G_MISS_CHAR;
535 x_list_line := FND_API.G_MISS_CHAR;
536 x_organization := FND_API.G_MISS_CHAR;
537
538 -- Load display out parameters if any
539
540 l_LIMITS_val_rec := QP_Limits_Util.Get_Values
541 ( p_LIMITS_rec => l_x_LIMITS_rec
542 , p_old_LIMITS_rec => l_LIMITS_rec
543 );
544
545 -- Return changed attributes.
546
547 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.amount,
548 l_LIMITS_rec.amount)
549 THEN
550 x_amount := l_x_LIMITS_rec.amount;
551 END IF;
552
553 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute1,
554 l_LIMITS_rec.attribute1)
555 THEN
556 x_attribute1 := l_x_LIMITS_rec.attribute1;
557 END IF;
558
559 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute10,
560 l_LIMITS_rec.attribute10)
561 THEN
562 x_attribute10 := l_x_LIMITS_rec.attribute10;
563 END IF;
564
565 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute11,
566 l_LIMITS_rec.attribute11)
567 THEN
568 x_attribute11 := l_x_LIMITS_rec.attribute11;
569 END IF;
570
571 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute12,
572 l_LIMITS_rec.attribute12)
573 THEN
574 x_attribute12 := l_x_LIMITS_rec.attribute12;
575 END IF;
576
577 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute13,
578 l_LIMITS_rec.attribute13)
579 THEN
580 x_attribute13 := l_x_LIMITS_rec.attribute13;
581 END IF;
582
583 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute14,
584 l_LIMITS_rec.attribute14)
585 THEN
586 x_attribute14 := l_x_LIMITS_rec.attribute14;
587 END IF;
588
589 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute15,
590 l_LIMITS_rec.attribute15)
591 THEN
592 x_attribute15 := l_x_LIMITS_rec.attribute15;
593 END IF;
594
595 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute2,
596 l_LIMITS_rec.attribute2)
597 THEN
598 x_attribute2 := l_x_LIMITS_rec.attribute2;
599 END IF;
600
601 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute3,
602 l_LIMITS_rec.attribute3)
603 THEN
604 x_attribute3 := l_x_LIMITS_rec.attribute3;
605 END IF;
606
607 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute4,
608 l_LIMITS_rec.attribute4)
609 THEN
610 x_attribute4 := l_x_LIMITS_rec.attribute4;
611 END IF;
612
613 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute5,
614 l_LIMITS_rec.attribute5)
615 THEN
616 x_attribute5 := l_x_LIMITS_rec.attribute5;
617 END IF;
618
619 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute6,
620 l_LIMITS_rec.attribute6)
621 THEN
622 x_attribute6 := l_x_LIMITS_rec.attribute6;
623 END IF;
624
625 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute7,
626 l_LIMITS_rec.attribute7)
627 THEN
628 x_attribute7 := l_x_LIMITS_rec.attribute7;
629 END IF;
630
631 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute8,
632 l_LIMITS_rec.attribute8)
633 THEN
634 x_attribute8 := l_x_LIMITS_rec.attribute8;
635 END IF;
636
637 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.attribute9,
638 l_LIMITS_rec.attribute9)
639 THEN
640 x_attribute9 := l_x_LIMITS_rec.attribute9;
641 END IF;
642
643 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.basis,
644 l_LIMITS_rec.basis)
645 THEN
646 x_basis := l_x_LIMITS_rec.basis;
647 END IF;
648
649 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.context,
650 l_LIMITS_rec.context)
651 THEN
652 x_context := l_x_LIMITS_rec.context;
653 END IF;
654
655 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.limit_exceed_action_code,
656 l_LIMITS_rec.limit_exceed_action_code)
657 THEN
658 x_limit_exceed_action_code := l_x_LIMITS_rec.limit_exceed_action_code;
659 x_limit_exceed_action := l_LIMITS_val_rec.limit_exceed_action;
660 END IF;
661
662 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.limit_hold_flag,
663 l_LIMITS_rec.limit_hold_flag)
664 THEN
665 x_limit_hold_flag := l_x_LIMITS_rec.limit_hold_flag;
666 END IF;
667
668 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.limit_id,
669 l_LIMITS_rec.limit_id)
670 THEN
671 x_limit_id := l_x_LIMITS_rec.limit_id;
672 x_limit := l_LIMITS_val_rec.limit;
673 END IF;
674
675 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.limit_level_code,
676 l_LIMITS_rec.limit_level_code)
677 THEN
678 x_limit_level_code := l_x_LIMITS_rec.limit_level_code;
679 x_limit_level := l_LIMITS_val_rec.limit_level;
680 END IF;
681
682 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.limit_number,
683 l_LIMITS_rec.limit_number)
684 THEN
685 x_limit_number := l_x_LIMITS_rec.limit_number;
686 END IF;
687
688 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.list_header_id,
689 l_LIMITS_rec.list_header_id)
690 THEN
691 x_list_header_id := l_x_LIMITS_rec.list_header_id;
692 x_list_header := l_LIMITS_val_rec.list_header;
693 END IF;
694
695 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attr1_type,
696 l_LIMITS_rec.multival_attr1_type)
697 THEN
698 x_multival_attr1_type := l_x_LIMITS_rec.multival_attr1_type;
699 END IF;
700
701 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attr1_context,
702 l_LIMITS_rec.multival_attr1_context)
703 THEN
704 x_multival_attr1_context := l_x_LIMITS_rec.multival_attr1_context;
705 END IF;
706
707 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attribute1,
708 l_LIMITS_rec.multival_attribute1)
709 THEN
710 x_multival_attribute1 := l_x_LIMITS_rec.multival_attribute1;
711 END IF;
712
713 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attr1_datatype,
714 l_LIMITS_rec.multival_attr1_datatype)
715 THEN
716 x_multival_attr1_datatype := l_x_LIMITS_rec.multival_attr1_datatype;
717 END IF;
718
719 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attr2_type,
720 l_LIMITS_rec.multival_attr2_type)
721 THEN
722 x_multival_attr2_type := l_x_LIMITS_rec.multival_attr2_type;
723 END IF;
724
725 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attr2_context,
726 l_LIMITS_rec.multival_attr2_context)
727 THEN
728 x_multival_attr2_context := l_x_LIMITS_rec.multival_attr2_context;
729 END IF;
730
731 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attribute2,
732 l_LIMITS_rec.multival_attribute2)
733 THEN
734 x_multival_attribute2 := l_x_LIMITS_rec.multival_attribute2;
735 END IF;
736
737 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.multival_attr2_datatype,
738 l_LIMITS_rec.multival_attr2_datatype)
739 THEN
740 x_multival_attr2_datatype := l_x_LIMITS_rec.multival_attr2_datatype;
741 END IF;
742
743
744 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.list_line_id,
745 l_LIMITS_rec.list_line_id)
746 THEN
747 x_list_line_id := l_x_LIMITS_rec.list_line_id;
748 x_list_line := l_LIMITS_val_rec.list_line;
749 END IF;
750
751 IF NOT QP_GLOBALS.Equal(l_x_LIMITS_rec.organization_flag,
752 l_LIMITS_rec.organization_flag)
753 THEN
754 x_organization_flag := l_x_LIMITS_rec.organization_flag;
755 x_organization := l_LIMITS_val_rec.organization;
756 END IF;
757
758
759 -- Write to cache.
760
761 Write_LIMITS
762 ( p_LIMITS_rec => l_x_LIMITS_rec
763 );
764
765 -- Set return status.
766
767 x_return_status := FND_API.G_RET_STS_SUCCESS;
768
769 -- Get message count and data
770
771 OE_MSG_PUB.Count_And_Get
772 ( p_count => x_msg_count
773 , p_data => x_msg_data
774 );
775
776
777 EXCEPTION
778
779 WHEN FND_API.G_EXC_ERROR THEN
780
781 x_return_status := FND_API.G_RET_STS_ERROR;
782
783 -- Get message count and data
784
785 OE_MSG_PUB.Count_And_Get
786 ( p_count => x_msg_count
787 , p_data => x_msg_data
788 );
789
790 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
791
792 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
793
794 -- Get message count and data
795
796 OE_MSG_PUB.Count_And_Get
797 ( p_count => x_msg_count
798 , p_data => x_msg_data
799 );
800
801 WHEN OTHERS THEN
802
803 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
804
805 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
806 THEN
807 OE_MSG_PUB.Add_Exc_Msg
808 ( G_PKG_NAME
809 , 'Change_Attribute'
810 );
811 END IF;
812
813 -- Get message count and data
814
815 OE_MSG_PUB.Count_And_Get
816 ( p_count => x_msg_count
817 , p_data => x_msg_data
818 );
819
820 END Change_Attribute;
821
822 -- Procedure Validate_And_Write
823 --
824
825 PROCEDURE Validate_And_Write
826 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
827 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
828 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
829 , p_limit_id IN NUMBER
830 , x_creation_date OUT NOCOPY /* file.sql.39 change */ DATE
831 , x_created_by OUT NOCOPY /* file.sql.39 change */ NUMBER
832 , x_last_update_date OUT NOCOPY /* file.sql.39 change */ DATE
833 , x_last_updated_by OUT NOCOPY /* file.sql.39 change */ NUMBER
834 , x_last_update_login OUT NOCOPY /* file.sql.39 change */ NUMBER
835 )
836 IS
837 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
838 l_old_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
839 l_control_rec QP_GLOBALS.Control_Rec_Type;
840 l_return_status VARCHAR2(1);
841 l_x_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
842 l_x_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
843 l_x_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
844 l_x_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
845 l_x_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
846 BEGIN
847
848 -- Set control flags.
849
850 l_control_rec.controlled_operation := TRUE;
851 l_control_rec.validate_entity := TRUE; -- This value should be set to TRUE later
852 l_control_rec.write_to_DB := TRUE;
853
854 l_control_rec.default_attributes := FALSE;
855 l_control_rec.change_attributes := FALSE;
856 l_control_rec.process := FALSE;
857
858 -- Instruct API to retain its caches
859
860 l_control_rec.clear_api_cache := FALSE;
861 l_control_rec.clear_api_requests := FALSE;
862
863 -- Read LIMITS from cache
864
865 l_old_LIMITS_rec := Get_LIMITS
866 ( p_db_record => TRUE
867 , p_limit_id => p_limit_id
868 );
869
870 l_LIMITS_rec := Get_LIMITS
871 ( p_db_record => FALSE
872 , p_limit_id => p_limit_id
873 );
874
875 -- Set Operation.
876
877 IF FND_API.To_Boolean(l_LIMITS_rec.db_flag) THEN
878 l_LIMITS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
879 ELSE
880 l_LIMITS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
881 END IF;
882
883 -- Call QP_Limits_PVT.Process_Limits
884
885 QP_Limits_PVT.Process_Limits
886 ( p_api_version_number => 1.0
887 , p_init_msg_list => FND_API.G_TRUE
888 , x_return_status => l_return_status
889 , x_msg_count => x_msg_count
890 , x_msg_data => x_msg_data
891 , p_control_rec => l_control_rec
892 , p_LIMITS_rec => l_LIMITS_rec
893 , p_old_LIMITS_rec => l_old_LIMITS_rec
894 , x_LIMITS_rec => l_x_LIMITS_rec
895 , x_LIMIT_ATTRS_tbl => l_x_LIMIT_ATTRS_tbl
896 , x_LIMIT_BALANCES_tbl => l_x_LIMIT_BALANCES_tbl
897 );
898
899 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
900 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
901 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
902 RAISE FND_API.G_EXC_ERROR;
903 END IF;
904
905
906 -- Load OUT parameters.
907
908
909 x_creation_date := l_x_LIMITS_rec.creation_date;
910 x_created_by := l_x_LIMITS_rec.created_by;
911 x_last_update_date := l_x_LIMITS_rec.last_update_date;
912 x_last_updated_by := l_x_LIMITS_rec.last_updated_by;
913 x_last_update_login := l_x_LIMITS_rec.last_update_login;
914
915 -- Clear LIMITS record cache
916
917 Clear_LIMITS;
918
919 -- Keep track of performed operations.
920
921 l_old_LIMITS_rec.operation := l_LIMITS_rec.operation;
922
923
924 -- Set return status.
925
926 x_return_status := FND_API.G_RET_STS_SUCCESS;
927
928 -- Get message count and data
929
930 OE_MSG_PUB.Count_And_Get
931 ( p_count => x_msg_count
932 , p_data => x_msg_data
933 );
934
935
936 EXCEPTION
937
938 WHEN FND_API.G_EXC_ERROR THEN
939
940 x_return_status := FND_API.G_RET_STS_ERROR;
941
942 -- Get message count and data
943
944 OE_MSG_PUB.Count_And_Get
945 ( p_count => x_msg_count
946 , p_data => x_msg_data
947 );
948
949 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
950
951 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
952
953 -- Get message count and data
954
955 OE_MSG_PUB.Count_And_Get
956 ( p_count => x_msg_count
957 , p_data => x_msg_data
958 );
959
960 WHEN OTHERS THEN
961
962 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
963
964 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
965 THEN
966 OE_MSG_PUB.Add_Exc_Msg
967 ( G_PKG_NAME
968 , 'Validate_And_Write'
969 );
970 END IF;
971
972 -- Get message count and data
973
974 OE_MSG_PUB.Count_And_Get
975 ( p_count => x_msg_count
976 , p_data => x_msg_data
977 );
978
979 END Validate_And_Write;
980
981 -- Procedure Delete_Row
982 --
983
984 PROCEDURE Delete_Row
985 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
986 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
987 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
988 , p_limit_id IN NUMBER
989 )
990 IS
991 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
992 l_control_rec QP_GLOBALS.Control_Rec_Type;
993 l_return_status VARCHAR2(1);
994 l_x_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
995 l_x_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
996 l_x_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
997 l_x_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
998 l_x_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
999 BEGIN
1000
1001 -- Set control flags.
1002
1003 l_control_rec.controlled_operation := TRUE;
1004 l_control_rec.validate_entity := TRUE;
1005 l_control_rec.write_to_DB := TRUE;
1006
1007 l_control_rec.default_attributes := FALSE;
1008 l_control_rec.change_attributes := FALSE;
1009 l_control_rec.process := FALSE;
1010
1011 -- Instruct API to retain its caches
1012
1013 l_control_rec.clear_api_cache := FALSE;
1014 l_control_rec.clear_api_requests := FALSE;
1015
1016 -- Read DB record from cache
1017
1018 l_LIMITS_rec := Get_LIMITS
1019 ( p_db_record => TRUE
1020 , p_limit_id => p_limit_id
1021 );
1022
1023 -- Set Operation.
1024
1025 l_LIMITS_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1026
1027 -- Call QP_Limits_PVT.Process_Limits
1028
1029 QP_Limits_PVT.Process_Limits
1030 ( p_api_version_number => 1.0
1031 , p_init_msg_list => FND_API.G_TRUE
1032 , x_return_status => l_return_status
1033 , x_msg_count => x_msg_count
1034 , x_msg_data => x_msg_data
1035 , p_control_rec => l_control_rec
1036 , p_LIMITS_rec => l_LIMITS_rec
1037 , x_LIMITS_rec => l_x_LIMITS_rec
1038 , x_LIMIT_ATTRS_tbl => l_x_LIMIT_ATTRS_tbl
1039 , x_LIMIT_BALANCES_tbl => l_x_LIMIT_BALANCES_tbl
1040 );
1041
1042 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1043 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1044 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1045 RAISE FND_API.G_EXC_ERROR;
1046 END IF;
1047
1048
1049 -- Clear LIMITS record cache
1050
1051 Clear_LIMITS;
1052
1053 -- Set return status.
1054
1055 x_return_status := FND_API.G_RET_STS_SUCCESS;
1056
1057 -- Get message count and data
1058
1059 OE_MSG_PUB.Count_And_Get
1060 ( p_count => x_msg_count
1061 , p_data => x_msg_data
1062 );
1063
1064
1065 EXCEPTION
1066
1067 WHEN FND_API.G_EXC_ERROR THEN
1068
1069 x_return_status := FND_API.G_RET_STS_ERROR;
1070
1071 -- Get message count and data
1072
1073 OE_MSG_PUB.Count_And_Get
1074 ( p_count => x_msg_count
1075 , p_data => x_msg_data
1076 );
1077
1078 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1079
1080 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1081
1082 -- Get message count and data
1083
1084 OE_MSG_PUB.Count_And_Get
1085 ( p_count => x_msg_count
1086 , p_data => x_msg_data
1087 );
1088
1089 WHEN OTHERS THEN
1090
1091 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1092
1093 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1094 THEN
1095 OE_MSG_PUB.Add_Exc_Msg
1096 ( G_PKG_NAME
1097 , 'Delete_Row'
1098 );
1099 END IF;
1100
1101 -- Get message count and data
1102
1103 OE_MSG_PUB.Count_And_Get
1104 ( p_count => x_msg_count
1105 , p_data => x_msg_data
1106 );
1107
1108 END Delete_Row;
1109
1110 -- Procedure Process_Entity
1111 --
1112
1113 PROCEDURE Process_Entity
1114 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1115 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1116 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1117 )
1118 IS
1119 l_control_rec QP_GLOBALS.Control_Rec_Type;
1120 l_return_status VARCHAR2(1);
1121 l_x_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1122 l_x_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1123 l_x_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
1124 l_x_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
1125 l_x_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
1126 BEGIN
1127
1128 -- Set control flags.
1129
1130 l_control_rec.controlled_operation := TRUE;
1131 l_control_rec.process := TRUE;
1132 l_control_rec.process_entity := QP_GLOBALS.G_ENTITY_LIMITS;
1133
1134 l_control_rec.default_attributes := FALSE;
1135 l_control_rec.change_attributes := FALSE;
1136 l_control_rec.validate_entity := FALSE;
1137 l_control_rec.write_to_DB := FALSE;
1138
1139 -- Instruct API to clear its request table
1140
1141 l_control_rec.clear_api_cache := FALSE;
1142 l_control_rec.clear_api_requests := FALSE;
1143
1144 -- Call QP_Limits_PVT.Process_Limits
1145
1146 QP_Limits_PVT.Process_Limits
1147 ( p_api_version_number => 1.0
1148 , p_init_msg_list => FND_API.G_TRUE
1149 , x_return_status => l_return_status
1150 , x_msg_count => x_msg_count
1151 , x_msg_data => x_msg_data
1152 , p_control_rec => l_control_rec
1153 , x_LIMITS_rec => l_x_LIMITS_rec
1154 , x_LIMIT_ATTRS_tbl => l_x_LIMIT_ATTRS_tbl
1155 , x_LIMIT_BALANCES_tbl => l_x_LIMIT_BALANCES_tbl
1156 );
1157
1158 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1159 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1160 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1161 RAISE FND_API.G_EXC_ERROR;
1162 END IF;
1163
1164
1165 -- Set return status.
1166
1167 x_return_status := FND_API.G_RET_STS_SUCCESS;
1168
1169 -- Get message count and data
1170
1171 OE_MSG_PUB.Count_And_Get
1172 ( p_count => x_msg_count
1173 , p_data => x_msg_data
1174 );
1175
1176
1177 EXCEPTION
1178
1179 WHEN FND_API.G_EXC_ERROR THEN
1180
1181 x_return_status := FND_API.G_RET_STS_ERROR;
1182
1183 -- Get message count and data
1184
1185 OE_MSG_PUB.Count_And_Get
1186 ( p_count => x_msg_count
1187 , p_data => x_msg_data
1188 );
1189
1190 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1191
1192 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1193
1194 -- Get message count and data
1195
1196 OE_MSG_PUB.Count_And_Get
1197 ( p_count => x_msg_count
1198 , p_data => x_msg_data
1199 );
1200
1201 WHEN OTHERS THEN
1202
1203 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1204
1205 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1206 THEN
1207 OE_MSG_PUB.Add_Exc_Msg
1208 ( G_PKG_NAME
1209 , 'Process_Entity'
1210 );
1211 END IF;
1212
1213 -- Get message count and data
1214
1215 OE_MSG_PUB.Count_And_Get
1216 ( p_count => x_msg_count
1217 , p_data => x_msg_data
1218 );
1219
1220 END Process_Entity;
1221
1222 -- Procedure Process_Object
1223 --
1224
1225 PROCEDURE Process_Object
1226 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1227 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1228 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1229 )
1230 IS
1231 l_control_rec QP_GLOBALS.Control_Rec_Type;
1232 l_return_status VARCHAR2(1);
1233 l_x_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1234 l_x_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1235 l_x_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
1236 l_x_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
1237 l_x_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
1238 BEGIN
1239
1240 -- Set control flags.
1241
1242 l_control_rec.controlled_operation := TRUE;
1243 l_control_rec.process := TRUE;
1244 l_control_rec.process_entity := QP_GLOBALS.G_ENTITY_ALL;
1245
1246 l_control_rec.default_attributes := FALSE;
1247 l_control_rec.change_attributes := FALSE;
1248 l_control_rec.validate_entity := FALSE;
1249 l_control_rec.write_to_DB := FALSE;
1250
1251 -- Instruct API to clear its request table
1252
1253 l_control_rec.clear_api_cache := FALSE;
1254 l_control_rec.clear_api_requests := TRUE;
1255
1256 -- Call QP_Limits_PVT.Process_Limits
1257
1258 QP_Limits_PVT.Process_Limits
1259 ( p_api_version_number => 1.0
1260 , p_init_msg_list => FND_API.G_TRUE
1261 , x_return_status => l_return_status
1262 , x_msg_count => x_msg_count
1263 , x_msg_data => x_msg_data
1264 , p_control_rec => l_control_rec
1265 , x_LIMITS_rec => l_x_LIMITS_rec
1266 , x_LIMIT_ATTRS_tbl => l_x_LIMIT_ATTRS_tbl
1267 , x_LIMIT_BALANCES_tbl => l_x_LIMIT_BALANCES_tbl
1268 );
1269
1270 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1271 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1272 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1273 RAISE FND_API.G_EXC_ERROR;
1274 END IF;
1275
1276
1277 -- Set return status.
1278
1279 x_return_status := FND_API.G_RET_STS_SUCCESS;
1280
1281 -- Get message count and data
1282
1283 OE_MSG_PUB.Count_And_Get
1284 ( p_count => x_msg_count
1285 , p_data => x_msg_data
1286 );
1287
1288
1289 EXCEPTION
1290
1291 WHEN FND_API.G_EXC_ERROR THEN
1292
1293 x_return_status := FND_API.G_RET_STS_ERROR;
1294
1295 -- Get message count and data
1296
1297 OE_MSG_PUB.Count_And_Get
1298 ( p_count => x_msg_count
1299 , p_data => x_msg_data
1300 );
1301
1302 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1303
1304 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1305
1306 -- Get message count and data
1307
1308 OE_MSG_PUB.Count_And_Get
1309 ( p_count => x_msg_count
1310 , p_data => x_msg_data
1311 );
1312
1313 WHEN OTHERS THEN
1314
1315 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1316
1317 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1318 THEN
1319 OE_MSG_PUB.Add_Exc_Msg
1320 ( G_PKG_NAME
1321 , 'Process_Object'
1322 );
1323 END IF;
1324
1325 -- Get message count and data
1326
1327 OE_MSG_PUB.Count_And_Get
1328 ( p_count => x_msg_count
1329 , p_data => x_msg_data
1330 );
1331
1332 END Process_Object;
1333
1334 -- Procedure lock_Row
1335 --
1336
1337 PROCEDURE Lock_Row
1338 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1339 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1340 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1341 , p_amount IN NUMBER
1342 , p_attribute1 IN VARCHAR2
1343 , p_attribute10 IN VARCHAR2
1344 , p_attribute11 IN VARCHAR2
1345 , p_attribute12 IN VARCHAR2
1346 , p_attribute13 IN VARCHAR2
1347 , p_attribute14 IN VARCHAR2
1348 , p_attribute15 IN VARCHAR2
1349 , p_attribute2 IN VARCHAR2
1350 , p_attribute3 IN VARCHAR2
1351 , p_attribute4 IN VARCHAR2
1352 , p_attribute5 IN VARCHAR2
1353 , p_attribute6 IN VARCHAR2
1354 , p_attribute7 IN VARCHAR2
1355 , p_attribute8 IN VARCHAR2
1356 , p_attribute9 IN VARCHAR2
1357 , p_basis IN VARCHAR2
1358 , p_context IN VARCHAR2
1359 , p_created_by IN NUMBER
1360 , p_creation_date IN DATE
1361 , p_last_updated_by IN NUMBER
1362 , p_last_update_date IN DATE
1363 , p_last_update_login IN NUMBER
1364 , p_limit_exceed_action_code IN VARCHAR2
1365 , p_limit_hold_flag IN VARCHAR2
1366 , p_limit_id IN NUMBER
1367 , p_limit_level_code IN VARCHAR2
1368 , p_limit_number IN NUMBER
1369 , p_list_header_id IN NUMBER
1370 , p_list_line_id IN NUMBER
1371 , p_multival_attr1_type IN VARCHAR2
1372 , p_multival_attr1_context IN VARCHAR2
1373 , p_multival_attribute1 IN VARCHAR2
1374 , p_multival_attr1_datatype IN VARCHAR2
1375 , p_multival_attr2_type IN VARCHAR2
1376 , p_multival_attr2_context IN VARCHAR2
1377 , p_multival_attribute2 IN VARCHAR2
1378 , p_multival_attr2_datatype IN VARCHAR2
1379 , p_organization_flag IN VARCHAR2
1380 , p_program_application_id IN NUMBER
1381 , p_program_id IN NUMBER
1382 , p_program_update_date IN DATE
1383 , p_request_id IN NUMBER
1384 )
1385 IS
1386 l_return_status VARCHAR2(1);
1387 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1388 l_x_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1389 l_x_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1390 l_x_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
1391 l_x_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
1392 l_x_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
1393 BEGIN
1394
1395 -- Load LIMITS record
1396
1397 l_LIMITS_rec.amount := p_amount;
1398 l_LIMITS_rec.attribute1 := p_attribute1;
1399 l_LIMITS_rec.attribute10 := p_attribute10;
1400 l_LIMITS_rec.attribute11 := p_attribute11;
1401 l_LIMITS_rec.attribute12 := p_attribute12;
1402 l_LIMITS_rec.attribute13 := p_attribute13;
1403 l_LIMITS_rec.attribute14 := p_attribute14;
1404 l_LIMITS_rec.attribute15 := p_attribute15;
1405 l_LIMITS_rec.attribute2 := p_attribute2;
1406 l_LIMITS_rec.attribute3 := p_attribute3;
1407 l_LIMITS_rec.attribute4 := p_attribute4;
1408 l_LIMITS_rec.attribute5 := p_attribute5;
1409 l_LIMITS_rec.attribute6 := p_attribute6;
1410 l_LIMITS_rec.attribute7 := p_attribute7;
1411 l_LIMITS_rec.attribute8 := p_attribute8;
1412 l_LIMITS_rec.attribute9 := p_attribute9;
1413 l_LIMITS_rec.basis := p_basis;
1414 l_LIMITS_rec.context := p_context;
1415 l_LIMITS_rec.created_by := p_created_by;
1416 l_LIMITS_rec.creation_date := p_creation_date;
1417 l_LIMITS_rec.last_updated_by := p_last_updated_by;
1418 l_LIMITS_rec.last_update_date := p_last_update_date;
1419 l_LIMITS_rec.last_update_login := p_last_update_login;
1420 l_LIMITS_rec.limit_exceed_action_code := p_limit_exceed_action_code;
1421 l_LIMITS_rec.limit_hold_flag := p_limit_hold_flag;
1422 l_LIMITS_rec.limit_id := p_limit_id;
1423 l_LIMITS_rec.limit_level_code := p_limit_level_code;
1424 l_LIMITS_rec.limit_number := p_limit_number;
1425 l_LIMITS_rec.list_header_id := p_list_header_id;
1426 l_LIMITS_rec.list_line_id := p_list_line_id;
1427 l_LIMITS_rec.multival_attr1_type := p_multival_attr1_type;
1428 l_LIMITS_rec.multival_attr1_context := p_multival_attr1_context;
1429 l_LIMITS_rec.multival_attribute1 := p_multival_attribute1;
1430 l_LIMITS_rec.multival_attr1_datatype := p_multival_attr1_datatype;
1431 l_LIMITS_rec.multival_attr2_type := p_multival_attr2_type;
1432 l_LIMITS_rec.multival_attr2_context := p_multival_attr2_context;
1433 l_LIMITS_rec.multival_attribute2 := p_multival_attribute2;
1434 l_LIMITS_rec.multival_attr2_datatype := p_multival_attr2_datatype;
1435 l_LIMITS_rec.organization_flag := p_organization_flag;
1436 l_LIMITS_rec.program_application_id := p_program_application_id;
1437 l_LIMITS_rec.program_id := p_program_id;
1438 l_LIMITS_rec.program_update_date := p_program_update_date;
1439 l_LIMITS_rec.request_id := p_request_id;
1440
1441 -- Call QP_Limits_PVT.Lock_Limits
1442
1443 QP_Limits_PVT.Lock_Limits
1444 ( p_api_version_number => 1.0
1445 , p_init_msg_list => FND_API.G_TRUE
1446 , x_return_status => l_return_status
1447 , x_msg_count => x_msg_count
1448 , x_msg_data => x_msg_data
1449 , p_LIMITS_rec => l_LIMITS_rec
1450 , x_LIMITS_rec => l_x_LIMITS_rec
1451 , x_LIMIT_ATTRS_tbl => l_x_LIMIT_ATTRS_tbl
1452 , x_LIMIT_BALANCES_tbl => l_x_LIMIT_BALANCES_tbl
1453 );
1454
1455 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1456
1457 -- Set DB flag and write record to cache.
1458
1459 l_x_LIMITS_rec.db_flag := FND_API.G_TRUE;
1460
1461 Write_LIMITS
1462 ( p_LIMITS_rec => l_x_LIMITS_rec
1463 , p_db_record => TRUE
1464 );
1465
1466 END IF;
1467
1468 -- Set return status.
1469
1470 x_return_status := l_return_status;
1471
1472 -- Get message count and data
1473
1474 OE_MSG_PUB.Count_And_Get
1475 ( p_count => x_msg_count
1476 , p_data => x_msg_data
1477 );
1478
1479
1480 EXCEPTION
1481
1482 WHEN OTHERS THEN
1483
1484 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1485 THEN
1486 OE_MSG_PUB.Add_Exc_Msg
1487 ( G_PKG_NAME
1488 , 'Lock_Row'
1489 );
1490 END IF;
1491
1492 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1493
1494 -- Get message count and data
1495
1496 OE_MSG_PUB.Count_And_Get
1497 ( p_count => x_msg_count
1498 , p_data => x_msg_data
1499 );
1500
1501
1502
1503 END Lock_Row;
1504
1505 -- Procedures maintaining LIMITS record cache.
1506
1507 PROCEDURE Write_LIMITS
1508 ( p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
1509 , p_db_record IN BOOLEAN := FALSE
1510 )
1511 IS
1512 BEGIN
1513
1514 g_LIMITS_rec := p_LIMITS_rec;
1515
1516 IF p_db_record THEN
1517
1518 g_db_LIMITS_rec := p_LIMITS_rec;
1519
1520 END IF;
1521
1522 END Write_Limits;
1523
1524 FUNCTION Get_LIMITS
1525 ( p_db_record IN BOOLEAN := FALSE
1526 , p_limit_id IN NUMBER
1527 )
1528 RETURN QP_Limits_PUB.Limits_Rec_Type
1529 IS
1530 BEGIN
1531
1532 IF p_limit_id <> g_LIMITS_rec.limit_id
1533 THEN
1534
1535 -- Query row from DB
1536
1537 g_LIMITS_rec := QP_Limits_Util.Query_Row
1538 ( p_limit_id => p_limit_id
1539 );
1540
1541 g_LIMITS_rec.db_flag := FND_API.G_TRUE;
1542
1543 -- Load DB record
1544
1545 g_db_LIMITS_rec := g_LIMITS_rec;
1546
1547 END IF;
1548
1549 IF p_db_record THEN
1550
1551 RETURN g_db_LIMITS_rec;
1552
1553 ELSE
1554
1555 RETURN g_LIMITS_rec;
1556
1557 END IF;
1558
1559 END Get_Limits;
1560
1561 PROCEDURE Clear_Limits
1562 IS
1563 BEGIN
1564
1565 g_LIMITS_rec := QP_Limits_PUB.G_MISS_LIMITS_REC;
1566 g_db_LIMITS_rec := QP_Limits_PUB.G_MISS_LIMITS_REC;
1567
1568 END Clear_Limits;
1569
1570 END QP_QP_Form_Limits;