DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_PRICE_LIST_UTIL

Source


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