DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_PRICE_LIST_LINE_UTIL

Source


1 PACKAGE BODY QP_Price_List_Line_Util AS
2 /* $Header: QPXUPLLB.pls 120.10.12010000.6 2009/12/15 05:35:59 hmohamme ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Price_List_Line_Util';
7 --introduced the constant for performance problem
8 G_ORGANIZATION_ID             CONSTANT VARCHAR2(30) := TO_CHAR(QP_UTIL.Get_Item_Validation_Org);
9 
10 --  Procedure Clear_Dependent_Attr
11 
12 PROCEDURE Clear_Dependent_Attr
13 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
14 ,   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
15 ,   p_old_PRICE_LIST_LINE_rec       IN  QP_Price_List_PUB.Price_List_Line_Rec_Type :=
16                                         QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
17 ,   x_PRICE_LIST_LINE_rec           OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Line_Rec_Type
18 )
19 IS
20 l_index                       NUMBER := 0;
21 l_src_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
22 l_dep_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
23 BEGIN
24 
25     --  Load out record
26 
27     x_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
28 
29     --  If attr_id is missing compare old and new records and for
30     --  every changed attribute clear its dependent fields.
31 
32     IF p_attr_id = FND_API.G_MISS_NUM THEN
33 
34         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_qty,p_old_PRICE_LIST_LINE_rec.accrual_qty)
35         THEN
36             l_index := l_index + 1;
37             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_QTY;
38         END IF;
39 
40         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,p_old_PRICE_LIST_LINE_rec.accrual_uom_code)
41         THEN
42             l_index := l_index + 1;
43             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_UOM;
44         END IF;
45 
46         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,p_old_PRICE_LIST_LINE_rec.arithmetic_operator)
47         THEN
48             l_index := l_index + 1;
49             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ARITHMETIC_OPERATOR;
50         END IF;
51 
52         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,p_old_PRICE_LIST_LINE_rec.attribute1)
53         THEN
54             l_index := l_index + 1;
55             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE1;
56         END IF;
57 
58         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,p_old_PRICE_LIST_LINE_rec.attribute10)
59         THEN
60             l_index := l_index + 1;
61             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE10;
62         END IF;
63 
64         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,p_old_PRICE_LIST_LINE_rec.attribute11)
65         THEN
66             l_index := l_index + 1;
67             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE11;
68         END IF;
69 
70         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,p_old_PRICE_LIST_LINE_rec.attribute12)
71         THEN
72             l_index := l_index + 1;
73             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE12;
74         END IF;
75 
76         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,p_old_PRICE_LIST_LINE_rec.attribute13)
77         THEN
78             l_index := l_index + 1;
79             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE13;
80         END IF;
81 
82         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,p_old_PRICE_LIST_LINE_rec.attribute14)
83         THEN
84             l_index := l_index + 1;
85             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE14;
86         END IF;
87 
88         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,p_old_PRICE_LIST_LINE_rec.attribute15)
89         THEN
90             l_index := l_index + 1;
91             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE15;
92         END IF;
93 
94         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,p_old_PRICE_LIST_LINE_rec.attribute2)
95         THEN
96             l_index := l_index + 1;
97             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE2;
98         END IF;
99 
100         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,p_old_PRICE_LIST_LINE_rec.attribute3)
101         THEN
102             l_index := l_index + 1;
103             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE3;
104         END IF;
105 
106         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,p_old_PRICE_LIST_LINE_rec.attribute4)
107         THEN
108             l_index := l_index + 1;
109             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE4;
110         END IF;
111 
112         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,p_old_PRICE_LIST_LINE_rec.attribute5)
113         THEN
114             l_index := l_index + 1;
115             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE5;
116         END IF;
117 
118         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,p_old_PRICE_LIST_LINE_rec.attribute6)
119         THEN
120             l_index := l_index + 1;
121             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE6;
122         END IF;
123 
124         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,p_old_PRICE_LIST_LINE_rec.attribute7)
125         THEN
126             l_index := l_index + 1;
127             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE7;
128         END IF;
129 
130         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,p_old_PRICE_LIST_LINE_rec.attribute8)
131         THEN
132             l_index := l_index + 1;
133             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE8;
134         END IF;
135 
136         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,p_old_PRICE_LIST_LINE_rec.attribute9)
137         THEN
138             l_index := l_index + 1;
139             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE9;
140         END IF;
141 
142         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,p_old_PRICE_LIST_LINE_rec.automatic_flag)
143         THEN
144             l_index := l_index + 1;
145             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_AUTOMATIC;
146         END IF;
147 
148         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_qty,p_old_PRICE_LIST_LINE_rec.base_qty)
149         THEN
150             l_index := l_index + 1;
151             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_QTY;
152         END IF;
153 
154         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,p_old_PRICE_LIST_LINE_rec.base_uom_code)
155         THEN
156             l_index := l_index + 1;
157             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_UOM;
158         END IF;
159 
160         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.comments,p_old_PRICE_LIST_LINE_rec.comments)
161         THEN
162             l_index := l_index + 1;
163             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_COMMENTS;
164         END IF;
165 
166         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.context,p_old_PRICE_LIST_LINE_rec.context)
167         THEN
168             l_index := l_index + 1;
169             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CONTEXT;
170         END IF;
171 
172         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.created_by,p_old_PRICE_LIST_LINE_rec.created_by)
173         THEN
174             l_index := l_index + 1;
175             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATED_BY;
176         END IF;
177 
178         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.creation_date,p_old_PRICE_LIST_LINE_rec.creation_date)
179         THEN
180             l_index := l_index + 1;
181             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATION_DATE;
182         END IF;
183 
184         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.effective_period_uom,p_old_PRICE_LIST_LINE_rec.effective_period_uom)
185         THEN
186             l_index := l_index + 1;
187             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_EFFECTIVE_PERIOD_UOM;
188         END IF;
189 
190         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.end_date_active,p_old_PRICE_LIST_LINE_rec.end_date_active)
191         THEN
192             l_index := l_index + 1;
193             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_END_DATE_ACTIVE;
194         END IF;
195 
196         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.estim_accrual_rate,p_old_PRICE_LIST_LINE_rec.estim_accrual_rate)
197         THEN
198             l_index := l_index + 1;
199             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ESTIM_ACCRUAL_RATE;
200         END IF;
201 
202         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,p_old_PRICE_LIST_LINE_rec.generate_using_formula_id)
203         THEN
204             l_index := l_index + 1;
205             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_GENERATE_USING_FORMULA;
206         END IF;
207 
208         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,p_old_PRICE_LIST_LINE_rec.inventory_item_id)
209         THEN
210             l_index := l_index + 1;
211             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_INVENTORY_ITEM;
212         END IF;
213 
214         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_updated_by,p_old_PRICE_LIST_LINE_rec.last_updated_by)
215         THEN
216             l_index := l_index + 1;
217             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATED_BY;
218         END IF;
219 
220         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_date,p_old_PRICE_LIST_LINE_rec.last_update_date)
221         THEN
222             l_index := l_index + 1;
223             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_DATE;
224         END IF;
225 
226         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_login,p_old_PRICE_LIST_LINE_rec.last_update_login)
227         THEN
228             l_index := l_index + 1;
229             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_LOGIN;
230         END IF;
231 
232         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,p_old_PRICE_LIST_LINE_rec.list_header_id)
233         THEN
234             l_index := l_index + 1;
235             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_HEADER;
236         END IF;
237 
238         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,p_old_PRICE_LIST_LINE_rec.list_line_id)
239         THEN
240             l_index := l_index + 1;
241             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE;
242         END IF;
243 
244         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,p_old_PRICE_LIST_LINE_rec.list_line_type_code)
245         THEN
246             l_index := l_index + 1;
247             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE_TYPE;
248         END IF;
249 
250         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_price,p_old_PRICE_LIST_LINE_rec.list_price)
251         THEN
252             l_index := l_index + 1;
253             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_PRICE;
254         END IF;
255 
256         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.from_rltd_modifier_id,p_old_PRICE_LIST_LINE_rec.from_rltd_modifier_id)
257         THEN
258             l_index := l_index + 1;
259             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_FROM_RLTD_MODIFIER;
260         END IF;
261 
262         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rltd_modifier_group_no,p_old_PRICE_LIST_LINE_rec.rltd_modifier_group_no)
263         THEN
264             l_index := l_index + 1;
265             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RLTD_MODIFIER_GROUP_NO;
266         END IF;
267 
268         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.product_precedence,p_old_PRICE_LIST_LINE_rec.product_precedence)
269         THEN
270             l_index := l_index + 1;
271             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRODUCT_PRECEDENCE;
272         END IF;
273 
274 
275         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,p_old_PRICE_LIST_LINE_rec.modifier_level_code)
276         THEN
277             l_index := l_index + 1;
278             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_MODIFIER_LEVEL;
279         END IF;
280 
281         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.number_effective_periods,p_old_PRICE_LIST_LINE_rec.number_effective_periods)
282         THEN
283             l_index := l_index + 1;
284             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_NUMBER_EFFECTIVE_PERIODS;
285         END IF;
286 
287         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.operand,p_old_PRICE_LIST_LINE_rec.operand)
288         THEN
289             l_index := l_index + 1;
290             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OPERAND;
291         END IF;
292 
293         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,p_old_PRICE_LIST_LINE_rec.organization_id)
294         THEN
295             l_index := l_index + 1;
296             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ORGANIZATION;
297         END IF;
298 
299         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,p_old_PRICE_LIST_LINE_rec.override_flag)
300         THEN
301             l_index := l_index + 1;
302             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OVERRIDE;
303         END IF;
304 
305         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.percent_price,p_old_PRICE_LIST_LINE_rec.percent_price)
306         THEN
307             l_index := l_index + 1;
308             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PERCENT_PRICE;
309         END IF;
310 
311         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,p_old_PRICE_LIST_LINE_rec.price_break_type_code)
312         THEN
313             l_index := l_index + 1;
314             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BREAK_TYPE;
315         END IF;
316 
317         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,p_old_PRICE_LIST_LINE_rec.price_by_formula_id)
318         THEN
319             l_index := l_index + 1;
320             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BY_FORMULA;
321         END IF;
322 
323         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,p_old_PRICE_LIST_LINE_rec.primary_uom_flag)
324         THEN
325             l_index := l_index + 1;
326             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRIMARY_UOM;
327         END IF;
328 
329         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag,p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag)
330         THEN
331             l_index := l_index + 1;
332             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRINT_ON_INVOICE;
333         END IF;
334 
335         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_application_id,p_old_PRICE_LIST_LINE_rec.program_application_id)
336         THEN
337             l_index := l_index + 1;
338             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_APPLICATION;
339         END IF;
340 
341         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_id,p_old_PRICE_LIST_LINE_rec.program_id)
342         THEN
343             l_index := l_index + 1;
344             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM;
345         END IF;
346 
347         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_update_date,p_old_PRICE_LIST_LINE_rec.program_update_date)
348         THEN
349             l_index := l_index + 1;
350             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_UPDATE_DATE;
351         END IF;
352 
353         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
354         THEN
355             l_index := l_index + 1;
356             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REBATE_TRANSACTION_TYPE;
357         END IF;
358 
359         -- block pricing
360         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.recurring_value, p_old_PRICE_LIST_LINE_rec.recurring_value)
361         THEN
362           l_index := l_index+1;
363           l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RECURRING_VALUE;
364         END IF;
365 
366         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,p_old_PRICE_LIST_LINE_rec.related_item_id)
367         THEN
368             l_index := l_index + 1;
369             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATED_ITEM;
370         END IF;
371 
372         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,p_old_PRICE_LIST_LINE_rec.relationship_type_id)
373         THEN
374             l_index := l_index + 1;
375             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATIONSHIP_TYPE;
376         END IF;
377 
378         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,p_old_PRICE_LIST_LINE_rec.reprice_flag)
379         THEN
380             l_index := l_index + 1;
381             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REPRICE;
382         END IF;
383 
384         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.request_id,p_old_PRICE_LIST_LINE_rec.request_id)
385         THEN
386             l_index := l_index + 1;
387             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REQUEST;
388         END IF;
389 
390         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision,p_old_PRICE_LIST_LINE_rec.revision)
391         THEN
392             l_index := l_index + 1;
393             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION;
394         END IF;
395 
396         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_date,p_old_PRICE_LIST_LINE_rec.revision_date)
397         THEN
398             l_index := l_index + 1;
399             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_DATE;
400         END IF;
401 
402         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,p_old_PRICE_LIST_LINE_rec.revision_reason_code)
403         THEN
404             l_index := l_index + 1;
405             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_REASON;
406         END IF;
407 
408         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.start_date_active,p_old_PRICE_LIST_LINE_rec.start_date_active)
409         THEN
410             l_index := l_index + 1;
411             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_START_DATE_ACTIVE;
412         END IF;
413 
414         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_attribute,p_old_PRICE_LIST_LINE_rec.substitution_attribute)
415         THEN
416             l_index := l_index + 1;
417             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_ATTRIBUTE;
418         END IF;
419 
420         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_context,p_old_PRICE_LIST_LINE_rec.substitution_context)
421         THEN
422             l_index := l_index + 1;
423             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_CONTEXT;
424         END IF;
425 
426         IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_value,p_old_PRICE_LIST_LINE_rec.substitution_value)
427         THEN
428             l_index := l_index + 1;
429             l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_VALUE;
430         END IF;
431 
432 	IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id, p_old_PRICE_LIST_LINE_rec.customer_item_id)
433 	THEN
434 	    l_index := l_index + 1;
435 	    l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CUSTOMER_ITEM_ID;
436 	END IF;
437 
438     ELSIF p_attr_id = G_ACCRUAL_QTY THEN
439         l_index := l_index + 1;
440         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_QTY;
441     ELSIF p_attr_id = G_ACCRUAL_UOM THEN
442         l_index := l_index + 1;
443         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_UOM;
444     ELSIF p_attr_id = G_ARITHMETIC_OPERATOR THEN
445         l_index := l_index + 1;
446         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ARITHMETIC_OPERATOR;
447     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
448         l_index := l_index + 1;
449         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE1;
450     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
451         l_index := l_index + 1;
452         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE10;
453     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
454         l_index := l_index + 1;
455         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE11;
456     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
457         l_index := l_index + 1;
458         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE12;
459     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
460         l_index := l_index + 1;
461         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE13;
462     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
463         l_index := l_index + 1;
464         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE14;
465     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
466         l_index := l_index + 1;
467         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE15;
468     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
469         l_index := l_index + 1;
470         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE2;
471     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
472         l_index := l_index + 1;
473         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE3;
474     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
475         l_index := l_index + 1;
476         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE4;
477     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
478         l_index := l_index + 1;
479         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE5;
480     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
481         l_index := l_index + 1;
482         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE6;
483     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
484         l_index := l_index + 1;
485         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE7;
486     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
487         l_index := l_index + 1;
488         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE8;
489     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
490         l_index := l_index + 1;
491         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE9;
492     ELSIF p_attr_id = G_AUTOMATIC THEN
493         l_index := l_index + 1;
494         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_AUTOMATIC;
495     ELSIF p_attr_id = G_BASE_QTY THEN
496         l_index := l_index + 1;
497         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_QTY;
498     ELSIF p_attr_id = G_BASE_UOM THEN
499         l_index := l_index + 1;
500         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_UOM;
501     ELSIF p_attr_id = G_COMMENTS THEN
502         l_index := l_index + 1;
503         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_COMMENTS;
504     ELSIF p_attr_id = G_CONTEXT THEN
505         l_index := l_index + 1;
506         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CONTEXT;
507     ELSIF p_attr_id = G_CREATED_BY THEN
508         l_index := l_index + 1;
509         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATED_BY;
510     ELSIF p_attr_id = G_CREATION_DATE THEN
511         l_index := l_index + 1;
512         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATION_DATE;
513     ELSIF p_attr_id = G_EFFECTIVE_PERIOD_UOM THEN
514         l_index := l_index + 1;
515         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_EFFECTIVE_PERIOD_UOM;
516     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
517         l_index := l_index + 1;
518         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_END_DATE_ACTIVE;
519     ELSIF p_attr_id = G_ESTIM_ACCRUAL_RATE THEN
520         l_index := l_index + 1;
521         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ESTIM_ACCRUAL_RATE;
522     ELSIF p_attr_id = G_GENERATE_USING_FORMULA THEN
523         l_index := l_index + 1;
524         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_GENERATE_USING_FORMULA;
525     ELSIF p_attr_id = G_INVENTORY_ITEM THEN
526         l_index := l_index + 1;
527         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_INVENTORY_ITEM;
528     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
529         l_index := l_index + 1;
530         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATED_BY;
531     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
532         l_index := l_index + 1;
533         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_DATE;
534     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
535         l_index := l_index + 1;
536         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_LOGIN;
537     ELSIF p_attr_id = G_LIST_HEADER THEN
538         l_index := l_index + 1;
539         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_HEADER;
540     ELSIF p_attr_id = G_LIST_LINE THEN
541         l_index := l_index + 1;
542         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE;
543     ELSIF p_attr_id = G_LIST_LINE_TYPE THEN
544         l_index := l_index + 1;
545         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE_TYPE;
546     ELSIF p_attr_id = G_LIST_PRICE THEN
547         l_index := l_index + 1;
548         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_PRICE;
549     ELSIF p_attr_id = G_FROM_RLTD_MODIFIER THEN
550         l_index := l_index + 1;
551         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_FROM_RLTD_MODIFIER;
552     ELSIF p_attr_id = G_RLTD_MODIFIER_GROUP_NO THEN
553         l_index := l_index + 1;
554         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RLTD_MODIFIER_GROUP_NO;
555     ELSIF p_attr_id = G_PRODUCT_PRECEDENCE THEN
556         l_index := l_index + 1;
557         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRODUCT_PRECEDENCE;
558     ELSIF p_attr_id = G_MODIFIER_LEVEL THEN
559         l_index := l_index + 1;
560         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_MODIFIER_LEVEL;
561     ELSIF p_attr_id = G_NUMBER_EFFECTIVE_PERIODS THEN
562         l_index := l_index + 1;
563         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_NUMBER_EFFECTIVE_PERIODS;
564     ELSIF p_attr_id = G_OPERAND THEN
565         l_index := l_index + 1;
566         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OPERAND;
567     ELSIF p_attr_id = G_ORGANIZATION THEN
568         l_index := l_index + 1;
569         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ORGANIZATION;
570     ELSIF p_attr_id = G_OVERRIDE THEN
571         l_index := l_index + 1;
572         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OVERRIDE;
573     ELSIF p_attr_id = G_PERCENT_PRICE THEN
574         l_index := l_index + 1;
575         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PERCENT_PRICE;
576     ELSIF p_attr_id = G_PRICE_BREAK_TYPE THEN
577         l_index := l_index + 1;
578         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BREAK_TYPE;
579     ELSIF p_attr_id = G_PRICE_BY_FORMULA THEN
580         l_index := l_index + 1;
581         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BY_FORMULA;
582     ELSIF p_attr_id = G_PRIMARY_UOM THEN
583         l_index := l_index + 1;
584         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRIMARY_UOM;
585     ELSIF p_attr_id = G_PRINT_ON_INVOICE THEN
586         l_index := l_index + 1;
587         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRINT_ON_INVOICE;
588     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
589         l_index := l_index + 1;
590         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_APPLICATION;
591     ELSIF p_attr_id = G_PROGRAM THEN
592         l_index := l_index + 1;
593         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM;
594     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
595         l_index := l_index + 1;
596         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_UPDATE_DATE;
597     ELSIF p_attr_id = G_REBATE_TRANSACTION_TYPE THEN
598         l_index := l_index + 1;
599         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REBATE_TRANSACTION_TYPE;
600     -- block pricing
601     ELSIF p_attr_id = G_RECURRING_VALUE THEN
602         l_index := l_index + 1;
603         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RECURRING_VALUE;
604     ELSIF p_attr_id = G_RELATED_ITEM THEN
605         l_index := l_index + 1;
606         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATED_ITEM;
607     ELSIF p_attr_id = G_RELATIONSHIP_TYPE THEN
608         l_index := l_index + 1;
609         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATIONSHIP_TYPE;
610     ELSIF p_attr_id = G_REPRICE THEN
611         l_index := l_index + 1;
612         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REPRICE;
613     ELSIF p_attr_id = G_REQUEST THEN
614         l_index := l_index + 1;
615         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REQUEST;
616     ELSIF p_attr_id = G_REVISION THEN
617         l_index := l_index + 1;
618         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION;
619     ELSIF p_attr_id = G_REVISION_DATE THEN
620         l_index := l_index + 1;
621         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_DATE;
622     ELSIF p_attr_id = G_REVISION_REASON THEN
623         l_index := l_index + 1;
624         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_REASON;
625     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
626         l_index := l_index + 1;
627         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_START_DATE_ACTIVE;
628     ELSIF p_attr_id = G_SUBSTITUTION_ATTRIBUTE THEN
629         l_index := l_index + 1;
630         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_ATTRIBUTE;
631     ELSIF p_attr_id = G_SUBSTITUTION_CONTEXT THEN
632         l_index := l_index + 1;
633         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_CONTEXT;
634     ELSIF p_attr_id = G_SUBSTITUTION_VALUE THEN
635         l_index := l_index + 1;
636         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_VALUE;
637     ELSIF p_attr_id = G_CUSTOMER_ITEM_ID THEN
638         l_index := l_index + 1;
639         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CUSTOMER_ITEM_ID;
640     ELSIF p_attr_id = G_BREAK_UOM_CODE THEN
641         l_index := l_index + 1;
642         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BREAK_UOM_CODE;
643     ELSIF p_attr_id = G_BREAK_UOM_CONTEXT THEN
644         l_index := l_index + 1;
645         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BREAK_UOM_CONTEXT;
646     ELSIF p_attr_id = G_BREAK_UOM_ATTRIBUTE THEN
647         l_index := l_index + 1;
648         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BREAK_UOM_ATTRIBUTE;
649     ELSIF p_attr_id = G_CONTINUOUS_PRICE_BREAK_FLAG THEN
650         l_index := l_index + 1;
651         l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CONTINUOUS_PRICE_BREAK_FLAG;
652     END IF;
653 
654 END Clear_Dependent_Attr;
655 
656 --  Procedure Apply_Attribute_Changes
657 
658 PROCEDURE Apply_Attribute_Changes
659 (   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
660 ,   p_old_PRICE_LIST_LINE_rec       IN  QP_Price_List_PUB.Price_List_Line_Rec_Type :=
661                                         QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
662 ,   x_PRICE_LIST_LINE_rec           OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Line_Rec_Type
663 )
664 IS
665 l_return_status 	varchar2(30);
666 BEGIN
667 
668     --  Load out record
669 
670     x_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
671 
672     -- Set reprice_flag to 'Y' every time a price list line is added/modified
673     x_PRICE_LIST_LINE_rec.reprice_flag  := 'Y';
674 
675     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_qty,p_old_PRICE_LIST_LINE_rec.accrual_qty)
676     THEN
677         NULL;
678     END IF;
679 
680     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,p_old_PRICE_LIST_LINE_rec.accrual_uom_code)
681     THEN
682         NULL;
683     END IF;
684 
685     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,p_old_PRICE_LIST_LINE_rec.arithmetic_operator)
686     THEN
687         NULL;
688     END IF;
689 
690 
691     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,p_old_PRICE_LIST_LINE_rec.attribute1)
692     THEN
693         NULL;
694     END IF;
695 
696     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,p_old_PRICE_LIST_LINE_rec.attribute10)
697     THEN
698         NULL;
699     END IF;
700 
701     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,p_old_PRICE_LIST_LINE_rec.attribute11)
702     THEN
703         NULL;
704     END IF;
705 
706     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,p_old_PRICE_LIST_LINE_rec.attribute12)
707     THEN
708         NULL;
709     END IF;
710 
711     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,p_old_PRICE_LIST_LINE_rec.attribute13)
712     THEN
713         NULL;
714     END IF;
715 
716     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,p_old_PRICE_LIST_LINE_rec.attribute14)
717     THEN
718         NULL;
719     END IF;
720 
721     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,p_old_PRICE_LIST_LINE_rec.attribute15)
722     THEN
723         NULL;
724     END IF;
725 
726     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,p_old_PRICE_LIST_LINE_rec.attribute2)
727     THEN
728         NULL;
729     END IF;
730 
731     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,p_old_PRICE_LIST_LINE_rec.attribute3)
732     THEN
733         NULL;
734     END IF;
735 
736     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,p_old_PRICE_LIST_LINE_rec.attribute4)
737     THEN
738         NULL;
739     END IF;
740 
741     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,p_old_PRICE_LIST_LINE_rec.attribute5)
742     THEN
743         NULL;
744     END IF;
745 
746     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,p_old_PRICE_LIST_LINE_rec.attribute6)
747     THEN
748         NULL;
749     END IF;
750 
751     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,p_old_PRICE_LIST_LINE_rec.attribute7)
752     THEN
753         NULL;
754     END IF;
755 
756     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,p_old_PRICE_LIST_LINE_rec.attribute8)
757     THEN
758         NULL;
759     END IF;
760 
761     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,p_old_PRICE_LIST_LINE_rec.attribute9)
762     THEN
763         NULL;
764     END IF;
765 
766     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,p_old_PRICE_LIST_LINE_rec.automatic_flag)
767     THEN
768         NULL;
769     END IF;
770 
771     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_qty,p_old_PRICE_LIST_LINE_rec.base_qty)
772     THEN
773         NULL;
774     END IF;
775 
776     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,p_old_PRICE_LIST_LINE_rec.base_uom_code)
777     THEN
778         NULL;
779     END IF;
780 
781     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.comments,p_old_PRICE_LIST_LINE_rec.comments)
782     THEN
783         NULL;
784     END IF;
785 
786     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.context,p_old_PRICE_LIST_LINE_rec.context)
787     THEN
788         NULL;
789     END IF;
790 
791     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.created_by,p_old_PRICE_LIST_LINE_rec.created_by)
792     THEN
793         NULL;
794     END IF;
795 
796     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.creation_date,p_old_PRICE_LIST_LINE_rec.creation_date)
797     THEN
798         NULL;
799     END IF;
800 
801     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.effective_period_uom,p_old_PRICE_LIST_LINE_rec.effective_period_uom)
802     THEN
803         NULL;
804     END IF;
805 
806     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.end_date_active,p_old_PRICE_LIST_LINE_rec.end_date_active)
807     THEN
808         NULL;
809     END IF;
810 
811     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.estim_accrual_rate,p_old_PRICE_LIST_LINE_rec.estim_accrual_rate)
812     THEN
813         NULL;
814     END IF;
815 
816     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,p_old_PRICE_LIST_LINE_rec.generate_using_formula_id)
817     THEN
818         NULL;
819     END IF;
820 
821     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,p_old_PRICE_LIST_LINE_rec.inventory_item_id)
822     THEN
823         NULL;
824     END IF;
825 
826     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_updated_by,p_old_PRICE_LIST_LINE_rec.last_updated_by)
827     THEN
828         NULL;
829     END IF;
830 
831     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_date,p_old_PRICE_LIST_LINE_rec.last_update_date)
832     THEN
833         NULL;
834     END IF;
835 
836     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_login,p_old_PRICE_LIST_LINE_rec.last_update_login)
837     THEN
838         NULL;
839     END IF;
840 
841     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,p_old_PRICE_LIST_LINE_rec.list_header_id)
842     THEN
843         NULL;
844     END IF;
845 
846     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,p_old_PRICE_LIST_LINE_rec.list_line_id)
847     THEN
848 
849       /* Commented out delayed request by dhgupta for bug 2018275. This delayed request is now being called from
850          procedure insert_row  */
851 null;
852 /*
853 	 qp_delayed_requests_PVT.log_request(
854 		 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
855    		 p_entity_id  => p_PRICE_LIST_LINE_rec.list_line_id,
856 		 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
857 		 p_requesting_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
858 		 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
859 		 x_return_status => l_return_status);
860 */
861     END IF;
862 
863     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,p_old_PRICE_LIST_LINE_rec.list_line_type_code)
864     THEN
865         NULL;
866     END IF;
867 
868     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_price,p_old_PRICE_LIST_LINE_rec.list_price)
869     THEN
870         NULL;
871     END IF;
872 
873     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.from_rltd_modifier_id,p_old_PRICE_LIST_LINE_rec.from_rltd_modifier_id)
874     THEN
875         NULL;
876     END IF;
877 
878     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rltd_modifier_group_no,p_old_PRICE_LIST_LINE_rec.rltd_modifier_group_no)
879     THEN
880         NULL;
881     END IF;
882 
883     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.product_precedence,p_old_PRICE_LIST_LINE_rec.product_precedence)
884     THEN
885         NULL;
886     END IF;
887 
888 
889     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,p_old_PRICE_LIST_LINE_rec.modifier_level_code)
890     THEN
891         NULL;
892     END IF;
893 
894     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.number_effective_periods,p_old_PRICE_LIST_LINE_rec.number_effective_periods)
895     THEN
896         NULL;
897     END IF;
898 
899     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.operand,p_old_PRICE_LIST_LINE_rec.operand)
900     THEN
901         NULL;
902     END IF;
903 
904     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,p_old_PRICE_LIST_LINE_rec.organization_id)
905     THEN
906         NULL;
907     END IF;
908 
909     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,p_old_PRICE_LIST_LINE_rec.override_flag)
910     THEN
911         NULL;
912     END IF;
913 
914     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.percent_price,p_old_PRICE_LIST_LINE_rec.percent_price)
915     THEN
916         NULL;
917     END IF;
918 
919 --IF not p_PRICE_LIST_LINE_rec.list_line_type_code = 'PHB'
920 --then null;
921 --else
922 
923 --fnd_message.debug('gm before new code');
924 oe_debug_pub.add('gm before new code');
925 
926     IF NOT (QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,p_old_PRICE_LIST_LINE_rec.price_break_type_code)
927 	and QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,p_old_PRICE_LIST_LINE_rec.arithmetic_operator))
928     and (p_PRICE_LIST_LINE_rec.list_line_type_code = 'PBH')
929     THEN
930 	   qp_delayed_requests_PVT.log_request(
931 		 p_entity_code => QP_GLOBALS.G_ENTITY_PRICE_LIST_LINE,
932    		 p_entity_id  => p_PRICE_LIST_LINE_rec.list_line_id,
933 		 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_Price_List_Line,
934 		 p_requesting_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
935 		 p_request_type =>QP_GLOBALS.G_UPDATE_CHILD_BREAKS,
936 		 x_return_status => l_return_status);
937     END IF;
938  --   END IF;
939 oe_debug_pub.add('gm after new code');
940 
941 
942 --fnd_message.debug('gm after new code');
943 
944 
945     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,p_old_PRICE_LIST_LINE_rec.price_by_formula_id)
946     THEN
947         NULL;
948     END IF;
949 
950     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,p_old_PRICE_LIST_LINE_rec.primary_uom_flag)
951     THEN
952         NULL;
953     END IF;
954 
955     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag,p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag)
956     THEN
957         NULL;
958     END IF;
959 
960     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_application_id,p_old_PRICE_LIST_LINE_rec.program_application_id)
961     THEN
962         NULL;
963     END IF;
964 
965     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_id,p_old_PRICE_LIST_LINE_rec.program_id)
966     THEN
967         NULL;
968     END IF;
969 
970     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_update_date,p_old_PRICE_LIST_LINE_rec.program_update_date)
971     THEN
972         NULL;
973     END IF;
974 
975     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
976     THEN
977         NULL;
978     END IF;
979 
980     -- block pricing
981     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.recurring_value, p_old_PRICE_LIST_LINE_rec.recurring_value)
982     THEN
983       NULL;
984     END IF;
985 
986     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,p_old_PRICE_LIST_LINE_rec.related_item_id)
987     THEN
988         NULL;
989     END IF;
990 
991     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,p_old_PRICE_LIST_LINE_rec.relationship_type_id)
992     THEN
993         NULL;
994     END IF;
995 
996     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,p_old_PRICE_LIST_LINE_rec.reprice_flag)
997     THEN
998         NULL;
999     END IF;
1000 
1001     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.request_id,p_old_PRICE_LIST_LINE_rec.request_id)
1002     THEN
1003         NULL;
1004     END IF;
1005 
1006     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision,p_old_PRICE_LIST_LINE_rec.revision)
1007     THEN
1008         NULL;
1009     END IF;
1010 
1011     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_date,p_old_PRICE_LIST_LINE_rec.revision_date)
1012     THEN
1013         NULL;
1014     END IF;
1015 
1016     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,p_old_PRICE_LIST_LINE_rec.revision_reason_code)
1017     THEN
1018         NULL;
1019     END IF;
1020 
1021     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.start_date_active,p_old_PRICE_LIST_LINE_rec.start_date_active)
1022     THEN
1023         NULL;
1024     END IF;
1025 
1026     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_attribute,p_old_PRICE_LIST_LINE_rec.substitution_attribute)
1027     THEN
1028         NULL;
1029     END IF;
1030 
1031     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_context,p_old_PRICE_LIST_LINE_rec.substitution_context)
1032     THEN
1033         NULL;
1034     END IF;
1035 
1036     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_value,p_old_PRICE_LIST_LINE_rec.substitution_value)
1037     THEN
1038         NULL;
1039     END IF;
1040 
1041     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id, p_old_PRICE_LIST_LINE_rec.customer_item_id)
1042     THEN
1043         NULL;
1044     END IF;
1045 
1046     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.break_uom_code,p_old_PRICE_LIST_LINE_rec.break_uom_code)
1047     THEN
1048         NULL;
1049     END IF;
1050 
1051     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.break_uom_context,p_old_PRICE_LIST_LINE_rec.break_uom_context)
1052     THEN
1053         NULL;
1054     END IF;
1055 
1056     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.break_uom_attribute,p_old_PRICE_LIST_LINE_rec.break_uom_attribute)
1057     THEN
1058         NULL;
1059     END IF;
1060 
1061     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.continuous_price_break_flag,p_old_PRICE_LIST_LINE_rec.continuous_price_break_flag)
1062     THEN
1063         NULL;
1064     END IF;
1065 
1066 END Apply_Attribute_Changes;
1067 
1068 --  Function Complete_Record
1069 
1070 FUNCTION Complete_Record
1071 (   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
1072 ,   p_old_PRICE_LIST_LINE_rec       IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
1073 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
1074 IS
1075 l_PRICE_LIST_LINE_rec         QP_Price_List_PUB.Price_List_Line_Rec_Type := p_PRICE_LIST_LINE_rec;
1076 BEGIN
1077 
1078     IF l_PRICE_LIST_LINE_rec.accrual_qty = FND_API.G_MISS_NUM THEN
1079         l_PRICE_LIST_LINE_rec.accrual_qty := p_old_PRICE_LIST_LINE_rec.accrual_qty;
1080     END IF;
1081 
1082 
1083     IF l_PRICE_LIST_LINE_rec.accrual_uom_code = FND_API.G_MISS_CHAR THEN
1084         l_PRICE_LIST_LINE_rec.accrual_uom_code := p_old_PRICE_LIST_LINE_rec.accrual_uom_code;
1085     END IF;
1086 
1087     IF l_PRICE_LIST_LINE_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
1088         l_PRICE_LIST_LINE_rec.arithmetic_operator := p_old_PRICE_LIST_LINE_rec.arithmetic_operator;
1089     END IF;
1090 
1091     IF l_PRICE_LIST_LINE_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1092         l_PRICE_LIST_LINE_rec.attribute1 := p_old_PRICE_LIST_LINE_rec.attribute1;
1093     END IF;
1094 
1095     IF l_PRICE_LIST_LINE_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1096         l_PRICE_LIST_LINE_rec.attribute10 := p_old_PRICE_LIST_LINE_rec.attribute10;
1097     END IF;
1098 
1099     IF l_PRICE_LIST_LINE_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1100         l_PRICE_LIST_LINE_rec.attribute11 := p_old_PRICE_LIST_LINE_rec.attribute11;
1101     END IF;
1102 
1103     IF l_PRICE_LIST_LINE_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1104         l_PRICE_LIST_LINE_rec.attribute12 := p_old_PRICE_LIST_LINE_rec.attribute12;
1105     END IF;
1106 
1107     IF l_PRICE_LIST_LINE_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1108         l_PRICE_LIST_LINE_rec.attribute13 := p_old_PRICE_LIST_LINE_rec.attribute13;
1109     END IF;
1110 
1111     IF l_PRICE_LIST_LINE_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1112         l_PRICE_LIST_LINE_rec.attribute14 := p_old_PRICE_LIST_LINE_rec.attribute14;
1113     END IF;
1114 
1115     IF l_PRICE_LIST_LINE_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1116         l_PRICE_LIST_LINE_rec.attribute15 := p_old_PRICE_LIST_LINE_rec.attribute15;
1117     END IF;
1118 
1119     IF l_PRICE_LIST_LINE_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1120         l_PRICE_LIST_LINE_rec.attribute2 := p_old_PRICE_LIST_LINE_rec.attribute2;
1121     END IF;
1122 
1123     IF l_PRICE_LIST_LINE_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1124         l_PRICE_LIST_LINE_rec.attribute3 := p_old_PRICE_LIST_LINE_rec.attribute3;
1125     END IF;
1126 
1127     IF l_PRICE_LIST_LINE_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1128         l_PRICE_LIST_LINE_rec.attribute4 := p_old_PRICE_LIST_LINE_rec.attribute4;
1129     END IF;
1130 
1131     IF l_PRICE_LIST_LINE_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1132         l_PRICE_LIST_LINE_rec.attribute5 := p_old_PRICE_LIST_LINE_rec.attribute5;
1133     END IF;
1134 
1135     IF l_PRICE_LIST_LINE_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1136         l_PRICE_LIST_LINE_rec.attribute6 := p_old_PRICE_LIST_LINE_rec.attribute6;
1137     END IF;
1138 
1139     IF l_PRICE_LIST_LINE_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1140         l_PRICE_LIST_LINE_rec.attribute7 := p_old_PRICE_LIST_LINE_rec.attribute7;
1141     END IF;
1142 
1143     IF l_PRICE_LIST_LINE_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1144         l_PRICE_LIST_LINE_rec.attribute8 := p_old_PRICE_LIST_LINE_rec.attribute8;
1145     END IF;
1146 
1147     IF l_PRICE_LIST_LINE_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1148         l_PRICE_LIST_LINE_rec.attribute9 := p_old_PRICE_LIST_LINE_rec.attribute9;
1149     END IF;
1150 
1151     IF l_PRICE_LIST_LINE_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1152         l_PRICE_LIST_LINE_rec.automatic_flag := p_old_PRICE_LIST_LINE_rec.automatic_flag;
1153     END IF;
1154 
1155     IF l_PRICE_LIST_LINE_rec.base_qty = FND_API.G_MISS_NUM THEN
1156         l_PRICE_LIST_LINE_rec.base_qty := p_old_PRICE_LIST_LINE_rec.base_qty;
1157     END IF;
1158 
1159     IF l_PRICE_LIST_LINE_rec.base_uom_code = FND_API.G_MISS_CHAR THEN
1160         l_PRICE_LIST_LINE_rec.base_uom_code := p_old_PRICE_LIST_LINE_rec.base_uom_code;
1161     END IF;
1162 
1163     IF l_PRICE_LIST_LINE_rec.comments = FND_API.G_MISS_CHAR THEN
1164         l_PRICE_LIST_LINE_rec.comments := p_old_PRICE_LIST_LINE_rec.comments;
1165     END IF;
1166 
1167     IF l_PRICE_LIST_LINE_rec.context = FND_API.G_MISS_CHAR THEN
1168         l_PRICE_LIST_LINE_rec.context := p_old_PRICE_LIST_LINE_rec.context;
1169     END IF;
1170 
1171     IF l_PRICE_LIST_LINE_rec.created_by = FND_API.G_MISS_NUM THEN
1172         l_PRICE_LIST_LINE_rec.created_by := p_old_PRICE_LIST_LINE_rec.created_by;
1173     END IF;
1174 
1175     IF l_PRICE_LIST_LINE_rec.creation_date = FND_API.G_MISS_DATE THEN
1176         l_PRICE_LIST_LINE_rec.creation_date := p_old_PRICE_LIST_LINE_rec.creation_date;
1177     END IF;
1178 
1179     IF l_PRICE_LIST_LINE_rec.effective_period_uom = FND_API.G_MISS_CHAR THEN
1180         l_PRICE_LIST_LINE_rec.effective_period_uom := p_old_PRICE_LIST_LINE_rec.effective_period_uom;
1181     END IF;
1182 
1183     IF l_PRICE_LIST_LINE_rec.end_date_active = FND_API.G_MISS_DATE THEN
1184         l_PRICE_LIST_LINE_rec.end_date_active := p_old_PRICE_LIST_LINE_rec.end_date_active;
1185     END IF;
1186 
1187     IF l_PRICE_LIST_LINE_rec.estim_accrual_rate = FND_API.G_MISS_NUM THEN
1188         l_PRICE_LIST_LINE_rec.estim_accrual_rate := p_old_PRICE_LIST_LINE_rec.estim_accrual_rate;
1189     END IF;
1190 
1191     IF l_PRICE_LIST_LINE_rec.generate_using_formula_id = FND_API.G_MISS_NUM THEN
1192         l_PRICE_LIST_LINE_rec.generate_using_formula_id := p_old_PRICE_LIST_LINE_rec.generate_using_formula_id;
1193     END IF;
1194 
1195 
1196     IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
1197         l_PRICE_LIST_LINE_rec.inventory_item_id := p_old_PRICE_LIST_LINE_rec.inventory_item_id;
1198     END IF;
1199 
1200     IF l_PRICE_LIST_LINE_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1201         l_PRICE_LIST_LINE_rec.last_updated_by := p_old_PRICE_LIST_LINE_rec.last_updated_by;
1202     END IF;
1203 
1204     IF l_PRICE_LIST_LINE_rec.last_update_date = FND_API.G_MISS_DATE THEN
1205         l_PRICE_LIST_LINE_rec.last_update_date := p_old_PRICE_LIST_LINE_rec.last_update_date;
1206     END IF;
1207 
1208     IF l_PRICE_LIST_LINE_rec.last_update_login = FND_API.G_MISS_NUM THEN
1209         l_PRICE_LIST_LINE_rec.last_update_login := p_old_PRICE_LIST_LINE_rec.last_update_login;
1210     END IF;
1211 
1212     IF l_PRICE_LIST_LINE_rec.list_header_id = FND_API.G_MISS_NUM THEN
1213         l_PRICE_LIST_LINE_rec.list_header_id := p_old_PRICE_LIST_LINE_rec.list_header_id;
1214     END IF;
1215 
1216     IF l_PRICE_LIST_LINE_rec.list_line_id = FND_API.G_MISS_NUM THEN
1217         l_PRICE_LIST_LINE_rec.list_line_id := p_old_PRICE_LIST_LINE_rec.list_line_id;
1218     END IF;
1219 
1220     IF l_PRICE_LIST_LINE_rec.list_line_no = FND_API.G_MISS_CHAR THEN -- bug 4751658, 4199398
1221         l_PRICE_LIST_LINE_rec.list_line_no := p_old_PRICE_LIST_LINE_rec.list_line_no;
1222     END IF;
1223 
1224     IF l_PRICE_LIST_LINE_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
1225         l_PRICE_LIST_LINE_rec.list_line_type_code := p_old_PRICE_LIST_LINE_rec.list_line_type_code;
1226     END IF;
1227 
1228     IF l_PRICE_LIST_LINE_rec.list_price = FND_API.G_MISS_NUM THEN
1229         l_PRICE_LIST_LINE_rec.list_price := p_old_PRICE_LIST_LINE_rec.list_price;
1230     END IF;
1231 
1232     IF l_PRICE_LIST_LINE_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
1233         l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := p_old_PRICE_LIST_LINE_rec.from_rltd_modifier_id;
1234     END IF;
1235 
1236     IF l_PRICE_LIST_LINE_rec.rltd_modifier_group_no = FND_API.G_MISS_NUM THEN
1237         l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := p_old_PRICE_LIST_LINE_rec.rltd_modifier_group_no;
1238     END IF;
1239 
1240     IF l_PRICE_LIST_LINE_rec.product_precedence = FND_API.G_MISS_NUM THEN
1241         l_PRICE_LIST_LINE_rec.product_precedence := p_old_PRICE_LIST_LINE_rec.product_precedence;
1242     END IF;
1243 
1244     IF l_PRICE_LIST_LINE_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
1245         l_PRICE_LIST_LINE_rec.modifier_level_code := p_old_PRICE_LIST_LINE_rec.modifier_level_code;
1246     END IF;
1247 
1248     IF l_PRICE_LIST_LINE_rec.number_effective_periods = FND_API.G_MISS_NUM THEN
1249         l_PRICE_LIST_LINE_rec.number_effective_periods := p_old_PRICE_LIST_LINE_rec.number_effective_periods;
1250     END IF;
1251 
1252     IF l_PRICE_LIST_LINE_rec.operand = FND_API.G_MISS_NUM THEN
1253         l_PRICE_LIST_LINE_rec.operand := p_old_PRICE_LIST_LINE_rec.operand;
1254     END IF;
1255 
1256     IF l_PRICE_LIST_LINE_rec.organization_id = FND_API.G_MISS_NUM THEN
1257         l_PRICE_LIST_LINE_rec.organization_id := p_old_PRICE_LIST_LINE_rec.organization_id;
1258     END IF;
1259 
1260     IF l_PRICE_LIST_LINE_rec.override_flag = FND_API.G_MISS_CHAR THEN
1261         l_PRICE_LIST_LINE_rec.override_flag := p_old_PRICE_LIST_LINE_rec.override_flag;
1262     END IF;
1263 
1264     IF l_PRICE_LIST_LINE_rec.percent_price = FND_API.G_MISS_NUM THEN
1265         l_PRICE_LIST_LINE_rec.percent_price := p_old_PRICE_LIST_LINE_rec.percent_price;
1266     END IF;
1267 
1268     IF l_PRICE_LIST_LINE_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
1269         l_PRICE_LIST_LINE_rec.price_break_type_code := p_old_PRICE_LIST_LINE_rec.price_break_type_code;
1270     END IF;
1271 
1272     IF l_PRICE_LIST_LINE_rec.price_by_formula_id = FND_API.G_MISS_NUM THEN
1273         l_PRICE_LIST_LINE_rec.price_by_formula_id := p_old_PRICE_LIST_LINE_rec.price_by_formula_id;
1274     END IF;
1275 
1276     IF l_PRICE_LIST_LINE_rec.primary_uom_flag = FND_API.G_MISS_CHAR THEN
1277         l_PRICE_LIST_LINE_rec.primary_uom_flag := p_old_PRICE_LIST_LINE_rec.primary_uom_flag;
1278     END IF;
1279 
1280     IF l_PRICE_LIST_LINE_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
1281         l_PRICE_LIST_LINE_rec.print_on_invoice_flag := p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag;
1282     END IF;
1283 
1284     IF l_PRICE_LIST_LINE_rec.program_application_id = FND_API.G_MISS_NUM THEN
1285         l_PRICE_LIST_LINE_rec.program_application_id := p_old_PRICE_LIST_LINE_rec.program_application_id;
1286     END IF;
1287 
1288     IF l_PRICE_LIST_LINE_rec.program_id = FND_API.G_MISS_NUM THEN
1289         l_PRICE_LIST_LINE_rec.program_id := p_old_PRICE_LIST_LINE_rec.program_id;
1290     END IF;
1291 
1292     IF l_PRICE_LIST_LINE_rec.program_update_date = FND_API.G_MISS_DATE THEN
1293         l_PRICE_LIST_LINE_rec.program_update_date := p_old_PRICE_LIST_LINE_rec.program_update_date;
1294     END IF;
1295 
1296     IF l_PRICE_LIST_LINE_rec.rebate_trxn_type_code = FND_API.G_MISS_CHAR THEN
1297         l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code;
1298     END IF;
1299 
1300     -- block pricing
1301     IF l_PRICE_LIST_LINE_rec.recurring_value = FND_API.G_MISS_NUM THEN
1302         l_PRICE_LIST_LINE_rec.recurring_value := p_old_PRICE_LIST_LINE_rec.recurring_value;
1303     END IF;
1304 
1305     IF l_PRICE_LIST_LINE_rec.related_item_id = FND_API.G_MISS_NUM THEN
1306         l_PRICE_LIST_LINE_rec.related_item_id := p_old_PRICE_LIST_LINE_rec.related_item_id;
1307     END IF;
1308 
1309     IF l_PRICE_LIST_LINE_rec.relationship_type_id = FND_API.G_MISS_NUM THEN
1310         l_PRICE_LIST_LINE_rec.relationship_type_id := p_old_PRICE_LIST_LINE_rec.relationship_type_id;
1311     END IF;
1312 
1313     IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
1314         l_PRICE_LIST_LINE_rec.reprice_flag := p_old_PRICE_LIST_LINE_rec.reprice_flag;
1315     END IF;
1316 
1317     IF l_PRICE_LIST_LINE_rec.request_id = FND_API.G_MISS_NUM THEN
1318         l_PRICE_LIST_LINE_rec.request_id := p_old_PRICE_LIST_LINE_rec.request_id;
1319     END IF;
1320 
1321     IF l_PRICE_LIST_LINE_rec.revision = FND_API.G_MISS_CHAR THEN
1322         l_PRICE_LIST_LINE_rec.revision := p_old_PRICE_LIST_LINE_rec.revision;
1323     END IF;
1324 
1325     IF l_PRICE_LIST_LINE_rec.revision_date = FND_API.G_MISS_DATE THEN
1326         l_PRICE_LIST_LINE_rec.revision_date := p_old_PRICE_LIST_LINE_rec.revision_date;
1327     END IF;
1328 
1329     IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
1330         l_PRICE_LIST_LINE_rec.revision_reason_code := p_old_PRICE_LIST_LINE_rec.revision_reason_code;
1331     END IF;
1332 
1333     IF l_PRICE_LIST_LINE_rec.start_date_active = FND_API.G_MISS_DATE THEN
1334         l_PRICE_LIST_LINE_rec.start_date_active := p_old_PRICE_LIST_LINE_rec.start_date_active;
1335     END IF;
1336 
1337     IF l_PRICE_LIST_LINE_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
1338         l_PRICE_LIST_LINE_rec.substitution_attribute := p_old_PRICE_LIST_LINE_rec.substitution_attribute;
1339     END IF;
1340 
1341     IF l_PRICE_LIST_LINE_rec.substitution_context = FND_API.G_MISS_CHAR THEN
1342         l_PRICE_LIST_LINE_rec.substitution_context := p_old_PRICE_LIST_LINE_rec.substitution_context;
1343     END IF;
1344 
1345     IF l_PRICE_LIST_LINE_rec.substitution_value = FND_API.G_MISS_CHAR THEN
1346         l_PRICE_LIST_LINE_rec.substitution_value := p_old_PRICE_LIST_LINE_rec.substitution_value;
1347     END IF;
1348 
1349     IF l_PRICE_LIST_LINE_rec.qualification_ind = FND_API.G_MISS_NUM THEN
1350        l_PRICE_LIST_LINE_rec.qualification_ind := p_old_PRICE_LIST_LINE_rec.qualification_ind;
1351     END IF;
1352 
1353     IF l_PRICE_LIST_LINE_rec.break_uom_code = FND_API.G_MISS_CHAR THEN
1354        l_PRICE_LIST_LINE_rec.break_uom_code := p_old_PRICE_LIST_LINE_rec.break_uom_code;
1355     END IF;
1356 
1357     IF l_PRICE_LIST_LINE_rec.break_uom_context = FND_API.G_MISS_CHAR THEN
1358        l_PRICE_LIST_LINE_rec.break_uom_context := p_old_PRICE_LIST_LINE_rec.break_uom_context;
1359     END IF;
1360 
1361     IF l_PRICE_LIST_LINE_rec.break_uom_attribute = FND_API.G_MISS_CHAR THEN
1362        l_PRICE_LIST_LINE_rec.break_uom_attribute := p_old_PRICE_LIST_LINE_rec.break_uom_attribute;
1363     END IF;
1364 
1365     IF l_PRICE_LIST_LINE_rec.continuous_price_break_flag = FND_API.G_MISS_CHAR THEN
1366        l_PRICE_LIST_LINE_rec.continuous_price_break_flag := p_old_PRICE_LIST_LINE_rec.continuous_price_break_flag;
1367     END IF;
1368 
1369     --bug 9114132
1370     IF l_PRICE_LIST_LINE_rec.customer_item_id = FND_API.G_MISS_NUM THEN
1371        l_PRICE_LIST_LINE_rec.customer_item_id := p_old_PRICE_LIST_LINE_rec.customer_item_id;
1372     END IF;
1373 
1374     RETURN l_PRICE_LIST_LINE_rec;
1375 
1376 END Complete_Record;
1377 
1378 --  Function Convert_Miss_To_Null
1379 
1380 FUNCTION Convert_Miss_To_Null
1381 (   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
1382 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
1383 IS
1384 l_PRICE_LIST_LINE_rec         QP_Price_List_PUB.Price_List_Line_Rec_Type := p_PRICE_LIST_LINE_rec;
1385 BEGIN
1386 
1387     IF l_PRICE_LIST_LINE_rec.accrual_qty = FND_API.G_MISS_NUM THEN
1388         l_PRICE_LIST_LINE_rec.accrual_qty := NULL;
1389     END IF;
1390 
1391     IF l_PRICE_LIST_LINE_rec.accrual_uom_code = FND_API.G_MISS_CHAR THEN
1392         l_PRICE_LIST_LINE_rec.accrual_uom_code := NULL;
1393     END IF;
1394 
1395     IF l_PRICE_LIST_LINE_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
1396         l_PRICE_LIST_LINE_rec.arithmetic_operator := NULL;
1397     END IF;
1398 
1399     IF l_PRICE_LIST_LINE_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1400         l_PRICE_LIST_LINE_rec.attribute1 := NULL;
1401     END IF;
1402 
1403     IF l_PRICE_LIST_LINE_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1404         l_PRICE_LIST_LINE_rec.attribute10 := NULL;
1405     END IF;
1406 
1407     IF l_PRICE_LIST_LINE_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1408         l_PRICE_LIST_LINE_rec.attribute11 := NULL;
1409     END IF;
1410 
1411     IF l_PRICE_LIST_LINE_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1412         l_PRICE_LIST_LINE_rec.attribute12 := NULL;
1413     END IF;
1414 
1415     IF l_PRICE_LIST_LINE_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1416         l_PRICE_LIST_LINE_rec.attribute13 := NULL;
1417     END IF;
1418 
1419     IF l_PRICE_LIST_LINE_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1420         l_PRICE_LIST_LINE_rec.attribute14 := NULL;
1421     END IF;
1422 
1423     IF l_PRICE_LIST_LINE_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1424         l_PRICE_LIST_LINE_rec.attribute15 := NULL;
1425     END IF;
1426 
1427     IF l_PRICE_LIST_LINE_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1428         l_PRICE_LIST_LINE_rec.attribute2 := NULL;
1429     END IF;
1430 
1431     IF l_PRICE_LIST_LINE_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1432         l_PRICE_LIST_LINE_rec.attribute3 := NULL;
1433     END IF;
1434 
1435     IF l_PRICE_LIST_LINE_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1436         l_PRICE_LIST_LINE_rec.attribute4 := NULL;
1437     END IF;
1438 
1439     IF l_PRICE_LIST_LINE_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1440         l_PRICE_LIST_LINE_rec.attribute5 := NULL;
1441     END IF;
1442 
1443     IF l_PRICE_LIST_LINE_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1444         l_PRICE_LIST_LINE_rec.attribute6 := NULL;
1445     END IF;
1446 
1447     IF l_PRICE_LIST_LINE_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1448         l_PRICE_LIST_LINE_rec.attribute7 := NULL;
1449     END IF;
1450 
1451     IF l_PRICE_LIST_LINE_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1452         l_PRICE_LIST_LINE_rec.attribute8 := NULL;
1453     END IF;
1454 
1455     IF l_PRICE_LIST_LINE_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1456         l_PRICE_LIST_LINE_rec.attribute9 := NULL;
1457     END IF;
1458 
1459     IF l_PRICE_LIST_LINE_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1460         l_PRICE_LIST_LINE_rec.automatic_flag := NULL;
1461     END IF;
1462 
1463     IF l_PRICE_LIST_LINE_rec.base_qty = FND_API.G_MISS_NUM THEN
1464         l_PRICE_LIST_LINE_rec.base_qty := NULL;
1465     END IF;
1466 
1467     IF l_PRICE_LIST_LINE_rec.base_uom_code = FND_API.G_MISS_CHAR THEN
1468         l_PRICE_LIST_LINE_rec.base_uom_code := NULL;
1469     END IF;
1470 
1471     IF l_PRICE_LIST_LINE_rec.comments = FND_API.G_MISS_CHAR THEN
1472         l_PRICE_LIST_LINE_rec.comments := NULL;
1473     END IF;
1474 
1475     IF l_PRICE_LIST_LINE_rec.context = FND_API.G_MISS_CHAR THEN
1476         l_PRICE_LIST_LINE_rec.context := NULL;
1477     END IF;
1478 
1479     IF l_PRICE_LIST_LINE_rec.created_by = FND_API.G_MISS_NUM THEN
1480         l_PRICE_LIST_LINE_rec.created_by := NULL;
1481     END IF;
1482 
1483     IF l_PRICE_LIST_LINE_rec.creation_date = FND_API.G_MISS_DATE THEN
1484         l_PRICE_LIST_LINE_rec.creation_date := NULL;
1485     END IF;
1486 
1487     IF l_PRICE_LIST_LINE_rec.effective_period_uom = FND_API.G_MISS_CHAR THEN
1488         l_PRICE_LIST_LINE_rec.effective_period_uom := NULL;
1489     END IF;
1490 
1491     IF l_PRICE_LIST_LINE_rec.end_date_active = FND_API.G_MISS_DATE THEN
1492         l_PRICE_LIST_LINE_rec.end_date_active := NULL;
1493     END IF;
1494 
1495     IF l_PRICE_LIST_LINE_rec.estim_accrual_rate = FND_API.G_MISS_NUM THEN
1496         l_PRICE_LIST_LINE_rec.estim_accrual_rate := NULL;
1497     END IF;
1498 
1499     IF l_PRICE_LIST_LINE_rec.generate_using_formula_id = FND_API.G_MISS_NUM THEN
1500         l_PRICE_LIST_LINE_rec.generate_using_formula_id := NULL;
1501     END IF;
1502 
1503     IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
1504         l_PRICE_LIST_LINE_rec.inventory_item_id := NULL;
1505     END IF;
1506 
1507     IF l_PRICE_LIST_LINE_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1508         l_PRICE_LIST_LINE_rec.last_updated_by := NULL;
1509     END IF;
1510 
1511     IF l_PRICE_LIST_LINE_rec.last_update_date = FND_API.G_MISS_DATE THEN
1512         l_PRICE_LIST_LINE_rec.last_update_date := NULL;
1513     END IF;
1514 
1515     IF l_PRICE_LIST_LINE_rec.last_update_login = FND_API.G_MISS_NUM THEN
1516         l_PRICE_LIST_LINE_rec.last_update_login := NULL;
1517     END IF;
1518 
1519     IF l_PRICE_LIST_LINE_rec.list_header_id = FND_API.G_MISS_NUM THEN
1520         l_PRICE_LIST_LINE_rec.list_header_id := NULL;
1521     END IF;
1522 
1523     IF l_PRICE_LIST_LINE_rec.list_line_id = FND_API.G_MISS_NUM THEN
1524         l_PRICE_LIST_LINE_rec.list_line_id := NULL;
1525     END IF;
1526 
1527     IF l_PRICE_LIST_LINE_rec.list_line_no = FND_API.G_MISS_CHAR THEN -- bug 4751658, 4199398
1528         l_PRICE_LIST_LINE_rec.list_line_no := NULL;
1529     END IF;
1530 
1531     IF l_PRICE_LIST_LINE_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
1532         l_PRICE_LIST_LINE_rec.list_line_type_code := NULL;
1533     END IF;
1534 
1535     IF l_PRICE_LIST_LINE_rec.list_price = FND_API.G_MISS_NUM THEN
1536         l_PRICE_LIST_LINE_rec.list_price := NULL;
1537     END IF;
1538 
1539     IF l_PRICE_LIST_LINE_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
1540         l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := NULL;
1541     END IF;
1542 
1543     IF l_PRICE_LIST_LINE_rec.rltd_modifier_group_no = FND_API.G_MISS_NUM THEN
1544         l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := NULL;
1545     END IF;
1546 
1547     IF l_PRICE_LIST_LINE_rec.product_precedence = FND_API.G_MISS_NUM THEN
1548         l_PRICE_LIST_LINE_rec.product_precedence := NULL;
1549     END IF;
1550 
1551     IF l_PRICE_LIST_LINE_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
1552         l_PRICE_LIST_LINE_rec.modifier_level_code := NULL;
1553     END IF;
1554 
1555     IF l_PRICE_LIST_LINE_rec.number_effective_periods = FND_API.G_MISS_NUM THEN
1556         l_PRICE_LIST_LINE_rec.number_effective_periods := NULL;
1557     END IF;
1558 
1559     IF l_PRICE_LIST_LINE_rec.operand = FND_API.G_MISS_NUM THEN
1560         l_PRICE_LIST_LINE_rec.operand := NULL;
1561     END IF;
1562 
1563     IF l_PRICE_LIST_LINE_rec.organization_id = FND_API.G_MISS_NUM THEN
1564         l_PRICE_LIST_LINE_rec.organization_id := NULL;
1565     END IF;
1566 
1567     IF l_PRICE_LIST_LINE_rec.override_flag = FND_API.G_MISS_CHAR THEN
1568         l_PRICE_LIST_LINE_rec.override_flag := NULL;
1569     END IF;
1570 
1571     IF l_PRICE_LIST_LINE_rec.percent_price = FND_API.G_MISS_NUM THEN
1572         l_PRICE_LIST_LINE_rec.percent_price := NULL;
1573     END IF;
1574 
1575     IF l_PRICE_LIST_LINE_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
1576         l_PRICE_LIST_LINE_rec.price_break_type_code := NULL;
1577     END IF;
1578 
1579     IF l_PRICE_LIST_LINE_rec.price_by_formula_id = FND_API.G_MISS_NUM THEN
1580         l_PRICE_LIST_LINE_rec.price_by_formula_id := NULL;
1581     END IF;
1582 
1583     IF l_PRICE_LIST_LINE_rec.primary_uom_flag = FND_API.G_MISS_CHAR THEN
1584         l_PRICE_LIST_LINE_rec.primary_uom_flag := NULL;
1585     END IF;
1586 
1587     IF l_PRICE_LIST_LINE_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
1588         l_PRICE_LIST_LINE_rec.print_on_invoice_flag := NULL;
1589     END IF;
1590 
1591     IF l_PRICE_LIST_LINE_rec.program_application_id = FND_API.G_MISS_NUM THEN
1592         l_PRICE_LIST_LINE_rec.program_application_id := NULL;
1593     END IF;
1594 
1595     IF l_PRICE_LIST_LINE_rec.program_id = FND_API.G_MISS_NUM THEN
1596         l_PRICE_LIST_LINE_rec.program_id := NULL;
1597     END IF;
1598 
1599     IF l_PRICE_LIST_LINE_rec.program_update_date = FND_API.G_MISS_DATE THEN
1600         l_PRICE_LIST_LINE_rec.program_update_date := NULL;
1601     END IF;
1602 
1603     IF l_PRICE_LIST_LINE_rec.rebate_trxn_type_code = FND_API.G_MISS_CHAR THEN
1604         l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := NULL;
1605     END IF;
1606 
1607     -- block pricing
1608     IF l_PRICE_LIST_LINE_rec.recurring_value = FND_API.G_MISS_NUM THEN
1609         l_PRICE_LIST_LINE_rec.recurring_value := NULL;
1610     END IF;
1611 
1612     IF l_PRICE_LIST_LINE_rec.related_item_id = FND_API.G_MISS_NUM THEN
1613         l_PRICE_LIST_LINE_rec.related_item_id := NULL;
1614     END IF;
1615 
1616     IF l_PRICE_LIST_LINE_rec.relationship_type_id = FND_API.G_MISS_NUM THEN
1617         l_PRICE_LIST_LINE_rec.relationship_type_id := NULL;
1618     END IF;
1619 
1620     IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
1621         l_PRICE_LIST_LINE_rec.reprice_flag := NULL;
1622     END IF;
1623 
1624     IF l_PRICE_LIST_LINE_rec.request_id = FND_API.G_MISS_NUM THEN
1625         l_PRICE_LIST_LINE_rec.request_id := NULL;
1626     END IF;
1627 
1628     IF l_PRICE_LIST_LINE_rec.revision = FND_API.G_MISS_CHAR THEN
1629         l_PRICE_LIST_LINE_rec.revision := NULL;
1630     END IF;
1631 
1632     IF l_PRICE_LIST_LINE_rec.revision_date = FND_API.G_MISS_DATE THEN
1633         l_PRICE_LIST_LINE_rec.revision_date := NULL;
1634     END IF;
1635 
1636     IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
1637         l_PRICE_LIST_LINE_rec.revision_reason_code := NULL;
1638     END IF;
1639 
1640     IF l_PRICE_LIST_LINE_rec.start_date_active = FND_API.G_MISS_DATE THEN
1641         l_PRICE_LIST_LINE_rec.start_date_active := NULL;
1642     END IF;
1643 
1644     IF l_PRICE_LIST_LINE_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
1645         l_PRICE_LIST_LINE_rec.substitution_attribute := NULL;
1646     END IF;
1647 
1648     IF l_PRICE_LIST_LINE_rec.substitution_context = FND_API.G_MISS_CHAR THEN
1649         l_PRICE_LIST_LINE_rec.substitution_context := NULL;
1650     END IF;
1651 
1652     IF l_PRICE_LIST_LINE_rec.substitution_value = FND_API.G_MISS_CHAR THEN
1653         l_PRICE_LIST_LINE_rec.substitution_value := NULL;
1654     END IF;
1655 
1656     IF l_PRICE_LIST_LINE_rec.qualification_ind = FND_API.G_MISS_NUM THEN
1657         l_PRICE_LIST_LINE_rec.qualification_ind := NULL;
1658     END IF;
1659 
1660     IF l_PRICE_LIST_LINE_rec.break_uom_code = FND_API.G_MISS_CHAR THEN
1661         l_PRICE_LIST_LINE_rec.break_uom_code := NULL;
1662     END IF;
1663 
1664     IF l_PRICE_LIST_LINE_rec.break_uom_context = FND_API.G_MISS_CHAR THEN
1665         l_PRICE_LIST_LINE_rec.break_uom_context := NULL;
1666     END IF;
1667 
1668     IF l_PRICE_LIST_LINE_rec.break_uom_attribute = FND_API.G_MISS_CHAR THEN
1669         l_PRICE_LIST_LINE_rec.break_uom_attribute := NULL;
1670     END IF;
1671 
1672     IF l_PRICE_LIST_LINE_rec.continuous_price_break_flag = FND_API.G_MISS_CHAR THEN
1673        l_PRICE_LIST_LINE_rec.continuous_price_break_flag := NULL;
1674     END IF;
1675 
1676     RETURN l_PRICE_LIST_LINE_rec;
1677 
1678 END Convert_Miss_To_Null;
1679 
1680 --  Procedure Update_Row
1681 
1682 -- Added for Enhancement 1732601
1683 
1684 FUNCTION Round_List_Price(p_price_list_header_id IN NUMBER)
1685 RETURN NUMBER
1686 IS
1687 l_rounding_factor       NUMBER;
1688 
1689 BEGIN
1690     BEGIN
1691       select rounding_factor
1692       into   l_rounding_factor
1693       from   qp_list_headers_b
1694       where  list_header_id =p_price_list_header_id;
1695     EXCEPTION
1696          WHEN OTHERS THEN
1697            l_rounding_factor := -2;
1698     END;
1699     Return l_rounding_factor;
1700 END Round_List_Price;
1701 
1702 PROCEDURE Update_Row
1703 (   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
1704 )
1705 IS
1706 l_operand               NUMBER;
1707 l_check_active_flag     VARCHAR2(1); /* Proration */
1708 l_active_flag           VARCHAR2(1); /* Proration */
1709 BEGIN
1710     /* Added for Enhancement 1732601 */
1711    IF fnd_profile.value('QP_PRICE_ROUNDING') IS NOT NULL THEN
1712    	 l_operand := round(p_PRICE_LIST_LINE_rec.operand,-1*Round_List_Price(p_PRICE_LIST_LINE_rec.list_header_id));
1713    ELSE
1714   	 l_operand := p_PRICE_LIST_LINE_rec.operand;
1715    END IF;
1716 
1717    /* Proration Start */
1718    BEGIN
1719        SELECT ACTIVE_FLAG
1720        INTO   l_active_flag
1721        FROM   QP_LIST_HEADERS_B
1722        WHERE  list_header_id=p_PRICE_LIST_LINE_rec.list_header_id;
1723    EXCEPTION
1724    	WHEN OTHERS THEN
1725 	NULL;
1726    END;
1727    /* Proration End */
1728 
1729     UPDATE  QP_LIST_LINES
1730     SET     ACCRUAL_QTY                    = p_PRICE_LIST_LINE_rec.accrual_qty
1731     ,       ACCRUAL_UOM_CODE               = p_PRICE_LIST_LINE_rec.accrual_uom_code
1732     ,       ARITHMETIC_OPERATOR            = p_PRICE_LIST_LINE_rec.arithmetic_operator
1733     ,       ATTRIBUTE1                     = p_PRICE_LIST_LINE_rec.attribute1
1734     ,       ATTRIBUTE10                    = p_PRICE_LIST_LINE_rec.attribute10
1735     ,       ATTRIBUTE11                    = p_PRICE_LIST_LINE_rec.attribute11
1736     ,       ATTRIBUTE12                    = p_PRICE_LIST_LINE_rec.attribute12
1737     ,       ATTRIBUTE13                    = p_PRICE_LIST_LINE_rec.attribute13
1738     ,       ATTRIBUTE14                    = p_PRICE_LIST_LINE_rec.attribute14
1739     ,       ATTRIBUTE15                    = p_PRICE_LIST_LINE_rec.attribute15
1740     ,       ATTRIBUTE2                     = p_PRICE_LIST_LINE_rec.attribute2
1741     ,       ATTRIBUTE3                     = p_PRICE_LIST_LINE_rec.attribute3
1742     ,       ATTRIBUTE4                     = p_PRICE_LIST_LINE_rec.attribute4
1743     ,       ATTRIBUTE5                     = p_PRICE_LIST_LINE_rec.attribute5
1744     ,       ATTRIBUTE6                     = p_PRICE_LIST_LINE_rec.attribute6
1745     ,       ATTRIBUTE7                     = p_PRICE_LIST_LINE_rec.attribute7
1746     ,       ATTRIBUTE8                     = p_PRICE_LIST_LINE_rec.attribute8
1747     ,       ATTRIBUTE9                     = p_PRICE_LIST_LINE_rec.attribute9
1748     ,       AUTOMATIC_FLAG                 = p_PRICE_LIST_LINE_rec.automatic_flag
1749     ,       BASE_QTY                       = p_PRICE_LIST_LINE_rec.base_qty
1750     ,       BASE_UOM_CODE                  = p_PRICE_LIST_LINE_rec.base_uom_code
1751     ,       COMMENTS                       = p_PRICE_LIST_LINE_rec.comments
1752     ,       CONTEXT                        = p_PRICE_LIST_LINE_rec.context
1753     ,       CREATED_BY                     = p_PRICE_LIST_LINE_rec.created_by
1754     ,       CREATION_DATE                  = p_PRICE_LIST_LINE_rec.creation_date
1755     ,       EFFECTIVE_PERIOD_UOM           = p_PRICE_LIST_LINE_rec.effective_period_uom
1756     ,       END_DATE_ACTIVE                = trunc(p_PRICE_LIST_LINE_rec.end_date_active)
1757     ,       ESTIM_ACCRUAL_RATE             = p_PRICE_LIST_LINE_rec.estim_accrual_rate
1758     ,       GENERATE_USING_FORMULA_ID      = p_PRICE_LIST_LINE_rec.generate_using_formula_id
1759     ,       INVENTORY_ITEM_ID              = p_PRICE_LIST_LINE_rec.inventory_item_id
1760     ,       LAST_UPDATED_BY                = p_PRICE_LIST_LINE_rec.last_updated_by
1761     ,       LAST_UPDATE_DATE               = p_PRICE_LIST_LINE_rec.last_update_date
1762     ,       LAST_UPDATE_LOGIN              = p_PRICE_LIST_LINE_rec.last_update_login
1763     ,       LIST_HEADER_ID                 = p_PRICE_LIST_LINE_rec.list_header_id
1764     ,       LIST_LINE_ID                   = p_PRICE_LIST_LINE_rec.list_line_id
1765     ,       LIST_LINE_NO                   = p_PRICE_LIST_LINE_rec.list_line_no
1766     ,       LIST_LINE_TYPE_CODE            = p_PRICE_LIST_LINE_rec.list_line_type_code
1767     ,       LIST_PRICE                     = p_PRICE_LIST_LINE_rec.list_price
1768     ,       PRODUCT_PRECEDENCE             = p_PRICE_LIST_LINE_rec.product_precedence
1769     ,       MODIFIER_LEVEL_CODE            = p_PRICE_LIST_LINE_rec.modifier_level_code
1770     ,       NUMBER_EFFECTIVE_PERIODS       = p_PRICE_LIST_LINE_rec.number_effective_periods
1771     --,       OPERAND                        = p_PRICE_LIST_LINE_rec.operand
1772     ,       OPERAND                        = l_operand  					--Modified for Enhancement 1732601
1773     ,       ORGANIZATION_ID                = p_PRICE_LIST_LINE_rec.organization_id
1774     ,       OVERRIDE_FLAG                  = p_PRICE_LIST_LINE_rec.override_flag
1775     ,       PERCENT_PRICE                  = p_PRICE_LIST_LINE_rec.percent_price
1776     ,       PRICE_BREAK_TYPE_CODE          = p_PRICE_LIST_LINE_rec.price_break_type_code
1777     ,       PRICE_BY_FORMULA_ID            = p_PRICE_LIST_LINE_rec.price_by_formula_id
1778     ,       PRIMARY_UOM_FLAG               = p_PRICE_LIST_LINE_rec.primary_uom_flag
1779     ,       PRINT_ON_INVOICE_FLAG          = p_PRICE_LIST_LINE_rec.print_on_invoice_flag
1780     ,       PROGRAM_APPLICATION_ID         = p_PRICE_LIST_LINE_rec.program_application_id
1781     ,       PROGRAM_ID                     = p_PRICE_LIST_LINE_rec.program_id
1782     ,       PROGRAM_UPDATE_DATE            = p_PRICE_LIST_LINE_rec.program_update_date
1783     ,       REBATE_TRANSACTION_TYPE_CODE   = p_PRICE_LIST_LINE_rec.rebate_trxn_type_code
1784     ,       RELATED_ITEM_ID                = p_PRICE_LIST_LINE_rec.related_item_id
1785     ,       RELATIONSHIP_TYPE_ID           = p_PRICE_LIST_LINE_rec.relationship_type_id
1786     ,       REPRICE_FLAG                   = p_PRICE_LIST_LINE_rec.reprice_flag
1787     ,       REQUEST_ID                     = p_PRICE_LIST_LINE_rec.request_id
1788     ,       REVISION                       = p_PRICE_LIST_LINE_rec.revision
1789     ,       REVISION_DATE                  = trunc(p_PRICE_LIST_LINE_rec.revision_date)
1790     ,       REVISION_REASON_CODE           = p_PRICE_LIST_LINE_rec.revision_reason_code
1791     ,       START_DATE_ACTIVE              = trunc(p_PRICE_LIST_LINE_rec.start_date_active)
1792     ,       SUBSTITUTION_ATTRIBUTE         = p_PRICE_LIST_LINE_rec.substitution_attribute
1793     ,       SUBSTITUTION_CONTEXT           = p_PRICE_LIST_LINE_rec.substitution_context
1794     ,       SUBSTITUTION_VALUE             = p_PRICE_LIST_LINE_rec.substitution_value
1795     ,       PRICING_GROUP_SEQUENCE         = 0
1796     ,       PRICING_PHASE_ID               = 1
1797     ,       INCOMPATIBILITY_GRP_CODE       = 'EXCL'
1798     ,       QUALIFICATION_IND              = p_PRICE_LIST_LINE_rec.qualification_ind
1799     ,       RECURRING_VALUE                = p_PRICE_LIST_LINE_rec.recurring_value -- block pricing
1800     ,       CUSTOMER_ITEM_ID               = p_PRICE_LIST_LINE_rec.customer_item_id
1801     ,       BREAK_UOM_CODE                 = p_PRICE_LIST_LINE_rec.break_uom_code -- OKS proration
1802     ,       BREAK_UOM_CONTEXT              = p_PRICE_LIST_LINE_rec.break_uom_context -- OKS
1803     ,       BREAK_UOM_ATTRIBUTE            = p_PRICE_LIST_LINE_rec.break_uom_attribute -- OKS proration
1804     ,       CONTINUOUS_PRICE_BREAK_FLAG        = p_PRICE_LIST_LINE_rec.continuous_price_break_flag
1805     										-- Continuous price breaks
1806     WHERE   LIST_LINE_ID = p_PRICE_LIST_LINE_rec.list_line_id
1807     ;
1808 
1809    /* Proration Start */
1810 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1811 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1812  IF(p_PRICE_LIST_LINE_rec.break_uom_context IS NOT NULL) AND
1813    (p_PRICE_LIST_LINE_rec.break_uom_attribute IS NOT NULL) THEN
1814 
1815      UPDATE qp_pte_segments set used_in_setup='Y'
1816      WHERE  nvl(used_in_setup,'N')='N'
1817      AND    segment_id IN
1818       (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1819        WHERE  a.segment_mapping_column=p_PRICE_LIST_LINE_rec.break_uom_attribute
1820        AND    a.prc_context_id=b.prc_context_id
1821        AND b.prc_context_type = 'PRICING_ATTRIBUTE'
1822        AND    b.prc_context_code=p_PRICE_LIST_LINE_rec.break_uom_context);
1823 
1824  END IF;
1825 END IF;
1826    /* Proration End */
1827 
1828 EXCEPTION
1829 
1830     WHEN OTHERS THEN
1831 
1832         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1833         THEN
1834             oe_msg_pub.Add_Exc_Msg
1835             (   G_PKG_NAME
1836             ,   'Update_Row'
1837             );
1838         END IF;
1839 
1840         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1841 
1842 END Update_Row;
1843 
1844 --  Procedure Insert_Row
1845 
1846 PROCEDURE Insert_Row
1847 (   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
1848 )
1849 IS
1850 l_return_status         varchar2(30);
1851 l_operand		NUMBER;
1852 l_check_active_flag     VARCHAR2(1); /* Proration */
1853 l_active_flag           VARCHAR2(1); /* Proration */
1854 
1855 BEGIN
1856 
1857     /* Added for Enhancement 1732601 */
1858    IF fnd_profile.value('QP_PRICE_ROUNDING') IS NOT NULL THEN
1859          l_operand := round(p_PRICE_LIST_LINE_rec.operand,-1*Round_List_Price(p_PRICE_LIST_LINE_rec.list_header_id));
1860    ELSE
1861          l_operand := p_PRICE_LIST_LINE_rec.operand;
1862    END IF;
1863 
1864    /* pricing group sequence = 0, pricing_phase_id = 1 - list line price */
1865 
1866    /* Proration Start */
1867    begin
1868        SELECT ACTIVE_FLAG
1869        INTO   l_active_flag
1870        FROM   QP_LIST_HEADERS_B
1871        WHERE  list_header_id=p_PRICE_LIST_LINE_rec.list_header_id;
1872    exception
1873    when others then
1874    	null;
1875    end;
1876 
1877    /* Proration End */
1878 
1879     INSERT  INTO QP_LIST_LINES
1880     (       ACCRUAL_QTY
1881     ,       ACCRUAL_UOM_CODE
1882     ,       ARITHMETIC_OPERATOR
1883     ,       ATTRIBUTE1
1884     ,       ATTRIBUTE10
1885     ,       ATTRIBUTE11
1886     ,       ATTRIBUTE12
1887     ,       ATTRIBUTE13
1888     ,       ATTRIBUTE14
1889     ,       ATTRIBUTE15
1890     ,       ATTRIBUTE2
1891     ,       ATTRIBUTE3
1892     ,       ATTRIBUTE4
1893     ,       ATTRIBUTE5
1894     ,       ATTRIBUTE6
1895     ,       ATTRIBUTE7
1896     ,       ATTRIBUTE8
1897     ,       ATTRIBUTE9
1898     ,       AUTOMATIC_FLAG
1899     ,       BASE_QTY
1900     ,       BASE_UOM_CODE
1901     ,       COMMENTS
1902     ,       CONTEXT
1903     ,       CREATED_BY
1904     ,       CREATION_DATE
1905     ,       EFFECTIVE_PERIOD_UOM
1906     ,       END_DATE_ACTIVE
1907     ,       ESTIM_ACCRUAL_RATE
1908     ,       GENERATE_USING_FORMULA_ID
1909     ,       INVENTORY_ITEM_ID
1910     ,       LAST_UPDATED_BY
1911     ,       LAST_UPDATE_DATE
1912     ,       LAST_UPDATE_LOGIN
1913     ,       LIST_HEADER_ID
1914     ,       LIST_LINE_ID
1915     ,       LIST_LINE_NO
1916     ,       LIST_LINE_TYPE_CODE
1917     ,       LIST_PRICE
1918     ,       PRODUCT_PRECEDENCE
1919     ,       MODIFIER_LEVEL_CODE
1920     ,       NUMBER_EFFECTIVE_PERIODS
1921     ,       OPERAND
1922     ,       ORGANIZATION_ID
1923     ,       OVERRIDE_FLAG
1924     ,       PERCENT_PRICE
1925     ,       PRICE_BREAK_TYPE_CODE
1926     ,       PRICE_BY_FORMULA_ID
1927     ,       PRIMARY_UOM_FLAG
1928     ,       PRINT_ON_INVOICE_FLAG
1929     ,       PROGRAM_APPLICATION_ID
1930     ,       PROGRAM_ID
1931     ,       PROGRAM_UPDATE_DATE
1932     ,       REBATE_TRANSACTION_TYPE_CODE
1933     ,       RELATED_ITEM_ID
1934     ,       RELATIONSHIP_TYPE_ID
1935     ,       REPRICE_FLAG
1936     ,       REQUEST_ID
1937     ,       REVISION
1938     ,       REVISION_DATE
1939     ,       REVISION_REASON_CODE
1940     ,       START_DATE_ACTIVE
1941     ,       SUBSTITUTION_ATTRIBUTE
1942     ,       SUBSTITUTION_CONTEXT
1943     ,       SUBSTITUTION_VALUE
1944     ,       PRICING_GROUP_SEQUENCE
1945     ,       PRICING_PHASE_ID
1946     ,       INCOMPATIBILITY_GRP_CODE
1947     ,       QUALIFICATION_IND
1948     ,       RECURRING_VALUE -- block pricing
1949     ,       CUSTOMER_ITEM_ID
1950     ,       BREAK_UOM_CODE  -- OKS proration
1951     ,       BREAK_UOM_CONTEXT -- OKS proration
1952     ,       BREAK_UOM_ATTRIBUTE -- OKS proration
1953     ,       CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
1954   --ENH Upgrade BOAPI for orig_sys...ref RAVI
1955   ,orig_sys_line_ref
1956   ,ORIG_SYS_HEADER_REF
1957     )
1958     VALUES
1959     (       p_PRICE_LIST_LINE_rec.accrual_qty
1960     ,       p_PRICE_LIST_LINE_rec.accrual_uom_code
1961     ,       p_PRICE_LIST_LINE_rec.arithmetic_operator
1962     ,       p_PRICE_LIST_LINE_rec.attribute1
1963     ,       p_PRICE_LIST_LINE_rec.attribute10
1964     ,       p_PRICE_LIST_LINE_rec.attribute11
1965     ,       p_PRICE_LIST_LINE_rec.attribute12
1966     ,       p_PRICE_LIST_LINE_rec.attribute13
1967     ,       p_PRICE_LIST_LINE_rec.attribute14
1968     ,       p_PRICE_LIST_LINE_rec.attribute15
1969     ,       p_PRICE_LIST_LINE_rec.attribute2
1970     ,       p_PRICE_LIST_LINE_rec.attribute3
1971     ,       p_PRICE_LIST_LINE_rec.attribute4
1972     ,       p_PRICE_LIST_LINE_rec.attribute5
1973     ,       p_PRICE_LIST_LINE_rec.attribute6
1974     ,       p_PRICE_LIST_LINE_rec.attribute7
1975     ,       p_PRICE_LIST_LINE_rec.attribute8
1976     ,       p_PRICE_LIST_LINE_rec.attribute9
1977     ,       p_PRICE_LIST_LINE_rec.automatic_flag
1978     ,       p_PRICE_LIST_LINE_rec.base_qty
1979     ,       p_PRICE_LIST_LINE_rec.base_uom_code
1980     ,       p_PRICE_LIST_LINE_rec.comments
1981     ,       p_PRICE_LIST_LINE_rec.context
1982     ,       p_PRICE_LIST_LINE_rec.created_by
1983     ,       p_PRICE_LIST_LINE_rec.creation_date
1984     ,       p_PRICE_LIST_LINE_rec.effective_period_uom
1985     ,       trunc(p_PRICE_LIST_LINE_rec.end_date_active)
1986     ,       p_PRICE_LIST_LINE_rec.estim_accrual_rate
1987     ,       p_PRICE_LIST_LINE_rec.generate_using_formula_id
1988     ,       p_PRICE_LIST_LINE_rec.inventory_item_id
1989     ,       p_PRICE_LIST_LINE_rec.last_updated_by
1990     ,       p_PRICE_LIST_LINE_rec.last_update_date
1991     ,       p_PRICE_LIST_LINE_rec.last_update_login
1992     ,       p_PRICE_LIST_LINE_rec.list_header_id
1993     ,       p_PRICE_LIST_LINE_rec.list_line_id
1994     ,       p_PRICE_LIST_LINE_rec.list_line_no
1995     ,       p_PRICE_LIST_LINE_rec.list_line_type_code
1996     ,       p_PRICE_LIST_LINE_rec.list_price
1997     ,       p_PRICE_LIST_LINE_rec.product_precedence
1998     ,       p_PRICE_LIST_LINE_rec.modifier_level_code
1999     ,       p_PRICE_LIST_LINE_rec.number_effective_periods
2000  --   ,       p_PRICE_LIST_LINE_rec.operand
2001     ,       l_operand                                             --Modified for 1732601
2002     ,       p_PRICE_LIST_LINE_rec.organization_id
2003     ,       p_PRICE_LIST_LINE_rec.override_flag
2004     ,       p_PRICE_LIST_LINE_rec.percent_price
2005     ,       p_PRICE_LIST_LINE_rec.price_break_type_code
2006     ,       p_PRICE_LIST_LINE_rec.price_by_formula_id
2007     ,       p_PRICE_LIST_LINE_rec.primary_uom_flag
2008     ,       p_PRICE_LIST_LINE_rec.print_on_invoice_flag
2009     ,       p_PRICE_LIST_LINE_rec.program_application_id
2010     ,       p_PRICE_LIST_LINE_rec.program_id
2011     ,       p_PRICE_LIST_LINE_rec.program_update_date
2012     ,       p_PRICE_LIST_LINE_rec.rebate_trxn_type_code
2013     ,       p_PRICE_LIST_LINE_rec.related_item_id
2014     ,       p_PRICE_LIST_LINE_rec.relationship_type_id
2015     ,       p_PRICE_LIST_LINE_rec.reprice_flag
2016     ,       p_PRICE_LIST_LINE_rec.request_id
2017     ,       p_PRICE_LIST_LINE_rec.revision
2018     ,       trunc(p_PRICE_LIST_LINE_rec.revision_date)
2019     ,       p_PRICE_LIST_LINE_rec.revision_reason_code
2020     ,       trunc(p_PRICE_LIST_LINE_rec.start_date_active)
2021     ,       p_PRICE_LIST_LINE_rec.substitution_attribute
2022     ,       p_PRICE_LIST_LINE_rec.substitution_context
2023     ,       p_PRICE_LIST_LINE_rec.substitution_value
2024     ,       0
2025     ,       1
2026     ,       'EXCL'
2027     ,       p_PRICE_LIST_LINE_rec.qualification_ind --Euro Bug 2138996
2028     ,       p_PRICE_LIST_LINE_rec.recurring_value -- block pricing
2029     ,       p_PRICE_LIST_LINE_rec.customer_item_id
2030     ,       p_PRICE_LIST_LINE_rec.break_uom_code -- OKS proration
2031     ,       p_PRICE_LIST_LINE_rec.break_uom_context -- OKS
2032     ,       p_PRICE_LIST_LINE_rec.break_uom_attribute -- OKS proration
2033     ,       p_PRICE_LIST_LINE_rec.continuous_price_break_flag -- Continuous price breaks
2034   --ENH Upgrade BOAPI for orig_sys...ref RAVI
2035   ,to_char(p_PRICE_LIST_LINE_rec.list_line_id)
2036   ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_PRICE_LIST_LINE_rec.list_header_id)
2037     );
2038       /* Added delayed request by dhgupta for bug 2018275 */
2039 
2040          qp_delayed_requests_PVT.log_request(
2041                  p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2042                  p_entity_id  => p_PRICE_LIST_LINE_rec.list_line_id,
2043                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
2044                  p_requesting_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
2045                  p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
2046                  x_return_status => l_return_status);
2047 
2048    /* Proration Start */
2049 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
2050 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
2051  IF(p_PRICE_LIST_LINE_rec.break_uom_context IS NOT NULL) AND
2052    (p_PRICE_LIST_LINE_rec.break_uom_attribute IS NOT NULL) THEN
2053 
2054      UPDATE qp_pte_segments set used_in_setup='Y'
2055      WHERE  nvl(used_in_setup,'N')='N'
2056      AND    segment_id IN
2057       (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
2058        WHERE  a.segment_mapping_column=p_PRICE_LIST_LINE_rec.break_uom_attribute
2059        AND    a.prc_context_id=b.prc_context_id
2060        AND b.prc_context_type = 'PRICING_ATTRIBUTE'
2061        AND    b.prc_context_code=p_PRICE_LIST_LINE_rec.break_uom_context);
2062 
2063  END IF;
2064 END IF;
2065    /* Proration End */
2066 
2067 EXCEPTION
2068 
2069     WHEN OTHERS THEN
2070 
2071         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2072         THEN
2073             oe_msg_pub.Add_Exc_Msg
2074             (   G_PKG_NAME
2075             ,   'Insert_Row'
2076             );
2077         END IF;
2078 
2079         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2080 
2081 END Insert_Row;
2082 
2083 --  Procedure delete_Row
2084 
2085 PROCEDURE Delete_Row
2086 (   p_list_line_id                  IN  NUMBER
2087 )
2088 IS
2089 L_LINE_TYPE_CODE VARCHAR2(30) := NULL;
2090 
2091 cursor get_rltd_mods(line_id in number) is
2092 select from_rltd_modifier_id, to_rltd_modifier_id
2093 from qp_rltd_modifiers
2094 where from_rltd_modifier_id = line_id;
2095 
2096 
2097 BEGIN
2098 
2099    SELECT LIST_LINE_TYPE_CODE
2100    INTO L_LINE_TYPE_CODE
2101    FROM QP_LIST_LINES
2102    WHERE LIST_LINE_ID = p_list_line_id;
2103 
2104    /* delete all the related modifier lines if the line is a PBH,
2105      else delete all references of this line in qp_rltd_modifiers */
2106 
2107    IF L_LINE_TYPE_CODE = 'PBH' THEN
2108 
2109      for get_rltd_mods_rec in get_rltd_mods(p_list_line_id) loop
2110 
2111         QP_PRICE_LIST_LINE_UTIL.DELETE_ROW(get_rltd_mods_rec.to_rltd_modifier_id);
2112 
2113      end loop;
2114 
2115      DELETE FROM QP_RLTD_MODIFIERS
2116      WHERE FROM_RLTD_MODIFIER_ID = p_list_line_id;
2117 
2118   ELSE
2119 
2120       DELETE FROM QP_RLTD_MODIFIERS
2121       WHERE TO_RLTD_MODIFIER_ID = p_list_line_id;
2122 
2123   END IF;  /* done with related modifier lines */
2124 
2125 
2126  /* delete all the pricing attributes */
2127 
2128     DELETE FROM QP_PRICING_ATTRIBUTES
2129     WHERE LIST_LINE_ID = p_list_line_id;   /* done with pricing attributes */
2130 
2131 
2132     DELETE  FROM QP_LIST_LINES
2133     WHERE   LIST_LINE_ID = p_list_line_id
2134     ;
2135 
2136 EXCEPTION
2137 
2138     WHEN OTHERS THEN
2139 
2140         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2141         THEN
2142             oe_msg_pub.Add_Exc_Msg
2143             (   G_PKG_NAME
2144             ,   'Delete_Row'
2145             );
2146         END IF;
2147 
2148         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2149 
2150 END Delete_Row;
2151 
2152 --  Function Query_Row
2153 
2154 FUNCTION Query_Row
2155 (   p_list_line_id                  IN  NUMBER
2156 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
2157 IS
2158 BEGIN
2159 
2160     RETURN Query_Rows
2161         (   p_list_line_id                => p_list_line_id
2162         )(1);
2163 
2164 END Query_Row;
2165 
2166 --  Function Query_Rows
2167 
2168 --
2169 
2170 FUNCTION Query_Rows
2171 (   p_list_line_id                  IN  NUMBER :=
2172                                         FND_API.G_MISS_NUM
2173 ,   p_list_header_id                IN  NUMBER :=
2174                                         FND_API.G_MISS_NUM
2175 ) RETURN QP_Price_List_PUB.Price_List_Line_Tbl_Type
2176 IS
2177 l_PRICE_LIST_LINE_rec         QP_Price_List_PUB.Price_List_Line_Rec_Type;
2178 l_PRICE_LIST_LINE_tbl         QP_Price_List_PUB.Price_List_Line_Tbl_Type;
2179 
2180 CURSOR l_PRICE_LIST_LINE_csr IS
2181     SELECT  ACCRUAL_QTY
2182     ,       ACCRUAL_UOM_CODE
2183     ,       ARITHMETIC_OPERATOR
2184     ,       ATTRIBUTE1
2185     ,       ATTRIBUTE10
2186     ,       ATTRIBUTE11
2187     ,       ATTRIBUTE12
2188     ,       ATTRIBUTE13
2189     ,       ATTRIBUTE14
2190     ,       ATTRIBUTE15
2191     ,       ATTRIBUTE2
2192     ,       ATTRIBUTE3
2193     ,       ATTRIBUTE4
2194     ,       ATTRIBUTE5
2195     ,       ATTRIBUTE6
2196     ,       ATTRIBUTE7
2197     ,       ATTRIBUTE8
2198     ,       ATTRIBUTE9
2199     ,       AUTOMATIC_FLAG
2200     ,       BASE_QTY
2201     ,       BASE_UOM_CODE
2202     ,       COMMENTS
2203     ,       CONTEXT
2204     ,       CREATED_BY
2205     ,       CREATION_DATE
2206     ,       EFFECTIVE_PERIOD_UOM
2207     ,       END_DATE_ACTIVE
2208     ,       ESTIM_ACCRUAL_RATE
2209     ,       GENERATE_USING_FORMULA_ID
2210     ,       INVENTORY_ITEM_ID
2211     ,       LAST_UPDATED_BY
2212     ,       LAST_UPDATE_DATE
2213     ,       LAST_UPDATE_LOGIN
2214     ,       LIST_HEADER_ID
2215     ,       LIST_LINE_ID
2216     ,       LIST_LINE_NO
2217     ,       LIST_LINE_TYPE_CODE
2218     ,       LIST_PRICE
2219     ,       PRODUCT_PRECEDENCE
2220     ,       MODIFIER_LEVEL_CODE
2221     ,       NUMBER_EFFECTIVE_PERIODS
2222     ,       OPERAND
2223     ,       ORGANIZATION_ID
2224     ,       OVERRIDE_FLAG
2225     ,       PERCENT_PRICE
2226     ,       PRICE_BREAK_TYPE_CODE
2227     ,       PRICE_BY_FORMULA_ID
2228     ,       PRIMARY_UOM_FLAG
2229     ,       PRINT_ON_INVOICE_FLAG
2230     ,       PROGRAM_APPLICATION_ID
2231     ,       PROGRAM_ID
2232     ,       PROGRAM_UPDATE_DATE
2233     ,       REBATE_TRANSACTION_TYPE_CODE
2234     ,       RELATED_ITEM_ID
2235     ,       RELATIONSHIP_TYPE_ID
2236     ,       REPRICE_FLAG
2237     ,       REQUEST_ID
2238     ,       REVISION
2239     ,       REVISION_DATE
2240     ,       REVISION_REASON_CODE
2241     ,       START_DATE_ACTIVE
2242     ,       SUBSTITUTION_ATTRIBUTE
2243     ,       SUBSTITUTION_CONTEXT
2244     ,       SUBSTITUTION_VALUE
2245     ,       QUALIFICATION_IND
2246     ,       RECURRING_VALUE -- block pricing
2247     ,       CUSTOMER_ITEM_ID
2248     ,       BREAK_UOM_CODE
2249     ,       BREAK_UOM_CONTEXT
2250     ,       BREAK_UOM_ATTRIBUTE
2251     ,       CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
2252     FROM    QP_LIST_LINES
2253     WHERE  LIST_LINE_ID = p_list_line_id;
2254 
2255 /* Peformance changes for 2422019 */
2256 /*
2257     )
2258     OR (    LIST_HEADER_ID = p_list_header_id
2259     );
2260 */
2261 
2262 CURSOR l_PRICE_LIST_LINE_hdr_csr IS
2263     SELECT  ACCRUAL_QTY
2264     ,       ACCRUAL_UOM_CODE
2265     ,       ARITHMETIC_OPERATOR
2266     ,       ATTRIBUTE1
2267     ,       ATTRIBUTE10
2268     ,       ATTRIBUTE11
2269     ,       ATTRIBUTE12
2270     ,       ATTRIBUTE13
2271     ,       ATTRIBUTE14
2272     ,       ATTRIBUTE15
2273     ,       ATTRIBUTE2
2274     ,       ATTRIBUTE3
2275     ,       ATTRIBUTE4
2276     ,       ATTRIBUTE5
2277     ,       ATTRIBUTE6
2278     ,       ATTRIBUTE7
2279     ,       ATTRIBUTE8
2280     ,       ATTRIBUTE9
2281     ,       AUTOMATIC_FLAG
2282     ,       BASE_QTY
2283     ,       BASE_UOM_CODE
2284     ,       COMMENTS
2285     ,       CONTEXT
2286     ,       CREATED_BY
2287     ,       CREATION_DATE
2288     ,       EFFECTIVE_PERIOD_UOM
2289     ,       END_DATE_ACTIVE
2290     ,       ESTIM_ACCRUAL_RATE
2291     ,       GENERATE_USING_FORMULA_ID
2292     ,       INVENTORY_ITEM_ID
2293     ,       LAST_UPDATED_BY
2294     ,       LAST_UPDATE_DATE
2295     ,       LAST_UPDATE_LOGIN
2296     ,       LIST_HEADER_ID
2297     ,       LIST_LINE_ID
2298     ,       LIST_LINE_NO
2299     ,       LIST_LINE_TYPE_CODE
2300     ,       LIST_PRICE
2301     ,       PRODUCT_PRECEDENCE
2302     ,       MODIFIER_LEVEL_CODE
2303     ,       NUMBER_EFFECTIVE_PERIODS
2304     ,       OPERAND
2305     ,       ORGANIZATION_ID
2306     ,       OVERRIDE_FLAG
2307     ,       PERCENT_PRICE
2308     ,       PRICE_BREAK_TYPE_CODE
2309     ,       PRICE_BY_FORMULA_ID
2310     ,       PRIMARY_UOM_FLAG
2311     ,       PRINT_ON_INVOICE_FLAG
2312     ,       PROGRAM_APPLICATION_ID
2313     ,       PROGRAM_ID
2314     ,       PROGRAM_UPDATE_DATE
2315     ,       REBATE_TRANSACTION_TYPE_CODE
2316     ,       RELATED_ITEM_ID
2317     ,       RELATIONSHIP_TYPE_ID
2318     ,       REPRICE_FLAG
2319     ,       REQUEST_ID
2320     ,       REVISION
2321     ,       REVISION_DATE
2322     ,       REVISION_REASON_CODE
2323     ,       START_DATE_ACTIVE
2324     ,       SUBSTITUTION_ATTRIBUTE
2325     ,       SUBSTITUTION_CONTEXT
2326     ,       SUBSTITUTION_VALUE
2327     ,       QUALIFICATION_IND
2328     ,       RECURRING_VALUE -- block pricing
2329     ,       CUSTOMER_ITEM_ID
2330     ,       BREAK_UOM_CODE
2331     ,       BREAK_UOM_CONTEXT
2332     ,       BREAK_UOM_ATTRIBUTE
2333     ,       CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
2334     FROM    QP_LIST_LINES
2335     WHERE   LIST_HEADER_ID = p_list_header_id;
2336 
2337 BEGIN
2338 
2339     IF
2340     (p_list_line_id IS NOT NULL
2341      AND
2342      p_list_line_id <> FND_API.G_MISS_NUM)
2343     AND
2344     (p_list_header_id IS NOT NULL
2345      AND
2346      p_list_header_id <> FND_API.G_MISS_NUM)
2347     THEN
2348             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2349             THEN
2350                 oe_msg_pub.Add_Exc_Msg
2351                 (   G_PKG_NAME
2352                 ,   'Query Rows'
2353                 ,   'Keys are mutually exclusive: list_line_id = '|| p_list_line_id || ', list_header_id = '|| p_list_header_id
2354                 );
2355             END IF;
2356 
2357         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2358 
2359     END IF;
2360 
2361 
2362     --  Loop over fetched records
2363 IF (p_list_line_id IS NOT NULL) AND (p_list_line_id <> FND_API.G_MISS_NUM) THEN  --Added for performance bug2422019
2364     FOR l_implicit_rec IN l_PRICE_LIST_LINE_csr LOOP
2365 
2366         l_PRICE_LIST_LINE_rec.accrual_qty := l_implicit_rec.ACCRUAL_QTY;
2367         l_PRICE_LIST_LINE_rec.accrual_uom_code := l_implicit_rec.ACCRUAL_UOM_CODE;
2368         l_PRICE_LIST_LINE_rec.arithmetic_operator := l_implicit_rec.ARITHMETIC_OPERATOR;
2369         l_PRICE_LIST_LINE_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2370         l_PRICE_LIST_LINE_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2371         l_PRICE_LIST_LINE_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2372         l_PRICE_LIST_LINE_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2373         l_PRICE_LIST_LINE_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2374         l_PRICE_LIST_LINE_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2375         l_PRICE_LIST_LINE_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2376         l_PRICE_LIST_LINE_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2377         l_PRICE_LIST_LINE_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2378         l_PRICE_LIST_LINE_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2379         l_PRICE_LIST_LINE_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2380         l_PRICE_LIST_LINE_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2381         l_PRICE_LIST_LINE_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2382         l_PRICE_LIST_LINE_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2383         l_PRICE_LIST_LINE_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2384         l_PRICE_LIST_LINE_rec.automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
2385         l_PRICE_LIST_LINE_rec.base_qty := l_implicit_rec.BASE_QTY;
2386         l_PRICE_LIST_LINE_rec.base_uom_code := l_implicit_rec.BASE_UOM_CODE;
2387         l_PRICE_LIST_LINE_rec.comments := l_implicit_rec.COMMENTS;
2388         l_PRICE_LIST_LINE_rec.context  := l_implicit_rec.CONTEXT;
2389         l_PRICE_LIST_LINE_rec.created_by := l_implicit_rec.CREATED_BY;
2390         l_PRICE_LIST_LINE_rec.creation_date := l_implicit_rec.CREATION_DATE;
2391         l_PRICE_LIST_LINE_rec.effective_period_uom := l_implicit_rec.EFFECTIVE_PERIOD_UOM;
2392         l_PRICE_LIST_LINE_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
2393         l_PRICE_LIST_LINE_rec.estim_accrual_rate := l_implicit_rec.ESTIM_ACCRUAL_RATE;
2394         l_PRICE_LIST_LINE_rec.generate_using_formula_id := l_implicit_rec.GENERATE_USING_FORMULA_ID;
2395         l_PRICE_LIST_LINE_rec.inventory_item_id := l_implicit_rec.INVENTORY_ITEM_ID;
2396         l_PRICE_LIST_LINE_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2397         l_PRICE_LIST_LINE_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2398         l_PRICE_LIST_LINE_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2399         l_PRICE_LIST_LINE_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
2400         l_PRICE_LIST_LINE_rec.list_line_id := l_implicit_rec.LIST_LINE_ID;
2401         l_PRICE_LIST_LINE_rec.list_line_no := l_implicit_rec.LIST_LINE_NO;
2402         l_PRICE_LIST_LINE_rec.list_line_type_code := l_implicit_rec.LIST_LINE_TYPE_CODE;
2403         l_PRICE_LIST_LINE_rec.list_price := l_implicit_rec.LIST_PRICE;
2404         l_PRICE_LIST_LINE_rec.product_precedence := l_implicit_rec.PRODUCT_PRECEDENCE;
2405         l_PRICE_LIST_LINE_rec.modifier_level_code := l_implicit_rec.MODIFIER_LEVEL_CODE;
2406         l_PRICE_LIST_LINE_rec.number_effective_periods := l_implicit_rec.NUMBER_EFFECTIVE_PERIODS;
2407         l_PRICE_LIST_LINE_rec.operand  := l_implicit_rec.OPERAND;
2408         l_PRICE_LIST_LINE_rec.organization_id := l_implicit_rec.ORGANIZATION_ID;
2409         l_PRICE_LIST_LINE_rec.override_flag := l_implicit_rec.OVERRIDE_FLAG;
2410         l_PRICE_LIST_LINE_rec.percent_price := l_implicit_rec.PERCENT_PRICE;
2411         l_PRICE_LIST_LINE_rec.price_break_type_code := l_implicit_rec.PRICE_BREAK_TYPE_CODE;
2412         l_PRICE_LIST_LINE_rec.price_by_formula_id := l_implicit_rec.PRICE_BY_FORMULA_ID;
2413         l_PRICE_LIST_LINE_rec.primary_uom_flag := l_implicit_rec.PRIMARY_UOM_FLAG;
2414         l_PRICE_LIST_LINE_rec.print_on_invoice_flag := l_implicit_rec.PRINT_ON_INVOICE_FLAG;
2415         l_PRICE_LIST_LINE_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2416         l_PRICE_LIST_LINE_rec.program_id := l_implicit_rec.PROGRAM_ID;
2417         l_PRICE_LIST_LINE_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2418         l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := l_implicit_rec.REBATE_TRANSACTION_TYPE_CODE;
2419         l_PRICE_LIST_LINE_rec.related_item_id := l_implicit_rec.RELATED_ITEM_ID;
2420         l_PRICE_LIST_LINE_rec.relationship_type_id := l_implicit_rec.RELATIONSHIP_TYPE_ID;
2421         l_PRICE_LIST_LINE_rec.reprice_flag := l_implicit_rec.REPRICE_FLAG;
2422         l_PRICE_LIST_LINE_rec.request_id := l_implicit_rec.REQUEST_ID;
2423         l_PRICE_LIST_LINE_rec.revision := l_implicit_rec.REVISION;
2424         l_PRICE_LIST_LINE_rec.revision_date := l_implicit_rec.REVISION_DATE;
2425         l_PRICE_LIST_LINE_rec.revision_reason_code := l_implicit_rec.REVISION_REASON_CODE;
2426         l_PRICE_LIST_LINE_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
2427         l_PRICE_LIST_LINE_rec.substitution_attribute := l_implicit_rec.SUBSTITUTION_ATTRIBUTE;
2428         l_PRICE_LIST_LINE_rec.substitution_context := l_implicit_rec.SUBSTITUTION_CONTEXT;
2429         l_PRICE_LIST_LINE_rec.substitution_value := l_implicit_rec.SUBSTITUTION_VALUE;
2430         l_PRICE_LIST_LINE_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
2431         l_PRICE_LIST_LINE_rec.recurring_value := l_implicit_rec.RECURRING_VALUE; -- block pricing
2432 	l_PRICE_LIST_LINE_rec.customer_item_id := l_implicit_rec.CUSTOMER_ITEM_ID;
2433         l_PRICE_LIST_LINE_rec.break_uom_code := l_implicit_rec.BREAK_UOM_CODE;
2434 	l_PRICE_LIST_LINE_rec.break_uom_context := l_implicit_rec.BREAK_UOM_CONTEXT;
2435         l_PRICE_LIST_LINE_rec.break_uom_attribute := l_implicit_rec.BREAK_UOM_ATTRIBUTE; --OKS proration
2436         l_PRICE_LIST_LINE_rec.continuous_price_break_flag := l_implicit_rec.CONTINUOUS_PRICE_BREAK_FLAG;
2437 										-- Continuous price breaks
2438   BEGIN
2439     SELECT  RLTD_MODIFIER_GRP_NO
2440     ,       RLTD_MODIFIER_GRP_TYPE
2441     ,       FROM_RLTD_MODIFIER_ID
2442     ,       TO_RLTD_MODIFIER_ID
2443     ,       RLTD_MODIFIER_ID
2444     INTO    l_PRICE_LIST_LINE_rec.rltd_modifier_group_no
2445     ,       l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type
2446     ,       l_PRICE_LIST_LINE_rec.from_rltd_modifier_id
2447     ,       l_PRICE_LIST_LINE_rec.to_rltd_modifier_id
2448     ,       l_PRICE_LIST_LINE_rec.rltd_modifier_id
2449     FROM    QP_RLTD_MODIFIERS
2450     WHERE   ( TO_RLTD_MODIFIER_ID = l_implicit_rec.LIST_LINE_ID );
2451 
2452   EXCEPTION
2453     WHEN NO_DATA_FOUND THEN
2454       l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := null;
2455       l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type := null;
2456       l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := null;
2457       l_PRICE_LIST_LINE_rec.to_rltd_modifier_id := null;
2458       l_PRICE_LIST_LINE_rec.rltd_modifier_id := null;
2459   END;
2460 
2461         l_PRICE_LIST_LINE_tbl(l_PRICE_LIST_LINE_tbl.COUNT + 1) := l_PRICE_LIST_LINE_rec;
2462 
2463     END LOOP;
2464 
2465 /* Added for performance bug2422019 */
2466 
2467 ELSIF (p_list_header_id IS NOT NULL) AND (p_list_header_id <> FND_API.G_MISS_NUM) THEN
2468     FOR l_implicit_rec IN l_PRICE_LIST_LINE_hdr_csr LOOP
2469 
2470         l_PRICE_LIST_LINE_rec.accrual_qty := l_implicit_rec.ACCRUAL_QTY;
2471         l_PRICE_LIST_LINE_rec.accrual_uom_code := l_implicit_rec.ACCRUAL_UOM_CODE;
2472         l_PRICE_LIST_LINE_rec.arithmetic_operator := l_implicit_rec.ARITHMETIC_OPERATOR;
2473         l_PRICE_LIST_LINE_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2474         l_PRICE_LIST_LINE_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2475         l_PRICE_LIST_LINE_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2476         l_PRICE_LIST_LINE_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2477         l_PRICE_LIST_LINE_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2478         l_PRICE_LIST_LINE_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2479         l_PRICE_LIST_LINE_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2480         l_PRICE_LIST_LINE_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2481         l_PRICE_LIST_LINE_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2482         l_PRICE_LIST_LINE_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2483         l_PRICE_LIST_LINE_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2484         l_PRICE_LIST_LINE_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2485         l_PRICE_LIST_LINE_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2486         l_PRICE_LIST_LINE_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2487         l_PRICE_LIST_LINE_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2488         l_PRICE_LIST_LINE_rec.automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
2489         l_PRICE_LIST_LINE_rec.base_qty := l_implicit_rec.BASE_QTY;
2490         l_PRICE_LIST_LINE_rec.base_uom_code := l_implicit_rec.BASE_UOM_CODE;
2491         l_PRICE_LIST_LINE_rec.comments := l_implicit_rec.COMMENTS;
2492         l_PRICE_LIST_LINE_rec.context  := l_implicit_rec.CONTEXT;
2493         l_PRICE_LIST_LINE_rec.created_by := l_implicit_rec.CREATED_BY;
2494         l_PRICE_LIST_LINE_rec.creation_date := l_implicit_rec.CREATION_DATE;
2495         l_PRICE_LIST_LINE_rec.effective_period_uom := l_implicit_rec.EFFECTIVE_PERIOD_UOM;
2496         l_PRICE_LIST_LINE_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
2497         l_PRICE_LIST_LINE_rec.estim_accrual_rate := l_implicit_rec.ESTIM_ACCRUAL_RATE;
2498         l_PRICE_LIST_LINE_rec.generate_using_formula_id := l_implicit_rec.GENERATE_USING_FORMULA_ID;
2499         l_PRICE_LIST_LINE_rec.inventory_item_id := l_implicit_rec.INVENTORY_ITEM_ID;
2500         l_PRICE_LIST_LINE_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2501         l_PRICE_LIST_LINE_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2502         l_PRICE_LIST_LINE_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2503         l_PRICE_LIST_LINE_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
2504         l_PRICE_LIST_LINE_rec.list_line_id := l_implicit_rec.LIST_LINE_ID;
2505         l_PRICE_LIST_LINE_rec.list_line_no := l_implicit_rec.LIST_LINE_NO;
2506         l_PRICE_LIST_LINE_rec.list_line_type_code := l_implicit_rec.LIST_LINE_TYPE_CODE;
2507         l_PRICE_LIST_LINE_rec.list_price := l_implicit_rec.LIST_PRICE;
2508         l_PRICE_LIST_LINE_rec.product_precedence := l_implicit_rec.PRODUCT_PRECEDENCE;
2509         l_PRICE_LIST_LINE_rec.modifier_level_code := l_implicit_rec.MODIFIER_LEVEL_CODE;
2510         l_PRICE_LIST_LINE_rec.number_effective_periods := l_implicit_rec.NUMBER_EFFECTIVE_PERIODS;
2511         l_PRICE_LIST_LINE_rec.operand  := l_implicit_rec.OPERAND;
2512         l_PRICE_LIST_LINE_rec.organization_id := l_implicit_rec.ORGANIZATION_ID;
2513         l_PRICE_LIST_LINE_rec.override_flag := l_implicit_rec.OVERRIDE_FLAG;
2514         l_PRICE_LIST_LINE_rec.percent_price := l_implicit_rec.PERCENT_PRICE;
2515         l_PRICE_LIST_LINE_rec.price_break_type_code := l_implicit_rec.PRICE_BREAK_TYPE_CODE;
2516         l_PRICE_LIST_LINE_rec.price_by_formula_id := l_implicit_rec.PRICE_BY_FORMULA_ID;
2517         l_PRICE_LIST_LINE_rec.primary_uom_flag := l_implicit_rec.PRIMARY_UOM_FLAG;
2518         l_PRICE_LIST_LINE_rec.print_on_invoice_flag := l_implicit_rec.PRINT_ON_INVOICE_FLAG;
2519         l_PRICE_LIST_LINE_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2520         l_PRICE_LIST_LINE_rec.program_id := l_implicit_rec.PROGRAM_ID;
2521         l_PRICE_LIST_LINE_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2522         l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := l_implicit_rec.REBATE_TRANSACTION_TYPE_CODE;
2523         l_PRICE_LIST_LINE_rec.related_item_id := l_implicit_rec.RELATED_ITEM_ID;
2524         l_PRICE_LIST_LINE_rec.relationship_type_id := l_implicit_rec.RELATIONSHIP_TYPE_ID;
2525         l_PRICE_LIST_LINE_rec.reprice_flag := l_implicit_rec.REPRICE_FLAG;
2526         l_PRICE_LIST_LINE_rec.request_id := l_implicit_rec.REQUEST_ID;
2527         l_PRICE_LIST_LINE_rec.revision := l_implicit_rec.REVISION;
2528         l_PRICE_LIST_LINE_rec.revision_date := l_implicit_rec.REVISION_DATE;
2529         l_PRICE_LIST_LINE_rec.revision_reason_code := l_implicit_rec.REVISION_REASON_CODE;
2530         l_PRICE_LIST_LINE_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
2531         l_PRICE_LIST_LINE_rec.substitution_attribute := l_implicit_rec.SUBSTITUTION_ATTRIBUTE;
2532         l_PRICE_LIST_LINE_rec.substitution_context := l_implicit_rec.SUBSTITUTION_CONTEXT;
2533         l_PRICE_LIST_LINE_rec.substitution_value := l_implicit_rec.SUBSTITUTION_VALUE;
2534         l_PRICE_LIST_LINE_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
2535         l_PRICE_LIST_LINE_rec.recurring_value := l_implicit_rec.RECURRING_VALUE; -- block pricing
2536 	l_PRICE_LIST_LINE_rec.customer_item_id := l_implicit_rec.CUSTOMER_ITEM_ID;
2537         l_PRICE_LIST_LINE_rec.break_uom_code := l_implicit_rec.BREAK_UOM_CODE;
2538 	l_PRICE_LIST_LINE_rec.break_uom_context := l_implicit_rec.BREAK_UOM_CONTEXT;
2539         l_PRICE_LIST_LINE_rec.break_uom_attribute := l_implicit_rec.BREAK_UOM_ATTRIBUTE; --OKS proration
2540         l_PRICE_LIST_LINE_rec.continuous_price_break_flag := l_implicit_rec.CONTINUOUS_PRICE_BREAK_FLAG;
2541 										-- Continuous price breaks
2542   BEGIN
2543     SELECT  RLTD_MODIFIER_GRP_NO
2544     ,       RLTD_MODIFIER_GRP_TYPE
2545     ,       FROM_RLTD_MODIFIER_ID
2546     ,       TO_RLTD_MODIFIER_ID
2547     ,       RLTD_MODIFIER_ID
2548     INTO    l_PRICE_LIST_LINE_rec.rltd_modifier_group_no
2549     ,       l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type
2550     ,       l_PRICE_LIST_LINE_rec.from_rltd_modifier_id
2551     ,       l_PRICE_LIST_LINE_rec.to_rltd_modifier_id
2552     ,       l_PRICE_LIST_LINE_rec.rltd_modifier_id
2553     FROM    QP_RLTD_MODIFIERS
2554     WHERE   ( TO_RLTD_MODIFIER_ID = l_implicit_rec.LIST_LINE_ID );
2555 
2556   EXCEPTION
2557     WHEN NO_DATA_FOUND THEN
2558       l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := null;
2559       l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type := null;
2560       l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := null;
2561       l_PRICE_LIST_LINE_rec.to_rltd_modifier_id := null;
2562       l_PRICE_LIST_LINE_rec.rltd_modifier_id := null;
2563   END;
2564 
2565         l_PRICE_LIST_LINE_tbl(l_PRICE_LIST_LINE_tbl.COUNT + 1) := l_PRICE_LIST_LINE_rec;
2566 
2567     END LOOP;
2568 
2569 END IF;
2570 
2571     --  PK sent and no rows found
2572 
2573     IF
2574     (p_list_line_id IS NOT NULL
2575      AND
2576      p_list_line_id <> FND_API.G_MISS_NUM)
2577     AND
2578     (l_PRICE_LIST_LINE_tbl.COUNT = 0)
2579     THEN
2580         RAISE NO_DATA_FOUND;
2581     END IF;
2582 
2583 
2584     --  Return fetched table
2585 
2586     RETURN l_PRICE_LIST_LINE_tbl;
2587 
2588 EXCEPTION
2589 
2590     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2591 
2592         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2593 
2594     WHEN OTHERS THEN
2595 
2596         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2597         THEN
2598             oe_msg_pub.Add_Exc_Msg
2599             (   G_PKG_NAME
2600             ,   'Query_Rows'
2601             );
2602         END IF;
2603 
2604         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2605 
2606 END Query_Rows;
2607 
2608 --  Procedure       lock_Row
2609 --
2610 
2611 PROCEDURE Lock_Row
2612 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2613 ,   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
2614 ,   x_PRICE_LIST_LINE_rec           OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Line_Rec_Type
2615 )
2616 IS
2617 l_PRICE_LIST_LINE_rec         QP_Price_List_PUB.Price_List_Line_Rec_Type;
2618 BEGIN
2619 
2620 
2621     QP_Price_List_Line_Util.Print_Price_List_line(p_PRICE_LIST_LINE_rec,
2622                                                    1);
2623 
2624 
2625     SELECT  ACCRUAL_QTY
2626     ,       ACCRUAL_UOM_CODE
2627     ,       ARITHMETIC_OPERATOR
2628     ,       ATTRIBUTE1
2629     ,       ATTRIBUTE10
2630     ,       ATTRIBUTE11
2631     ,       ATTRIBUTE12
2632     ,       ATTRIBUTE13
2633     ,       ATTRIBUTE14
2634     ,       ATTRIBUTE15
2635     ,       ATTRIBUTE2
2636     ,       ATTRIBUTE3
2637     ,       ATTRIBUTE4
2638     ,       ATTRIBUTE5
2639     ,       ATTRIBUTE6
2640     ,       ATTRIBUTE7
2641     ,       ATTRIBUTE8
2642     ,       ATTRIBUTE9
2643     ,       AUTOMATIC_FLAG
2644     ,       BASE_QTY
2645     ,       BASE_UOM_CODE
2646     ,       COMMENTS
2647     ,       CONTEXT
2648     ,       CREATED_BY
2649     ,       CREATION_DATE
2650     ,       EFFECTIVE_PERIOD_UOM
2651     ,       END_DATE_ACTIVE
2652     ,       ESTIM_ACCRUAL_RATE
2653     ,       GENERATE_USING_FORMULA_ID
2654     ,       INVENTORY_ITEM_ID
2655     ,       LAST_UPDATED_BY
2656     ,       LAST_UPDATE_DATE
2657     ,       LAST_UPDATE_LOGIN
2658     ,       LIST_HEADER_ID
2659     ,       LIST_LINE_ID
2660     ,       LIST_LINE_TYPE_CODE
2661     ,       LIST_PRICE
2662     ,       PRODUCT_PRECEDENCE
2663     ,       MODIFIER_LEVEL_CODE
2664     ,       NUMBER_EFFECTIVE_PERIODS
2665     ,       OPERAND
2666     ,       ORGANIZATION_ID
2667     ,       OVERRIDE_FLAG
2668     ,       PERCENT_PRICE
2669     ,       PRICE_BREAK_TYPE_CODE
2670     ,       PRICE_BY_FORMULA_ID
2671     ,       PRIMARY_UOM_FLAG
2672     ,       PRINT_ON_INVOICE_FLAG
2673     ,       PROGRAM_APPLICATION_ID
2674     ,       PROGRAM_ID
2675     ,       PROGRAM_UPDATE_DATE
2676     ,       REBATE_TRANSACTION_TYPE_CODE
2677     ,       RECURRING_VALUE -- block pricing
2678     ,       RELATED_ITEM_ID
2679     ,       RELATIONSHIP_TYPE_ID
2680     ,       REPRICE_FLAG
2681     ,       REQUEST_ID
2682     ,       REVISION
2683     ,       REVISION_DATE
2684     ,       REVISION_REASON_CODE
2685     ,       START_DATE_ACTIVE
2686     ,       SUBSTITUTION_ATTRIBUTE
2687     ,       SUBSTITUTION_CONTEXT
2688     ,       SUBSTITUTION_VALUE
2689     ,       CUSTOMER_ITEM_ID
2690     ,       BREAK_UOM_CODE
2691     ,	    BREAK_UOM_CONTEXT
2692     ,       BREAK_UOM_ATTRIBUTE
2693     ,       CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
2694     INTO    l_PRICE_LIST_LINE_rec.accrual_qty
2695     ,       l_PRICE_LIST_LINE_rec.accrual_uom_code
2696     ,       l_PRICE_LIST_LINE_rec.arithmetic_operator
2697     ,       l_PRICE_LIST_LINE_rec.attribute1
2698     ,       l_PRICE_LIST_LINE_rec.attribute10
2699     ,       l_PRICE_LIST_LINE_rec.attribute11
2700     ,       l_PRICE_LIST_LINE_rec.attribute12
2701     ,       l_PRICE_LIST_LINE_rec.attribute13
2702     ,       l_PRICE_LIST_LINE_rec.attribute14
2703     ,       l_PRICE_LIST_LINE_rec.attribute15
2704     ,       l_PRICE_LIST_LINE_rec.attribute2
2705     ,       l_PRICE_LIST_LINE_rec.attribute3
2706     ,       l_PRICE_LIST_LINE_rec.attribute4
2707     ,       l_PRICE_LIST_LINE_rec.attribute5
2708     ,       l_PRICE_LIST_LINE_rec.attribute6
2709     ,       l_PRICE_LIST_LINE_rec.attribute7
2710     ,       l_PRICE_LIST_LINE_rec.attribute8
2711     ,       l_PRICE_LIST_LINE_rec.attribute9
2712     ,       l_PRICE_LIST_LINE_rec.automatic_flag
2713     ,       l_PRICE_LIST_LINE_rec.base_qty
2714     ,       l_PRICE_LIST_LINE_rec.base_uom_code
2715     ,       l_PRICE_LIST_LINE_rec.comments
2716     ,       l_PRICE_LIST_LINE_rec.context
2717     ,       l_PRICE_LIST_LINE_rec.created_by
2718     ,       l_PRICE_LIST_LINE_rec.creation_date
2719     ,       l_PRICE_LIST_LINE_rec.effective_period_uom
2720     ,       l_PRICE_LIST_LINE_rec.end_date_active
2721     ,       l_PRICE_LIST_LINE_rec.estim_accrual_rate
2722     ,       l_PRICE_LIST_LINE_rec.generate_using_formula_id
2723     ,       l_PRICE_LIST_LINE_rec.inventory_item_id
2724     ,       l_PRICE_LIST_LINE_rec.last_updated_by
2725     ,       l_PRICE_LIST_LINE_rec.last_update_date
2726     ,       l_PRICE_LIST_LINE_rec.last_update_login
2727     ,       l_PRICE_LIST_LINE_rec.list_header_id
2728     ,       l_PRICE_LIST_LINE_rec.list_line_id
2729     ,       l_PRICE_LIST_LINE_rec.list_line_type_code
2730     ,       l_PRICE_LIST_LINE_rec.list_price
2731     ,       l_PRICE_LIST_LINE_rec.product_precedence
2732     ,       l_PRICE_LIST_LINE_rec.modifier_level_code
2733     ,       l_PRICE_LIST_LINE_rec.number_effective_periods
2734     ,       l_PRICE_LIST_LINE_rec.operand
2735     ,       l_PRICE_LIST_LINE_rec.organization_id
2736     ,       l_PRICE_LIST_LINE_rec.override_flag
2737     ,       l_PRICE_LIST_LINE_rec.percent_price
2738     ,       l_PRICE_LIST_LINE_rec.price_break_type_code
2739     ,       l_PRICE_LIST_LINE_rec.price_by_formula_id
2740     ,       l_PRICE_LIST_LINE_rec.primary_uom_flag
2741     ,       l_PRICE_LIST_LINE_rec.print_on_invoice_flag
2742     ,       l_PRICE_LIST_LINE_rec.program_application_id
2743     ,       l_PRICE_LIST_LINE_rec.program_id
2744     ,       l_PRICE_LIST_LINE_rec.program_update_date
2745     ,       l_PRICE_LIST_LINE_rec.rebate_trxn_type_code
2746     ,       l_PRICE_LIST_LINE_rec.recurring_value -- block pricing
2747     ,       l_PRICE_LIST_LINE_rec.related_item_id
2748     ,       l_PRICE_LIST_LINE_rec.relationship_type_id
2749     ,       l_PRICE_LIST_LINE_rec.reprice_flag
2750     ,       l_PRICE_LIST_LINE_rec.request_id
2751     ,       l_PRICE_LIST_LINE_rec.revision
2752     ,       l_PRICE_LIST_LINE_rec.revision_date
2753     ,       l_PRICE_LIST_LINE_rec.revision_reason_code
2754     ,       l_PRICE_LIST_LINE_rec.start_date_active
2755     ,       l_PRICE_LIST_LINE_rec.substitution_attribute
2756     ,       l_PRICE_LIST_LINE_rec.substitution_context
2757     ,       l_PRICE_LIST_LINE_rec.substitution_value
2758     ,       l_PRICE_LIST_LINE_rec.customer_item_id
2759     ,       l_PRICE_LIST_LINE_rec.break_uom_code
2760     ,	    l_PRICE_LIST_LINE_rec.break_uom_context
2761     ,       l_PRICE_LIST_LINE_rec.break_uom_attribute
2762     ,       l_PRICE_LIST_LINE_rec.continuous_price_break_flag -- Continuous price breaks
2763     FROM    QP_LIST_LINES
2764     WHERE   LIST_LINE_ID = p_PRICE_LIST_LINE_rec.list_line_id
2765         FOR UPDATE NOWAIT;
2766 
2767 
2768 oe_debug_pub.add(' accrual qty:'||l_PRICE_LIST_LINE_rec.accrual_qty||':'||p_PRICE_LIST_LINE_rec.accrual_qty||':');
2769 oe_debug_pub.add(' accrual uom code:'||l_PRICE_LIST_LINE_rec.accrual_uom_code||':'|| p_PRICE_LIST_LINE_rec.accrual_uom_code||':');
2770 oe_debug_pub.add(' arithmetic_operator:'||l_PRICE_LIST_LINE_rec.arithmetic_operator||':'||   p_PRICE_LIST_LINE_rec.arithmetic_operator||':');
2771 oe_debug_pub.add(' attribute1:'||l_PRICE_LIST_LINE_rec.attribute1||':'||  p_PRICE_LIST_LINE_rec.attribute1||':');
2772 oe_debug_pub.add(' attribute10:'||l_PRICE_LIST_LINE_rec.attribute10||':'||p_PRICE_LIST_LINE_rec.attribute10||':');
2773 oe_debug_pub.add(' attribute11:'||l_PRICE_LIST_LINE_rec.attribute11||':'||p_PRICE_LIST_LINE_rec.attribute11||':');
2774 oe_debug_pub.add(' attribute12:'||l_PRICE_LIST_LINE_rec.attribute12||':'||p_PRICE_LIST_LINE_rec.attribute12||':');
2775 oe_debug_pub.add(' attribute13:'||l_PRICE_LIST_LINE_rec.attribute13||':'||p_PRICE_LIST_LINE_rec.attribute13||':');
2776 oe_debug_pub.add(' attribute14:'||l_PRICE_LIST_LINE_rec.attribute14||':'||p_PRICE_LIST_LINE_rec.attribute14||':');
2777 oe_debug_pub.add(' attribute15:'||l_PRICE_LIST_LINE_rec.attribute15||':'||p_PRICE_LIST_LINE_rec.attribute15||':');
2778 oe_debug_pub.add(' attribute2:'||l_PRICE_LIST_LINE_rec.attribute2||':'||p_PRICE_LIST_LINE_rec.attribute2||':');
2779 oe_debug_pub.add(' attribute3:'||l_PRICE_LIST_LINE_rec.attribute3||':'||p_PRICE_LIST_LINE_rec.attribute3||':');
2780 oe_debug_pub.add(' attribute4:'||l_PRICE_LIST_LINE_rec.attribute4||':'||p_PRICE_LIST_LINE_rec.attribute4||':');
2781 oe_debug_pub.add(' attribute5:'||l_PRICE_LIST_LINE_rec.attribute5||':'||p_PRICE_LIST_LINE_rec.attribute5||':');
2782 oe_debug_pub.add(' attribute6:'||l_PRICE_LIST_LINE_rec.attribute6||':'||p_PRICE_LIST_LINE_rec.attribute6||':');
2783 oe_debug_pub.add(' attribute7:'||l_PRICE_LIST_LINE_rec.attribute7||':'||p_PRICE_LIST_LINE_rec.attribute7||':');
2784 oe_debug_pub.add(' attribute8:'||l_PRICE_LIST_LINE_rec.attribute8||':'||p_PRICE_LIST_LINE_rec.attribute8||':');
2785 oe_debug_pub.add(' attribute9:'||l_PRICE_LIST_LINE_rec.attribute9||':'||p_PRICE_LIST_LINE_rec.attribute9||':');
2786 oe_debug_pub.add(' automatic_flag:'||l_PRICE_LIST_LINE_rec.automatic_flag||':'||p_PRICE_LIST_LINE_rec.automatic_flag||':');
2787 oe_debug_pub.add(' base qty:'||l_PRICE_LIST_LINE_rec.base_qty||':'||p_PRICE_LIST_LINE_rec.base_qty||':');
2788 oe_debug_pub.add(' base uom code:'||l_PRICE_LIST_LINE_rec.base_uom_code||':'||p_PRICE_LIST_LINE_rec.base_uom_code||':');
2789 oe_debug_pub.add(' comments:'||l_PRICE_LIST_LINE_rec.comments||':'||p_PRICE_LIST_LINE_rec.comments||':');
2790 oe_debug_pub.add(' context:'||l_PRICE_LIST_LINE_rec.context||':'||p_PRICE_LIST_LINE_rec.context||':');
2791 oe_debug_pub.add(' created_by:'||l_PRICE_LIST_LINE_rec.created_by||':'||p_PRICE_LIST_LINE_rec.created_by||':');
2792 oe_debug_pub.add(' creation_date:'||l_PRICE_LIST_LINE_rec.creation_date||':'||p_PRICE_LIST_LINE_rec.creation_date||':');
2793 oe_debug_pub.add(' effective_period_uom:'||l_PRICE_LIST_LINE_rec.effective_period_uom||':'||p_PRICE_LIST_LINE_rec.effective_period_uom||':');
2794 oe_debug_pub.add(' end_date_active:'||l_PRICE_LIST_LINE_rec.end_date_active||':'||p_PRICE_LIST_LINE_rec.end_date_active||':');
2795 oe_debug_pub.add(' estim_accrual_rate:'||l_PRICE_LIST_LINE_rec.estim_accrual_rate||':'||p_PRICE_LIST_LINE_rec.estim_accrual_rate||':');
2796 oe_debug_pub.add(' generate_using_formula_id:'||l_PRICE_LIST_LINE_rec.generate_using_formula_id||':'||p_PRICE_LIST_LINE_rec.generate_using_formula_id||':');
2797 oe_debug_pub.add(' inventory_item_id:'||l_PRICE_LIST_LINE_rec.inventory_item_id||':'||p_PRICE_LIST_LINE_rec.inventory_item_id||':');
2798 oe_debug_pub.add(' last_updated_by:'||l_PRICE_LIST_LINE_rec.last_updated_by||':'||p_PRICE_LIST_LINE_rec.last_updated_by||':');
2799 oe_debug_pub.add(' last_update_date:'||l_PRICE_LIST_LINE_rec.last_update_date||':'||p_PRICE_LIST_LINE_rec.last_update_date||':');
2800 oe_debug_pub.add(' accrual qty:'||l_PRICE_LIST_LINE_rec.last_update_login||':'||p_PRICE_LIST_LINE_rec.last_update_login||':');
2801 oe_debug_pub.add(' list_header_id:'||l_PRICE_LIST_LINE_rec.list_header_id||':'||p_PRICE_LIST_LINE_rec.list_header_id||':');
2802 oe_debug_pub.add(' list_line_id:'||l_PRICE_LIST_LINE_rec.list_line_id||':'||p_PRICE_LIST_LINE_rec.list_line_id||':');
2803 oe_debug_pub.add(' list_line_type_code:'||l_PRICE_LIST_LINE_rec.list_line_type_code||':'||p_PRICE_LIST_LINE_rec.list_line_type_code||':');
2804 oe_debug_pub.add(' list_price:'||l_PRICE_LIST_LINE_rec.list_price||':'||p_PRICE_LIST_LINE_rec.list_price||':');
2805 oe_debug_pub.add(' product_precedence:'||l_PRICE_LIST_LINE_rec.product_precedence||':'||p_PRICE_LIST_LINE_rec.product_precedence||':');
2806 oe_debug_pub.add(' modifier_level_code:'||l_PRICE_LIST_LINE_rec.modifier_level_code||':'||p_PRICE_LIST_LINE_rec.modifier_level_code||':');
2807 oe_debug_pub.add(' number_effective_periods:'||l_PRICE_LIST_LINE_rec.number_effective_periods||':'||p_PRICE_LIST_LINE_rec.number_effective_periods||':');
2808 oe_debug_pub.add(' operand:'||l_PRICE_LIST_LINE_rec.operand||':'||p_PRICE_LIST_LINE_rec.operand||':');
2809 oe_debug_pub.add(' organization_id:'||l_PRICE_LIST_LINE_rec.organization_id||':'||p_PRICE_LIST_LINE_rec.organization_id||':');
2810 oe_debug_pub.add(' override_flag:'||l_PRICE_LIST_LINE_rec.override_flag||':'||p_PRICE_LIST_LINE_rec.override_flag||':');
2811 oe_debug_pub.add(' percent_price:'||l_PRICE_LIST_LINE_rec.percent_price||':'||p_PRICE_LIST_LINE_rec.percent_price||':');
2812 oe_debug_pub.add(' accrual qty:'||l_PRICE_LIST_LINE_rec.price_break_type_code||':'||p_PRICE_LIST_LINE_rec.price_break_type_code||':');
2813 oe_debug_pub.add(' price_by_formula_id:'||l_PRICE_LIST_LINE_rec.price_by_formula_id||':'||p_PRICE_LIST_LINE_rec.price_by_formula_id||':');
2814 oe_debug_pub.add(' primary_uom_flag:'||l_PRICE_LIST_LINE_rec.primary_uom_flag||':'||p_PRICE_LIST_LINE_rec.primary_uom_flag||':');
2815 oe_debug_pub.add(' print_on_invoice_flag:'||l_PRICE_LIST_LINE_rec.print_on_invoice_flag||':'||p_PRICE_LIST_LINE_rec.print_on_invoice_flag||':');
2816 oe_debug_pub.add(' program_application_id:'||l_PRICE_LIST_LINE_rec.program_application_id||':'||p_PRICE_LIST_LINE_rec.program_application_id||':');
2817 oe_debug_pub.add(' program_id:'||l_PRICE_LIST_LINE_rec.program_id||':'||p_PRICE_LIST_LINE_rec.program_id||':');
2818 oe_debug_pub.add(' program_update_date:'||l_PRICE_LIST_LINE_rec.program_update_date||':'||p_PRICE_LIST_LINE_rec.program_update_date||':');
2819 oe_debug_pub.add(' rebate_trxn_type_code:'||l_PRICE_LIST_LINE_rec.rebate_trxn_type_code||':'||p_PRICE_LIST_LINE_rec.rebate_trxn_type_code||':');
2820 oe_debug_pub.add(' recurring_value:'||l_PRICE_LIST_LINE_rec.recurring_value||':'||p_PRICE_LIST_LINE_rec.recurring_value||':');
2821 oe_debug_pub.add(' related_item_id:'||l_PRICE_LIST_LINE_rec.related_item_id||':'||p_PRICE_LIST_LINE_rec.related_item_id||':');
2822 oe_debug_pub.add(' relationship_type_id:'||l_PRICE_LIST_LINE_rec.relationship_type_id||':'||p_PRICE_LIST_LINE_rec.relationship_type_id||':');
2823 oe_debug_pub.add(' reprice_flag:'||l_PRICE_LIST_LINE_rec.reprice_flag||':'||p_PRICE_LIST_LINE_rec.reprice_flag||':');
2824 oe_debug_pub.add(' request_id:'||l_PRICE_LIST_LINE_rec.request_id||':'||p_PRICE_LIST_LINE_rec.request_id||':');
2825 oe_debug_pub.add(' revision:'||l_PRICE_LIST_LINE_rec.revision||':'||p_PRICE_LIST_LINE_rec.revision||':');
2826 oe_debug_pub.add(' revision_date:'||l_PRICE_LIST_LINE_rec.revision_date||':'||p_PRICE_LIST_LINE_rec.revision_date||':');
2827 oe_debug_pub.add(' revision_reason_code:'||l_PRICE_LIST_LINE_rec.revision_reason_code||':'||p_PRICE_LIST_LINE_rec.revision_reason_code||':');
2828 oe_debug_pub.add(' start_date_active:'||l_PRICE_LIST_LINE_rec.start_date_active||':'||p_PRICE_LIST_LINE_rec.start_date_active||':');
2829 oe_debug_pub.add(' substitution_attr:'||l_PRICE_LIST_LINE_rec.substitution_attribute||':'||p_PRICE_LIST_LINE_rec.substitution_attribute||':');
2830 oe_debug_pub.add(' substitution_context:'||l_PRICE_LIST_LINE_rec.substitution_context||':'||p_PRICE_LIST_LINE_rec.substitution_context||':');
2831 oe_debug_pub.add(' substitution_value:'||l_PRICE_LIST_LINE_rec.substitution_value||':'||p_PRICE_LIST_LINE_rec.substitution_value||':');
2832 oe_debug_pub.add(' customer_item_id:'||l_PRICE_LIST_LINE_rec.customer_item_id||':'||p_PRICE_LIST_LINE_rec.customer_item_id||':');
2833 
2834 
2835 
2836     --  Row locked. Compare IN attributes to DB attributes.
2837 
2838     IF  QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_qty,
2839                          l_PRICE_LIST_LINE_rec.accrual_qty)
2840     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,
2841                          l_PRICE_LIST_LINE_rec.accrual_uom_code)
2842     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,
2843                          l_PRICE_LIST_LINE_rec.arithmetic_operator)
2844     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,
2845                          l_PRICE_LIST_LINE_rec.attribute1)
2846     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,
2847                          l_PRICE_LIST_LINE_rec.attribute10)
2848     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,
2849                          l_PRICE_LIST_LINE_rec.attribute11)
2850     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,
2851                          l_PRICE_LIST_LINE_rec.attribute12)
2852     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,
2853                          l_PRICE_LIST_LINE_rec.attribute13)
2854     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,
2855                          l_PRICE_LIST_LINE_rec.attribute14)
2856     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,
2857                          l_PRICE_LIST_LINE_rec.attribute15)
2858     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,
2859                          l_PRICE_LIST_LINE_rec.attribute2)
2860     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,
2861                          l_PRICE_LIST_LINE_rec.attribute3)
2862     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,
2863                          l_PRICE_LIST_LINE_rec.attribute4)
2864     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,
2865                          l_PRICE_LIST_LINE_rec.attribute5)
2866     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,
2867                          l_PRICE_LIST_LINE_rec.attribute6)
2868     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,
2869                          l_PRICE_LIST_LINE_rec.attribute7)
2870     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,
2871                          l_PRICE_LIST_LINE_rec.attribute8)
2872     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,
2873                          l_PRICE_LIST_LINE_rec.attribute9)
2874     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,
2875                          l_PRICE_LIST_LINE_rec.automatic_flag)
2876     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_qty,
2877                          l_PRICE_LIST_LINE_rec.base_qty)
2878     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,
2879                          l_PRICE_LIST_LINE_rec.base_uom_code)
2880     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.comments,
2881                          l_PRICE_LIST_LINE_rec.comments)
2882     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.context,
2883                          l_PRICE_LIST_LINE_rec.context)
2884     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.created_by,
2885                          l_PRICE_LIST_LINE_rec.created_by)
2886     AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.creation_date),
2887                          trunc(l_PRICE_LIST_LINE_rec.creation_date))
2888     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.effective_period_uom,
2889                          l_PRICE_LIST_LINE_rec.effective_period_uom)
2890     AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.end_date_active),
2891                          trunc(l_PRICE_LIST_LINE_rec.end_date_active))
2892     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.estim_accrual_rate,
2893                          l_PRICE_LIST_LINE_rec.estim_accrual_rate)
2894     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,
2895                          l_PRICE_LIST_LINE_rec.generate_using_formula_id)
2896     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,
2897                          l_PRICE_LIST_LINE_rec.inventory_item_id)
2898  --   AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_updated_by,
2899  --                        l_PRICE_LIST_LINE_rec.last_updated_by)
2900  --   AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.last_update_date),
2901  --                        trunc(l_PRICE_LIST_LINE_rec.last_update_date))
2902  --   AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_login,
2903  --                        l_PRICE_LIST_LINE_rec.last_update_login)
2904     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,
2905                          l_PRICE_LIST_LINE_rec.list_header_id)
2906     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,
2907                          l_PRICE_LIST_LINE_rec.list_line_id)
2908     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,
2909                          l_PRICE_LIST_LINE_rec.list_line_type_code)
2910 --5409776 and 8540557
2911   --  AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_price,
2912     --                     l_PRICE_LIST_LINE_rec.list_price)
2913     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.product_precedence,
2914                          l_PRICE_LIST_LINE_rec.product_precedence)
2915     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,
2916                          l_PRICE_LIST_LINE_rec.modifier_level_code)
2917     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.number_effective_periods,
2918                          l_PRICE_LIST_LINE_rec.number_effective_periods)
2919     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.operand,
2920                          l_PRICE_LIST_LINE_rec.operand)
2921     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,
2922                          l_PRICE_LIST_LINE_rec.organization_id)
2923     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,
2924                          l_PRICE_LIST_LINE_rec.override_flag)
2925     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.percent_price,
2926                          l_PRICE_LIST_LINE_rec.percent_price)
2927     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,
2928                          l_PRICE_LIST_LINE_rec.price_break_type_code)
2929     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,
2930                          l_PRICE_LIST_LINE_rec.price_by_formula_id)
2931     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,
2932                          l_PRICE_LIST_LINE_rec.primary_uom_flag)
2933     --AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag, bug8206467
2934     --                     l_PRICE_LIST_LINE_rec.print_on_invoice_flag)
2935     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_application_id,
2936                          l_PRICE_LIST_LINE_rec.program_application_id)
2937     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_id,
2938                          l_PRICE_LIST_LINE_rec.program_id)
2939     AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.program_update_date),
2940                          trunc(l_PRICE_LIST_LINE_rec.program_update_date))
2941     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,
2942                          l_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
2943     -- block pricing
2944     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.recurring_value,
2945                          l_PRICE_LIST_LINE_rec.recurring_value)
2946     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,
2947                          l_PRICE_LIST_LINE_rec.related_item_id)
2948     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,
2949                          l_PRICE_LIST_LINE_rec.relationship_type_id)
2950 --    AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,
2951 --                         l_PRICE_LIST_LINE_rec.reprice_flag)
2952     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.request_id,
2953                          l_PRICE_LIST_LINE_rec.request_id)
2954     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision,
2955                          l_PRICE_LIST_LINE_rec.revision)
2956     AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.revision_date),
2957                          trunc(l_PRICE_LIST_LINE_rec.revision_date))
2958     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,
2959                          l_PRICE_LIST_LINE_rec.revision_reason_code)
2960     AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.start_date_active),
2961                          trunc(l_PRICE_LIST_LINE_rec.start_date_active))
2962     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_attribute,
2963                          l_PRICE_LIST_LINE_rec.substitution_attribute)
2964     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_context,
2965                          l_PRICE_LIST_LINE_rec.substitution_context)
2966     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_value,
2967                          l_PRICE_LIST_LINE_rec.substitution_value)
2968     AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id,
2969                          l_PRICE_LIST_LINE_rec.customer_item_id)
2970     THEN
2971 
2972         --  Row has not changed. Set out parameter.
2973 
2974         x_PRICE_LIST_LINE_rec          := l_PRICE_LIST_LINE_rec;
2975 
2976         --  Set return status
2977 
2978         x_return_status                := FND_API.G_RET_STS_SUCCESS;
2979         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2980 
2981     ELSE
2982 	--8594682 - Add debug messages for OE_LOCK error
2983 	oe_debug_pub.ADD('-------------------Data compare in Price list line (database vs record)------------------');
2984 	oe_debug_pub.add('list_line_id		:'||l_PRICE_LIST_LINE_rec.list_line_id||':'||p_PRICE_LIST_LINE_rec.list_line_id||':');
2985 	oe_debug_pub.ADD('attribute1		:'||l_PRICE_LIST_LINE_rec.attribute1||':'||p_PRICE_LIST_LINE_rec.attribute1||':');
2986 	oe_debug_pub.ADD('attribute2		:'||l_PRICE_LIST_LINE_rec.attribute2||':'||p_PRICE_LIST_LINE_rec.attribute2||':');
2987 	oe_debug_pub.ADD('attribute3		:'||l_PRICE_LIST_LINE_rec.attribute3||':'||p_PRICE_LIST_LINE_rec.attribute3||':');
2988 	oe_debug_pub.ADD('attribute4		:'||l_PRICE_LIST_LINE_rec.attribute4||':'||p_PRICE_LIST_LINE_rec.attribute4||':');
2989 	oe_debug_pub.ADD('attribute5		:'||l_PRICE_LIST_LINE_rec.attribute5||':'||p_PRICE_LIST_LINE_rec.attribute5||':');
2990 	oe_debug_pub.ADD('attribute6		:'||l_PRICE_LIST_LINE_rec.attribute6||':'||p_PRICE_LIST_LINE_rec.attribute6||':');
2991 	oe_debug_pub.ADD('attribute7		:'||l_PRICE_LIST_LINE_rec.attribute7||':'||p_PRICE_LIST_LINE_rec.attribute7||':');
2992 	oe_debug_pub.ADD('attribute8		:'||l_PRICE_LIST_LINE_rec.attribute8||':'||p_PRICE_LIST_LINE_rec.attribute8||':');
2993 	oe_debug_pub.ADD('attribute9		:'||l_PRICE_LIST_LINE_rec.attribute9||':'||p_PRICE_LIST_LINE_rec.attribute9||':');
2994 	oe_debug_pub.ADD('attribute10		:'||l_PRICE_LIST_LINE_rec.attribute10||':'||p_PRICE_LIST_LINE_rec.attribute10||':');
2995 	oe_debug_pub.ADD('attribute11		:'||l_PRICE_LIST_LINE_rec.attribute11||':'||p_PRICE_LIST_LINE_rec.attribute11||':');
2996 	oe_debug_pub.ADD('attribute12		:'||l_PRICE_LIST_LINE_rec.attribute12||':'||p_PRICE_LIST_LINE_rec.attribute12||':');
2997 	oe_debug_pub.ADD('attribute13		:'||l_PRICE_LIST_LINE_rec.attribute13||':'||p_PRICE_LIST_LINE_rec.attribute13||':');
2998 	oe_debug_pub.ADD('attribute14		:'||l_PRICE_LIST_LINE_rec.attribute14||':'||p_PRICE_LIST_LINE_rec.attribute14||':');
2999 	oe_debug_pub.ADD('attribute15		:'||l_PRICE_LIST_LINE_rec.attribute15||':'||p_PRICE_LIST_LINE_rec.attribute15||':');
3000 	oe_debug_pub.ADD('ACCRUAL_QTY		:'||l_PRICE_LIST_LINE_rec.ACCRUAL_QTY||':'||p_PRICE_LIST_LINE_rec.ACCRUAL_QTY||':');
3001 	oe_debug_pub.ADD('ACCRUAL_UOM_CODE	:'||l_PRICE_LIST_LINE_rec.ACCRUAL_UOM_CODE||':'||p_PRICE_LIST_LINE_rec.ACCRUAL_UOM_CODE||':');
3002 	oe_debug_pub.ADD('ARITHMETIC_OPERATOR	:'||l_PRICE_LIST_LINE_rec.ARITHMETIC_OPERATOR||':'||p_PRICE_LIST_LINE_rec.ARITHMETIC_OPERATOR||':');
3003 	oe_debug_pub.ADD('AUTOMATIC_FLAG	:'||l_PRICE_LIST_LINE_rec.AUTOMATIC_FLAG||':'||p_PRICE_LIST_LINE_rec.AUTOMATIC_FLAG||':');
3004 	oe_debug_pub.ADD('BASE_QTY		:'||l_PRICE_LIST_LINE_rec.BASE_QTY||':'||p_PRICE_LIST_LINE_rec.BASE_QTY||':');
3005 	oe_debug_pub.ADD('BASE_UOM_CODE		:'||l_PRICE_LIST_LINE_rec.BASE_UOM_CODE||':'||p_PRICE_LIST_LINE_rec.BASE_UOM_CODE||':');
3006 	oe_debug_pub.ADD('COMMENTS		:'||l_PRICE_LIST_LINE_rec.COMMENTS||':'||p_PRICE_LIST_LINE_rec.COMMENTS||':');
3007 	oe_debug_pub.ADD('CONTEXT		:'||l_PRICE_LIST_LINE_rec.CONTEXT||':'||p_PRICE_LIST_LINE_rec.CONTEXT||':');
3008 	oe_debug_pub.ADD('CREATED_BY		:'||l_PRICE_LIST_LINE_rec.CREATED_BY||':'||p_PRICE_LIST_LINE_rec.CREATED_BY||':');
3009 	oe_debug_pub.ADD('CREATION_DATE		:'||l_PRICE_LIST_LINE_rec.CREATION_DATE||':'||p_PRICE_LIST_LINE_rec.CREATION_DATE||':');
3010 	oe_debug_pub.ADD('EFFECTIVE_PERIOD_UOM	:'||l_PRICE_LIST_LINE_rec.EFFECTIVE_PERIOD_UOM||':'||p_PRICE_LIST_LINE_rec.EFFECTIVE_PERIOD_UOM||':');
3011 	oe_debug_pub.ADD('END_DATE_ACTIVE	:'||l_PRICE_LIST_LINE_rec.END_DATE_ACTIVE||':'||p_PRICE_LIST_LINE_rec.END_DATE_ACTIVE||':');
3012 	oe_debug_pub.ADD('ESTIM_ACCRUAL_RATE	:'||l_PRICE_LIST_LINE_rec.ESTIM_ACCRUAL_RATE||':'||p_PRICE_LIST_LINE_rec.ESTIM_ACCRUAL_RATE||':');
3013 	oe_debug_pub.ADD('GENERATE_USING_FORMULA_ID:'||l_PRICE_LIST_LINE_rec.GENERATE_USING_FORMULA_ID||':'||p_PRICE_LIST_LINE_rec.GENERATE_USING_FORMULA_ID||':');
3014 	oe_debug_pub.ADD('INVENTORY_ITEM_ID	:'||l_PRICE_LIST_LINE_rec.INVENTORY_ITEM_ID||':'||p_PRICE_LIST_LINE_rec.INVENTORY_ITEM_ID||':');
3015 	oe_debug_pub.ADD('LAST_UPDATED_BY	:'||l_PRICE_LIST_LINE_rec.LAST_UPDATED_BY||':'||p_PRICE_LIST_LINE_rec.LAST_UPDATED_BY||':');
3016 	oe_debug_pub.ADD('LAST_UPDATE_DATE	:'||l_PRICE_LIST_LINE_rec.LAST_UPDATE_DATE||':'||p_PRICE_LIST_LINE_rec.LAST_UPDATE_DATE||':');
3017 	oe_debug_pub.ADD('LAST_UPDATE_LOGIN	:'||l_PRICE_LIST_LINE_rec.LAST_UPDATE_LOGIN||':'||p_PRICE_LIST_LINE_rec.LAST_UPDATE_LOGIN||':');
3018 	oe_debug_pub.ADD('LIST_HEADER_ID	:'||l_PRICE_LIST_LINE_rec.LIST_HEADER_ID||':'||p_PRICE_LIST_LINE_rec.LIST_HEADER_ID||':');
3019 	oe_debug_pub.ADD('LIST_LINE_TYPE_CODE	:'||l_PRICE_LIST_LINE_rec.LIST_LINE_TYPE_CODE||':'||p_PRICE_LIST_LINE_rec.LIST_LINE_TYPE_CODE||':');
3020 	oe_debug_pub.ADD('LIST_PRICE		:'||l_PRICE_LIST_LINE_rec.LIST_PRICE||':'||p_PRICE_LIST_LINE_rec.LIST_PRICE||':');
3021 	oe_debug_pub.ADD('PRODUCT_PRECEDENCE	:'||l_PRICE_LIST_LINE_rec.PRODUCT_PRECEDENCE||':'||p_PRICE_LIST_LINE_rec.PRODUCT_PRECEDENCE||':');
3022 	oe_debug_pub.ADD('MODIFIER_LEVEL_CODE	:'||l_PRICE_LIST_LINE_rec.MODIFIER_LEVEL_CODE||':'||p_PRICE_LIST_LINE_rec.MODIFIER_LEVEL_CODE||':');
3023 	oe_debug_pub.ADD('NUMBER_EFFECTIVE_PERIODS:'||l_PRICE_LIST_LINE_rec.NUMBER_EFFECTIVE_PERIODS||':'||p_PRICE_LIST_LINE_rec.NUMBER_EFFECTIVE_PERIODS||':');
3024 	oe_debug_pub.ADD('OPERAND		:'||l_PRICE_LIST_LINE_rec.OPERAND||':'||p_PRICE_LIST_LINE_rec.OPERAND||':');
3025 	oe_debug_pub.ADD('ORGANIZATION_ID	:'||l_PRICE_LIST_LINE_rec.ORGANIZATION_ID||':'||p_PRICE_LIST_LINE_rec.ORGANIZATION_ID||':');
3026 	oe_debug_pub.ADD('OVERRIDE_FLAG		:'||l_PRICE_LIST_LINE_rec.OVERRIDE_FLAG||':'||p_PRICE_LIST_LINE_rec.OVERRIDE_FLAG||':');
3027 	oe_debug_pub.ADD('PERCENT_PRICE		:'||l_PRICE_LIST_LINE_rec.PERCENT_PRICE||':'||p_PRICE_LIST_LINE_rec.PERCENT_PRICE||':');
3028 	oe_debug_pub.ADD('PRICE_BREAK_TYPE_CODE	:'||l_PRICE_LIST_LINE_rec.PRICE_BREAK_TYPE_CODE||':'||p_PRICE_LIST_LINE_rec.PRICE_BREAK_TYPE_CODE||':');
3029 	oe_debug_pub.ADD('PRICE_BY_FORMULA_ID	:'||l_PRICE_LIST_LINE_rec.PRICE_BY_FORMULA_ID||':'||p_PRICE_LIST_LINE_rec.PRICE_BY_FORMULA_ID||':');
3030 	oe_debug_pub.ADD('PRIMARY_UOM_FLAG	:'||l_PRICE_LIST_LINE_rec.PRIMARY_UOM_FLAG||':'||p_PRICE_LIST_LINE_rec.PRIMARY_UOM_FLAG||':');
3031 	oe_debug_pub.ADD('PRINT_ON_INVOICE_FLAG	:'||l_PRICE_LIST_LINE_rec.PRINT_ON_INVOICE_FLAG||':'||p_PRICE_LIST_LINE_rec.PRINT_ON_INVOICE_FLAG||':');
3032 	oe_debug_pub.ADD('PROGRAM_APPLICATION_ID:'||l_PRICE_LIST_LINE_rec.PROGRAM_APPLICATION_ID||':'||p_PRICE_LIST_LINE_rec.PROGRAM_APPLICATION_ID||':');
3033 	oe_debug_pub.ADD('PROGRAM_ID		:'||l_PRICE_LIST_LINE_rec.PROGRAM_ID||':'||p_PRICE_LIST_LINE_rec.PROGRAM_ID||':');
3034 	oe_debug_pub.ADD('PROGRAM_UPDATE_DATE	:'||l_PRICE_LIST_LINE_rec.PROGRAM_UPDATE_DATE||':'||p_PRICE_LIST_LINE_rec.PROGRAM_UPDATE_DATE||':');
3035 	oe_debug_pub.ADD('REBATE_TRANSACTION_TYPE_CODE:'||l_PRICE_LIST_LINE_rec.rebate_trxn_type_code||':'||p_PRICE_LIST_LINE_rec.rebate_trxn_type_code||':');
3036 	oe_debug_pub.ADD('RECURRING_VALUE	:'||l_PRICE_LIST_LINE_rec.RECURRING_VALUE||':'||p_PRICE_LIST_LINE_rec.RECURRING_VALUE||':');
3037 	oe_debug_pub.ADD('RELATED_ITEM_ID	:'||l_PRICE_LIST_LINE_rec.RELATED_ITEM_ID||':'||p_PRICE_LIST_LINE_rec.RELATED_ITEM_ID||':');
3038 	oe_debug_pub.ADD('RELATIONSHIP_TYPE_ID	:'||l_PRICE_LIST_LINE_rec.RELATIONSHIP_TYPE_ID||':'||p_PRICE_LIST_LINE_rec.RELATIONSHIP_TYPE_ID||':');
3039 	oe_debug_pub.ADD('REPRICE_FLAG		:'||l_PRICE_LIST_LINE_rec.REPRICE_FLAG||':'||p_PRICE_LIST_LINE_rec.REPRICE_FLAG||':');
3040 	oe_debug_pub.ADD('REQUEST_ID		:'||l_PRICE_LIST_LINE_rec.REQUEST_ID||':'||p_PRICE_LIST_LINE_rec.REQUEST_ID||':');
3041 	oe_debug_pub.ADD('REVISION		:'||l_PRICE_LIST_LINE_rec.REVISION||':'||p_PRICE_LIST_LINE_rec.REVISION||':');
3042 	oe_debug_pub.ADD('REVISION_DATE		:'||l_PRICE_LIST_LINE_rec.REVISION_DATE||':'||p_PRICE_LIST_LINE_rec.REVISION_DATE||':');
3043 	oe_debug_pub.ADD('REVISION_REASON_CODE	:'||l_PRICE_LIST_LINE_rec.REVISION_REASON_CODE||':'||p_PRICE_LIST_LINE_rec.REVISION_REASON_CODE||':');
3044 	oe_debug_pub.ADD('START_DATE_ACTIVE	:'||l_PRICE_LIST_LINE_rec.START_DATE_ACTIVE||':'||p_PRICE_LIST_LINE_rec.START_DATE_ACTIVE||':');
3045 	oe_debug_pub.ADD('SUBSTITUTION_ATTRIBUTE:'||l_PRICE_LIST_LINE_rec.SUBSTITUTION_ATTRIBUTE||':'||p_PRICE_LIST_LINE_rec.SUBSTITUTION_ATTRIBUTE||':');
3046 	oe_debug_pub.ADD('SUBSTITUTION_CONTEXT	:'||l_PRICE_LIST_LINE_rec.SUBSTITUTION_CONTEXT||':'||p_PRICE_LIST_LINE_rec.SUBSTITUTION_CONTEXT||':');
3047 	oe_debug_pub.ADD('SUBSTITUTION_VALUE	:'||l_PRICE_LIST_LINE_rec.SUBSTITUTION_VALUE||':'||p_PRICE_LIST_LINE_rec.SUBSTITUTION_VALUE||':');
3048 	oe_debug_pub.ADD('CUSTOMER_ITEM_ID	:'||l_PRICE_LIST_LINE_rec.CUSTOMER_ITEM_ID||':'||p_PRICE_LIST_LINE_rec.CUSTOMER_ITEM_ID||':');
3049 	oe_debug_pub.ADD('BREAK_UOM_CODE	:'||l_PRICE_LIST_LINE_rec.BREAK_UOM_CODE||':'||p_PRICE_LIST_LINE_rec.BREAK_UOM_CODE||':');
3050 	oe_debug_pub.ADD('BREAK_UOM_CONTEXT	:'||l_PRICE_LIST_LINE_rec.BREAK_UOM_CONTEXT||':'||p_PRICE_LIST_LINE_rec.BREAK_UOM_CONTEXT||':');
3051 	oe_debug_pub.ADD('BREAK_UOM_ATTRIBUTE	:'||l_PRICE_LIST_LINE_rec.BREAK_UOM_ATTRIBUTE||':'||p_PRICE_LIST_LINE_rec.BREAK_UOM_ATTRIBUTE||':');
3052 	oe_debug_pub.ADD('-------------------Data compare in price list line end------------------');
3053 	--  Row has changed by another user.
3054 
3055 
3056         x_return_status                := FND_API.G_RET_STS_ERROR;
3057         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3058 
3059         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
3060         THEN
3061 
3062             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
3063             oe_msg_pub.Add;
3064 
3065         END IF;
3066 
3067     END IF;
3068 
3069 EXCEPTION
3070 
3071     WHEN NO_DATA_FOUND THEN
3072 
3073         x_return_status                := FND_API.G_RET_STS_ERROR;
3074         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3075 
3076         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
3077         THEN
3078 
3079             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
3080             oe_msg_pub.Add;
3081 
3082         END IF;
3083     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
3084 
3085         x_return_status                := FND_API.G_RET_STS_ERROR;
3086         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3087 
3088         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
3089         THEN
3090 
3091             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
3092             oe_msg_pub.Add;
3093 
3094         END IF;
3095     WHEN OTHERS THEN
3096 
3097         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
3098         x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3099 
3100         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
3101         THEN
3102             oe_msg_pub.Add_Exc_Msg
3103             (   G_PKG_NAME
3104             ,   'Lock_Row'
3105             );
3106         END IF;
3107 
3108 END Lock_Row;
3109 
3110 --  Function Get_Values
3111 
3112 FUNCTION Get_Values
3113 (   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
3114 ,   p_old_PRICE_LIST_LINE_rec       IN  QP_Price_List_PUB.Price_List_Line_Rec_Type :=
3115                                         QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
3116 ) RETURN QP_Price_List_PUB.Price_List_Line_Val_Rec_Type
3117 IS
3118 l_PRICE_LIST_LINE_val_rec     QP_Price_List_PUB.Price_List_Line_Val_Rec_Type;
3119 BEGIN
3120 
3121   /*
3122     IF p_PRICE_LIST_LINE_rec.accrual_uom_code IS NOT NULL AND
3123         p_PRICE_LIST_LINE_rec.accrual_uom_code <> FND_API.G_MISS_CHAR AND
3124         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,
3125         p_old_PRICE_LIST_LINE_rec.accrual_uom_code)
3126     THEN
3127         l_PRICE_LIST_LINE_val_rec.accrual_uom := QP_Id_To_Value.Accrual_Uom
3128         (   p_accrual_uom_code            => p_PRICE_LIST_LINE_rec.accrual_uom_code
3129         );
3130     END IF;
3131 
3132    */
3133 
3134     IF p_PRICE_LIST_LINE_rec.automatic_flag IS NOT NULL AND
3135         p_PRICE_LIST_LINE_rec.automatic_flag <> FND_API.G_MISS_CHAR AND
3136         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,
3137         p_old_PRICE_LIST_LINE_rec.automatic_flag)
3138     THEN
3139         l_PRICE_LIST_LINE_val_rec.automatic := QP_Id_To_Value.Automatic
3140         (   p_automatic_flag              => p_PRICE_LIST_LINE_rec.automatic_flag
3141         );
3142     END IF;
3143 
3144     IF p_PRICE_LIST_LINE_rec.base_uom_code IS NOT NULL AND
3145         p_PRICE_LIST_LINE_rec.base_uom_code <> FND_API.G_MISS_CHAR AND
3146         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,
3147         p_old_PRICE_LIST_LINE_rec.base_uom_code)
3148     THEN
3149         l_PRICE_LIST_LINE_val_rec.base_uom := QP_Id_To_Value.Base_Uom
3150         (   p_base_uom_code               => p_PRICE_LIST_LINE_rec.base_uom_code
3151         );
3152     END IF;
3153 
3154     IF p_PRICE_LIST_LINE_rec.generate_using_formula_id IS NOT NULL AND
3155         p_PRICE_LIST_LINE_rec.generate_using_formula_id <> FND_API.G_MISS_NUM AND
3156         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,
3157         p_old_PRICE_LIST_LINE_rec.generate_using_formula_id)
3158     THEN
3159         l_PRICE_LIST_LINE_val_rec.generate_using_formula := QP_Id_To_Value.Generate_Using_Formula
3160         (   p_generate_using_formula_id   => p_PRICE_LIST_LINE_rec.generate_using_formula_id
3161         );
3162     END IF;
3163 
3164 
3165     IF p_PRICE_LIST_LINE_rec.inventory_item_id IS NOT NULL AND
3166         p_PRICE_LIST_LINE_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
3167         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,
3168         p_old_PRICE_LIST_LINE_rec.inventory_item_id)
3169     THEN
3170         l_PRICE_LIST_LINE_val_rec.inventory_item := QP_Id_To_Value.Inventory_Item
3171         (   p_inventory_item_id           => p_PRICE_LIST_LINE_rec.inventory_item_id
3172         );
3173     END IF;
3174 
3175     IF p_PRICE_LIST_LINE_rec.list_header_id IS NOT NULL AND
3176         p_PRICE_LIST_LINE_rec.list_header_id <> FND_API.G_MISS_NUM AND
3177         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,
3178         p_old_PRICE_LIST_LINE_rec.list_header_id)
3179     THEN
3180         l_PRICE_LIST_LINE_val_rec.list_header := QP_Id_To_Value.List_Header
3181         (   p_list_header_id              => p_PRICE_LIST_LINE_rec.list_header_id
3182         );
3183     END IF;
3184 
3185     IF p_PRICE_LIST_LINE_rec.list_line_id IS NOT NULL AND
3186         p_PRICE_LIST_LINE_rec.list_line_id <> FND_API.G_MISS_NUM AND
3187         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,
3188         p_old_PRICE_LIST_LINE_rec.list_line_id)
3189     THEN
3190         l_PRICE_LIST_LINE_val_rec.list_line := QP_Id_To_Value.List_Line
3191         (   p_list_line_id                => p_PRICE_LIST_LINE_rec.list_line_id
3192         );
3193     END IF;
3194 
3195     IF p_PRICE_LIST_LINE_rec.list_line_type_code IS NOT NULL AND
3196         p_PRICE_LIST_LINE_rec.list_line_type_code <> FND_API.G_MISS_CHAR AND
3197         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,
3198         p_old_PRICE_LIST_LINE_rec.list_line_type_code)
3199     THEN
3200         l_PRICE_LIST_LINE_val_rec.list_line_type := QP_Id_To_Value.List_Line_Type
3201         (   p_list_line_type_code         => p_PRICE_LIST_LINE_rec.list_line_type_code
3202         );
3203     END IF;
3204 
3205     IF p_PRICE_LIST_LINE_rec.modifier_level_code IS NOT NULL AND
3206         p_PRICE_LIST_LINE_rec.modifier_level_code <> FND_API.G_MISS_CHAR AND
3207         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,
3208         p_old_PRICE_LIST_LINE_rec.modifier_level_code)
3209     THEN
3210         l_PRICE_LIST_LINE_val_rec.modifier_level := QP_Id_To_Value.Modifier_Level
3211         (   p_modifier_level_code         => p_PRICE_LIST_LINE_rec.modifier_level_code
3212         );
3213     END IF;
3214 
3215     IF p_PRICE_LIST_LINE_rec.organization_id IS NOT NULL AND
3216         p_PRICE_LIST_LINE_rec.organization_id <> FND_API.G_MISS_NUM AND
3217         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,
3218         p_old_PRICE_LIST_LINE_rec.organization_id)
3219     THEN
3220         l_PRICE_LIST_LINE_val_rec.organization := QP_Id_To_Value.Organization
3221         (   p_organization_id             => p_PRICE_LIST_LINE_rec.organization_id
3222         );
3223     END IF;
3224 
3225     IF p_PRICE_LIST_LINE_rec.override_flag IS NOT NULL AND
3226         p_PRICE_LIST_LINE_rec.override_flag <> FND_API.G_MISS_CHAR AND
3227         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,
3228         p_old_PRICE_LIST_LINE_rec.override_flag)
3229     THEN
3230         l_PRICE_LIST_LINE_val_rec.override := QP_Id_To_Value.Override
3231         (   p_override_flag               => p_PRICE_LIST_LINE_rec.override_flag
3232         );
3233     END IF;
3234 
3235     IF p_PRICE_LIST_LINE_rec.price_break_type_code IS NOT NULL AND
3236         p_PRICE_LIST_LINE_rec.price_break_type_code <> FND_API.G_MISS_CHAR AND
3237         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,
3238         p_old_PRICE_LIST_LINE_rec.price_break_type_code)
3239     THEN
3240         l_PRICE_LIST_LINE_val_rec.price_break_type := QP_Id_To_Value.Price_Break_Type
3241         (   p_price_break_type_code       => p_PRICE_LIST_LINE_rec.price_break_type_code
3242         );
3243     END IF;
3244 
3245     IF p_PRICE_LIST_LINE_rec.price_by_formula_id IS NOT NULL AND
3246         p_PRICE_LIST_LINE_rec.price_by_formula_id <> FND_API.G_MISS_NUM AND
3247         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,
3248         p_old_PRICE_LIST_LINE_rec.price_by_formula_id)
3249     THEN
3250         l_PRICE_LIST_LINE_val_rec.price_by_formula := QP_Id_To_Value.Price_By_Formula
3251         (   p_price_by_formula_id         => p_PRICE_LIST_LINE_rec.price_by_formula_id
3252         );
3253     END IF;
3254 
3255     IF p_PRICE_LIST_LINE_rec.primary_uom_flag IS NOT NULL AND
3256         p_PRICE_LIST_LINE_rec.primary_uom_flag <> FND_API.G_MISS_CHAR AND
3257         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,
3258         p_old_PRICE_LIST_LINE_rec.primary_uom_flag)
3259     THEN
3260         l_PRICE_LIST_LINE_val_rec.primary_uom := QP_Id_To_Value.Primary_Uom
3261         (   p_primary_uom_flag            => p_PRICE_LIST_LINE_rec.primary_uom_flag
3262         );
3263     END IF;
3264 
3265     IF p_PRICE_LIST_LINE_rec.print_on_invoice_flag IS NOT NULL AND
3266         p_PRICE_LIST_LINE_rec.print_on_invoice_flag <> FND_API.G_MISS_CHAR AND
3267         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag,
3268         p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag)
3269     THEN
3270         l_PRICE_LIST_LINE_val_rec.print_on_invoice := QP_Id_To_Value.Print_On_Invoice
3271         (   p_print_on_invoice_flag       => p_PRICE_LIST_LINE_rec.print_on_invoice_flag
3272         );
3273     END IF;
3274 
3275     IF p_PRICE_LIST_LINE_rec.rebate_trxn_type_code IS NOT NULL AND
3276         p_PRICE_LIST_LINE_rec.rebate_trxn_type_code <> FND_API.G_MISS_CHAR AND
3277         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,
3278         p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
3279     THEN
3280         l_PRICE_LIST_LINE_val_rec.rebate_transaction_type := QP_Id_To_Value.Rebate_Transaction_Type
3281         (   p_rebate_trxn_type_code       => p_PRICE_LIST_LINE_rec.rebate_trxn_type_code
3282         );
3283     END IF;
3284 
3285     IF p_PRICE_LIST_LINE_rec.related_item_id IS NOT NULL AND
3286         p_PRICE_LIST_LINE_rec.related_item_id <> FND_API.G_MISS_NUM AND
3287         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,
3288         p_old_PRICE_LIST_LINE_rec.related_item_id)
3289     THEN
3290         l_PRICE_LIST_LINE_val_rec.related_item := QP_Id_To_Value.Related_Item
3291         (   p_related_item_id             => p_PRICE_LIST_LINE_rec.related_item_id
3292         );
3293     END IF;
3294 
3295     IF p_PRICE_LIST_LINE_rec.relationship_type_id IS NOT NULL AND
3296         p_PRICE_LIST_LINE_rec.relationship_type_id <> FND_API.G_MISS_NUM AND
3297         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,
3298         p_old_PRICE_LIST_LINE_rec.relationship_type_id)
3299     THEN
3300         l_PRICE_LIST_LINE_val_rec.relationship_type := QP_Id_To_Value.Relationship_Type
3301         (   p_relationship_type_id        => p_PRICE_LIST_LINE_rec.relationship_type_id
3302         );
3303     END IF;
3304 
3305     IF p_PRICE_LIST_LINE_rec.reprice_flag IS NOT NULL AND
3306         p_PRICE_LIST_LINE_rec.reprice_flag <> FND_API.G_MISS_CHAR AND
3307         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,
3308         p_old_PRICE_LIST_LINE_rec.reprice_flag)
3309     THEN
3310         l_PRICE_LIST_LINE_val_rec.reprice := QP_Id_To_Value.Reprice
3311         (   p_reprice_flag                => p_PRICE_LIST_LINE_rec.reprice_flag
3312         );
3313     END IF;
3314 
3315     IF p_PRICE_LIST_LINE_rec.revision_reason_code IS NOT NULL AND
3316         p_PRICE_LIST_LINE_rec.revision_reason_code <> FND_API.G_MISS_CHAR AND
3317         NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,
3318         p_old_PRICE_LIST_LINE_rec.revision_reason_code)
3319     THEN
3320         l_PRICE_LIST_LINE_val_rec.revision_reason := QP_Id_To_Value.Revision_Reason
3321         (   p_revision_reason_code        => p_PRICE_LIST_LINE_rec.revision_reason_code
3322         );
3323     END IF;
3324 
3325     RETURN l_PRICE_LIST_LINE_val_rec;
3326 
3327 END Get_Values;
3328 
3329 --  Function Get_Ids
3330 
3331 FUNCTION Get_Ids
3332 (   p_PRICE_LIST_LINE_rec           IN  QP_Price_List_PUB.Price_List_Line_Rec_Type
3333 ,   p_PRICE_LIST_LINE_val_rec       IN  QP_Price_List_PUB.Price_List_Line_Val_Rec_Type
3334 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
3335 IS
3336 l_PRICE_LIST_LINE_rec         QP_Price_List_PUB.Price_List_Line_Rec_Type;
3337 BEGIN
3338 
3339     --  initialize  return_status.
3340 
3341     l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_SUCCESS;
3342 
3343     --  initialize l_PRICE_LIST_LINE_rec.
3344 
3345     l_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
3346 
3347     IF  p_PRICE_LIST_LINE_val_rec.accrual_uom <> FND_API.G_MISS_CHAR
3348     THEN
3349 
3350         IF p_PRICE_LIST_LINE_rec.accrual_uom_code <> FND_API.G_MISS_CHAR THEN
3351 
3352             l_PRICE_LIST_LINE_rec.accrual_uom_code := p_PRICE_LIST_LINE_rec.accrual_uom_code;
3353 
3354             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3355             THEN
3356 
3357                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3358                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','accrual_uom');
3359                 oe_msg_pub.Add;
3360 
3361             END IF;
3362 
3363         ELSE
3364 
3365 		 /*
3366 
3367 		  l_PRICE_LIST_LINE_rec.accrual_uom_code := QP_Value_To_Id.accrual_uom
3368             (   p_accrual_uom                 => p_PRICE_LIST_LINE_val_rec.accrual_uom
3369             );
3370 
3371            */
3372 
3373             IF l_PRICE_LIST_LINE_rec.accrual_uom_code = FND_API.G_MISS_CHAR THEN
3374                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3375             END IF;
3376 
3377         END IF;
3378 
3379     END IF;
3380 
3381     IF  p_PRICE_LIST_LINE_val_rec.automatic <> FND_API.G_MISS_CHAR
3382     THEN
3383 
3384         IF p_PRICE_LIST_LINE_rec.automatic_flag <> FND_API.G_MISS_CHAR THEN
3385 
3386             l_PRICE_LIST_LINE_rec.automatic_flag := p_PRICE_LIST_LINE_rec.automatic_flag;
3387 
3388             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3389             THEN
3390 
3391                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3392                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','automatic');
3393                 oe_msg_pub.Add;
3394 
3395             END IF;
3396 
3397         ELSE
3398 
3399             l_PRICE_LIST_LINE_rec.automatic_flag := QP_Value_To_Id.automatic
3400             (   p_automatic                   => p_PRICE_LIST_LINE_val_rec.automatic
3401             );
3402 
3403             IF l_PRICE_LIST_LINE_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
3404                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3405             END IF;
3406 
3407         END IF;
3408 
3409     END IF;
3410 
3411     IF  p_PRICE_LIST_LINE_val_rec.base_uom <> FND_API.G_MISS_CHAR
3412     THEN
3413 
3414         IF p_PRICE_LIST_LINE_rec.base_uom_code <> FND_API.G_MISS_CHAR THEN
3415 
3416             l_PRICE_LIST_LINE_rec.base_uom_code := p_PRICE_LIST_LINE_rec.base_uom_code;
3417 
3418             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3419             THEN
3420 
3421                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3422                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','base_uom');
3423                 oe_msg_pub.Add;
3424 
3425             END IF;
3426 
3427         ELSE
3428 
3429             l_PRICE_LIST_LINE_rec.base_uom_code := QP_Value_To_Id.base_uom
3430             (   p_base_uom                    => p_PRICE_LIST_LINE_val_rec.base_uom
3431             );
3432 
3433             IF l_PRICE_LIST_LINE_rec.base_uom_code = FND_API.G_MISS_CHAR THEN
3434                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3435             END IF;
3436 
3437         END IF;
3438 
3439     END IF;
3440 
3441     IF  p_PRICE_LIST_LINE_val_rec.generate_using_formula <> FND_API.G_MISS_CHAR
3442     THEN
3443 
3444         IF p_PRICE_LIST_LINE_rec.generate_using_formula_id <> FND_API.G_MISS_NUM THEN
3445 
3446             l_PRICE_LIST_LINE_rec.generate_using_formula_id := p_PRICE_LIST_LINE_rec.generate_using_formula_id;
3447 
3448             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3449             THEN
3450 
3451                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3452                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','generate_using_formula');
3453                 oe_msg_pub.Add;
3454 
3455             END IF;
3456 
3457         ELSE
3458 
3459             l_PRICE_LIST_LINE_rec.generate_using_formula_id := QP_Value_To_Id.generate_using_formula
3460             (   p_generate_using_formula      => p_PRICE_LIST_LINE_val_rec.generate_using_formula
3461             );
3462 
3463             IF l_PRICE_LIST_LINE_rec.generate_using_formula_id = FND_API.G_MISS_NUM THEN
3464                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3465             END IF;
3466 
3467         END IF;
3468 
3469     END IF;
3470 
3471     IF  p_PRICE_LIST_LINE_val_rec.inventory_item <> FND_API.G_MISS_CHAR
3472     THEN
3473 
3474         IF p_PRICE_LIST_LINE_rec.inventory_item_id <> FND_API.G_MISS_NUM THEN
3475 
3476             l_PRICE_LIST_LINE_rec.inventory_item_id := p_PRICE_LIST_LINE_rec.inventory_item_id;
3477 
3478             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3479             THEN
3480 
3481                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3482                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','inventory_item');
3483                 oe_msg_pub.Add;
3484 
3485             END IF;
3486 
3487         ELSE
3488 
3489             l_PRICE_LIST_LINE_rec.inventory_item_id := QP_Value_To_Id.inventory_item
3490             (   p_inventory_item              => p_PRICE_LIST_LINE_val_rec.inventory_item
3491             );
3492 
3493             IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
3494                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3495             END IF;
3496 
3497         END IF;
3498 
3499     END IF;
3500 
3501     IF  p_PRICE_LIST_LINE_val_rec.list_header <> FND_API.G_MISS_CHAR
3502     THEN
3503 
3504         IF p_PRICE_LIST_LINE_rec.list_header_id <> FND_API.G_MISS_NUM THEN
3505 
3506             l_PRICE_LIST_LINE_rec.list_header_id := p_PRICE_LIST_LINE_rec.list_header_id;
3507 
3508             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3509             THEN
3510 
3511                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3512                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
3513                 oe_msg_pub.Add;
3514 
3515             END IF;
3516 
3517         ELSE
3518 
3519             l_PRICE_LIST_LINE_rec.list_header_id := QP_Value_To_Id.list_header
3520             (   p_list_header                 => p_PRICE_LIST_LINE_val_rec.list_header
3521             );
3522 
3523             IF l_PRICE_LIST_LINE_rec.list_header_id = FND_API.G_MISS_NUM THEN
3524                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3525             END IF;
3526 
3527         END IF;
3528 
3529     END IF;
3530 
3531     IF  p_PRICE_LIST_LINE_val_rec.list_line <> FND_API.G_MISS_CHAR
3532     THEN
3533 
3534         IF p_PRICE_LIST_LINE_rec.list_line_id <> FND_API.G_MISS_NUM THEN
3535 
3536             l_PRICE_LIST_LINE_rec.list_line_id := p_PRICE_LIST_LINE_rec.list_line_id;
3537 
3538             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3539             THEN
3540 
3541                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3542                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line');
3543                 oe_msg_pub.Add;
3544 
3545             END IF;
3546 
3547         ELSE
3548 
3549             l_PRICE_LIST_LINE_rec.list_line_id := QP_Value_To_Id.list_line
3550             (   p_list_line                   => p_PRICE_LIST_LINE_val_rec.list_line
3551             );
3552 
3553             IF l_PRICE_LIST_LINE_rec.list_line_id = FND_API.G_MISS_NUM THEN
3554                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3555             END IF;
3556 
3557         END IF;
3558 
3559     END IF;
3560 
3561     IF  p_PRICE_LIST_LINE_val_rec.list_line_type <> FND_API.G_MISS_CHAR
3562     THEN
3563 
3564         IF p_PRICE_LIST_LINE_rec.list_line_type_code <> FND_API.G_MISS_CHAR THEN
3565 
3566             l_PRICE_LIST_LINE_rec.list_line_type_code := p_PRICE_LIST_LINE_rec.list_line_type_code;
3567 
3568             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3569             THEN
3570 
3571                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3572                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line_type');
3573                 oe_msg_pub.Add;
3574 
3575             END IF;
3576 
3577         ELSE
3578 
3579             l_PRICE_LIST_LINE_rec.list_line_type_code := QP_Value_To_Id.list_line_type
3580             (   p_list_line_type              => p_PRICE_LIST_LINE_val_rec.list_line_type
3581             );
3582 
3583             IF l_PRICE_LIST_LINE_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
3584                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3585             END IF;
3586 
3587         END IF;
3588 
3589     END IF;
3590 
3591     IF  p_PRICE_LIST_LINE_val_rec.modifier_level <> FND_API.G_MISS_CHAR
3592     THEN
3593 
3594         IF p_PRICE_LIST_LINE_rec.modifier_level_code <> FND_API.G_MISS_CHAR THEN
3595 
3596             l_PRICE_LIST_LINE_rec.modifier_level_code := p_PRICE_LIST_LINE_rec.modifier_level_code;
3597 
3598             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3599             THEN
3600 
3601                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3602                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','modifier_level');
3603                 oe_msg_pub.Add;
3604 
3605             END IF;
3606 
3607         ELSE
3608 
3609             l_PRICE_LIST_LINE_rec.modifier_level_code := QP_Value_To_Id.modifier_level
3610             (   p_modifier_level              => p_PRICE_LIST_LINE_val_rec.modifier_level
3611             );
3612 
3613             IF l_PRICE_LIST_LINE_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
3614                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3615             END IF;
3616 
3617         END IF;
3618 
3619     END IF;
3620 
3621     IF  p_PRICE_LIST_LINE_val_rec.organization <> FND_API.G_MISS_CHAR
3622     THEN
3623 
3624         IF p_PRICE_LIST_LINE_rec.organization_id <> FND_API.G_MISS_NUM THEN
3625 
3626             l_PRICE_LIST_LINE_rec.organization_id := p_PRICE_LIST_LINE_rec.organization_id;
3627 
3628             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3629             THEN
3630 
3631                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3632                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','organization');
3633                 oe_msg_pub.Add;
3634 
3635             END IF;
3636 
3637         ELSE
3638 
3639             l_PRICE_LIST_LINE_rec.organization_id := QP_Value_To_Id.organization
3640             (   p_organization                => p_PRICE_LIST_LINE_val_rec.organization
3641             );
3642 
3643             IF l_PRICE_LIST_LINE_rec.organization_id = FND_API.G_MISS_NUM THEN
3644                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3645             END IF;
3646 
3647         END IF;
3648 
3649     END IF;
3650 
3651     IF  p_PRICE_LIST_LINE_val_rec.override <> FND_API.G_MISS_CHAR
3652     THEN
3653 
3654         IF p_PRICE_LIST_LINE_rec.override_flag <> FND_API.G_MISS_CHAR THEN
3655 
3656             l_PRICE_LIST_LINE_rec.override_flag := p_PRICE_LIST_LINE_rec.override_flag;
3657 
3658             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3659             THEN
3660 
3661                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3662                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','override');
3663                 oe_msg_pub.Add;
3664 
3665             END IF;
3666 
3667         ELSE
3668 
3669             l_PRICE_LIST_LINE_rec.override_flag := QP_Value_To_Id.override
3670             (   p_override                    => p_PRICE_LIST_LINE_val_rec.override
3671             );
3672 
3673             IF l_PRICE_LIST_LINE_rec.override_flag = FND_API.G_MISS_CHAR THEN
3674                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3675             END IF;
3676 
3677         END IF;
3678 
3679     END IF;
3680 
3681     IF  p_PRICE_LIST_LINE_val_rec.price_break_type <> FND_API.G_MISS_CHAR
3682     THEN
3683 
3684         IF p_PRICE_LIST_LINE_rec.price_break_type_code <> FND_API.G_MISS_CHAR THEN
3685 
3686             l_PRICE_LIST_LINE_rec.price_break_type_code := p_PRICE_LIST_LINE_rec.price_break_type_code;
3687 
3688             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3689             THEN
3690 
3691                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3692                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_break_type');
3693                 oe_msg_pub.Add;
3694 
3695             END IF;
3696 
3697         ELSE
3698 
3699             l_PRICE_LIST_LINE_rec.price_break_type_code := QP_Value_To_Id.price_break_type
3700             (   p_price_break_type            => p_PRICE_LIST_LINE_val_rec.price_break_type
3701             );
3702 
3703             IF l_PRICE_LIST_LINE_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
3704                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3705             END IF;
3706 
3707         END IF;
3708 
3709     END IF;
3710 
3711     IF  p_PRICE_LIST_LINE_val_rec.price_by_formula <> FND_API.G_MISS_CHAR
3712     THEN
3713 
3714         IF p_PRICE_LIST_LINE_rec.price_by_formula_id <> FND_API.G_MISS_NUM THEN
3715 
3716             l_PRICE_LIST_LINE_rec.price_by_formula_id := p_PRICE_LIST_LINE_rec.price_by_formula_id;
3717 
3718             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3719             THEN
3720 
3721                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3722                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_by_formula');
3723                 oe_msg_pub.Add;
3724 
3725             END IF;
3726 
3727         ELSE
3728 
3729             l_PRICE_LIST_LINE_rec.price_by_formula_id := QP_Value_To_Id.price_by_formula
3730             (   p_price_by_formula            => p_PRICE_LIST_LINE_val_rec.price_by_formula
3731             );
3732 
3733             IF l_PRICE_LIST_LINE_rec.price_by_formula_id = FND_API.G_MISS_NUM THEN
3734                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3735             END IF;
3736 
3737         END IF;
3738 
3739     END IF;
3740 
3741     IF  p_PRICE_LIST_LINE_val_rec.primary_uom <> FND_API.G_MISS_CHAR
3742     THEN
3743 
3744         IF p_PRICE_LIST_LINE_rec.primary_uom_flag <> FND_API.G_MISS_CHAR THEN
3745 
3746             l_PRICE_LIST_LINE_rec.primary_uom_flag := p_PRICE_LIST_LINE_rec.primary_uom_flag;
3747 
3748             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3749             THEN
3750 
3751                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3752                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','primary_uom');
3753                 oe_msg_pub.Add;
3754 
3755             END IF;
3756 
3757         ELSE
3758 
3759             l_PRICE_LIST_LINE_rec.primary_uom_flag := QP_Value_To_Id.primary_uom
3760             (   p_primary_uom                 => p_PRICE_LIST_LINE_val_rec.primary_uom
3761             );
3762 
3763             IF l_PRICE_LIST_LINE_rec.primary_uom_flag = FND_API.G_MISS_CHAR THEN
3764                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3765             END IF;
3766 
3767         END IF;
3768 
3769     END IF;
3770 
3771     IF  p_PRICE_LIST_LINE_val_rec.print_on_invoice <> FND_API.G_MISS_CHAR
3772     THEN
3773 
3774         IF p_PRICE_LIST_LINE_rec.print_on_invoice_flag <> FND_API.G_MISS_CHAR THEN
3775 
3776             l_PRICE_LIST_LINE_rec.print_on_invoice_flag := p_PRICE_LIST_LINE_rec.print_on_invoice_flag;
3777 
3778             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3779             THEN
3780 
3781                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3782                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','print_on_invoice');
3783                 oe_msg_pub.Add;
3784 
3785             END IF;
3786 
3787         ELSE
3788 
3789             l_PRICE_LIST_LINE_rec.print_on_invoice_flag := QP_Value_To_Id.print_on_invoice
3790             (   p_print_on_invoice            => p_PRICE_LIST_LINE_val_rec.print_on_invoice
3791             );
3792 
3793             IF l_PRICE_LIST_LINE_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
3794                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3795             END IF;
3796 
3797         END IF;
3798 
3799     END IF;
3800 
3801     IF  p_PRICE_LIST_LINE_val_rec.rebate_transaction_type <> FND_API.G_MISS_CHAR
3802     THEN
3803 
3804         IF p_PRICE_LIST_LINE_rec.rebate_trxn_type_code <> FND_API.G_MISS_CHAR THEN
3805 
3806             l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := p_PRICE_LIST_LINE_rec.rebate_trxn_type_code;
3807 
3808             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3809             THEN
3810 
3811                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3812                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','rebate_transaction_type');
3813                 oe_msg_pub.Add;
3814 
3815             END IF;
3816 
3817         ELSE
3818 
3819             l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := QP_Value_To_Id.rebate_transaction_type
3820             (   p_rebate_transaction_type     => p_PRICE_LIST_LINE_val_rec.rebate_transaction_type
3821             );
3822 
3823             IF l_PRICE_LIST_LINE_rec.rebate_trxn_type_code = FND_API.G_MISS_CHAR THEN
3824                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3825             END IF;
3826 
3827         END IF;
3828 
3829     END IF;
3830 
3831     IF  p_PRICE_LIST_LINE_val_rec.related_item <> FND_API.G_MISS_CHAR
3832     THEN
3833 
3834         IF p_PRICE_LIST_LINE_rec.related_item_id <> FND_API.G_MISS_NUM THEN
3835 
3836             l_PRICE_LIST_LINE_rec.related_item_id := p_PRICE_LIST_LINE_rec.related_item_id;
3837 
3838             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3839             THEN
3840 
3841                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3842                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','related_item');
3843                 oe_msg_pub.Add;
3844 
3845             END IF;
3846 
3847         ELSE
3848 
3849             l_PRICE_LIST_LINE_rec.related_item_id := QP_Value_To_Id.related_item
3850             (   p_related_item                => p_PRICE_LIST_LINE_val_rec.related_item
3851             );
3852 
3853             IF l_PRICE_LIST_LINE_rec.related_item_id = FND_API.G_MISS_NUM THEN
3854                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3855             END IF;
3856 
3857         END IF;
3858 
3859     END IF;
3860 
3861     IF  p_PRICE_LIST_LINE_val_rec.relationship_type <> FND_API.G_MISS_CHAR
3862     THEN
3863 
3864         IF p_PRICE_LIST_LINE_rec.relationship_type_id <> FND_API.G_MISS_NUM THEN
3865 
3866             l_PRICE_LIST_LINE_rec.relationship_type_id := p_PRICE_LIST_LINE_rec.relationship_type_id;
3867 
3868             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3869             THEN
3870 
3871                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3872                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','relationship_type');
3873                 oe_msg_pub.Add;
3874 
3875             END IF;
3876 
3877         ELSE
3878 
3879             l_PRICE_LIST_LINE_rec.relationship_type_id := QP_Value_To_Id.relationship_type
3880             (   p_relationship_type           => p_PRICE_LIST_LINE_val_rec.relationship_type
3881             );
3882 
3883             IF l_PRICE_LIST_LINE_rec.relationship_type_id = FND_API.G_MISS_NUM THEN
3884                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3885             END IF;
3886 
3887         END IF;
3888 
3889     END IF;
3890 
3891     IF  p_PRICE_LIST_LINE_val_rec.reprice <> FND_API.G_MISS_CHAR
3892     THEN
3893 
3894         IF p_PRICE_LIST_LINE_rec.reprice_flag <> FND_API.G_MISS_CHAR THEN
3895 
3896             l_PRICE_LIST_LINE_rec.reprice_flag := p_PRICE_LIST_LINE_rec.reprice_flag;
3897 
3898             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3899             THEN
3900 
3901                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3902                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','reprice');
3903                 oe_msg_pub.Add;
3904 
3905             END IF;
3906 
3907         ELSE
3908 
3909             l_PRICE_LIST_LINE_rec.reprice_flag := QP_Value_To_Id.reprice
3910             (   p_reprice                     => p_PRICE_LIST_LINE_val_rec.reprice
3911             );
3912 
3913             IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
3914                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3915             END IF;
3916 
3917         END IF;
3918 
3919     END IF;
3920 
3921     IF  p_PRICE_LIST_LINE_val_rec.revision_reason <> FND_API.G_MISS_CHAR
3922     THEN
3923 
3924         IF p_PRICE_LIST_LINE_rec.revision_reason_code <> FND_API.G_MISS_CHAR THEN
3925 
3926             l_PRICE_LIST_LINE_rec.revision_reason_code := p_PRICE_LIST_LINE_rec.revision_reason_code;
3927 
3928             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3929             THEN
3930 
3931                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3932                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','revision_reason');
3933                 oe_msg_pub.Add;
3934 
3935             END IF;
3936 
3937         ELSE
3938 
3939             l_PRICE_LIST_LINE_rec.revision_reason_code := QP_Value_To_Id.revision_reason
3940             (   p_revision_reason             => p_PRICE_LIST_LINE_val_rec.revision_reason
3941             );
3942 
3943             IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
3944                 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3945             END IF;
3946 
3947         END IF;
3948 
3949     END IF;
3950 
3951 
3952     RETURN l_PRICE_LIST_LINE_rec;
3953 
3954 END Get_Ids;
3955 
3956 
3957 Procedure Print_Price_List_Line
3958         (p_PRICE_LIST_LINE_rec IN QP_PRICE_LIST_PUB.PRICE_LIST_LINE_REC_TYPE,
3959          p_counter IN NUMBER)
3960 IS
3961 BEGIN
3962 oe_debug_pub.add('additional message 1- 8206467');
3963   oe_debug_pub.add('accrual qty ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.accrual_qty);
3964 
3965    oe_debug_pub.add('accrual uom code ' || p_counter || ': ' ||  p_PRICE_LIST_LINE_rec.accrual_uom_code);
3966    oe_debug_pub.add('arithmetic_operator ' || p_counter || ': ' ||    p_PRICE_LIST_LINE_rec.arithmetic_operator);
3967    oe_debug_pub.add('attribute1 ' || p_counter || ': ' ||   p_PRICE_LIST_LINE_rec.attribute1);
3968    oe_debug_pub.add('attribute10 ' || p_counter || ': ' ||      p_PRICE_LIST_LINE_rec.attribute10);
3969    oe_debug_pub.add('attribute11 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute11);
3970    oe_debug_pub.add('attribute12 ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.attribute12);
3971    oe_debug_pub.add('attribute13 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute13);
3972    oe_debug_pub.add('attribute14 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute14);
3973    oe_debug_pub.add('attribute15 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute15);
3974    oe_debug_pub.add('attribute2 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute2);
3975    oe_debug_pub.add('attribute3 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute3);
3976    oe_debug_pub.add('attribute4 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute4);
3977    oe_debug_pub.add('attribute5 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute5);
3978    oe_debug_pub.add('attribute6 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute6);
3979    oe_debug_pub.add('attribute7 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute7);
3980    oe_debug_pub.add('attribute8 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute8);
3981    oe_debug_pub.add('attribute9 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute9);
3982    oe_debug_pub.add('automatic_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.automatic_flag);
3983    oe_debug_pub.add('base qty ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.base_qty);
3984    oe_debug_pub.add('base uom code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.base_uom_code);
3985    oe_debug_pub.add('comments ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.comments);
3986    oe_debug_pub.add('context ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.context);
3987    oe_debug_pub.add('created_by ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.created_by);
3988    oe_debug_pub.add('creation_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.creation_date);
3989    oe_debug_pub.add('effective_period_uom ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.effective_period_uom);
3990    oe_debug_pub.add('end_date_active ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.end_date_active);
3991    oe_debug_pub.add('estim_accrual_rate ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.estim_accrual_rate);
3992    oe_debug_pub.add('generate_using_formula_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.generate_using_formula_id);
3993    oe_debug_pub.add('inventory_item_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.inventory_item_id);
3994    oe_debug_pub.add('last_updated_by ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.last_updated_by);
3995    oe_debug_pub.add('last_update_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.last_update_date);
3996    oe_debug_pub.add('accrual qty ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.last_update_login);
3997    oe_debug_pub.add('list_header_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_header_id);
3998    oe_debug_pub.add('list_line_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_line_id);
3999    oe_debug_pub.add('list_line_type_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_line_type_code);
4000    oe_debug_pub.add('list_price ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_price);
4001    oe_debug_pub.add('product_precedence ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.product_precedence);
4002    oe_debug_pub.add('modifier_level_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.modifier_level_code);
4003    oe_debug_pub.add('number_effective_periods ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.number_effective_periods);
4004    oe_debug_pub.add('operand ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.operand);
4005    oe_debug_pub.add('organization_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.organization_id);
4006    oe_debug_pub.add('override_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.override_flag);
4007    oe_debug_pub.add('percent_price ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.percent_price);
4008    oe_debug_pub.add('accrual qty ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.price_break_type_code);
4009    oe_debug_pub.add('price_by_formula_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.price_by_formula_id);
4010    oe_debug_pub.add('primary_uom_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.primary_uom_flag);
4011    oe_debug_pub.add('print_on_invoice_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.print_on_invoice_flag);
4012    oe_debug_pub.add('program_application_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.program_application_id);
4013    oe_debug_pub.add('program_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.program_id);
4014    oe_debug_pub.add('program_update_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.program_update_date);
4015    oe_debug_pub.add('rebate_trxn_type_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.rebate_trxn_type_code);
4016 -- block pricing
4017    oe_debug_pub.add('recurring_value' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.recurring_value);
4018    oe_debug_pub.add('related_item_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.related_item_id);
4019    oe_debug_pub.add('relationship_type_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.relationship_type_id);
4020    oe_debug_pub.add('reprice_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.reprice_flag);
4021    oe_debug_pub.add('request_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.request_id);
4022    oe_debug_pub.add('revision ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.revision);
4023    oe_debug_pub.add('revision_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.revision_date);
4024    oe_debug_pub.add('revision_reason_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.revision_reason_code);
4025    oe_debug_pub.add('start_date_active ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.start_date_active);
4026    oe_debug_pub.add('substitution_attr ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.substitution_attribute);
4027    oe_debug_pub.add('substitution_context ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.substitution_context);
4028    oe_debug_pub.add('substitution_value ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.substitution_value);
4029 
4030 END Print_Price_List_Line;
4031 
4032 FUNCTION get_qualifier_attr_value(p_qual_attr_value in varchar2)
4033 return varchar2
4034 is
4035 l_qual_attr_value number;
4036 BEGIN
4037 
4038    IF p_qual_attr_value is not null THEN
4039 
4040 	  select to_number(p_qual_attr_value)
4041 	  into l_qual_attr_value
4042 	  from dual;
4043 
4044        return to_char(l_qual_attr_value);
4045    ELSE
4046        return null;
4047    END IF;
4048 
4049 EXCEPTION
4050 
4051    WHEN INVALID_NUMBER THEN
4052 
4053        return NULL;
4054 
4055 END get_qualifier_attr_value;
4056 
4057 
4058 /******************************************************************************
4059 * Important: The following function Get_Context is currently not being
4060 *            called anywhere. So this function has not been altered for used
4061 *            with Attributes Manager installed. So, please do not use this
4062 *            utility function from anywhere in the code even in the future
4063 *            unless you modify it suitably for use with Attributes Manager.
4064 ******************************************************************************/
4065 FUNCTION Get_Context(p_FlexField_Name  IN VARCHAR2
4066 				  ,p_context    IN VARCHAR2)RETURN VARCHAR2 IS
4067 
4068   Flexfield FND_DFLEX.dflex_r;
4069   Flexinfo  FND_DFLEX.dflex_dr;
4070   Contexts  FND_DFLEX.contexts_dr;
4071 
4072 
4073   x_context_code        VARCHAR2(240);
4074 
4075   BEGIN
4076 
4077   -- Call Flexapi to get contexts
4078 
4079   FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
4080   FND_DFLEX.get_contexts(Flexfield,Contexts);
4081 
4082 
4083   For i in 1..Contexts.ncontexts LOOP
4084 
4085     If(Contexts.is_enabled(i) AND (NOT (Contexts.is_global(i)))) Then
4086 
4087        If p_context = Contexts.context_code(i) Then
4088           x_context_code :=Contexts.context_name(i);
4089 		EXIT;
4090        End If;
4091 
4092     End if;
4093   End Loop;
4094 
4095   RETURN x_context_code;
4096 
4097 END Get_Context;
4098 
4099 /******************************************************************************
4100 * Important: The following function Get_Attribute_Code is currently not being
4101 *            called anywhere. So this function has not been altered for used
4102 *            with Attributes Manager installed. So, please do not use this
4103 *            utility function from anywhere in the code even in the future
4104 *            unless you modify it suitably for use with Attributes Manager.
4105 ******************************************************************************/
4106 FUNCTION Get_Attribute_Code(p_FlexField_Name IN VARCHAR2
4107                             ,p_Context_Name   IN VARCHAR2
4108 				        ,p_attribute      IN VARCHAR2
4109 			   ) RETURN VARCHAR2 IS
4110 
4111   Flexfield FND_DFLEX.dflex_r;
4112   Flexinfo  FND_DFLEX.dflex_dr;
4113   Contexts  FND_DFLEX.contexts_dr;
4114   segments  FND_DFLEX.segments_dr;
4115   i BINARY_INTEGER;
4116   x_attribute_code VARCHAR2(240) := NULL;
4117 
4118 BEGIN
4119 
4120   --fnd_message.debug('passsed values are ' ||p_FlexField_Name);
4121   --fnd_message.debug('passsed values are ' ||p_Context_Name);
4122   --fnd_message.debug('passsed values are ' ||p_attribute);
4123 
4124 
4125   FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
4126   FND_DFLEX.get_segments(FND_DFLEX.make_context(Flexfield,p_Context_Name),
4127                       segments,TRUE);
4128 
4129   For i in 1..segments.nsegments LOOP
4130 
4131     IF segments.is_enabled(i)  THEN
4132 
4133          --fnd_message.debug('col name is  ' ||segments.application_column_name(i));
4134          --fnd_message.debug(' seg name is  ' ||segments.segment_name(i));
4135 	    IF segments.application_column_name(i) = p_attribute Then
4136 		  x_attribute_code := segments.row_prompt(i);
4137 		  RETURN x_attribute_code;
4138          End if;
4139     END IF;
4140   END LOOP;
4141 
4142   RETURN x_attribute_code;
4143 
4144  END Get_Attribute_Code;
4145 
4146 FUNCTION Get_Product_Value(p_FlexField_Name       IN VARCHAR2
4147                             ,p_Context_Name         IN VARCHAR2
4148 				        ,p_attribute_name         IN VARCHAR2
4149 					   ,p_attr_value IN VARCHAR2
4150 					   ) RETURN VARCHAR2 IS
4151 l_item_name varchar2(240) := NULL;
4152 l_category_name varchar2(240) := NULL;
4153 l_segment_name varchar2(240) := NULL;
4154 l_organization_id VARCHAR2(30) := TO_CHAR(QP_UTIL.Get_Item_Validation_Org);
4155 
4156 
4157 BEGIN
4158 
4159   IF (    (p_FlexField_Name = 'QP_ATTR_DEFNS_PRICING')
4160       and ( p_Context_Name = 'ITEM' ) ) THEN
4161 
4162 	 IF (p_attribute_name = 'PRICING_ATTRIBUTE1') then
4163 
4164 --changed the code to use G_ORGANIZATION_ID for performance problem on modifiers
4165 		select concatenated_segments
4166 		into l_item_name
4167 		from mtl_system_items_vl
4168 		where inventory_item_id = to_number(p_attr_value)
4169 		and organization_id = l_organization_id and rownum=1;
4170 
4171 		RETURN l_item_name;
4172 
4173 	 ELSIF (p_attribute_name = 'PRICING_ATTRIBUTE2') then
4174        /* product catalog
4175               select concatenated_segments
4176 		into l_category_name
4177 		from mtl_categories_kfv
4178 		where category_id = to_number(p_attr_value) and rownum=1;
4179        */
4180               select category_name
4181 		into l_category_name
4182 		from qp_item_categories_v
4183 		where category_id = to_number(p_attr_value) and rownum=1;
4184 
4185 		RETURN l_category_name;
4186        /*
4187 
4188         ELSIF (p_attribute_name = 'PRICING_ATTRIBUTE3') then
4189 
4190              RETURN( Get_Attribute_Value(
4191                              p_FlexField_Name => 'QP_ATTR_DEFNS_PRICING'
4192                             ,p_Context_Name => 'ITEM'
4193 		            ,p_segment_name => 'ALL_ITEMS'
4194                             ,p_attr_value => p_attr_value) );
4195 
4196        */
4197 
4198        ELSE
4199 
4200             l_segment_name := Get_Segment_Name(p_FlexField_Name,
4201                              p_Context_Name,
4202                              p_attribute_name);
4203 
4204              RETURN( Get_Attribute_Value(
4205                              p_FlexField_Name
4206                             ,p_Context_Name
4207 		            ,l_segment_name
4208                             ,p_attr_value) );
4209 
4210 
4211 
4212      END IF;
4213 
4214    ELSE
4215 
4216 	 RETURN NULL;
4217 
4218    END IF;
4219 
4220  EXCEPTION
4221 
4222          WHEN OTHERS THEN RETURN NULL;
4223 
4224 END Get_Product_Value;
4225 
4226 FUNCTION Get_Attribute_Value(p_FlexField_Name       IN VARCHAR2
4227                             ,p_Context_Name         IN VARCHAR2
4228 				        ,p_segment_name         IN VARCHAR2
4229 					   ,p_attr_value IN VARCHAR2
4230 					   ) RETURN VARCHAR2 IS
4231 
4232   Vset  FND_VSET.valueset_r;
4233   Fmt   FND_VSET.valueset_dr;
4234 
4235   Found BOOLEAN;
4236   Row   NUMBER;
4237   Value FND_VSET.value_dr;
4238 
4239 
4240 
4241   x_Format_Type Varchar2(1);
4242   x_Validation_Type Varchar2(1);
4243   x_Vsid  NUMBER;
4244 
4245 
4246   x_attr_value_code     VARCHAR2(240);
4247   l_id VARCHAR2(150);
4248   l_value VARCHAR2(150);
4249 
4250 
4251   BEGIN
4252 
4253   QP_UTIL.get_valueset_id(p_FlexField_Name,p_Context_Name,p_Segment_Name,x_Vsid,x_Format_Type,
4254                    x_Validation_Type);
4255   --fnd_message.debug(x_Vsid);
4256   --fnd_message.debug(x_Validation_Type);
4257   --fnd_message.show;
4258 
4259   IF x_Validation_Type In('F' ,'I')  AND x_Vsid  IS NOT NULL THEN
4260    IF x_Validation_Type = 'I' THEN     --Added for 2332139
4261      FND_VSET.get_valueset(x_Vsid,Vset,Fmt);
4262      FND_VSET.get_value_init(Vset,TRUE);
4263      FND_VSET.get_value(Vset,Row,Found,Value);
4264 
4265    IF Fmt.Has_Id Then    --id is defined.Hence compare for id
4266 
4267      While(Found) Loop
4268 
4269        --fnd_message.debug(Value.value);
4270        --fnd_message.debug(Value.meaning);
4271        --fnd_message.debug(Value.id);
4272 
4273        If  p_attr_value  = Value.id  Then
4274 
4275 	      x_attr_value_code  := Value.Value;
4276            RETURN x_attr_value_code;
4277        End If;
4278        FND_VSET.get_value(Vset,Row,Found,Value);
4279 
4280      End Loop;
4281 
4282   Else
4283 
4284      While(Found) Loop
4285 
4286                       --fnd_message.debug(Value.value);
4287                       --fnd_message.debug(Value.meaning);
4288                       --fnd_message.debug(Value.id);
4289 
4290                         If  p_attr_value  = Value.value  Then
4291 
4292 	                       x_attr_value_code  := p_attr_value;
4293                                RETURN x_attr_value_code;
4294                         End If;
4295                         FND_VSET.get_value(Vset,Row,Found,Value);
4296 
4297                      End Loop;
4298 
4299      End If;   -- end of Fmt.Has_Id
4300 
4301      FND_VSET.get_value_end(Vset);
4302 
4303 /* Added for 2332139 */
4304 
4305    ELSIF x_Validation_Type='F' THEN
4306                                        FND_VSET.get_valueset(x_Vsid,Vset,Fmt);
4307 
4308                                         IF (QP_UTIL.value_exists_in_table(Vset.table_info,
4309                                                         p_attr_value,l_id,l_value)) THEN
4310 
4311                                                         IF Fmt.Has_Id Then
4312                                                         --id is defined. Hence compare id
4313 
4314                                                                 IF p_attr_value = l_id Then
4315 
4316                                                                         x_attr_value_code := l_value;
4317                                                                 END IF;
4318                                                         ELSE
4319                                                                 IF p_attr_value = l_value THEN
4320                                                                         x_attr_value_code := p_attr_value;
4321                                                                 END IF;
4322                                                         END IF;         --End of Fmt.Has_ID
4323                                         END IF;
4324 
4325    END IF;
4326 
4327  ELSE
4328 
4329     x_attr_value_code := p_attr_value;
4330  END IF;
4331 
4332  RETURN x_attr_value_code;
4333 
4334 
4335 END Get_Attribute_Value;
4336 
4337 FUNCTION Get_Item_Validate_Org_Value(p_pricing_attribute  IN VARCHAR2,p_attr_value IN VARCHAR2
4338 					   ) RETURN VARCHAR2 IS
4339 
4340 l_name varchar2(240) := 'Y';
4341 
4342 BEGIN
4343 	 IF (p_pricing_attribute = 'PRICING_ATTRIBUTE1') then
4344 
4345 		select to_char(organization_id)
4346 		into l_name
4347 		from mtl_system_items_b
4348 		where inventory_item_id = to_number(p_attr_value)
4349 		and organization_id = G_ORGANIZATION_ID;
4350 
4351 		RETURN l_name;
4352    ELSE
4353 
4354 	 RETURN l_name;
4355 
4356    END IF;
4357 
4358  EXCEPTION
4359 
4360          WHEN OTHERS THEN RETURN 'N';
4361 
4362 END Get_Item_Validate_Org_Value;
4363 
4364 FUNCTION Get_Segment_Name(p_FlexField_Name IN VARCHAR2
4365                          ,p_Context_Name   IN VARCHAR2
4366 			 ,p_attribute      IN VARCHAR2
4367 			 ) RETURN VARCHAR2 IS
4368 
4369 Flexfield FND_DFLEX.dflex_r;
4370 Flexinfo  FND_DFLEX.dflex_dr;
4371 Contexts  FND_DFLEX.contexts_dr;
4372 segments  FND_DFLEX.segments_dr;
4373 i BINARY_INTEGER;
4374 x_segment_name VARCHAR2(240) := NULL;
4375 
4376 l_pte_code            VARCHAR2(30);
4377 l_context_type        VARCHAR2(30);
4378 l_error_code          NUMBER;
4379 
4380 CURSOR attribute_cur(a_context_type VARCHAR2, a_context_code VARCHAR2,
4381                      a_pte_code VARCHAR2, a_attribute VARCHAR2)
4382 IS
4383   SELECT b.segment_code
4384   FROM   qp_segments_tl a, qp_segments_b b,
4385          qp_prc_contexts_b c, qp_pte_segments d
4386   WHERE  c.prc_context_type = a_context_type
4387   AND    c.prc_context_code = a_context_code
4388   AND    c.prc_context_id = b.prc_context_id
4389   AND    b.segment_mapping_column = a_attribute
4390   AND    b.segment_id = a.segment_id
4391   AND    a.language = userenv('LANG')
4392   AND    b.segment_id = d.segment_id
4393   AND    d.pte_code = a_pte_code;
4394 
4395 
4396 BEGIN
4397 
4398 
4399   IF QP_UTIL.Attrmgr_Installed = 'Y' THEN
4400 
4401     FND_PROFILE.GET('QP_PRICING_TRANSACTION_ENTITY', l_pte_code);
4402 
4403     IF l_pte_code IS NULL THEN
4404       l_pte_code := 'ORDFUL';
4405     END IF;
4406 
4407     QP_UTIL.Get_Context_Type(p_flexfield_name, p_context_name,
4408                              l_context_type, l_error_code);
4409 
4410     IF l_error_code = 0 THEN
4411 
4412       OPEN  attribute_cur(l_context_type, p_context_name,
4413                           l_pte_code, p_attribute);
4414 
4415       FETCH attribute_cur INTO x_segment_name;
4416       CLOSE attribute_cur;
4417 
4418     END IF; --If l_error_code = 0
4419 
4420   ELSE
4421 
4422   /* Added for 2332139 */
4423 
4424    BEGIN
4425     select end_user_column_name
4426     INTO x_segment_name
4427     from FND_DESCR_FLEX_COL_USAGE_VL
4428     where APPLICATION_ID = 661 and
4429     DESCRIPTIVE_FLEXFIELD_NAME = p_FlexField_Name and
4430     DESCRIPTIVE_FLEX_CONTEXT_CODE = p_Context_Name and
4431     application_column_name = p_attribute and
4432     enabled_flag='Y';
4433 
4434    EXCEPTION
4435     WHEN OTHERS THEN
4436     x_segment_name := NULL;
4437    END;
4438 
4439 /* Commented out for 2332139 */
4440 /*
4441 
4442     FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
4443     FND_DFLEX.get_segments(FND_DFLEX.make_context(Flexfield,p_Context_Name),
4444                            segments,TRUE);
4445 
4446     FOR i IN 1..segments.nsegments LOOP
4447 
4448       IF segments.is_enabled(i)  THEN
4449 
4450 	IF segments.application_column_name(i) = p_attribute Then
4451 	  x_segment_name := segments.segment_name(i);
4452 	  EXIT;
4453         END IF;
4454 
4455       END IF;
4456 
4457     END LOOP;
4458 */
4459   END IF; --If qp_util.attrmgr_installed = 'Y'
4460 
4461   RETURN x_segment_name;
4462 
4463 END Get_Segment_Name;
4464 
4465 
4466 FUNCTION Get_Product_Id(p_FlexField_Name IN VARCHAR2
4467                            ,p_Context_Name   IN VARCHAR2
4468                            ,p_attribute      IN VARCHAR2
4469                            ,p_attr_value IN VARCHAR2) RETURN NUMBER IS
4470 
4471 l_product_id number := NULL;
4472 
4473 BEGIN
4474 
4475    IF p_flexfield_name = 'QP_ATTR_DEFNS_PRICING' THEN
4476 
4477      IF ( p_Context_Name = 'ITEM' and
4478            (p_attribute in ('PRICING_ATTRIBUTE1', 'PRICING_ATTRIBUTE2') )
4479         ) then
4480 
4481       l_product_id := TO_NUMBER(p_attr_value);
4482 
4483      END IF;
4484 
4485    END IF;
4486 
4487    RETURN l_product_id;
4488 
4489 END Get_Product_Id;
4490 
4491 
4492 
4493 END QP_Price_List_Line_Util;