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