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