DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_MODIFIER_LIST_UTIL

Source


1 PACKAGE BODY QP_Modifier_List_Util AS
2 /* $Header: QPXUMLHB.pls 120.4 2006/04/19 11:14:30 rnayani noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Modifier_List_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_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
13 ,   p_old_MODIFIER_LIST_rec         IN  QP_Modifiers_PUB.Modifier_List_Rec_Type :=
14                                         QP_Modifiers_PUB.G_MISS_MODIFIER_LIST_REC
15 ,   x_MODIFIER_LIST_rec             OUT NOCOPY QP_Modifiers_PUB.Modifier_List_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 
24 	oe_debug_pub.add('BEGIN clear_dependent_attr in QPXUMLHB');
25 
26     --  Load out record
27 
28     x_MODIFIER_LIST_rec := p_MODIFIER_LIST_rec;
29 
30     --  If attr_id is missing compare old and new records and for
31     --  every changed attribute clear its dependent fields.
32 
33     IF p_attr_id = FND_API.G_MISS_NUM THEN
34 
35         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute1,p_old_MODIFIER_LIST_rec.attribute1)
36         THEN
37             l_index := l_index + 1;
38             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE1;
39         END IF;
40 
41         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute10,p_old_MODIFIER_LIST_rec.attribute10)
42         THEN
43             l_index := l_index + 1;
44             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE10;
45         END IF;
46 
47         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute11,p_old_MODIFIER_LIST_rec.attribute11)
48         THEN
49             l_index := l_index + 1;
50             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE11;
51         END IF;
52 
53         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute12,p_old_MODIFIER_LIST_rec.attribute12)
54         THEN
55             l_index := l_index + 1;
56             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE12;
57         END IF;
58 
59         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute13,p_old_MODIFIER_LIST_rec.attribute13)
60         THEN
61             l_index := l_index + 1;
62             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE13;
63         END IF;
64 
65         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute14,p_old_MODIFIER_LIST_rec.attribute14)
66         THEN
67             l_index := l_index + 1;
68             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE14;
69         END IF;
70 
71         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute15,p_old_MODIFIER_LIST_rec.attribute15)
72         THEN
73             l_index := l_index + 1;
74             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE15;
75         END IF;
76 
77         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute2,p_old_MODIFIER_LIST_rec.attribute2)
78         THEN
79             l_index := l_index + 1;
80             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE2;
81         END IF;
82 
83         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute3,p_old_MODIFIER_LIST_rec.attribute3)
84         THEN
85             l_index := l_index + 1;
86             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE3;
87         END IF;
88 
89         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute4,p_old_MODIFIER_LIST_rec.attribute4)
90         THEN
91             l_index := l_index + 1;
92             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE4;
93         END IF;
94 
95         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute5,p_old_MODIFIER_LIST_rec.attribute5)
96         THEN
97             l_index := l_index + 1;
98             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE5;
99         END IF;
100 
101         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute6,p_old_MODIFIER_LIST_rec.attribute6)
102         THEN
103             l_index := l_index + 1;
104             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE6;
105         END IF;
106 
107         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute7,p_old_MODIFIER_LIST_rec.attribute7)
108         THEN
109             l_index := l_index + 1;
110             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE7;
111         END IF;
112 
113         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute8,p_old_MODIFIER_LIST_rec.attribute8)
114         THEN
115             l_index := l_index + 1;
116             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE8;
117         END IF;
118 
119         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute9,p_old_MODIFIER_LIST_rec.attribute9)
120         THEN
121             l_index := l_index + 1;
122             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE9;
123         END IF;
124 
125         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.automatic_flag,p_old_MODIFIER_LIST_rec.automatic_flag)
126         THEN
127             l_index := l_index + 1;
128             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_AUTOMATIC;
129         END IF;
130 
131         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.comments,p_old_MODIFIER_LIST_rec.comments)
132         THEN
133             l_index := l_index + 1;
134             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_COMMENTS;
135         END IF;
136 
137         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.context,p_old_MODIFIER_LIST_rec.context)
138         THEN
139             l_index := l_index + 1;
140             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CONTEXT;
141         END IF;
142 
143         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.created_by,p_old_MODIFIER_LIST_rec.created_by)
144         THEN
145             l_index := l_index + 1;
146             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CREATED_BY;
147         END IF;
148 
149         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.creation_date,p_old_MODIFIER_LIST_rec.creation_date)
150         THEN
151             l_index := l_index + 1;
152             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CREATION_DATE;
153         END IF;
154 
155         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.currency_code,p_old_MODIFIER_LIST_rec.currency_code)
156         THEN
157             l_index := l_index + 1;
158             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CURRENCY;
159         END IF;
160 
161         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.discount_lines_flag,p_old_MODIFIER_LIST_rec.discount_lines_flag)
162         THEN
163             l_index := l_index + 1;
164             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_DISCOUNT_LINES;
165         END IF;
166 
167         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active,p_old_MODIFIER_LIST_rec.end_date_active)
168         THEN
169             l_index := l_index + 1;
170             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_END_DATE_ACTIVE;
171         END IF;
172 
173         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.freight_terms_code,p_old_MODIFIER_LIST_rec.freight_terms_code)
174         THEN
175             l_index := l_index + 1;
176             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_FREIGHT_TERMS;
177         END IF;
178 
179         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.gsa_indicator,p_old_MODIFIER_LIST_rec.gsa_indicator)
180         THEN
181             l_index := l_index + 1;
182             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_GSA_INDICATOR;
183         END IF;
184 
185         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_updated_by,p_old_MODIFIER_LIST_rec.last_updated_by)
186         THEN
187             l_index := l_index + 1;
188             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LAST_UPDATED_BY;
189         END IF;
190 
191         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_update_date,p_old_MODIFIER_LIST_rec.last_update_date)
192         THEN
193             l_index := l_index + 1;
194             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LAST_UPDATE_DATE;
195         END IF;
196 
197         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_update_login,p_old_MODIFIER_LIST_rec.last_update_login)
198         THEN
199             l_index := l_index + 1;
200             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LAST_UPDATE_LOGIN;
201         END IF;
202 
203         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_header_id,p_old_MODIFIER_LIST_rec.list_header_id)
204         THEN
205             l_index := l_index + 1;
206             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LIST_HEADER;
207         END IF;
208 
209         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_type_code,p_old_MODIFIER_LIST_rec.list_type_code)
210         THEN
211             l_index := l_index + 1;
212             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LIST_TYPE;
213         END IF;
214 
215         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_application_id,p_old_MODIFIER_LIST_rec.program_application_id)
216         THEN
217             l_index := l_index + 1;
218             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PROGRAM_APPLICATION;
219         END IF;
220 
221         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_id,p_old_MODIFIER_LIST_rec.program_id)
222         THEN
223             l_index := l_index + 1;
224             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PROGRAM;
225         END IF;
226 
227         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_update_date,p_old_MODIFIER_LIST_rec.program_update_date)
228         THEN
229             l_index := l_index + 1;
230             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PROGRAM_UPDATE_DATE;
231         END IF;
232 
233         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.prorate_flag,p_old_MODIFIER_LIST_rec.prorate_flag)
234         THEN
235             l_index := l_index + 1;
236             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PRORATE;
237         END IF;
238 
239         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.request_id,p_old_MODIFIER_LIST_rec.request_id)
240         THEN
241             l_index := l_index + 1;
242             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_REQUEST;
243         END IF;
244 
245         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.rounding_factor,p_old_MODIFIER_LIST_rec.rounding_factor)
246         THEN
247             l_index := l_index + 1;
248             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ROUNDING_FACTOR;
249         END IF;
250 
251         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.ship_method_code,p_old_MODIFIER_LIST_rec.ship_method_code)
252         THEN
253             l_index := l_index + 1;
254             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_SHIP_METHOD;
255         END IF;
256 
257         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active,p_old_MODIFIER_LIST_rec.start_date_active)
258         THEN
259             l_index := l_index + 1;
260             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_START_DATE_ACTIVE;
261         END IF;
262 
263         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.terms_id,p_old_MODIFIER_LIST_rec.terms_id)
264         THEN
265             l_index := l_index + 1;
266             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_TERMS;
267         END IF;
268 
269         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.source_system_code,p_old_MODIFIER_LIST_rec.source_system_code)
270         THEN
271             l_index := l_index + 1;
272             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_SOURCE_SYSTEM_CODE;
273         END IF;
274 
275         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.pte_code,p_old_MODIFIER_LIST_rec.pte_code)
276         THEN
277             l_index := l_index + 1;
278             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PTE_CODE;
279         END IF;
280 
281         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_flag,p_old_MODIFIER_LIST_rec.active_flag)
282         THEN
283             l_index := l_index + 1;
284             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ACTIVE_FLAG;
285         END IF;
286 
287         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.parent_list_header_id,p_old_MODIFIER_LIST_rec.parent_list_header_id)
288         THEN
289             l_index := l_index + 1;
290             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PARENT_LIST_HEADER_ID;
291         END IF;
292 
293         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active_first,p_old_MODIFIER_LIST_rec.start_date_active_first)
294         THEN
295             l_index := l_index + 1;
296             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_START_DATE_ACTIVE_FIRST;
297         END IF;
298 
299         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active_first,p_old_MODIFIER_LIST_rec.end_date_active_first)
300         THEN
301             l_index := l_index + 1;
302             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_END_DATE_ACTIVE_FIRST;
303         END IF;
304 
305         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_date_first_type,p_old_MODIFIER_LIST_rec.active_date_first_type)
306         THEN
307             l_index := l_index + 1;
308             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ACTIVE_DATE_FIRST_TYPE;
309         END IF;
310 
311         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active_second,p_old_MODIFIER_LIST_rec.start_date_active_second)
312         THEN
313             l_index := l_index + 1;
314             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_START_DATE_ACTIVE_SECOND;
315         END IF;
316 
317         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.global_flag,p_old_MODIFIER_LIST_rec.global_flag)
318         THEN
319             l_index := l_index + 1;
320             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_GLOBAL_FLAG;
321         END IF;
322 
323 
324         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active_second,p_old_MODIFIER_LIST_rec.end_date_active_second)
325         THEN
326             l_index := l_index + 1;
327             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_END_DATE_ACTIVE_SECOND;
328         END IF;
329 
330         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_date_second_type,p_old_MODIFIER_LIST_rec.active_date_second_type)
331         THEN
332             l_index := l_index + 1;
333             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ACTIVE_DATE_SECOND_TYPE;
334         END IF;
335 
336         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.ask_for_flag,p_old_MODIFIER_LIST_rec.ask_for_flag)
337         THEN
338             l_index := l_index + 1;
339             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ASK_FOR;
340         END IF;
341 
342         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.name,p_old_MODIFIER_LIST_rec.name)
343         THEN
344             l_index := l_index + 1;
345             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_NAME;
346         END IF;
347 
348         IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.description,p_old_MODIFIER_LIST_rec.description)
349         THEN
350             l_index := l_index + 1;
351             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_DESCRIPTION;
352         END IF;
353 
354 -- Blanket Pricing
355 	IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.list_source_code, p_old_MODIFIER_LIST_rec.list_source_code)
356         THEN
357             l_index := l_index + 1;
358             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LIST_SOURCE_CODE;
359 	END IF;
360 
361 	IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.orig_system_header_ref, p_old_MODIFIER_LIST_rec.orig_system_header_ref)
362 	THEN
363             l_index := l_index + 1;
364             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ORIG_SYSTEM_HEADER_REF;
365 	END IF;
366 
367 	IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.shareable_flag,p_old_MODIFIER_LIST_rec.shareable_flag)
368 	THEN
369             l_index := l_index + 1;
370             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_SHAREABLE_FLAG;
371 	END IF;
372 
373         --added for MOAC
374 	IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.org_id,p_old_MODIFIER_LIST_rec.org_id)
375 	THEN
376             l_index := l_index + 1;
377             l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ORG_ID;
378 	END IF;
379 
380     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
381         l_index := l_index + 1;
382         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE1;
383     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
384         l_index := l_index + 1;
385         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE10;
386     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
387         l_index := l_index + 1;
388         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE11;
389     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
390         l_index := l_index + 1;
391         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE12;
392     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
393         l_index := l_index + 1;
394         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE13;
395     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
396         l_index := l_index + 1;
397         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE14;
398     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
399         l_index := l_index + 1;
400         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE15;
401     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
402         l_index := l_index + 1;
403         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE2;
404     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
405         l_index := l_index + 1;
406         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE3;
407     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
408         l_index := l_index + 1;
409         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE4;
410     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
411         l_index := l_index + 1;
412         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE5;
413     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
414         l_index := l_index + 1;
415         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE6;
416     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
417         l_index := l_index + 1;
418         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE7;
419     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
420         l_index := l_index + 1;
421         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE8;
422     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
423         l_index := l_index + 1;
424         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ATTRIBUTE9;
425     ELSIF p_attr_id = G_AUTOMATIC THEN
426         l_index := l_index + 1;
427         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_AUTOMATIC;
428     ELSIF p_attr_id = G_COMMENTS THEN
429         l_index := l_index + 1;
430         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_COMMENTS;
431     ELSIF p_attr_id = G_CONTEXT THEN
432         l_index := l_index + 1;
433         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CONTEXT;
434     ELSIF p_attr_id = G_CREATED_BY THEN
435         l_index := l_index + 1;
436         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CREATED_BY;
437     ELSIF p_attr_id = G_CREATION_DATE THEN
438         l_index := l_index + 1;
439         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CREATION_DATE;
440     ELSIF p_attr_id = G_CURRENCY THEN
441         l_index := l_index + 1;
442         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_CURRENCY;
443     ELSIF p_attr_id = G_DISCOUNT_LINES THEN
444         l_index := l_index + 1;
445         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_DISCOUNT_LINES;
446     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
447         l_index := l_index + 1;
448         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_END_DATE_ACTIVE;
449     ELSIF p_attr_id = G_FREIGHT_TERMS THEN
450         l_index := l_index + 1;
451         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_FREIGHT_TERMS;
452     ELSIF p_attr_id = G_GSA_INDICATOR THEN
453         l_index := l_index + 1;
454         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_GSA_INDICATOR;
455     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
456         l_index := l_index + 1;
457         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LAST_UPDATED_BY;
458     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
459         l_index := l_index + 1;
460         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LAST_UPDATE_DATE;
461     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
462         l_index := l_index + 1;
463         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LAST_UPDATE_LOGIN;
464     ELSIF p_attr_id = G_LIST_HEADER THEN
465         l_index := l_index + 1;
466         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LIST_HEADER;
467     ELSIF p_attr_id = G_LIST_TYPE THEN
468         l_index := l_index + 1;
469         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LIST_TYPE;
470     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
471         l_index := l_index + 1;
472         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PROGRAM_APPLICATION;
473     ELSIF p_attr_id = G_PROGRAM THEN
474         l_index := l_index + 1;
475         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PROGRAM;
476     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
477         l_index := l_index + 1;
478         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PROGRAM_UPDATE_DATE;
479     ELSIF p_attr_id = G_PRORATE THEN
480         l_index := l_index + 1;
481         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PRORATE;
482     ELSIF p_attr_id = G_REQUEST THEN
483         l_index := l_index + 1;
484         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_REQUEST;
485     ELSIF p_attr_id = G_ROUNDING_FACTOR THEN
486         l_index := l_index + 1;
487         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ROUNDING_FACTOR;
488     ELSIF p_attr_id = G_SHIP_METHOD THEN
489         l_index := l_index + 1;
490         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_SHIP_METHOD;
491     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
492         l_index := l_index + 1;
493         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_START_DATE_ACTIVE;
494     ELSIF p_attr_id = G_TERMS THEN
495         l_index := l_index + 1;
496         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_TERMS;
497     ELSIF p_attr_id = G_SOURCE_SYSTEM_CODE THEN
498         l_index := l_index + 1;
499         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_SOURCE_SYSTEM_CODE;
500     ELSIF p_attr_id = G_PTE_CODE THEN
501         l_index := l_index + 1;
502         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PTE_CODE;
503     ELSIF p_attr_id = G_ACTIVE_FLAG THEN
504         l_index := l_index + 1;
505         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ACTIVE_FLAG;
506     ELSIF p_attr_id = G_PARENT_LIST_HEADER_ID THEN
507         l_index := l_index + 1;
508         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_PARENT_LIST_HEADER_ID;
509     ELSIF p_attr_id = G_START_DATE_ACTIVE_FIRST THEN
510         l_index := l_index + 1;
511         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_START_DATE_ACTIVE_FIRST;
512     ELSIF p_attr_id = G_END_DATE_ACTIVE_FIRST THEN
513         l_index := l_index + 1;
514         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_END_DATE_ACTIVE_FIRST;
515     ELSIF p_attr_id = G_ACTIVE_DATE_FIRST_TYPE THEN
516         l_index := l_index + 1;
517         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ACTIVE_DATE_FIRST_TYPE;
518     ELSIF p_attr_id = G_START_DATE_ACTIVE_SECOND THEN
519         l_index := l_index + 1;
520         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_START_DATE_ACTIVE_SECOND;
521     ELSIF p_attr_id = G_GLOBAL_FLAG THEN
522         l_index := l_index + 1;
523         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_GLOBAL_FLAG;
524     ELSIF p_attr_id = G_END_DATE_ACTIVE_SECOND THEN
525         l_index := l_index + 1;
526         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_END_DATE_ACTIVE_SECOND;
527     ELSIF p_attr_id = G_ACTIVE_DATE_SECOND_TYPE THEN
528         l_index := l_index + 1;
529         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ACTIVE_DATE_SECOND_TYPE;
530     ELSIF p_attr_id = G_ASK_FOR THEN
531         l_index := l_index + 1;
532         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ASK_FOR;
533     ELSIF p_attr_id = G_NAME THEN
534         l_index := l_index + 1;
535         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_NAME;
536     ELSIF p_attr_id = G_DESCRIPTION THEN
537         l_index := l_index + 1;
538         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_DESCRIPTION;
539 -- Blanket pricing
540     ELSIF p_attr_id = G_LIST_SOURCE_CODE THEN
541         l_index := l_index + 1;
542         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_LIST_SOURCE_CODE;
543     ELSIF p_attr_id = G_ORIG_SYSTEM_HEADER_REF THEN
544         l_index := l_index + 1;
545         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ORIG_SYSTEM_HEADER_REF;
546     ELSIF p_attr_id = G_SHAREABLE_FLAG THEN
547         l_index := l_index + 1;
548         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_SHAREABLE_FLAG;
549     --added for MOAC
550     ELSIF p_attr_id = G_ORG_ID THEN
551         l_index := l_index + 1;
552         l_src_attr_tbl(l_index) := QP_MODIFIER_LIST_UTIL.G_ORG_ID;
553     END IF;
554 	oe_debug_pub.add('END clear_dependent_attr in QPXUMLHB');
555 
556 END Clear_Dependent_Attr;
557 
558 --  Procedure Apply_Attribute_Changes
559 
560 PROCEDURE Apply_Attribute_Changes
561 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
562 ,   p_old_MODIFIER_LIST_rec         IN  QP_Modifiers_PUB.Modifier_List_Rec_Type :=
563                                         QP_Modifiers_PUB.G_MISS_MODIFIER_LIST_REC
564 ,   x_MODIFIER_LIST_rec             OUT NOCOPY QP_Modifiers_PUB.Modifier_List_Rec_Type
565 )
566 IS
567 l_modifiers_exist VARCHAR2(1) := 'N';
568 ------------------------fix for bug 3756625
569 CURSOR l_pricing_phase_cur (l_list_header_id NUMBER) IS
570 select distinct pricing_phase_id from qp_list_lines
571 where list_header_id = l_list_header_id;
572 BEGIN
573 
574 	oe_debug_pub.add('BEGIN apply_attribute_changes in QPXUMLHB');
575     --  Load out record
576 
577     x_MODIFIER_LIST_rec := p_MODIFIER_LIST_rec;
578 
579     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute1,p_old_MODIFIER_LIST_rec.attribute1)
580     THEN
581         NULL;
582     END IF;
583 
584     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute10,p_old_MODIFIER_LIST_rec.attribute10)
585     THEN
586         NULL;
587     END IF;
588 
589     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute11,p_old_MODIFIER_LIST_rec.attribute11)
590     THEN
591         NULL;
592     END IF;
593 
594     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute12,p_old_MODIFIER_LIST_rec.attribute12)
595     THEN
596         NULL;
597     END IF;
598 
599     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute13,p_old_MODIFIER_LIST_rec.attribute13)
600     THEN
601         NULL;
602     END IF;
603 
604     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute14,p_old_MODIFIER_LIST_rec.attribute14)
605     THEN
606         NULL;
607     END IF;
608 
609     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute15,p_old_MODIFIER_LIST_rec.attribute15)
610     THEN
611         NULL;
612     END IF;
613 
614     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute2,p_old_MODIFIER_LIST_rec.attribute2)
615     THEN
616         NULL;
617     END IF;
618 
619     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute3,p_old_MODIFIER_LIST_rec.attribute3)
620     THEN
621         NULL;
622     END IF;
623 
624     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute4,p_old_MODIFIER_LIST_rec.attribute4)
625     THEN
626         NULL;
627     END IF;
628 
629     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute5,p_old_MODIFIER_LIST_rec.attribute5)
630     THEN
631         NULL;
632     END IF;
633 
634     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute6,p_old_MODIFIER_LIST_rec.attribute6)
635     THEN
636         NULL;
637     END IF;
638 
639     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute7,p_old_MODIFIER_LIST_rec.attribute7)
640     THEN
641         NULL;
642     END IF;
643 
644     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute8,p_old_MODIFIER_LIST_rec.attribute8)
645     THEN
646         NULL;
647     END IF;
648 
649     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute9,p_old_MODIFIER_LIST_rec.attribute9)
650     THEN
651         NULL;
652     END IF;
653 
654     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.automatic_flag,p_old_MODIFIER_LIST_rec.automatic_flag)
655     THEN
656         NULL;
657     END IF;
658 
659     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.comments,p_old_MODIFIER_LIST_rec.comments)
660     THEN
661         NULL;
662     END IF;
663 
664     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.context,p_old_MODIFIER_LIST_rec.context)
665     THEN
666         NULL;
667     END IF;
668 
669     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.created_by,p_old_MODIFIER_LIST_rec.created_by)
670     THEN
671         NULL;
672     END IF;
673 
674     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.creation_date,p_old_MODIFIER_LIST_rec.creation_date)
675     THEN
676         NULL;
677     END IF;
678 
679     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.currency_code,p_old_MODIFIER_LIST_rec.currency_code)
680     THEN
681 --      NULL;
682 	IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
683 	  IF(p_MODIFIER_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
684             qp_delayed_requests_pvt.log_request(
685 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
686 		p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
687 		p_request_unique_key1 => NULL,
688 		p_request_unique_key2 => 'UD',
689 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
690 		p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
691 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
692 		x_return_status => x_MODIFIER_LIST_rec.return_status);
693 	END IF;
694     END IF;
695 -- Pattern
696     END IF;
697 
698     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.discount_lines_flag,p_old_MODIFIER_LIST_rec.discount_lines_flag)
699     THEN
700         NULL;
701     END IF;
702 
703     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active,p_old_MODIFIER_LIST_rec.end_date_active)
704     THEN
705         NULL;
706     END IF;
707 
708     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.freight_terms_code,p_old_MODIFIER_LIST_rec.freight_terms_code)
709     THEN
710         NULL;
711     END IF;
712 
713     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.gsa_indicator,p_old_MODIFIER_LIST_rec.gsa_indicator)
714     THEN
715         NULL;
716     END IF;
717 
718     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_updated_by,p_old_MODIFIER_LIST_rec.last_updated_by)
719     THEN
720         NULL;
721     END IF;
722 
723     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_update_date,p_old_MODIFIER_LIST_rec.last_update_date)
724     THEN
725         NULL;
726     END IF;
727 
728     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_update_login,p_old_MODIFIER_LIST_rec.last_update_login)
729     THEN
730         NULL;
731     END IF;
732 
733     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_header_id,p_old_MODIFIER_LIST_rec.list_header_id)
734     THEN
735         NULL;
736     END IF;
737 
738     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_type_code,p_old_MODIFIER_LIST_rec.list_type_code)
739     THEN
740         NULL;
741 	IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
742 	  IF (p_MODIFIER_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
743             qp_delayed_requests_pvt.log_request(
744 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
745 		p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
746 		p_request_unique_key1 => NULL,
747 		p_request_unique_key2 => 'UD',
748 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
749 		p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
750 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
751 		x_return_status => x_MODIFIER_LIST_rec.return_status);
752 	END IF;
753      END IF;
754 -- Pattern
755     END IF;
756 
757     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_application_id,p_old_MODIFIER_LIST_rec.program_application_id)
758     THEN
759         NULL;
760     END IF;
761 
762     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_id,p_old_MODIFIER_LIST_rec.program_id)
763     THEN
764         NULL;
765     END IF;
766 
767     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_update_date,p_old_MODIFIER_LIST_rec.program_update_date)
768     THEN
769         NULL;
770     END IF;
771 
772     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.prorate_flag,p_old_MODIFIER_LIST_rec.prorate_flag)
773     THEN
774         NULL;
775     END IF;
776 
777     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.request_id,p_old_MODIFIER_LIST_rec.request_id)
778     THEN
779         NULL;
780     END IF;
781 
782     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.rounding_factor,p_old_MODIFIER_LIST_rec.rounding_factor)
783     THEN
784         NULL;
785     END IF;
786 
787     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.ship_method_code,p_old_MODIFIER_LIST_rec.ship_method_code)
788     THEN
789         NULL;
790     END IF;
791 
792     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active,p_old_MODIFIER_LIST_rec.start_date_active)
793     THEN
794         NULL;
795     END IF;
796 
797     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.terms_id,p_old_MODIFIER_LIST_rec.terms_id)
798     THEN
799         NULL;
800     END IF;
801 
802     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.source_system_code,p_old_MODIFIER_LIST_rec.source_system_code)
803     THEN
804         NULL;
805 	IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
806 	   IF (p_MODIFIER_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
807             qp_delayed_requests_pvt.log_request(
808 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
809 		p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
810 		p_request_unique_key1 => NULL,
811 		p_request_unique_key2 => 'UD',
812 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
813 		p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
814 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
815 		x_return_status => x_MODIFIER_LIST_rec.return_status);
816           END IF;
817 	END IF;
818 -- Pattern
819     END IF;
820 
821     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.pte_code,p_old_MODIFIER_LIST_rec.pte_code)
822     THEN
823         NULL;
824     END IF;
825 
826     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_flag,p_old_MODIFIER_LIST_rec.active_flag)
827     THEN
828         NULL;
829 
830 		--hw
831 		-- log delayed request for changed lines for active flag change
832 		if QP_PERF_PVT.enabled = 'Y' then
833  		qp_delayed_requests_pvt.log_request(
834           	p_entity_code => QP_GLOBALS.G_ENTITY_MODIFIER_LIST,
835        	  	p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
836           	p_requesting_entity_code => QP_GLOBALS.G_ENTITY_MODIFIERS,
837           	p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
838           	p_request_type => QP_GLOBALS.G_UPDATE_CHANGED_LINES_ACT,
839 			p_param1 => p_MODIFIER_LIST_rec.active_flag,
840           	x_return_status => x_MODIFIER_LIST_rec.return_status);
841 		end if;
842 
843 		--hvop
844 		qp_delayed_requests_pvt.log_request(
845                 p_entity_code => QP_GLOBALS.G_ENTITY_MODIFIER_LIST,
846                 p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
847                 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_MODIFIERS,
848                 p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
849                 p_request_type => QP_GLOBALS.G_UPDATE_HVOP,
850                 x_return_status => x_MODIFIER_LIST_rec.return_status);
851 		--hvop
852 		IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
853             	 IF (p_MODIFIER_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
854                   qp_delayed_requests_pvt.log_request(
855 		  p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
856 		  p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
857 		  p_request_unique_key1 => NULL,
858 		  p_request_unique_key2 => 'UD',
859 		  p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
860 		  p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
861 		  p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
862 		  x_return_status => x_MODIFIER_LIST_rec.return_status);
863 		END IF;
864               END IF; --Java Engine Installed
865 	-- Pattern
866 --to populate rltd_Exists,oid_exists,prg_exists and qp_basic_modifiers_setup
867 --performance profile
868   IF p_MODIFIER_LIST_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
869 
870 	BEGIN
871 	select 'Y' into l_modifiers_exist
872 	from qp_list_lines
873 	where list_header_id = p_MODIFIER_LIST_rec.list_header_id
874 	and rownum = 1;
875 	EXCEPTION
876 	When OTHERS THEN
877 	l_modifiers_exist := 'N';
878 	END;
879 
880 	IF l_modifiers_exist = 'Y' THEN
881 
882 ------------------fix for bug 3756625
883   FOR I in l_pricing_phase_cur(p_MODIFIER_LIST_rec.list_header_id)
884 LOOP
885 
886          qp_delayed_requests_PVT.log_request(
887                  p_entity_code => QP_GLOBALS.G_ENTITY_MODIFIER_LIST,
888                   p_entity_id  => p_MODIFIER_LIST_rec.list_header_id,
889                   p_param1  => I.pricing_phase_id,
890                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_MODIFIER_LIST,
891                  p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
892                  p_request_type =>QP_GLOBALS.G_UPDATE_PRICING_PHASE,
893                  x_return_status => x_MODIFIER_LIST_rec.return_status);
894 END LOOP;
895 
896 	qp_delayed_requests_pvt.log_request(
897                 p_entity_code => QP_GLOBALS.G_ENTITY_MODIFIER_LIST,
898                 p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
899                 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_MODIFIERS,
900                 p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
901                 p_request_type => QP_GLOBALS.G_UPDATE_HVOP,
902                 x_return_status => x_MODIFIER_LIST_rec.return_status);
903 	END IF;
904   END IF;
905 
906   IF p_MODIFIER_LIST_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
907 
908            Update QP_QUALIFIERS
909            set    active_flag = p_MODIFIER_LIST_rec.active_flag
910            where  list_header_id = p_MODIFIER_LIST_rec.list_header_id;
911 
912    IF p_MODIFIER_LIST_rec.active_flag = 'Y'
913    THEN
914 	update qp_pte_segments set used_in_setup='Y'
915 	where nvl(used_in_setup,'N')='N'
916 	and segment_id in
917 	(select  a.segment_id
918 	from qp_segments_b a,qp_prc_contexts_b b,qp_qualifiers c
919 	where c.list_header_id         = p_MODIFIER_LIST_rec.list_header_id
920 	and   a.segment_mapping_column = c .qualifier_attribute
921 	and   a.prc_context_id         = b.prc_context_id
922 	and   b.prc_context_type       = 'QUALIFIER'
923 	and   b.prc_context_code       = c.qualifier_context);
924 
925 	update qp_pte_segments d set used_in_setup='Y'
926 	where nvl(used_in_setup,'N')='N'
927 	and exists
928 	(select  'x'
929 	from qp_segments_b a,qp_prc_contexts_b b,qp_pricing_attributes c
930 	where c.list_header_id         = p_MODIFIER_LIST_rec.list_header_id
931 	and   a.segment_mapping_column = c.pricing_attribute
932         and   a.segment_id             = d.segment_id
933 	and   a.prc_context_id         = b.prc_context_id
934 	and   b.prc_context_type       = 'PRICING_ATTRIBUTE'
935 	and   b.prc_context_code       = c.pricing_attribute_context);
936 
937 	update qp_pte_segments d set used_in_setup='Y'
938 	where nvl(used_in_setup,'N')='N'
939 	and exists
940 	(select  'x'
941 	from qp_segments_b a,qp_prc_contexts_b b,qp_pricing_attributes c
942 	where c.list_header_id         = p_MODIFIER_LIST_rec.list_header_id
943 	and   a.segment_mapping_column = c.product_attribute
944         and   a.segment_id             = d.segment_id
945 	and   a.prc_context_id         = b.prc_context_id
946 	and   b.prc_context_type       = 'PRODUCT'
947 	and   b.prc_context_code       = c.product_attribute_context);
948 
949 	update qp_pte_segments set used_in_setup='Y'
950 	where nvl(used_in_setup,'N')='N'
951 	and segment_id in
952 	(select  a.segment_id
953 	from qp_segments_b a,qp_prc_contexts_b b,qp_limits c
954 	where c.list_header_id         = p_MODIFIER_LIST_rec.list_header_id
955 	and   a.segment_mapping_column = c.multival_attribute1
956 	and   a.prc_context_id         = b.prc_context_id
957 	and   b.prc_context_type       = c.multival_attr1_type
958 	and   b.prc_context_code       = c.multival_attr1_context);
959 
960 	update qp_pte_segments set used_in_setup='Y'
961 	where nvl(used_in_setup,'N')='N'
962 	and segment_id in
963 	(select  a.segment_id
964 	from qp_segments_b a,qp_prc_contexts_b b,qp_limits c
965 	where c.list_header_id         = p_MODIFIER_LIST_rec.list_header_id
966 	and   a.segment_mapping_column = c.multival_attribute2
967 	and   a.prc_context_id         = b.prc_context_id
968 	and   b.prc_context_type       = c.multival_attr2_type
969 	and   b.prc_context_code       = c.multival_attr2_context);
970 
971 
972 	update qp_pte_segments set used_in_setup='Y'
973 	where nvl(used_in_setup,'N')='N'
974 	and segment_id in
975 	(select  a.segment_id
976 	from qp_segments_b a,qp_prc_contexts_b b,qp_limit_attributes c,qp_limits d
977 	where c.limit_id               = d.limit_id
978         and   d.list_header_id         = p_MODIFIER_LIST_rec.list_header_id
979 	and   a.segment_mapping_column = c.limit_attribute
980 	and   a.prc_context_id         = b.prc_context_id
981 	and   b.prc_context_type       = c.limit_attribute_type
982 	and   b.prc_context_code       = c.limit_attribute_context);
983 
984     END IF;
985 
986   END IF;
987   END IF;
988 
989     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.parent_list_header_id,p_old_MODIFIER_LIST_rec.parent_list_header_id)
990     THEN
991         NULL;
992     END IF;
993 
994     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active_first,p_old_MODIFIER_LIST_rec.start_date_active_first)
995     THEN
996         NULL;
997     END IF;
998 
999     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active_first,p_old_MODIFIER_LIST_rec.end_date_active_first)
1000     THEN
1001         NULL;
1002     END IF;
1003 
1004     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_date_first_type,p_old_MODIFIER_LIST_rec.active_date_first_type)
1005     THEN
1006         NULL;
1007     END IF;
1008 
1009     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active_second,p_old_MODIFIER_LIST_rec.start_date_active_second)
1010     THEN
1011         NULL;
1012     END IF;
1013 
1014     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.global_flag,p_old_MODIFIER_LIST_rec.global_flag)
1015     THEN
1016         NULL;
1017     END IF;
1018 
1019 
1020     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active_second,p_old_MODIFIER_LIST_rec.end_date_active_second)
1021     THEN
1022         NULL;
1023     END IF;
1024 
1025     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_date_second_type,p_old_MODIFIER_LIST_rec.active_date_second_type)
1026     THEN
1027         NULL;
1028     END IF;
1029 
1030     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.ask_for_flag,p_old_MODIFIER_LIST_rec.ask_for_flag)
1031     THEN
1032         NULL;
1033 	IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
1034 	  IF(p_MODIFIER_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
1035              qp_delayed_requests_pvt.log_request(
1036 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1037 		p_entity_id => p_MODIFIER_LIST_rec.list_header_id,
1038 		p_request_unique_key1 => NULL,
1039 		p_request_unique_key2 => 'UD',
1040 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1041 		p_requesting_entity_id => p_MODIFIER_LIST_rec.list_header_id,
1042 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
1043 		x_return_status => x_MODIFIER_LIST_rec.return_status);
1044             END IF;
1045 	END IF;
1046 -- Pattern
1047     END IF;
1048 
1049     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.name,p_old_MODIFIER_LIST_rec.name)
1050     THEN
1051         NULL;
1052     END IF;
1053 
1054     IF NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.description,p_old_MODIFIER_LIST_rec.description)
1055     THEN
1056         NULL;
1057     END IF;
1058 
1059     -- Blanket Pricing
1060     IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.list_source_code, p_old_MODIFIER_LIST_rec.list_source_code)
1061     THEN
1062         NULL;
1063     END IF;
1064 
1065     IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.orig_system_header_ref, p_old_MODIFIER_LIST_rec.orig_system_header_ref)
1066     THEN
1067         NULL;
1068     END IF;
1069 
1070     IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.shareable_flag, p_old_MODIFIER_LIST_rec.shareable_flag)
1071     THEN
1072         NULL;
1073     END IF;
1074 
1075     --added for MOAC
1076     IF NOT QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.org_id, p_old_MODIFIER_LIST_rec.org_id)
1077     THEN
1078         NULL;
1079     END IF;
1080 
1081 	oe_debug_pub.add('END apply_attribute_changes in QPXUMLHB');
1082 END Apply_Attribute_Changes;
1083 
1084 
1085 --  Function Complete_Record
1086 
1087 FUNCTION Complete_Record
1088 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
1089 ,   p_old_MODIFIER_LIST_rec         IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
1090 ) RETURN QP_Modifiers_PUB.Modifier_List_Rec_Type
1091 IS
1092 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type := p_MODIFIER_LIST_rec;
1093 BEGIN
1094 
1095 	oe_debug_pub.add('BEGIN complete_record in QPXUMLHB');
1096 
1097     IF l_MODIFIER_LIST_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1098         l_MODIFIER_LIST_rec.attribute1 := p_old_MODIFIER_LIST_rec.attribute1;
1099     END IF;
1100 
1101     IF l_MODIFIER_LIST_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1102         l_MODIFIER_LIST_rec.attribute10 := p_old_MODIFIER_LIST_rec.attribute10;
1103     END IF;
1104 
1105     IF l_MODIFIER_LIST_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1106         l_MODIFIER_LIST_rec.attribute11 := p_old_MODIFIER_LIST_rec.attribute11;
1107     END IF;
1108 
1109     IF l_MODIFIER_LIST_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1110         l_MODIFIER_LIST_rec.attribute12 := p_old_MODIFIER_LIST_rec.attribute12;
1111     END IF;
1112 
1113     IF l_MODIFIER_LIST_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1114         l_MODIFIER_LIST_rec.attribute13 := p_old_MODIFIER_LIST_rec.attribute13;
1115     END IF;
1116 
1117     IF l_MODIFIER_LIST_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1118         l_MODIFIER_LIST_rec.attribute14 := p_old_MODIFIER_LIST_rec.attribute14;
1119     END IF;
1120 
1121     IF l_MODIFIER_LIST_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1122         l_MODIFIER_LIST_rec.attribute15 := p_old_MODIFIER_LIST_rec.attribute15;
1123     END IF;
1124 
1125     IF l_MODIFIER_LIST_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1126         l_MODIFIER_LIST_rec.attribute2 := p_old_MODIFIER_LIST_rec.attribute2;
1127     END IF;
1128 
1129     IF l_MODIFIER_LIST_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1130         l_MODIFIER_LIST_rec.attribute3 := p_old_MODIFIER_LIST_rec.attribute3;
1131     END IF;
1132 
1133     IF l_MODIFIER_LIST_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1134         l_MODIFIER_LIST_rec.attribute4 := p_old_MODIFIER_LIST_rec.attribute4;
1135     END IF;
1136 
1137     IF l_MODIFIER_LIST_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1138         l_MODIFIER_LIST_rec.attribute5 := p_old_MODIFIER_LIST_rec.attribute5;
1139     END IF;
1140 
1141     IF l_MODIFIER_LIST_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1142         l_MODIFIER_LIST_rec.attribute6 := p_old_MODIFIER_LIST_rec.attribute6;
1143     END IF;
1144 
1145     IF l_MODIFIER_LIST_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1146         l_MODIFIER_LIST_rec.attribute7 := p_old_MODIFIER_LIST_rec.attribute7;
1147     END IF;
1148 
1149     IF l_MODIFIER_LIST_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1150         l_MODIFIER_LIST_rec.attribute8 := p_old_MODIFIER_LIST_rec.attribute8;
1151     END IF;
1152 
1153     IF l_MODIFIER_LIST_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1154         l_MODIFIER_LIST_rec.attribute9 := p_old_MODIFIER_LIST_rec.attribute9;
1155     END IF;
1156 
1157     IF l_MODIFIER_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1158         l_MODIFIER_LIST_rec.automatic_flag := p_old_MODIFIER_LIST_rec.automatic_flag;
1159     END IF;
1160 
1161     IF l_MODIFIER_LIST_rec.comments = FND_API.G_MISS_CHAR THEN
1162         l_MODIFIER_LIST_rec.comments := p_old_MODIFIER_LIST_rec.comments;
1163     END IF;
1164 
1165     IF l_MODIFIER_LIST_rec.context = FND_API.G_MISS_CHAR THEN
1166         l_MODIFIER_LIST_rec.context := p_old_MODIFIER_LIST_rec.context;
1167     END IF;
1168 
1169     IF l_MODIFIER_LIST_rec.created_by = FND_API.G_MISS_NUM THEN
1170         l_MODIFIER_LIST_rec.created_by := p_old_MODIFIER_LIST_rec.created_by;
1171     END IF;
1172 
1173     IF l_MODIFIER_LIST_rec.creation_date = FND_API.G_MISS_DATE THEN
1174         l_MODIFIER_LIST_rec.creation_date := p_old_MODIFIER_LIST_rec.creation_date;
1175     END IF;
1176 
1177     IF l_MODIFIER_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
1178         l_MODIFIER_LIST_rec.currency_code := p_old_MODIFIER_LIST_rec.currency_code;
1179     END IF;
1180 
1181     IF l_MODIFIER_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR THEN
1182         l_MODIFIER_LIST_rec.discount_lines_flag := p_old_MODIFIER_LIST_rec.discount_lines_flag;
1183     END IF;
1184 
1185     IF l_MODIFIER_LIST_rec.end_date_active = FND_API.G_MISS_DATE THEN
1186         l_MODIFIER_LIST_rec.end_date_active := p_old_MODIFIER_LIST_rec.end_date_active;
1187     END IF;
1188 
1189     IF l_MODIFIER_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
1190         l_MODIFIER_LIST_rec.freight_terms_code := p_old_MODIFIER_LIST_rec.freight_terms_code;
1191     END IF;
1192 
1193     IF l_MODIFIER_LIST_rec.gsa_indicator = FND_API.G_MISS_CHAR THEN
1194         l_MODIFIER_LIST_rec.gsa_indicator := p_old_MODIFIER_LIST_rec.gsa_indicator;
1195     END IF;
1196 
1197     IF l_MODIFIER_LIST_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1198         l_MODIFIER_LIST_rec.last_updated_by := p_old_MODIFIER_LIST_rec.last_updated_by;
1199     END IF;
1200 
1201     IF l_MODIFIER_LIST_rec.last_update_date = FND_API.G_MISS_DATE THEN
1202         l_MODIFIER_LIST_rec.last_update_date := p_old_MODIFIER_LIST_rec.last_update_date;
1203     END IF;
1204 
1205     IF l_MODIFIER_LIST_rec.last_update_login = FND_API.G_MISS_NUM THEN
1206         l_MODIFIER_LIST_rec.last_update_login := p_old_MODIFIER_LIST_rec.last_update_login;
1207     END IF;
1208 
1209     IF l_MODIFIER_LIST_rec.list_header_id = FND_API.G_MISS_NUM THEN
1210         l_MODIFIER_LIST_rec.list_header_id := p_old_MODIFIER_LIST_rec.list_header_id;
1211     END IF;
1212 
1213     IF l_MODIFIER_LIST_rec.list_type_code = FND_API.G_MISS_CHAR THEN
1214         l_MODIFIER_LIST_rec.list_type_code := p_old_MODIFIER_LIST_rec.list_type_code;
1215     END IF;
1216 
1217     IF l_MODIFIER_LIST_rec.program_application_id = FND_API.G_MISS_NUM THEN
1218         l_MODIFIER_LIST_rec.program_application_id := p_old_MODIFIER_LIST_rec.program_application_id;
1219     END IF;
1220 
1221     IF l_MODIFIER_LIST_rec.program_id = FND_API.G_MISS_NUM THEN
1222         l_MODIFIER_LIST_rec.program_id := p_old_MODIFIER_LIST_rec.program_id;
1223     END IF;
1224 
1225     IF l_MODIFIER_LIST_rec.program_update_date = FND_API.G_MISS_DATE THEN
1226         l_MODIFIER_LIST_rec.program_update_date := p_old_MODIFIER_LIST_rec.program_update_date;
1227     END IF;
1228 
1229     IF l_MODIFIER_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR THEN
1230         l_MODIFIER_LIST_rec.prorate_flag := p_old_MODIFIER_LIST_rec.prorate_flag;
1231     END IF;
1232 
1233     IF l_MODIFIER_LIST_rec.request_id = FND_API.G_MISS_NUM THEN
1234         l_MODIFIER_LIST_rec.request_id := p_old_MODIFIER_LIST_rec.request_id;
1235     END IF;
1236 
1237     IF l_MODIFIER_LIST_rec.rounding_factor = FND_API.G_MISS_NUM THEN
1238         l_MODIFIER_LIST_rec.rounding_factor := p_old_MODIFIER_LIST_rec.rounding_factor;
1239     END IF;
1240 
1241     IF l_MODIFIER_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
1242         l_MODIFIER_LIST_rec.ship_method_code := p_old_MODIFIER_LIST_rec.ship_method_code;
1243     END IF;
1244 
1245     IF l_MODIFIER_LIST_rec.start_date_active = FND_API.G_MISS_DATE THEN
1246         l_MODIFIER_LIST_rec.start_date_active := p_old_MODIFIER_LIST_rec.start_date_active;
1247     END IF;
1248 
1249     IF l_MODIFIER_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
1250         l_MODIFIER_LIST_rec.terms_id := p_old_MODIFIER_LIST_rec.terms_id;
1251     END IF;
1252 
1253     IF l_MODIFIER_LIST_rec.source_system_code = FND_API.G_MISS_CHAR THEN
1254         l_MODIFIER_LIST_rec.source_system_code := p_old_MODIFIER_LIST_rec.source_system_code;
1255     END IF;
1256 
1257     IF l_MODIFIER_LIST_rec.pte_code = FND_API.G_MISS_CHAR THEN
1258         l_MODIFIER_LIST_rec.pte_code := p_old_MODIFIER_LIST_rec.pte_code;
1259     END IF;
1260 
1261     IF l_MODIFIER_LIST_rec.active_flag = FND_API.G_MISS_CHAR THEN
1262         l_MODIFIER_LIST_rec.active_flag := p_old_MODIFIER_LIST_rec.active_flag;
1263     END IF;
1264 
1265     IF l_MODIFIER_LIST_rec.parent_list_header_id = FND_API.G_MISS_NUM THEN
1266         l_MODIFIER_LIST_rec.parent_list_header_id := p_old_MODIFIER_LIST_rec.parent_list_header_id;
1267     END IF;
1268 
1269     IF l_MODIFIER_LIST_rec.start_date_active_first = FND_API.G_MISS_DATE THEN
1270         l_MODIFIER_LIST_rec.start_date_active_first := p_old_MODIFIER_LIST_rec.start_date_active_first;
1271     END IF;
1272 
1273     IF l_MODIFIER_LIST_rec.end_date_active_first = FND_API.G_MISS_DATE THEN
1274         l_MODIFIER_LIST_rec.end_date_active_first := p_old_MODIFIER_LIST_rec.end_date_active_first;
1275     END IF;
1276 
1277     IF l_MODIFIER_LIST_rec.active_date_first_type = FND_API.G_MISS_CHAR THEN
1278         l_MODIFIER_LIST_rec.active_date_first_type := p_old_MODIFIER_LIST_rec.active_date_first_type;
1279     END IF;
1280 
1281     IF l_MODIFIER_LIST_rec.start_date_active_second = FND_API.G_MISS_DATE THEN
1282         l_MODIFIER_LIST_rec.start_date_active_second := p_old_MODIFIER_LIST_rec.start_date_active_second;
1283     END IF;
1284 
1285     IF l_MODIFIER_LIST_rec.global_flag = FND_API.G_MISS_CHAR THEN
1286         l_MODIFIER_LIST_rec.global_flag := p_old_MODIFIER_LIST_rec.global_flag;
1287     END IF;
1288 
1289 
1290     IF l_MODIFIER_LIST_rec.end_date_active_second = FND_API.G_MISS_DATE THEN
1291         l_MODIFIER_LIST_rec.end_date_active_second := p_old_MODIFIER_LIST_rec.end_date_active_second;
1292     END IF;
1293 
1294     IF l_MODIFIER_LIST_rec.active_date_second_type = FND_API.G_MISS_CHAR THEN
1295         l_MODIFIER_LIST_rec.active_date_second_type := p_old_MODIFIER_LIST_rec.active_date_second_type;
1296     END IF;
1297 
1298     IF l_MODIFIER_LIST_rec.ask_for_flag = FND_API.G_MISS_CHAR THEN
1299         l_MODIFIER_LIST_rec.ask_for_flag := p_old_MODIFIER_LIST_rec.ask_for_flag;
1300     END IF;
1301 
1302     IF l_MODIFIER_LIST_rec.name = FND_API.G_MISS_CHAR THEN
1303         l_MODIFIER_LIST_rec.name := p_old_MODIFIER_LIST_rec.name;
1304     END IF;
1305 
1306     IF l_MODIFIER_LIST_rec.version_no = FND_API.G_MISS_CHAR THEN
1307         l_MODIFIER_LIST_rec.version_no := p_old_MODIFIER_LIST_rec.version_no;
1308     END IF;
1309 
1310     IF l_MODIFIER_LIST_rec.description = FND_API.G_MISS_CHAR THEN
1311         l_MODIFIER_LIST_rec.description := p_old_MODIFIER_LIST_rec.description;
1312     END IF;
1313 
1314     -- Blanket Agreement Pricing bug#3871577
1315     IF l_MODIFIER_LIST_rec.list_source_code = FND_API.G_MISS_CHAR THEN
1316         l_MODIFIER_LIST_rec.list_source_code := p_old_MODIFIER_LIST_rec.list_source_code;
1317     END IF;
1318 
1319     IF l_MODIFIER_LIST_rec.orig_system_header_ref = FND_API.G_MISS_CHAR THEN
1320         l_MODIFIER_LIST_rec.orig_system_header_ref := p_old_MODIFIER_LIST_rec.orig_system_header_ref;
1321     END IF;
1322 
1323     IF l_MODIFIER_LIST_rec.shareable_flag = FND_API.G_MISS_CHAR THEN
1324         l_MODIFIER_LIST_rec.shareable_flag := p_old_MODIFIER_LIST_rec.shareable_flag;
1325     END IF;
1326 
1327     --added for MOAC
1328     IF l_MODIFIER_LIST_rec.org_id = FND_API.G_MISS_NUM THEN
1329         l_MODIFIER_LIST_rec.org_id := p_old_MODIFIER_LIST_rec.org_id;
1330     END IF;
1331 
1332 	oe_debug_pub.add('version QPXUMLHB'||l_MODIFIER_LIST_rec.version_no);
1333 	oe_debug_pub.add('END complete_record in QPXUMLHB');
1334     RETURN l_MODIFIER_LIST_rec;
1335 
1336 END Complete_Record;
1337 
1338 --  Function Convert_Miss_To_Null
1339 
1340 FUNCTION Convert_Miss_To_Null
1341 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
1342 ) RETURN QP_Modifiers_PUB.Modifier_List_Rec_Type
1343 IS
1344 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type := p_MODIFIER_LIST_rec;
1345 BEGIN
1346 
1347 	oe_debug_pub.add('BEGIN convert_miss_to_null in QPXUMLHB');
1348 
1349     IF l_MODIFIER_LIST_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1350         l_MODIFIER_LIST_rec.attribute1 := NULL;
1351     END IF;
1352 
1353     IF l_MODIFIER_LIST_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1354         l_MODIFIER_LIST_rec.attribute10 := NULL;
1355     END IF;
1356 
1357     IF l_MODIFIER_LIST_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1358         l_MODIFIER_LIST_rec.attribute11 := NULL;
1359     END IF;
1360 
1361     IF l_MODIFIER_LIST_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1362         l_MODIFIER_LIST_rec.attribute12 := NULL;
1363     END IF;
1364 
1365     IF l_MODIFIER_LIST_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1366         l_MODIFIER_LIST_rec.attribute13 := NULL;
1367     END IF;
1368 
1369     IF l_MODIFIER_LIST_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1370         l_MODIFIER_LIST_rec.attribute14 := NULL;
1371     END IF;
1372 
1373     IF l_MODIFIER_LIST_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1374         l_MODIFIER_LIST_rec.attribute15 := NULL;
1375     END IF;
1376 
1377     IF l_MODIFIER_LIST_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1378         l_MODIFIER_LIST_rec.attribute2 := NULL;
1379     END IF;
1380 
1381     IF l_MODIFIER_LIST_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1382         l_MODIFIER_LIST_rec.attribute3 := NULL;
1383     END IF;
1384 
1385     IF l_MODIFIER_LIST_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1386         l_MODIFIER_LIST_rec.attribute4 := NULL;
1387     END IF;
1388 
1389     IF l_MODIFIER_LIST_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1390         l_MODIFIER_LIST_rec.attribute5 := NULL;
1391     END IF;
1392 
1393     IF l_MODIFIER_LIST_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1394         l_MODIFIER_LIST_rec.attribute6 := NULL;
1395     END IF;
1396 
1397     IF l_MODIFIER_LIST_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1398         l_MODIFIER_LIST_rec.attribute7 := NULL;
1399     END IF;
1400 
1401     IF l_MODIFIER_LIST_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1402         l_MODIFIER_LIST_rec.attribute8 := NULL;
1403     END IF;
1404 
1405     IF l_MODIFIER_LIST_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1406         l_MODIFIER_LIST_rec.attribute9 := NULL;
1407     END IF;
1408 
1409     IF l_MODIFIER_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1410         l_MODIFIER_LIST_rec.automatic_flag := NULL;
1411     END IF;
1412 
1413     IF l_MODIFIER_LIST_rec.comments = FND_API.G_MISS_CHAR THEN
1414         l_MODIFIER_LIST_rec.comments := NULL;
1415     END IF;
1416 
1417     IF l_MODIFIER_LIST_rec.context = FND_API.G_MISS_CHAR THEN
1418         l_MODIFIER_LIST_rec.context := NULL;
1419     END IF;
1420 
1421     IF l_MODIFIER_LIST_rec.created_by = FND_API.G_MISS_NUM THEN
1422         l_MODIFIER_LIST_rec.created_by := NULL;
1423     END IF;
1424 
1425     IF l_MODIFIER_LIST_rec.creation_date = FND_API.G_MISS_DATE THEN
1426         l_MODIFIER_LIST_rec.creation_date := NULL;
1427     END IF;
1428 
1429     IF l_MODIFIER_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
1430         l_MODIFIER_LIST_rec.currency_code := NULL;
1431     END IF;
1432 
1433     IF l_MODIFIER_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR THEN
1434         l_MODIFIER_LIST_rec.discount_lines_flag := NULL;
1435     END IF;
1436 
1437     IF l_MODIFIER_LIST_rec.end_date_active = FND_API.G_MISS_DATE THEN
1438         l_MODIFIER_LIST_rec.end_date_active := NULL;
1439     END IF;
1440 
1441     IF l_MODIFIER_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
1442         l_MODIFIER_LIST_rec.freight_terms_code := NULL;
1443     END IF;
1444 
1445     IF l_MODIFIER_LIST_rec.gsa_indicator = FND_API.G_MISS_CHAR THEN
1446         l_MODIFIER_LIST_rec.gsa_indicator := NULL;
1447     END IF;
1448 
1449     IF l_MODIFIER_LIST_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1450         l_MODIFIER_LIST_rec.last_updated_by := NULL;
1451     END IF;
1452 
1453     IF l_MODIFIER_LIST_rec.last_update_date = FND_API.G_MISS_DATE THEN
1454         l_MODIFIER_LIST_rec.last_update_date := NULL;
1455     END IF;
1456 
1457     IF l_MODIFIER_LIST_rec.last_update_login = FND_API.G_MISS_NUM THEN
1458         l_MODIFIER_LIST_rec.last_update_login := NULL;
1459     END IF;
1460 
1461     IF l_MODIFIER_LIST_rec.list_header_id = FND_API.G_MISS_NUM THEN
1462         l_MODIFIER_LIST_rec.list_header_id := NULL;
1463     END IF;
1464 
1465     IF l_MODIFIER_LIST_rec.list_type_code = FND_API.G_MISS_CHAR THEN
1466         l_MODIFIER_LIST_rec.list_type_code := NULL;
1467     END IF;
1468 
1469     IF l_MODIFIER_LIST_rec.program_application_id = FND_API.G_MISS_NUM THEN
1470         l_MODIFIER_LIST_rec.program_application_id := NULL;
1471     END IF;
1472 
1473     IF l_MODIFIER_LIST_rec.program_id = FND_API.G_MISS_NUM THEN
1474         l_MODIFIER_LIST_rec.program_id := NULL;
1475     END IF;
1476 
1477     IF l_MODIFIER_LIST_rec.program_update_date = FND_API.G_MISS_DATE THEN
1478         l_MODIFIER_LIST_rec.program_update_date := NULL;
1479     END IF;
1480 
1481     IF l_MODIFIER_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR THEN
1482         l_MODIFIER_LIST_rec.prorate_flag := NULL;
1483     END IF;
1484 
1485     IF l_MODIFIER_LIST_rec.request_id = FND_API.G_MISS_NUM THEN
1486         l_MODIFIER_LIST_rec.request_id := NULL;
1487     END IF;
1488 
1489     IF l_MODIFIER_LIST_rec.rounding_factor = FND_API.G_MISS_NUM THEN
1490         l_MODIFIER_LIST_rec.rounding_factor := NULL;
1491     END IF;
1492 
1493     IF l_MODIFIER_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
1494         l_MODIFIER_LIST_rec.ship_method_code := NULL;
1495     END IF;
1496 
1497     IF l_MODIFIER_LIST_rec.start_date_active = FND_API.G_MISS_DATE THEN
1498         l_MODIFIER_LIST_rec.start_date_active := NULL;
1499     END IF;
1500 
1501     IF l_MODIFIER_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
1502         l_MODIFIER_LIST_rec.terms_id := NULL;
1503     END IF;
1504 
1505     IF l_MODIFIER_LIST_rec.source_system_code = FND_API.G_MISS_CHAR THEN
1506         l_MODIFIER_LIST_rec.source_system_code := NULL;
1507     END IF;
1508 
1509     IF l_MODIFIER_LIST_rec.pte_code = FND_API.G_MISS_CHAR THEN
1510         l_MODIFIER_LIST_rec.pte_code := NULL;
1511     END IF;
1512 
1513     IF l_MODIFIER_LIST_rec.active_flag = FND_API.G_MISS_CHAR THEN
1514         l_MODIFIER_LIST_rec.active_flag := NULL;
1515     END IF;
1516 
1517     IF l_MODIFIER_LIST_rec.parent_list_header_id = FND_API.G_MISS_NUM THEN
1518         l_MODIFIER_LIST_rec.parent_list_header_id := NULL;
1519     END IF;
1520 
1521     IF l_MODIFIER_LIST_rec.start_date_active_first = FND_API.G_MISS_DATE THEN
1522         l_MODIFIER_LIST_rec.start_date_active_first := NULL;
1523     END IF;
1524 
1525     IF l_MODIFIER_LIST_rec.end_date_active_first = FND_API.G_MISS_DATE THEN
1526         l_MODIFIER_LIST_rec.end_date_active_first := NULL;
1527     END IF;
1528 
1529     IF l_MODIFIER_LIST_rec.active_date_first_type = FND_API.G_MISS_CHAR THEN
1530         l_MODIFIER_LIST_rec.active_date_first_type :=  NULL;
1531     END IF;
1532 
1533     IF l_MODIFIER_LIST_rec.start_date_active_second = FND_API.G_MISS_DATE THEN
1534         l_MODIFIER_LIST_rec.start_date_active_second := NULL;
1535     END IF;
1536 
1537     IF l_MODIFIER_LIST_rec.global_flag = FND_API.G_MISS_CHAR THEN
1538         l_MODIFIER_LIST_rec.global_flag := NULL;
1539     END IF;
1540 
1541 
1542     IF l_MODIFIER_LIST_rec.end_date_active_second = FND_API.G_MISS_DATE THEN
1543         l_MODIFIER_LIST_rec.end_date_active_second := NULL;
1544     END IF;
1545 
1546     IF l_MODIFIER_LIST_rec.active_date_second_type = FND_API.G_MISS_CHAR THEN
1547         l_MODIFIER_LIST_rec.active_date_second_type := NULL;
1548     END IF;
1549 
1550     IF l_MODIFIER_LIST_rec.ask_for_flag = FND_API.G_MISS_CHAR THEN
1551         l_MODIFIER_LIST_rec.ask_for_flag := NULL;
1552     END IF;
1553 
1554     IF l_MODIFIER_LIST_rec.name = FND_API.G_MISS_CHAR THEN
1555         l_MODIFIER_LIST_rec.name := NULL;
1556     END IF;
1557 
1558     IF l_MODIFIER_LIST_rec.description = FND_API.G_MISS_CHAR THEN
1559         l_MODIFIER_LIST_rec.description := NULL;
1560     END IF;
1561 
1562 	oe_debug_pub.add('END convert_miss_to_null in QPXUMLHB');
1563 
1564     RETURN l_MODIFIER_LIST_rec;
1565 
1566 END Convert_Miss_To_Null;
1567 
1568 --  Procedure Update_Row
1569 
1570 PROCEDURE Update_Row
1571 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
1572 )
1573 IS
1574 l_active_date_first_type   VARCHAR2(30);
1575 l_start_date_active_first  DATE;
1576 l_end_date_active_first    DATE;
1577 l_active_date_second_type  VARCHAR2(30);
1578 l_start_date_active_second DATE;
1579 l_end_date_active_second   DATE;
1580 BEGIN
1581 
1582 	oe_debug_pub.add('BEGIN update_row in QPXUMLHB');
1583 
1584     -- MKARYA - Correct the first and second active dates value, for bug 1744890
1585     l_active_date_first_type := p_MODIFIER_LIST_rec.active_date_first_type;
1586     l_start_date_active_first := p_MODIFIER_LIST_rec.start_date_active_first;
1587     l_end_date_active_first := p_MODIFIER_LIST_rec.end_date_active_first;
1588     l_active_date_second_type := p_MODIFIER_LIST_rec.active_date_second_type;
1589     l_start_date_active_second := p_MODIFIER_LIST_rec.start_date_active_second;
1590     l_end_date_active_second := p_MODIFIER_LIST_rec.end_date_active_second;
1591 
1592     IF (l_active_date_first_type = 'SHIP'
1593         OR l_active_date_second_type = 'ORD') THEN
1594            QP_UTIL.CORRECT_ACTIVE_DATES(l_active_date_first_type
1595                                        ,l_start_date_active_first
1596                                        ,l_end_date_active_first
1597                                        ,l_active_date_second_type
1598                                        ,l_start_date_active_second
1599                                        ,l_end_date_active_second
1600                                        );
1601     END IF;
1602 
1603     if QP_security.check_function( p_function_name => QP_Security.G_FUNCTION_UPDATE,
1604                                    p_instance_type => QP_Security.G_MODIFIER_OBJECT,
1605                                    p_instance_pk1 => p_MODIFIER_LIST_rec.list_header_id) <> 'F' then
1606 
1607     --for moac changes QP_LIST_HEADERS_B to all_b to enable updates to ML with orig_org_id
1608     --that do not belong to the responsibility when the user has update privilges
1609     UPDATE  QP_LIST_HEADERS_ALL_B
1610     SET     ATTRIBUTE1                     = p_MODIFIER_LIST_rec.attribute1
1611     ,       ATTRIBUTE10                    = p_MODIFIER_LIST_rec.attribute10
1612     ,       ATTRIBUTE11                    = p_MODIFIER_LIST_rec.attribute11
1613     ,       ATTRIBUTE12                    = p_MODIFIER_LIST_rec.attribute12
1614     ,       ATTRIBUTE13                    = p_MODIFIER_LIST_rec.attribute13
1615     ,       ATTRIBUTE14                    = p_MODIFIER_LIST_rec.attribute14
1616     ,       ATTRIBUTE15                    = p_MODIFIER_LIST_rec.attribute15
1617     ,       ATTRIBUTE2                     = p_MODIFIER_LIST_rec.attribute2
1618     ,       ATTRIBUTE3                     = p_MODIFIER_LIST_rec.attribute3
1619     ,       ATTRIBUTE4                     = p_MODIFIER_LIST_rec.attribute4
1620     ,       ATTRIBUTE5                     = p_MODIFIER_LIST_rec.attribute5
1621     ,       ATTRIBUTE6                     = p_MODIFIER_LIST_rec.attribute6
1622     ,       ATTRIBUTE7                     = p_MODIFIER_LIST_rec.attribute7
1623     ,       ATTRIBUTE8                     = p_MODIFIER_LIST_rec.attribute8
1624     ,       ATTRIBUTE9                     = p_MODIFIER_LIST_rec.attribute9
1625     ,       AUTOMATIC_FLAG                 = p_MODIFIER_LIST_rec.automatic_flag
1626     ,       COMMENTS                       = p_MODIFIER_LIST_rec.comments
1627     ,       CONTEXT                        = p_MODIFIER_LIST_rec.context
1628     ,       CREATED_BY                     = p_MODIFIER_LIST_rec.created_by
1629     ,       CREATION_DATE                  = p_MODIFIER_LIST_rec.creation_date
1630     ,       CURRENCY_CODE                  = p_MODIFIER_LIST_rec.currency_code
1631     ,       DISCOUNT_LINES_FLAG            = p_MODIFIER_LIST_rec.discount_lines_flag
1632     ,       END_DATE_ACTIVE                = TRUNC(p_MODIFIER_LIST_rec.end_date_active)
1633     ,       FREIGHT_TERMS_CODE             = p_MODIFIER_LIST_rec.freight_terms_code
1634     ,       GSA_INDICATOR                  = p_MODIFIER_LIST_rec.gsa_indicator
1635     ,       LAST_UPDATED_BY                = p_MODIFIER_LIST_rec.last_updated_by
1636     ,       LAST_UPDATE_DATE               = p_MODIFIER_LIST_rec.last_update_date
1637     ,       LAST_UPDATE_LOGIN              = p_MODIFIER_LIST_rec.last_update_login
1638     ,       LIST_HEADER_ID                 = p_MODIFIER_LIST_rec.list_header_id
1639     ,       LIST_TYPE_CODE                 = p_MODIFIER_LIST_rec.list_type_code
1640     ,       PROGRAM_APPLICATION_ID         = p_MODIFIER_LIST_rec.program_application_id
1641     ,       PROGRAM_ID                     = p_MODIFIER_LIST_rec.program_id
1642     ,       PROGRAM_UPDATE_DATE            = p_MODIFIER_LIST_rec.program_update_date
1643     ,       PRORATE_FLAG                   = p_MODIFIER_LIST_rec.prorate_flag
1644     ,       REQUEST_ID                     = p_MODIFIER_LIST_rec.request_id
1645     ,       ROUNDING_FACTOR                = p_MODIFIER_LIST_rec.rounding_factor
1646     ,       SHIP_METHOD_CODE               = p_MODIFIER_LIST_rec.ship_method_code
1647     ,       START_DATE_ACTIVE              = TRUNC(p_MODIFIER_LIST_rec.start_date_active)
1648     ,       TERMS_ID                       = p_MODIFIER_LIST_rec.terms_id
1649     ,       SOURCE_SYSTEM_CODE             = p_MODIFIER_LIST_rec.source_system_code
1650     ,       PTE_CODE                       = p_MODIFIER_LIST_rec.pte_code
1651     ,       ACTIVE_FLAG                    = p_MODIFIER_LIST_rec.active_flag
1652     ,       PARENT_LIST_HEADER_ID          = p_MODIFIER_LIST_rec.parent_list_header_id
1653     ,       START_DATE_ACTIVE_FIRST        = TRUNC(l_start_date_active_first)
1654     ,       END_DATE_ACTIVE_FIRST          = TRUNC(l_end_date_active_first)
1655     ,       ACTIVE_DATE_FIRST_TYPE         = l_active_date_first_type
1656     ,       START_DATE_ACTIVE_SECOND       = TRUNC(l_start_date_active_second)
1657     ,       GLOBAL_FLAG                    = p_MODIFIER_LIST_rec.global_flag
1658     ,       END_DATE_ACTIVE_SECOND         = TRUNC(l_end_date_active_second)
1659     ,       ACTIVE_DATE_SECOND_TYPE        = l_active_date_second_type
1660     ,       ASK_FOR_FLAG                   = p_MODIFIER_LIST_rec.ask_for_flag
1661     ,       LIST_SOURCE_CODE               = p_MODIFIER_LIST_rec.list_source_code
1662     ,       ORIG_SYSTEM_HEADER_REF         = p_MODIFIER_LIST_rec.orig_system_header_ref
1663     ,       SHAREABLE_FLAG                 = p_MODIFIER_LIST_rec.shareable_flag
1664     ,       ORIG_ORG_ID                    = p_MODIFIER_LIST_rec.org_id
1665     WHERE   LIST_HEADER_ID = p_MODIFIER_LIST_rec.list_header_id
1666     ;
1667 
1668     Begin
1669 
1670        update QP_LIST_HEADERS_TL set
1671          NAME                   = p_MODIFIER_LIST_rec.NAME
1672        , DESCRIPTION            = p_MODIFIER_LIST_rec.DESCRIPTION
1673        , VERSION_NO             = p_MODIFIER_LIST_rec.VERSION_NO
1674        , LAST_UPDATE_DATE       = p_MODIFIER_LIST_rec.LAST_UPDATE_DATE
1675        , LAST_UPDATED_BY        = p_MODIFIER_LIST_rec.LAST_UPDATED_BY
1676        , LAST_UPDATE_LOGIN      = p_MODIFIER_LIST_rec.LAST_UPDATE_LOGIN
1677        , SOURCE_LANG            = userenv('LANG')
1678        where LIST_HEADER_ID     = p_MODIFIER_LIST_rec.LIST_HEADER_ID
1679        and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
1680 
1681        Exception
1682          WHEN DUP_VAL_ON_INDEX THEN
1683 
1684          FND_MESSAGE.SET_NAME('QP','QP_DUPLICATE_MODIFIER');
1685          OE_MSG_PUB.Add;
1686          RAISE FND_API.G_EXC_ERROR;
1687 
1688            WHEN OTHERS THEN
1689 
1690                IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1691                THEN
1692                    OE_MSG_PUB.Add_Exc_Msg
1693                    (   G_PKG_NAME
1694                    ,      'Update_Row'
1695                    );
1696                END IF;
1697 
1698                RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1699 
1700        End;
1701      end if;
1702 
1703 EXCEPTION
1704 
1705     WHEN FND_API.G_EXC_ERROR THEN
1706     RAISE;
1707 
1708     WHEN OTHERS THEN
1709 
1710         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1711         THEN
1712             OE_MSG_PUB.Add_Exc_Msg
1713             (   G_PKG_NAME
1714             ,   'Update_Row'
1715             );
1716         END IF;
1717 
1718         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1719 
1720 END Update_Row;
1721 
1722 --  Procedure Insert_Row
1723 
1724 PROCEDURE Insert_Row
1725 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
1726 )
1727 IS
1728 l_return_status   VARCHAR2(30);
1729 l_active_date_first_type   VARCHAR2(30);
1730 l_start_date_active_first  DATE;
1731 l_end_date_active_first    DATE;
1732 l_active_date_second_type  VARCHAR2(30);
1733 l_start_date_active_second DATE;
1734 l_end_date_active_second   DATE;
1735 x_result                   VARCHAR2(1);
1736 
1737 BEGIN
1738 
1739 Begin
1740 
1741 insert into QP_LIST_HEADERS_TL
1742 ( LIST_HEADER_ID
1743 , NAME
1744 , DESCRIPTION
1745 , VERSION_NO
1746 , CREATION_DATE
1747 , CREATED_BY
1748 , LAST_UPDATE_DATE
1749 , LAST_UPDATED_BY
1750 , LAST_UPDATE_LOGIN
1751 , LANGUAGE
1752 , SOURCE_LANG
1753 ) select
1754   p_MODIFIER_LIST_rec.LIST_HEADER_ID
1755 , p_MODIFIER_LIST_rec.NAME
1756 , p_MODIFIER_LIST_rec.DESCRIPTION
1757 , p_MODIFIER_LIST_rec.VERSION_NO
1758 , p_MODIFIER_LIST_rec.CREATION_DATE
1759 , p_MODIFIER_LIST_rec.CREATED_BY
1760 , p_MODIFIER_LIST_rec.LAST_UPDATE_DATE
1761 , p_MODIFIER_LIST_rec.LAST_UPDATED_BY
1762 , p_MODIFIER_LIST_rec.LAST_UPDATE_LOGIN
1763 , L.LANGUAGE_CODE
1764 , userenv('LANG')
1765 from FND_LANGUAGES L
1766 where L.INSTALLED_FLAG in ('I','B')
1767 and not exists
1768 (select NULL from QP_LIST_HEADERS_TL T
1769 where T.LIST_HEADER_ID = p_MODIFIER_LIST_rec.LIST_HEADER_ID
1770 and T.LANGUAGE = L.LANGUAGE_CODE);
1771 
1772 Exception
1773   WHEN DUP_VAL_ON_INDEX THEN
1774 
1775   FND_MESSAGE.SET_NAME('QP','QP_DUPLICATE_MODIFIER');
1776   OE_MSG_PUB.Add;
1777   RAISE FND_API.G_EXC_ERROR;
1778 
1779     WHEN OTHERS THEN
1780 
1781         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1782         THEN
1783             OE_MSG_PUB.Add_Exc_Msg
1784             (   G_PKG_NAME
1785             ,   'Insert_Row'
1786             );
1787         END IF;
1788 
1789         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1790 
1791 End;
1792 
1793 	oe_debug_pub.add('BEGIN insert_row in QPXUMLHB');
1794 
1795     -- MKARYA - Correct the first and second active dates value, for bug 1744890
1796     l_active_date_first_type := p_MODIFIER_LIST_rec.active_date_first_type;
1797     l_start_date_active_first := p_MODIFIER_LIST_rec.start_date_active_first;
1798     l_end_date_active_first := p_MODIFIER_LIST_rec.end_date_active_first;
1799     l_active_date_second_type := p_MODIFIER_LIST_rec.active_date_second_type;
1800     l_start_date_active_second := p_MODIFIER_LIST_rec.start_date_active_second;
1801     l_end_date_active_second := p_MODIFIER_LIST_rec.end_date_active_second;
1802 
1803     IF (l_active_date_first_type = 'SHIP'
1804         OR l_active_date_second_type = 'ORD') THEN
1805            QP_UTIL.CORRECT_ACTIVE_DATES(l_active_date_first_type
1806                                        ,l_start_date_active_first
1807                                        ,l_end_date_active_first
1808                                        ,l_active_date_second_type
1809                                        ,l_start_date_active_second
1810                                        ,l_end_date_active_second
1811                                        );
1812     END IF;
1813 
1814     INSERT  INTO QP_LIST_HEADERS_B
1815     (       ATTRIBUTE1
1816     ,       ATTRIBUTE10
1817     ,       ATTRIBUTE11
1818     ,       ATTRIBUTE12
1819     ,       ATTRIBUTE13
1820     ,       ATTRIBUTE14
1821     ,       ATTRIBUTE15
1822     ,       ATTRIBUTE2
1823     ,       ATTRIBUTE3
1824     ,       ATTRIBUTE4
1825     ,       ATTRIBUTE5
1826     ,       ATTRIBUTE6
1827     ,       ATTRIBUTE7
1828     ,       ATTRIBUTE8
1829     ,       ATTRIBUTE9
1830     ,       AUTOMATIC_FLAG
1831     ,       COMMENTS
1832     ,       CONTEXT
1833     ,       CREATED_BY
1834     ,       CREATION_DATE
1835     ,       CURRENCY_CODE
1836     ,       DISCOUNT_LINES_FLAG
1837     ,       END_DATE_ACTIVE
1838     ,       FREIGHT_TERMS_CODE
1839     ,       GSA_INDICATOR
1840     ,       LAST_UPDATED_BY
1841     ,       LAST_UPDATE_DATE
1842     ,       LAST_UPDATE_LOGIN
1843     ,       LIST_HEADER_ID
1844     ,       LIST_TYPE_CODE
1845     ,       PROGRAM_APPLICATION_ID
1846     ,       PROGRAM_ID
1847     ,       PROGRAM_UPDATE_DATE
1848     ,       PRORATE_FLAG
1849     ,       REQUEST_ID
1850     ,       ROUNDING_FACTOR
1851     ,       SHIP_METHOD_CODE
1852     ,       START_DATE_ACTIVE
1853     ,       TERMS_ID
1854     ,       SOURCE_SYSTEM_CODE
1855     ,       PTE_CODE
1856     ,       ACTIVE_FLAG
1857     ,       PARENT_LIST_HEADER_ID
1858     ,       START_DATE_ACTIVE_FIRST
1859     ,       END_DATE_ACTIVE_FIRST
1860     ,       ACTIVE_DATE_FIRST_TYPE
1861     ,       START_DATE_ACTIVE_SECOND
1862     ,       GLOBAL_FLAG
1863     ,       END_DATE_ACTIVE_SECOND
1864     ,       ACTIVE_DATE_SECOND_TYPE
1865     , 	    ASK_FOR_FLAG
1866     , 	    orig_org_id
1867     ,       LIST_SOURCE_CODE
1868     ,       ORIG_SYSTEM_HEADER_REF
1869     ,       SHAREABLE_FLAG
1870     )
1871     VALUES
1872     (       p_MODIFIER_LIST_rec.attribute1
1873     ,       p_MODIFIER_LIST_rec.attribute10
1874     ,       p_MODIFIER_LIST_rec.attribute11
1875     ,       p_MODIFIER_LIST_rec.attribute12
1876     ,       p_MODIFIER_LIST_rec.attribute13
1877     ,       p_MODIFIER_LIST_rec.attribute14
1878     ,       p_MODIFIER_LIST_rec.attribute15
1879     ,       p_MODIFIER_LIST_rec.attribute2
1880     ,       p_MODIFIER_LIST_rec.attribute3
1881     ,       p_MODIFIER_LIST_rec.attribute4
1882     ,       p_MODIFIER_LIST_rec.attribute5
1883     ,       p_MODIFIER_LIST_rec.attribute6
1884     ,       p_MODIFIER_LIST_rec.attribute7
1885     ,       p_MODIFIER_LIST_rec.attribute8
1886     ,       p_MODIFIER_LIST_rec.attribute9
1887     ,       p_MODIFIER_LIST_rec.automatic_flag
1888     ,       p_MODIFIER_LIST_rec.comments
1889     ,       p_MODIFIER_LIST_rec.context
1890     ,       p_MODIFIER_LIST_rec.created_by
1891     ,       p_MODIFIER_LIST_rec.creation_date
1892     ,       p_MODIFIER_LIST_rec.currency_code
1893     ,       p_MODIFIER_LIST_rec.discount_lines_flag
1894     ,       TRUNC(p_MODIFIER_LIST_rec.end_date_active)
1895     ,       p_MODIFIER_LIST_rec.freight_terms_code
1896     ,       p_MODIFIER_LIST_rec.gsa_indicator
1897     ,       p_MODIFIER_LIST_rec.last_updated_by
1898     ,       p_MODIFIER_LIST_rec.last_update_date
1899     ,       p_MODIFIER_LIST_rec.last_update_login
1900     ,       p_MODIFIER_LIST_rec.list_header_id
1901     ,       p_MODIFIER_LIST_rec.list_type_code
1902     ,       p_MODIFIER_LIST_rec.program_application_id
1903     ,       p_MODIFIER_LIST_rec.program_id
1904     ,       p_MODIFIER_LIST_rec.program_update_date
1905     ,       p_MODIFIER_LIST_rec.prorate_flag
1906     ,       p_MODIFIER_LIST_rec.request_id
1907     ,       p_MODIFIER_LIST_rec.rounding_factor
1908     ,       p_MODIFIER_LIST_rec.ship_method_code
1909     ,       TRUNC(p_MODIFIER_LIST_rec.start_date_active)
1910     ,       p_MODIFIER_LIST_rec.terms_id
1911     ,       p_MODIFIER_LIST_rec.source_system_code
1912     ,       p_MODIFIER_LIST_rec.pte_code
1913     ,       p_MODIFIER_LIST_rec.active_flag
1914     ,       p_MODIFIER_LIST_rec.parent_list_header_id
1915     ,       TRUNC(l_start_date_active_first)
1916     ,       TRUNC(l_end_date_active_first)
1917     ,       l_active_date_first_type
1918     ,       TRUNC(l_start_date_active_second)
1919     ,       p_MODIFIER_LIST_rec.global_flag
1920     ,       TRUNC(l_end_date_active_second)
1921     ,       l_active_date_second_type
1922     ,       p_MODIFIER_LIST_rec.ask_for_flag
1923             --added for MOAC
1924     ,       p_MODIFIER_LIST_rec.org_id
1925     ,       p_MODIFIER_LIST_rec.list_source_code
1926     ,       p_MODIFIER_LIST_rec.orig_system_header_ref
1927     ,       p_MODIFIER_LIST_rec.shareable_flag
1928     );
1929 
1930     QP_Security.create_default_grants( p_instance_type => QP_Security.G_MODIFIER_OBJECT,
1931                                     p_instance_pk1 => p_MODIFIER_LIST_rec.list_header_id,
1932                                     x_return_status => x_result);
1933 
1934 	oe_debug_pub.add('insert QPXUMLHB'||p_MODIFIER_LIST_rec.VERSION_NO||to_char(p_modifier_list_rec.list_header_id));
1935 
1936 
1937 IF p_MODIFIER_LIST_rec.gsa_indicator = 'Y'
1938 THEN
1939 
1940   QP_QP_Form_Modifier_List.Create_GSA_Qual(p_MODIFIER_LIST_rec.LIST_HEADER_ID ,
1941      							 FND_API.G_MISS_NUM,
1942   					--NULL, for bug2420752
1943 							 'GSA',
1944 							 l_return_status );
1945 END IF;
1946 
1947 oe_debug_pub.add('l_ret_sts'||l_return_status);
1948 /*added this code to raise exception if qualifier does not get created-spgopal*/
1949 
1950 	    	IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1951 oe_debug_pub.add('l_ret_sts if'||l_return_status);
1952 			FND_MESSAGE.SET_NAME('QP','QP_PE_QUALIFIERS');
1953 			OE_MSG_PUB.Add;
1954 
1955 			  	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1956 		ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1957 oe_debug_pub.add('l_ret_sts else '||l_return_status);
1958 			FND_MESSAGE.SET_NAME('QP','QP_PE_QUALIFIERS');
1959 			OE_MSG_PUB.Add;
1960 				RAISE FND_API.G_EXC_ERROR;
1961 		END IF;
1962 
1963 
1964 
1965 	oe_debug_pub.add('insert after QPXUMLHB'||p_MODIFIER_LIST_rec.VERSION_NO||to_char(p_modifier_list_rec.list_header_id));
1966 	oe_debug_pub.add('END insert_row in QPXUMLHB');
1967 EXCEPTION
1968 
1969     WHEN FND_API.G_EXC_ERROR THEN
1970 
1971 
1972 		--x_return_status := FND_API.G_RET_STS_ERROR;
1973 
1974 /*
1975 			--  Get message count and data
1976 
1977 			OE_MSG_PUB.Count_And_Get
1978 			(   p_count                       => x_msg_count
1979 			,   p_data                        => x_msg_data
1980 			);
1981 			*/
1982 /* Commented for Bug 2101393
1983         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1984         THEN
1985             OE_MSG_PUB.Add_Exc_Msg
1986             (   G_PKG_NAME
1987             ,   'Insert_Row'
1988             );
1989         END IF;
1990 
1991         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1992 */
1993          RAISE;     -- Bug 2101393
1994 
1995 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1996 
1997 
1998 		--x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1999 
2000 /*
2001 			--  Get message count and data
2002 
2003 			OE_MSG_PUB.Count_And_Get
2004 			(   p_count                       => x_msg_count
2005 			,   p_data                        => x_msg_data
2006 			);
2007 			*/
2008 
2009         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2010         THEN
2011             OE_MSG_PUB.Add_Exc_Msg
2012             (   G_PKG_NAME
2013             ,   'Insert_Row'
2014             );
2015         END IF;
2016 
2017         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2018 
2019 
2020     WHEN OTHERS THEN
2021 
2022         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2023         THEN
2024             OE_MSG_PUB.Add_Exc_Msg
2025             (   G_PKG_NAME
2026             ,   'Insert_Row'
2027             );
2028         END IF;
2029 
2030         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2031 
2032 END Insert_Row;
2033 
2034 --  Procedure Delete_Row
2035 
2036 PROCEDURE Delete_Row
2037 (   p_list_header_id                IN  NUMBER
2038 )
2039 IS
2040 CURSOR C1(a_list_header_id NUMBER)
2041 IS
2042   SELECT list_line_id
2043   FROM   qp_list_lines
2044   WHERE  list_header_id = a_list_header_id;
2045 
2046 BEGIN
2047 
2048 	oe_debug_pub.add('BEGIN delete_row in QPXUMLHB');
2049 
2050   FOR list_lines in C1(p_list_header_id)
2051   LOOP
2052 
2053     DELETE FROM QP_PRICING_ATTRIBUTES
2054     WHERE LIST_LINE_ID = list_lines.list_line_id;
2055 
2056     DELETE FROM QP_RLTD_MODIFIERS
2057     WHERE FROM_RLTD_MODIFIER_ID = list_lines.list_line_id;
2058 
2059   END LOOP;
2060 
2061     DELETE FROM QP_LIST_LINES
2062     WHERE LIST_HEADER_ID = p_list_header_id;
2063 
2064     DELETE FROM QP_QUALIFIERS
2065     WHERE LIST_HEADER_ID = p_list_header_id;
2066 
2067     DELETE FROM QP_LIST_HEADERS_TL
2068     WHERE LIST_HEADER_ID = p_list_header_id;
2069 
2070     DELETE  FROM QP_LIST_HEADERS_B
2071     WHERE   LIST_HEADER_ID = p_list_header_id ;
2072 
2073 	oe_debug_pub.add('END delete_row in QPXUMLHB');
2074 EXCEPTION
2075 
2076     WHEN OTHERS THEN
2077 
2078         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2079         THEN
2080             OE_MSG_PUB.Add_Exc_Msg
2081             (   G_PKG_NAME
2082             ,   'Delete_Row'
2083             );
2084         END IF;
2085 
2086         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2087 
2088 END Delete_Row;
2089 
2090 --  Function Query_Row
2091 
2092 FUNCTION Query_Row
2093 (   p_list_header_id                IN  NUMBER
2094 ) RETURN QP_Modifiers_PUB.Modifier_List_Rec_Type
2095 IS
2096 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
2097 BEGIN
2098 
2099 	oe_debug_pub.add('BEGIN query_row in QPXUMLHB');
2100 
2101     SELECT  ATTRIBUTE1
2102     ,       ATTRIBUTE10
2103     ,       ATTRIBUTE11
2104     ,       ATTRIBUTE12
2105     ,       ATTRIBUTE13
2106     ,       ATTRIBUTE14
2107     ,       ATTRIBUTE15
2108     ,       ATTRIBUTE2
2109     ,       ATTRIBUTE3
2110     ,       ATTRIBUTE4
2111     ,       ATTRIBUTE5
2112     ,       ATTRIBUTE6
2113     ,       ATTRIBUTE7
2114     ,       ATTRIBUTE8
2115     ,       ATTRIBUTE9
2116     ,       AUTOMATIC_FLAG
2117     ,       COMMENTS
2118     ,       CONTEXT
2119     ,       CREATED_BY
2120     ,       CREATION_DATE
2121     ,       CURRENCY_CODE
2122     ,       DISCOUNT_LINES_FLAG
2123     ,       END_DATE_ACTIVE
2124     ,       FREIGHT_TERMS_CODE
2125     ,       GSA_INDICATOR
2126     ,       LAST_UPDATED_BY
2127     ,       LAST_UPDATE_DATE
2128     ,       LAST_UPDATE_LOGIN
2129     ,       LIST_HEADER_ID
2130     ,       LIST_TYPE_CODE
2131     ,       PROGRAM_APPLICATION_ID
2132     ,       PROGRAM_ID
2133     ,       PROGRAM_UPDATE_DATE
2134     ,       PRORATE_FLAG
2135     ,       REQUEST_ID
2136     ,       ROUNDING_FACTOR
2137     ,       SHIP_METHOD_CODE
2138     ,       START_DATE_ACTIVE
2139     ,       TERMS_ID
2140     ,       SOURCE_SYSTEM_CODE
2141     ,       PTE_CODE
2142     ,       ACTIVE_FLAG
2143     ,       PARENT_LIST_HEADER_ID
2144     ,       START_DATE_ACTIVE_FIRST
2145     ,       END_DATE_ACTIVE_FIRST
2146     ,       ACTIVE_DATE_FIRST_TYPE
2147     ,       START_DATE_ACTIVE_SECOND
2148     ,       GLOBAL_FLAG
2149     ,       END_DATE_ACTIVE_SECOND
2150     ,       ACTIVE_DATE_SECOND_TYPE
2151     ,       ASK_FOR_FLAG
2152     ,       LIST_SOURCE_CODE
2153     ,       ORIG_SYSTEM_HEADER_REF
2154     ,       SHAREABLE_FLAG
2155             --added for MOAC
2156     ,       orig_org_id
2157     INTO    l_MODIFIER_LIST_rec.attribute1
2158     ,       l_MODIFIER_LIST_rec.attribute10
2159     ,       l_MODIFIER_LIST_rec.attribute11
2160     ,       l_MODIFIER_LIST_rec.attribute12
2161     ,       l_MODIFIER_LIST_rec.attribute13
2162     ,       l_MODIFIER_LIST_rec.attribute14
2163     ,       l_MODIFIER_LIST_rec.attribute15
2164     ,       l_MODIFIER_LIST_rec.attribute2
2165     ,       l_MODIFIER_LIST_rec.attribute3
2166     ,       l_MODIFIER_LIST_rec.attribute4
2167     ,       l_MODIFIER_LIST_rec.attribute5
2168     ,       l_MODIFIER_LIST_rec.attribute6
2169     ,       l_MODIFIER_LIST_rec.attribute7
2170     ,       l_MODIFIER_LIST_rec.attribute8
2171     ,       l_MODIFIER_LIST_rec.attribute9
2172     ,       l_MODIFIER_LIST_rec.automatic_flag
2173     ,       l_MODIFIER_LIST_rec.comments
2174     ,       l_MODIFIER_LIST_rec.context
2175     ,       l_MODIFIER_LIST_rec.created_by
2176     ,       l_MODIFIER_LIST_rec.creation_date
2177     ,       l_MODIFIER_LIST_rec.currency_code
2178     ,       l_MODIFIER_LIST_rec.discount_lines_flag
2179     ,       l_MODIFIER_LIST_rec.end_date_active
2180     ,       l_MODIFIER_LIST_rec.freight_terms_code
2181     ,       l_MODIFIER_LIST_rec.gsa_indicator
2182     ,       l_MODIFIER_LIST_rec.last_updated_by
2183     ,       l_MODIFIER_LIST_rec.last_update_date
2184     ,       l_MODIFIER_LIST_rec.last_update_login
2185     ,       l_MODIFIER_LIST_rec.list_header_id
2186     ,       l_MODIFIER_LIST_rec.list_type_code
2187     ,       l_MODIFIER_LIST_rec.program_application_id
2188     ,       l_MODIFIER_LIST_rec.program_id
2189     ,       l_MODIFIER_LIST_rec.program_update_date
2190     ,       l_MODIFIER_LIST_rec.prorate_flag
2191     ,       l_MODIFIER_LIST_rec.request_id
2192     ,       l_MODIFIER_LIST_rec.rounding_factor
2193     ,       l_MODIFIER_LIST_rec.ship_method_code
2194     ,       l_MODIFIER_LIST_rec.start_date_active
2195     ,       l_MODIFIER_LIST_rec.terms_id
2196     ,       l_MODIFIER_LIST_rec.source_system_code
2197     ,       l_MODIFIER_LIST_rec.pte_code
2198     ,       l_MODIFIER_LIST_rec.active_flag
2199     ,       l_MODIFIER_LIST_rec.parent_list_header_id
2200     ,       l_MODIFIER_LIST_rec.start_date_active_first
2201     ,       l_MODIFIER_LIST_rec.end_date_active_first
2202     ,       l_MODIFIER_LIST_rec.active_date_first_type
2203     ,       l_MODIFIER_LIST_rec.start_date_active_second
2204     ,       l_MODIFIER_LIST_rec.global_flag
2205     ,       l_MODIFIER_LIST_rec.end_date_active_second
2206     ,       l_MODIFIER_LIST_rec.active_date_second_type
2207     ,       l_MODIFIER_LIST_rec.ask_for_flag
2208     ,       l_MODIFIER_LIST_rec.list_source_code
2209     ,       l_MODIFIER_LIST_rec.orig_system_header_ref
2210     ,       l_MODIFIER_LIST_rec.shareable_flag
2211             --added for MOAC
2212     ,      l_MODIFIER_LIST_rec.org_id
2213     FROM    QP_LIST_HEADERS_B
2214     WHERE   LIST_HEADER_ID = p_list_header_id
2215     ;
2216 
2217     SELECT  NAME
2218     ,       DESCRIPTION
2219     ,       VERSION_NO
2220     INTO    l_MODIFIER_LIST_rec.name
2221     ,       l_MODIFIER_LIST_rec.description
2222     ,       l_MODIFIER_LIST_rec.version_no
2223     FROM    qp_list_headers_tl
2224     WHERE   LIST_HEADER_ID = p_list_header_id
2225     AND     LANGUAGE = userenv('LANG');
2226 
2227 	oe_debug_pub.add('version_no QPXUMLHB'||l_MODIFIER_LIST_rec.version_no);
2228 	oe_debug_pub.add('END query_row in QPXUMLHB');
2229     RETURN l_MODIFIER_LIST_rec;
2230 
2231 EXCEPTION
2232 
2233     WHEN NO_DATA_FOUND THEN
2234     null;
2235 
2236     WHEN OTHERS THEN
2237 
2238         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2239         THEN
2240             OE_MSG_PUB.Add_Exc_Msg
2241             (   G_PKG_NAME
2242             ,   'Query_Row'
2243             );
2244         END IF;
2245 
2246         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2247 
2248 END Query_Row;
2249 
2250 --  Procedure       lock_Row
2251 --
2252 
2253 PROCEDURE Lock_Row
2254 (   x_return_status                 OUT NOCOPY VARCHAR2
2255 ,   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
2256 ,   x_MODIFIER_LIST_rec             OUT NOCOPY QP_Modifiers_PUB.Modifier_List_Rec_Type
2257 )
2258 IS
2259 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
2260 BEGIN
2261 
2262 	oe_debug_pub.add('BEGIN lock_row in QPXUMLHB');
2263 
2264     SELECT  ATTRIBUTE1
2265     ,       ATTRIBUTE10
2266     ,       ATTRIBUTE11
2267     ,       ATTRIBUTE12
2268     ,       ATTRIBUTE13
2269     ,       ATTRIBUTE14
2270     ,       ATTRIBUTE15
2271     ,       ATTRIBUTE2
2272     ,       ATTRIBUTE3
2273     ,       ATTRIBUTE4
2274     ,       ATTRIBUTE5
2275     ,       ATTRIBUTE6
2276     ,       ATTRIBUTE7
2277     ,       ATTRIBUTE8
2278     ,       ATTRIBUTE9
2279     ,       AUTOMATIC_FLAG
2280     ,       COMMENTS
2281     ,       CONTEXT
2282     ,       CREATED_BY
2283     , trunc(CREATION_DATE)
2284     ,       CURRENCY_CODE
2285     ,       DISCOUNT_LINES_FLAG
2286     , trunc(END_DATE_ACTIVE)
2287     ,       FREIGHT_TERMS_CODE
2288     ,       GSA_INDICATOR
2289     ,       LAST_UPDATED_BY
2290     , trunc(LAST_UPDATE_DATE)
2291     ,       LAST_UPDATE_LOGIN
2292     ,       LIST_HEADER_ID
2293     ,       LIST_TYPE_CODE
2294     ,       PROGRAM_APPLICATION_ID
2295     ,       PROGRAM_ID
2296     , trunc(PROGRAM_UPDATE_DATE)
2297     ,       PRORATE_FLAG
2298     ,       REQUEST_ID
2299     ,       ROUNDING_FACTOR
2300     ,       SHIP_METHOD_CODE
2301     , trunc(START_DATE_ACTIVE)
2302     ,       TERMS_ID
2303     ,       SOURCE_SYSTEM_CODE
2304     ,       PTE_CODE
2305     ,       ACTIVE_FLAG
2306     ,       PARENT_LIST_HEADER_ID
2307     , trunc(START_DATE_ACTIVE_FIRST)
2308     , trunc(END_DATE_ACTIVE_FIRST)
2309     ,      (ACTIVE_DATE_FIRST_TYPE)
2310     , trunc(START_DATE_ACTIVE_SECOND)
2311     ,       GLOBAL_FLAG
2312     , trunc(END_DATE_ACTIVE_SECOND)
2313     ,      (ACTIVE_DATE_SECOND_TYPE)
2314     ,       ASK_FOR_FLAG
2315     ,       LIST_SOURCE_CODE
2316     ,       ORIG_SYSTEM_HEADER_REF
2317     ,       SHAREABLE_FLAG
2318     ,       ORIG_ORG_ID
2319     INTO    l_MODIFIER_LIST_rec.attribute1
2320     ,       l_MODIFIER_LIST_rec.attribute10
2321     ,       l_MODIFIER_LIST_rec.attribute11
2322     ,       l_MODIFIER_LIST_rec.attribute12
2323     ,       l_MODIFIER_LIST_rec.attribute13
2324     ,       l_MODIFIER_LIST_rec.attribute14
2325     ,       l_MODIFIER_LIST_rec.attribute15
2326     ,       l_MODIFIER_LIST_rec.attribute2
2327     ,       l_MODIFIER_LIST_rec.attribute3
2328     ,       l_MODIFIER_LIST_rec.attribute4
2329     ,       l_MODIFIER_LIST_rec.attribute5
2330     ,       l_MODIFIER_LIST_rec.attribute6
2331     ,       l_MODIFIER_LIST_rec.attribute7
2332     ,       l_MODIFIER_LIST_rec.attribute8
2333     ,       l_MODIFIER_LIST_rec.attribute9
2334     ,       l_MODIFIER_LIST_rec.automatic_flag
2335     ,       l_MODIFIER_LIST_rec.comments
2336     ,       l_MODIFIER_LIST_rec.context
2337     ,       l_MODIFIER_LIST_rec.created_by
2338     ,       l_MODIFIER_LIST_rec.creation_date
2339     ,       l_MODIFIER_LIST_rec.currency_code
2340     ,       l_MODIFIER_LIST_rec.discount_lines_flag
2341     ,       l_MODIFIER_LIST_rec.end_date_active
2342     ,       l_MODIFIER_LIST_rec.freight_terms_code
2343     ,       l_MODIFIER_LIST_rec.gsa_indicator
2344     ,       l_MODIFIER_LIST_rec.last_updated_by
2345     ,       l_MODIFIER_LIST_rec.last_update_date
2346     ,       l_MODIFIER_LIST_rec.last_update_login
2347     ,       l_MODIFIER_LIST_rec.list_header_id
2348     ,       l_MODIFIER_LIST_rec.list_type_code
2349     ,       l_MODIFIER_LIST_rec.program_application_id
2350     ,       l_MODIFIER_LIST_rec.program_id
2351     ,       l_MODIFIER_LIST_rec.program_update_date
2352     ,       l_MODIFIER_LIST_rec.prorate_flag
2353     ,       l_MODIFIER_LIST_rec.request_id
2354     ,       l_MODIFIER_LIST_rec.rounding_factor
2355     ,       l_MODIFIER_LIST_rec.ship_method_code
2356     ,       l_MODIFIER_LIST_rec.start_date_active
2357     ,       l_MODIFIER_LIST_rec.terms_id
2358     ,       l_MODIFIER_LIST_rec.source_system_code
2359     ,       l_MODIFIER_LIST_rec.pte_code
2360     ,       l_MODIFIER_LIST_rec.active_flag
2361     ,       l_MODIFIER_LIST_rec.parent_list_header_id
2362     ,       l_MODIFIER_LIST_rec.start_date_active_first
2363     ,       l_MODIFIER_LIST_rec.end_date_active_first
2364     ,       l_MODIFIER_LIST_rec.active_date_first_type
2365     ,       l_MODIFIER_LIST_rec.start_date_active_second
2366     ,       l_MODIFIER_LIST_rec.global_flag
2367     ,       l_MODIFIER_LIST_rec.end_date_active_second
2368     ,       l_MODIFIER_LIST_rec.active_date_second_type
2369     ,       l_MODIFIER_LIST_rec.ask_for_flag
2370     ,       l_MODIFIER_LIST_rec.list_source_code
2371     ,       l_MODIFIER_LIST_rec.orig_system_header_ref
2372     ,       l_MODIFIER_LIST_rec.shareable_flag
2373             --added for MOAC
2374     ,       l_MODIFIER_LIST_rec.org_id
2375     --for moac changes QP_LIST_HEADERS_B to all_b to enable locks/updates to ML with orig_org_id
2376     --that do not belong to the responsibility when the user has update privilges
2377     FROM    QP_LIST_HEADERS_ALL_B
2378     WHERE   LIST_HEADER_ID = p_MODIFIER_LIST_rec.list_header_id
2379         FOR UPDATE NOWAIT;
2380 
2381     SELECT  NAME
2382     ,       DESCRIPTION
2383     ,       VERSION_NO
2384     INTO    l_MODIFIER_LIST_rec.name
2385     ,       l_MODIFIER_LIST_rec.description
2386     ,       l_MODIFIER_LIST_rec.version_no
2387     FROM    qp_list_headers_tl
2388     WHERE   LIST_HEADER_ID = p_MODIFIER_LIST_rec.list_header_id
2389     AND     LANGUAGE = userenv('LANG');
2390 
2391     --  Row locked. Compare IN attributes to DB attributes.
2392 
2393     IF  QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute1,
2394                          l_MODIFIER_LIST_rec.attribute1)
2395     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute10,
2396                          l_MODIFIER_LIST_rec.attribute10)
2397     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute11,
2398                          l_MODIFIER_LIST_rec.attribute11)
2399     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute12,
2400                          l_MODIFIER_LIST_rec.attribute12)
2401     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute13,
2402                          l_MODIFIER_LIST_rec.attribute13)
2403     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute14,
2404                          l_MODIFIER_LIST_rec.attribute14)
2405     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute15,
2406                          l_MODIFIER_LIST_rec.attribute15)
2407     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute2,
2408                          l_MODIFIER_LIST_rec.attribute2)
2409     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute3,
2410                          l_MODIFIER_LIST_rec.attribute3)
2411     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute4,
2412                          l_MODIFIER_LIST_rec.attribute4)
2413     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute5,
2414                          l_MODIFIER_LIST_rec.attribute5)
2415     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute6,
2416                          l_MODIFIER_LIST_rec.attribute6)
2417     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute7,
2418                          l_MODIFIER_LIST_rec.attribute7)
2419     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute8,
2420                          l_MODIFIER_LIST_rec.attribute8)
2421     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.attribute9,
2422                          l_MODIFIER_LIST_rec.attribute9)
2423     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.automatic_flag,
2424                          l_MODIFIER_LIST_rec.automatic_flag)
2425     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.comments,
2426                          l_MODIFIER_LIST_rec.comments)
2427     AND  QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.context,
2428                          l_MODIFIER_LIST_rec.context)
2429     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.created_by,
2430                          l_MODIFIER_LIST_rec.created_by)
2431 --    AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.creation_date,
2432 --                         l_MODIFIER_LIST_rec.creation_date)
2433     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.currency_code,
2434                          l_MODIFIER_LIST_rec.currency_code)
2435     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.discount_lines_flag,
2436                          l_MODIFIER_LIST_rec.discount_lines_flag)
2437     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active,
2438                          l_MODIFIER_LIST_rec.end_date_active)
2439     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.freight_terms_code,
2440                          l_MODIFIER_LIST_rec.freight_terms_code)
2441     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.gsa_indicator,
2442                          l_MODIFIER_LIST_rec.gsa_indicator)
2443     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_updated_by,
2444                          l_MODIFIER_LIST_rec.last_updated_by)
2445 --    AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_update_date,
2446 --                         l_MODIFIER_LIST_rec.last_update_date)
2447     AND  QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.last_update_login,
2448                          l_MODIFIER_LIST_rec.last_update_login)
2449     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_header_id,
2450                          l_MODIFIER_LIST_rec.list_header_id)
2451     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_type_code,
2452                          l_MODIFIER_LIST_rec.list_type_code)
2453     --AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_application_id,
2454     --                     l_MODIFIER_LIST_rec.program_application_id)
2455     --AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_id,
2456     --                     l_MODIFIER_LIST_rec.program_id)
2457     --AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.program_update_date,
2458     --                     l_MODIFIER_LIST_rec.program_update_date)
2459     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.prorate_flag,
2460                          l_MODIFIER_LIST_rec.prorate_flag)
2461     --AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.request_id,
2462     --                     l_MODIFIER_LIST_rec.request_id)
2463     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.rounding_factor,
2464                          l_MODIFIER_LIST_rec.rounding_factor)
2465     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.ship_method_code,
2466                          l_MODIFIER_LIST_rec.ship_method_code)
2467     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active,
2468                          l_MODIFIER_LIST_rec.start_date_active)
2469     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.terms_id,
2470                          l_MODIFIER_LIST_rec.terms_id)
2471     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.source_system_code,
2472                          l_MODIFIER_LIST_rec.source_system_code)
2473     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.pte_code,
2474                          l_MODIFIER_LIST_rec.pte_code)
2475     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_flag,
2476                          l_MODIFIER_LIST_rec.active_flag)
2477     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.parent_list_header_id,
2478                          l_MODIFIER_LIST_rec.parent_list_header_id)
2479     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active_first,
2480                          l_MODIFIER_LIST_rec.start_date_active_first)
2481     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active_first,
2482                          l_MODIFIER_LIST_rec.end_date_active_first)
2483     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_date_first_type,
2484                          l_MODIFIER_LIST_rec.active_date_first_type)
2485     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.start_date_active_second,
2486                          l_MODIFIER_LIST_rec.start_date_active_second)
2487     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.global_flag,
2488                          l_MODIFIER_LIST_rec.global_flag)
2489     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.end_date_active_second,
2490                          l_MODIFIER_LIST_rec.end_date_active_second)
2491     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.active_date_second_type,
2492                          l_MODIFIER_LIST_rec.active_date_second_type)
2493     AND QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.ask_for_flag,
2494                          l_MODIFIER_LIST_rec.ask_for_flag)
2495     AND QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.list_source_code,
2496                          l_MODIFIER_LIST_rec.list_source_code)
2497     AND QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.orig_system_header_ref,
2498                          l_MODIFIER_LIST_rec.orig_system_header_ref)
2499     AND QP_GLOBALS.Equal (p_MODIFIER_LIST_rec.shareable_flag,
2500                          l_MODIFIER_LIST_rec.shareable_flag)
2501     THEN
2502 
2503         --  Row has not changed. Set out parameter.
2504 
2505         x_MODIFIER_LIST_rec            := l_MODIFIER_LIST_rec;
2506 
2507         --  Set return status
2508 
2509         x_return_status                := FND_API.G_RET_STS_SUCCESS;
2510         x_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2511 
2512     ELSE
2513 
2514         --  Row has changed by another user.
2515 
2516         x_return_status                := FND_API.G_RET_STS_ERROR;
2517         x_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2518 
2519         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2520         THEN
2521 
2522             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
2523             OE_MSG_PUB.Add;
2524 
2525         END IF;
2526 
2527     END IF;
2528 
2529 	oe_debug_pub.add('END lock_row in QPXUMLHB');
2530 EXCEPTION
2531 
2532     WHEN NO_DATA_FOUND THEN
2533 
2534         x_return_status                := FND_API.G_RET_STS_ERROR;
2535         x_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2536 
2537         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2538         THEN
2539 
2540             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
2541             OE_MSG_PUB.Add;
2542 
2543         END IF;
2544     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2545 
2546         x_return_status                := FND_API.G_RET_STS_ERROR;
2547         x_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2548 
2549         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2550         THEN
2551 
2552             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
2553             OE_MSG_PUB.Add;
2554 
2555         END IF;
2556     WHEN OTHERS THEN
2557 
2558         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2559         x_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2560 
2561         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2562         THEN
2563             OE_MSG_PUB.Add_Exc_Msg
2564             (   G_PKG_NAME
2565             ,   'Lock_Row'
2566             );
2567         END IF;
2568 
2569 END Lock_Row;
2570 
2571 --  Function Get_Values
2572 
2573 FUNCTION Get_Values
2574 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
2575 ,   p_old_MODIFIER_LIST_rec         IN  QP_Modifiers_PUB.Modifier_List_Rec_Type :=
2576                                         QP_Modifiers_PUB.G_MISS_MODIFIER_LIST_REC
2577 ) RETURN QP_Modifiers_PUB.Modifier_List_Val_Rec_Type
2578 IS
2579 l_MODIFIER_LIST_val_rec       QP_Modifiers_PUB.Modifier_List_Val_Rec_Type;
2580 BEGIN
2581 
2582 	oe_debug_pub.add('BEGIN get_values in QPXUMLHB');
2583     IF p_MODIFIER_LIST_rec.automatic_flag IS NOT NULL AND
2584         p_MODIFIER_LIST_rec.automatic_flag <> FND_API.G_MISS_CHAR AND
2585         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.automatic_flag,
2586         p_old_MODIFIER_LIST_rec.automatic_flag)
2587     THEN
2588         l_MODIFIER_LIST_val_rec.automatic := QP_Id_To_Value.Automatic
2589         (   p_automatic_flag              => p_MODIFIER_LIST_rec.automatic_flag
2590         );
2591     END IF;
2592 
2593     IF p_MODIFIER_LIST_rec.currency_code IS NOT NULL AND
2594         p_MODIFIER_LIST_rec.currency_code <> FND_API.G_MISS_CHAR AND
2595         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.currency_code,
2596         p_old_MODIFIER_LIST_rec.currency_code)
2597     THEN
2598         l_MODIFIER_LIST_val_rec.currency := QP_Id_To_Value.Currency
2599         (   p_currency_code               => p_MODIFIER_LIST_rec.currency_code
2600         );
2601     END IF;
2602 
2603     IF p_MODIFIER_LIST_rec.discount_lines_flag IS NOT NULL AND
2604         p_MODIFIER_LIST_rec.discount_lines_flag <> FND_API.G_MISS_CHAR AND
2605         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.discount_lines_flag,
2606         p_old_MODIFIER_LIST_rec.discount_lines_flag)
2607     THEN
2608         l_MODIFIER_LIST_val_rec.discount_lines := QP_Id_To_Value.Discount_Lines
2609         (   p_discount_lines_flag         => p_MODIFIER_LIST_rec.discount_lines_flag
2610         );
2611     END IF;
2612 
2613     IF p_MODIFIER_LIST_rec.freight_terms_code IS NOT NULL AND
2614         p_MODIFIER_LIST_rec.freight_terms_code <> FND_API.G_MISS_CHAR AND
2615         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.freight_terms_code,
2616         p_old_MODIFIER_LIST_rec.freight_terms_code)
2617     THEN
2618         l_MODIFIER_LIST_val_rec.freight_terms := QP_Id_To_Value.Freight_Terms
2619         (   p_freight_terms_code          => p_MODIFIER_LIST_rec.freight_terms_code
2620         );
2621     END IF;
2622 
2623     IF p_MODIFIER_LIST_rec.list_header_id IS NOT NULL AND
2624         p_MODIFIER_LIST_rec.list_header_id <> FND_API.G_MISS_NUM AND
2625         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_header_id,
2626         p_old_MODIFIER_LIST_rec.list_header_id)
2627     THEN
2628         l_MODIFIER_LIST_val_rec.list_header := QP_Id_To_Value.List_Header
2629         (   p_list_header_id              => p_MODIFIER_LIST_rec.list_header_id
2630         );
2631     END IF;
2632 
2633     IF p_MODIFIER_LIST_rec.list_type_code IS NOT NULL AND
2634         p_MODIFIER_LIST_rec.list_type_code <> FND_API.G_MISS_CHAR AND
2635         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.list_type_code,
2636         p_old_MODIFIER_LIST_rec.list_type_code)
2637     THEN
2638         l_MODIFIER_LIST_val_rec.list_type := QP_Id_To_Value.List_Type
2639         (   p_list_type_code              => p_MODIFIER_LIST_rec.list_type_code
2640         );
2641     END IF;
2642 
2643     IF p_MODIFIER_LIST_rec.prorate_flag IS NOT NULL AND
2644         p_MODIFIER_LIST_rec.prorate_flag <> FND_API.G_MISS_CHAR AND
2645         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.prorate_flag,
2646         p_old_MODIFIER_LIST_rec.prorate_flag)
2647     THEN
2648         l_MODIFIER_LIST_val_rec.prorate := QP_Id_To_Value.Prorate
2649         (   p_prorate_flag                => p_MODIFIER_LIST_rec.prorate_flag
2650         );
2651     END IF;
2652 
2653     IF p_MODIFIER_LIST_rec.ship_method_code IS NOT NULL AND
2654         p_MODIFIER_LIST_rec.ship_method_code <> FND_API.G_MISS_CHAR AND
2655         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.ship_method_code,
2656         p_old_MODIFIER_LIST_rec.ship_method_code)
2657     THEN
2658         l_MODIFIER_LIST_val_rec.ship_method := QP_Id_To_Value.Ship_Method
2659         (   p_ship_method_code            => p_MODIFIER_LIST_rec.ship_method_code
2660         );
2661     END IF;
2662 
2663     IF p_MODIFIER_LIST_rec.terms_id IS NOT NULL AND
2664         p_MODIFIER_LIST_rec.terms_id <> FND_API.G_MISS_NUM AND
2665         NOT QP_GLOBALS.Equal(p_MODIFIER_LIST_rec.terms_id,
2666         p_old_MODIFIER_LIST_rec.terms_id)
2667     THEN
2668         l_MODIFIER_LIST_val_rec.terms := QP_Id_To_Value.Terms
2669         (   p_terms_id                    => p_MODIFIER_LIST_rec.terms_id
2670         );
2671     END IF;
2672 
2673     RETURN l_MODIFIER_LIST_val_rec;
2674 
2675 	oe_debug_pub.add('END get_values in QPXUMLHB');
2676 END Get_Values;
2677 
2678 --  Function Get_Ids
2679 
2680 FUNCTION Get_Ids
2681 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
2682 ,   p_MODIFIER_LIST_val_rec         IN  QP_Modifiers_PUB.Modifier_List_Val_Rec_Type
2683 ) RETURN QP_Modifiers_PUB.Modifier_List_Rec_Type
2684 IS
2685 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
2686 BEGIN
2687 
2688 	oe_debug_pub.add('BEGIN get_ids in QPXUMLHB');
2689     --  initialize  return_status.
2690 
2691     l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2692 
2693     --  initialize l_MODIFIER_LIST_rec.
2694 
2695     l_MODIFIER_LIST_rec := p_MODIFIER_LIST_rec;
2696 
2697     IF  p_MODIFIER_LIST_val_rec.automatic <> FND_API.G_MISS_CHAR
2698     THEN
2699 
2700         IF p_MODIFIER_LIST_rec.automatic_flag <> FND_API.G_MISS_CHAR THEN
2701 
2702             l_MODIFIER_LIST_rec.automatic_flag := p_MODIFIER_LIST_rec.automatic_flag;
2703 
2704             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2705             THEN
2706 
2707                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2708                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','automatic');
2709                 OE_MSG_PUB.Add;
2710 
2711             END IF;
2712 
2713         ELSE
2714 
2715             l_MODIFIER_LIST_rec.automatic_flag := QP_Value_To_Id.automatic
2716             (   p_automatic                   => p_MODIFIER_LIST_val_rec.automatic
2717             );
2718 
2719             IF l_MODIFIER_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2720                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2721             END IF;
2722 
2723         END IF;
2724 
2725     END IF;
2726 
2727     IF  p_MODIFIER_LIST_val_rec.currency <> FND_API.G_MISS_CHAR
2728     THEN
2729 
2730         IF p_MODIFIER_LIST_rec.currency_code <> FND_API.G_MISS_CHAR THEN
2731 
2732             l_MODIFIER_LIST_rec.currency_code := p_MODIFIER_LIST_rec.currency_code;
2733 
2734             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2735             THEN
2736 
2737                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2738                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','currency');
2739                 OE_MSG_PUB.Add;
2740 
2741             END IF;
2742 
2743         ELSE
2744 
2745             l_MODIFIER_LIST_rec.currency_code := QP_Value_To_Id.currency
2746             (   p_currency                    => p_MODIFIER_LIST_val_rec.currency
2747             );
2748 
2749             IF l_MODIFIER_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
2750                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2751             END IF;
2752 
2753         END IF;
2754 
2755     END IF;
2756 
2757     IF  p_MODIFIER_LIST_val_rec.discount_lines <> FND_API.G_MISS_CHAR
2758     THEN
2759 
2760         IF p_MODIFIER_LIST_rec.discount_lines_flag <> FND_API.G_MISS_CHAR THEN
2761 
2762             l_MODIFIER_LIST_rec.discount_lines_flag := p_MODIFIER_LIST_rec.discount_lines_flag;
2763 
2764             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2765             THEN
2766 
2767                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2768                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','discount_lines');
2769                 OE_MSG_PUB.Add;
2770 
2771             END IF;
2772 
2773         ELSE
2774 
2775             l_MODIFIER_LIST_rec.discount_lines_flag := QP_Value_To_Id.discount_lines
2776             (   p_discount_lines              => p_MODIFIER_LIST_val_rec.discount_lines
2777             );
2778 
2779             IF l_MODIFIER_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR THEN
2780                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2781             END IF;
2782 
2783         END IF;
2784 
2785     END IF;
2786 
2787     IF  p_MODIFIER_LIST_val_rec.freight_terms <> FND_API.G_MISS_CHAR
2788     THEN
2789 
2790         IF p_MODIFIER_LIST_rec.freight_terms_code <> FND_API.G_MISS_CHAR THEN
2791 
2792             l_MODIFIER_LIST_rec.freight_terms_code := p_MODIFIER_LIST_rec.freight_terms_code;
2793 
2794             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2795             THEN
2796 
2797                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2798                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','freight_terms');
2799                 OE_MSG_PUB.Add;
2800 
2801             END IF;
2802 
2803         ELSE
2804 
2805             l_MODIFIER_LIST_rec.freight_terms_code := QP_Value_To_Id.freight_terms
2806             (   p_freight_terms               => p_MODIFIER_LIST_val_rec.freight_terms
2807             );
2808 
2809             IF l_MODIFIER_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
2810                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2811             END IF;
2812 
2813         END IF;
2814 
2815     END IF;
2816 
2817     IF  p_MODIFIER_LIST_val_rec.list_header <> FND_API.G_MISS_CHAR
2818     THEN
2819 
2820         IF p_MODIFIER_LIST_rec.list_header_id <> FND_API.G_MISS_NUM THEN
2821 
2822             l_MODIFIER_LIST_rec.list_header_id := p_MODIFIER_LIST_rec.list_header_id;
2823 
2824             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2825             THEN
2826 
2827                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2828                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
2829                 OE_MSG_PUB.Add;
2830 
2831             END IF;
2832 
2833         ELSE
2834 
2835             l_MODIFIER_LIST_rec.list_header_id := QP_Value_To_Id.list_header
2836             (   p_list_header                 => p_MODIFIER_LIST_val_rec.list_header
2837             );
2838 
2839             IF l_MODIFIER_LIST_rec.list_header_id = FND_API.G_MISS_NUM THEN
2840                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2841             END IF;
2842 
2843         END IF;
2844 
2845     END IF;
2846 
2847     IF  p_MODIFIER_LIST_val_rec.list_type <> FND_API.G_MISS_CHAR
2848     THEN
2849 
2850         IF p_MODIFIER_LIST_rec.list_type_code <> FND_API.G_MISS_CHAR THEN
2851 
2852             l_MODIFIER_LIST_rec.list_type_code := p_MODIFIER_LIST_rec.list_type_code;
2853 
2854             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2855             THEN
2856 
2857                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2858                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_type');
2859                 OE_MSG_PUB.Add;
2860 
2861             END IF;
2862 
2863         ELSE
2864 
2865             l_MODIFIER_LIST_rec.list_type_code := QP_Value_To_Id.list_type
2866             (   p_list_type                   => p_MODIFIER_LIST_val_rec.list_type
2867             );
2868 
2869             IF l_MODIFIER_LIST_rec.list_type_code = FND_API.G_MISS_CHAR THEN
2870                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2871             END IF;
2872 
2873         END IF;
2874 
2875     END IF;
2876 
2877     IF  p_MODIFIER_LIST_val_rec.prorate <> FND_API.G_MISS_CHAR
2878     THEN
2879 
2880         IF p_MODIFIER_LIST_rec.prorate_flag <> FND_API.G_MISS_CHAR THEN
2881 
2882             l_MODIFIER_LIST_rec.prorate_flag := p_MODIFIER_LIST_rec.prorate_flag;
2883 
2884             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2885             THEN
2886 
2887                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2888                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','prorate');
2889                 OE_MSG_PUB.Add;
2890 
2891             END IF;
2892 
2893         ELSE
2894 
2895             l_MODIFIER_LIST_rec.prorate_flag := QP_Value_To_Id.prorate
2896             (   p_prorate                     => p_MODIFIER_LIST_val_rec.prorate
2897             );
2898 
2899             IF l_MODIFIER_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR THEN
2900                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2901             END IF;
2902 
2903         END IF;
2904 
2905     END IF;
2906 
2907     IF  p_MODIFIER_LIST_val_rec.ship_method <> FND_API.G_MISS_CHAR
2908     THEN
2909 
2910         IF p_MODIFIER_LIST_rec.ship_method_code <> FND_API.G_MISS_CHAR THEN
2911 
2912             l_MODIFIER_LIST_rec.ship_method_code := p_MODIFIER_LIST_rec.ship_method_code;
2913 
2914             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2915             THEN
2916 
2917                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2918                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ship_method');
2919                 OE_MSG_PUB.Add;
2920 
2921             END IF;
2922 
2923         ELSE
2924 
2925             l_MODIFIER_LIST_rec.ship_method_code := QP_Value_To_Id.ship_method
2926             (   p_ship_method                 => p_MODIFIER_LIST_val_rec.ship_method
2927             );
2928 
2929             IF l_MODIFIER_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
2930                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2931             END IF;
2932 
2933         END IF;
2934 
2935     END IF;
2936 
2937     IF  p_MODIFIER_LIST_val_rec.terms <> FND_API.G_MISS_CHAR
2938     THEN
2939 
2940         IF p_MODIFIER_LIST_rec.terms_id <> FND_API.G_MISS_NUM THEN
2941 
2942             l_MODIFIER_LIST_rec.terms_id := p_MODIFIER_LIST_rec.terms_id;
2943 
2944             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2945             THEN
2946 
2947                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2948                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','terms');
2949                 OE_MSG_PUB.Add;
2950 
2951             END IF;
2952 
2953         ELSE
2954 
2955             l_MODIFIER_LIST_rec.terms_id := QP_Value_To_Id.terms
2956             (   p_terms                       => p_MODIFIER_LIST_val_rec.terms
2957             );
2958 
2959             IF l_MODIFIER_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
2960                 l_MODIFIER_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2961             END IF;
2962 
2963         END IF;
2964 
2965     END IF;
2966 
2967 
2968 	oe_debug_pub.add('END get_ids in QPXUMLHB');
2969     RETURN l_MODIFIER_LIST_rec;
2970 
2971 END Get_Ids;
2972 
2973 Function Get_Segment_Level_for_Group
2974   (p_list_header_id IN NUMBER
2975   ,p_list_line_id IN NUMBER
2976   ,p_qualifier_grouping_no IN NUMBER
2977   ) return varchar2
2978 is
2979  cursor c_qualifiers is
2980    select qualifier_context, qualifier_attribute
2981      from qp_qualifiers
2982     where list_header_id = p_list_header_id
2983       and ((qualifier_grouping_no = p_qualifier_grouping_no) OR (qualifier_grouping_no = -1))
2984       and list_line_id = p_list_line_id;
2985 
2986  l_current_segment_level   VARCHAR2(30) := NULL;
2987 
2988  l_final_segment_level     VARCHAR2(30) := NULL;
2989 
2990 
2991 BEGIN
2992   oe_debug_pub.add('Begin Get_Segment_Level_for_Group');
2993   oe_debug_pub.add('p_list_header_id = ' || p_list_header_id);
2994   oe_debug_pub.add('p_list_line_id = ' || p_list_line_id);
2995   oe_debug_pub.add('p_qualifier_grouping_no = ' || p_qualifier_grouping_no);
2996      FOR l_rec in c_qualifiers
2997      LOOP
2998         l_current_segment_level := qp_util.get_segment_level(p_list_header_id
2999                                                             ,l_rec.qualifier_context
3000                                                             ,l_rec.qualifier_attribute
3001                                                             );
3002         if l_final_segment_level is NULL then
3003            l_final_segment_level := l_current_segment_level;
3004         else
3005            if l_final_segment_level = 'LINE' then
3006               if l_current_segment_level = 'LINE' then
3007                  l_final_segment_level := 'LINE';
3008               elsif l_current_segment_level = 'BOTH' then
3009                  l_final_segment_level := 'LINE_BOTH';
3010               elsif l_current_segment_level = 'ORDER' then
3011                  -- Unexpected Condition
3012                  raise FND_API.G_EXC_UNEXPECTED_ERROR;
3013               end if;
3014 
3015            elsif l_final_segment_level = 'ORDER' then
3016               if l_current_segment_level = 'ORDER' then
3017                  l_final_segment_level := 'ORDER';
3018               elsif l_current_segment_level = 'BOTH' then
3019                  l_final_segment_level := 'ORDER_BOTH';
3020               elsif l_current_segment_level = 'LINE' then
3021                  -- Unexpected Condition
3022                  raise FND_API.G_EXC_UNEXPECTED_ERROR;
3023               end if;
3024 
3025            elsif l_final_segment_level = 'BOTH' then
3026               if l_current_segment_level = 'LINE' then
3027                  l_final_segment_level := 'LINE_BOTH';
3028               elsif l_current_segment_level = 'ORDER' then
3029                  l_final_segment_level := 'ORDER_BOTH';
3030               elsif l_current_segment_level = 'BOTH' then
3031                  l_final_segment_level := 'BOTH';
3032               end if;
3033 
3034            elsif l_final_segment_level = 'LINE_BOTH' then
3035               if l_current_segment_level in ('LINE', 'BOTH') then
3036                  l_final_segment_level := 'LINE_BOTH';
3037               elsif l_current_segment_level = 'ORDER' then
3038                  -- Unexpected Condition
3039                  raise FND_API.G_EXC_UNEXPECTED_ERROR;
3040               end if;
3041 
3042            elsif l_final_segment_level = 'ORDER_BOTH' then
3043               if l_current_segment_level in ('ORDER', 'BOTH') then
3044                  l_final_segment_level := 'ORDER_BOTH';
3045               elsif l_current_segment_level = 'LINE' then
3046                  -- Unexpected Condition
3047                  raise FND_API.G_EXC_UNEXPECTED_ERROR;
3048               end if;
3049 
3050            end if; -- l_final_segment_level = 'LINE'
3051         end if; -- l_final_segment_level is NULL
3052 
3053      END LOOP;
3054 
3055   return(l_final_segment_level);
3056 
3057   oe_debug_pub.add('End Get_Segment_Level_for_Group');
3058 EXCEPTION
3059   WHEN FND_API.G_EXC_ERROR THEN
3060     return(null);
3061 
3062   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3063      IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3064 	OE_MSG_PUB.Add_Exc_Msg
3065 		(G_PKG_NAME
3066 		,'Get_Segment_Level_for_Group');
3067      END IF;
3068      return(null);
3069 
3070   WHEN OTHERS THEN
3071      IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3072 	OE_MSG_PUB.Add_Exc_Msg
3073 		(G_PKG_NAME
3074 		,'Get_Segment_Level_for_Group');
3075      END IF;
3076      return(null);
3077 
3078 END Get_Segment_Level_for_Group;
3079 
3080 END QP_Modifier_List_Util;