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