DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_MODIFIERS_UTIL

Source


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