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