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.12 2011/11/29 15:42:40 jputta 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 -- jagan's PL/SQL pattern
651        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
652         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
653          IF(p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
654              qp_delayed_requests_pvt.log_request(
655 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
656 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
657 		p_request_unique_key1 => NULL,
658 		p_request_unique_key2 => 'UD',
659 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
660 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
661 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
662 		x_return_status => x_PRICE_LIST_rec.return_status);
663           END IF;
664        END IF;
665       END IF;
666 
667     END IF;
668 
669     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.discount_lines_flag,p_old_PRICE_LIST_rec.discount_lines_flag)
670     THEN
671         NULL;
672     END IF;
673 
674     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.end_date_active,p_old_PRICE_LIST_rec.end_date_active)
675     THEN
676       --  NULL;
677       -- jagan's PL/SQL pattern
678        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
679         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
680          IF (p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
681 	   qp_delayed_requests_pvt.log_request(
682 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
683 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
684 		p_request_unique_key1 => NULL,
685 		p_request_unique_key2 => 'UD',
686 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
687 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
688 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
689 		x_return_status => x_PRICE_LIST_rec.return_status);
690          END IF;
691        END IF;
692       END IF;
693 
694     END IF;
695 
696     /* Bug 1856788 Added the if condition to propogate the change in active_flag of price_list to qualifiers
697        of the price_list */
698  IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.active_flag,p_old_PRICE_LIST_rec.active_flag)
699     THEN
700 	IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
701           IF (p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
702 	   qp_delayed_requests_pvt.log_request(
703 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
704 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
705 		p_request_unique_key1 => NULL,
706 		p_request_unique_key2 => 'UD',
707 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
708 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
709 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
710 		x_return_status => x_PRICE_LIST_rec.return_status);
711          END IF;
712 	END IF; --Java Engine Installed
713 -- pattern
714 -- jagan's PL/SQL pattern
715        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
716         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
717          IF (p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
718 	   qp_delayed_requests_pvt.log_request(
719 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
720 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
721 		p_request_unique_key1 => NULL,
722 		p_request_unique_key2 => 'UD',
723 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
724 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
725 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
726 		x_return_status => x_PRICE_LIST_rec.return_status);
727          END IF;
728        END IF;
729       END IF;
730 
731 
732    -- added for bug 2912834
733    IF p_PRICE_LIST_rec.operation = QP_GLOBALS.G_OPR_UPDATE
734    THEN
735 
736         UPDATE qp_qualifiers
737           SET active_flag = p_PRICE_LIST_rec.active_flag
738          WHERE list_header_id = p_PRICE_LIST_rec.list_header_id;
739 
740      -- Dynamic sourcing of attributes changes
741      IF p_PRICE_LIST_rec.active_flag = 'Y'
742      THEN
743 	update qp_pte_segments d set used_in_setup='Y'
744 	where nvl(used_in_setup,'N')='N'
745 	and exists
746 	(select 'x'
747 	from qp_segments_b a,qp_prc_contexts_b b,qp_qualifiers c
748 	where c.list_header_id         = p_PRICE_LIST_rec.list_header_id
749 	and   a.segment_mapping_column = c .qualifier_attribute
750         and   a.segment_id             = d.segment_id
751 	and   a.prc_context_id         = b.prc_context_id
752 	and   b.prc_context_type       = 'QUALIFIER'
753 	and   b.prc_context_code       = c.qualifier_context);
754 
755 	update qp_pte_segments d set used_in_setup='Y'
756 	where nvl(used_in_setup,'N')='N'
757 	and exists
758 	(select 'x'
759 	from qp_segments_b a,qp_prc_contexts_b b,qp_pricing_attributes c
760 	where c.list_header_id         = p_PRICE_LIST_rec.list_header_id
761 	and   a.segment_mapping_column = c.pricing_attribute
762         and   a.segment_id             = d.segment_id
763 	and   a.prc_context_id         = b.prc_context_id
764 	and   b.prc_context_type       = 'PRICING_ATTRIBUTE'
765 	and   b.prc_context_code       = c.pricing_attribute_context);
766 
767 	update qp_pte_segments d set used_in_setup='Y'
768 	where nvl(used_in_setup,'N')='N'
769 	and exists
770 	(select 'x'
771 	from qp_segments_b a,qp_prc_contexts_b b,qp_pricing_attributes c
772 	where c.list_header_id         = p_PRICE_LIST_rec.list_header_id
773 	and   a.segment_mapping_column = c.product_attribute
774         and   a.segment_id             = d.segment_id
775 	and   a.prc_context_id         = b.prc_context_id
776 	and   b.prc_context_type       = 'PRODUCT'
777 	and   b.prc_context_code       = c.product_attribute_context);
778 
779     END IF;
780 
781   END IF;
782 
783  END IF;
784     -- mkarya for bug 1944882
785     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.mobile_download,p_old_PRICE_LIST_rec.mobile_download)
786     THEN
787         NULL;
788     END IF;
789 
790     -- Pricing Security gtippire
791     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.global_flag,p_old_PRICE_LIST_rec.global_flag)
792     THEN
793        -- NULL;
794        -- jagan's PL/SQL pattern
795        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
796         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
797          IF (p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
798 	   qp_delayed_requests_pvt.log_request(
799 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
800 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
801 		p_request_unique_key1 => NULL,
802 		p_request_unique_key2 => 'UD',
803 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
804 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
805 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
806 		x_return_status => x_PRICE_LIST_rec.return_status);
807          END IF;
808        END IF;
809       END IF;
810 
811     END IF;
812 
813     oe_debug_pub.add('QPXUPLHB - list_header_id = ' || p_PRICE_LIST_rec.list_header_id);
814     oe_debug_pub.add('QPXUPLHB - currency_header_id = ' || p_PRICE_LIST_rec.currency_header_id);
815     oe_debug_pub.add('QPXUPLHB - old currency_header_id = ' || p_old_PRICE_LIST_rec.currency_header_id);
816     oe_debug_pub.add('QPXUPLHB - rounding_factor = ' || p_PRICE_LIST_rec.rounding_factor);
817     -- Multi-Currency SunilPandey
818     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.currency_header_id,p_old_PRICE_LIST_rec.currency_header_id)
819     THEN
820        -- NULL;
821         if p_PRICE_LIST_rec.currency_header_id is not null then
822               select BASE_ROUNDING_FACTOR
823                 into x_PRICE_LIST_rec.rounding_factor
824                 from QP_CURRENCY_LISTS_VL
825                where currency_header_id = p_PRICE_LIST_rec.currency_header_id;
826         end if;
827 	-- jagan's PL/SQL pattern
828        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
829         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
830          IF (p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
831 	   qp_delayed_requests_pvt.log_request(
832 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
833 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
834 		p_request_unique_key1 => NULL,
835 		p_request_unique_key2 => 'UD',
836 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
837 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
838 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
839 		x_return_status => x_PRICE_LIST_rec.return_status);
840          END IF;
841        END IF;
842       END IF;
843 
844     END IF;
845 
846     -- Attributes Manager Giri
847     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.pte_code,p_old_PRICE_LIST_rec.pte_code)
848     THEN
849         NULL;
850     END IF;
851 
852     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.freight_terms_code,p_old_PRICE_LIST_rec.freight_terms_code)
853     THEN
854         NULL;
855     END IF;
856 
857     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.gsa_indicator,p_old_PRICE_LIST_rec.gsa_indicator)
858     THEN
859         NULL;
860     END IF;
861 
862     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.last_updated_by,p_old_PRICE_LIST_rec.last_updated_by)
863     THEN
864         NULL;
865     END IF;
866 
867     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_date,p_old_PRICE_LIST_rec.last_update_date)
868     THEN
869         NULL;
870     END IF;
871 
872     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_login,p_old_PRICE_LIST_rec.last_update_login)
873     THEN
874         NULL;
875     END IF;
876 
877     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.name,p_old_PRICE_LIST_rec.name)
878     THEN
879         IF NOT QP_Validate.Price_List_Name(p_PRICE_LIST_rec.name,
880                                 p_PRICE_LIST_rec.list_header_id,
881 						  p_PRICE_LIST_rec.version_no) THEN
882             x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
883         END IF;
884     END IF;
885 
886     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.description,p_old_PRICE_LIST_rec.description)
887     THEN
888         NULL;
889     END IF;
890 
891     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_header_id,p_old_PRICE_LIST_rec.list_header_id)
892     THEN
893         NULL;
894     END IF;
895 
896     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_type_code,p_old_PRICE_LIST_rec.list_type_code)
897     THEN
898 	IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
899 	  IF(p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
900              qp_delayed_requests_pvt.log_request(
901 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
902 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
903 		p_request_unique_key1 => NULL,
904 		p_request_unique_key2 => 'UD',
905 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
906 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
907 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
908 		x_return_status => x_PRICE_LIST_rec.return_status);
909             END IF;
910 	END IF; --Java Engine Installed
911 -- pattern
912 -- jagan's PL/SQL pattern
913        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
914         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
915          IF(p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
916              qp_delayed_requests_pvt.log_request(
917 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
918 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
919 		p_request_unique_key1 => NULL,
920 		p_request_unique_key2 => 'UD',
921 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
922 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
923 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
924 		x_return_status => x_PRICE_LIST_rec.return_status);
925             END IF;
926        END IF;
927       END IF;
928 
929         NULL;
930     END IF;
931 
932     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.version_no,p_old_PRICE_LIST_rec.version_no)
933     THEN
934         NULL;
935     END IF;
936 
937     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.program_application_id,p_old_PRICE_LIST_rec.program_application_id)
938     THEN
939         NULL;
940     END IF;
941 
942     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.program_id,p_old_PRICE_LIST_rec.program_id)
943     THEN
944         NULL;
945     END IF;
946 
947     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.program_update_date,p_old_PRICE_LIST_rec.program_update_date)
948     THEN
949         NULL;
950     END IF;
951 
952     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.prorate_flag,p_old_PRICE_LIST_rec.prorate_flag)
953     THEN
954         NULL;
955     END IF;
956 
957     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.request_id,p_old_PRICE_LIST_rec.request_id)
958     THEN
959         NULL;
960     END IF;
961 
962     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.rounding_factor,p_old_PRICE_LIST_rec.rounding_factor)
963     THEN
964 	  /*
965        IF NOT QP_Validate.Rounding_Factor(p_PRICE_LIST_rec.rounding_factor,
966 								  p_PRICE_LIST_rec.currency_code)
967        THEN
968             x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
969        END IF;
970 	  */
971 	  null;
972     END IF;
973 
974     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.ship_method_code,p_old_PRICE_LIST_rec.ship_method_code)
975     THEN
976         NULL;
977     END IF;
978 
979     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.start_date_active,p_old_PRICE_LIST_rec.start_date_active)
980     THEN
981     --    NULL;
982     -- jagan's PL/SQL pattern
983        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
984         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
985          IF (p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
986 	   qp_delayed_requests_pvt.log_request(
987 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
988 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
989 		p_request_unique_key1 => NULL,
990 		p_request_unique_key2 => 'UD',
991 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
992 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
993 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
994 		x_return_status => x_PRICE_LIST_rec.return_status);
995          END IF;
996        END IF;
997       END IF;
998 
999     END IF;
1000 
1001     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.terms_id,p_old_PRICE_LIST_rec.terms_id)
1002     THEN
1003         NULL;
1004     END IF;
1005 
1006 -- Blanket Sales Order
1007     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_source_code,p_old_PRICE_LIST_rec.list_source_code)
1008     THEN
1009         NULL;
1010     END IF;
1011 
1012     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.orig_system_header_ref,p_old_PRICE_LIST_rec.orig_system_header_ref)
1013     THEN
1014         NULL;
1015     END IF;
1016 
1017 -- Blanket Pricing
1018     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.source_system_code, p_old_PRICE_LIST_rec.source_system_code)
1019     THEN
1020         NULL;
1021 	IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
1022 	  IF( p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
1023              qp_delayed_requests_pvt.log_request(
1024 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1025 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
1026 		p_request_unique_key1 => NULL,
1027 		p_request_unique_key2 => 'UD',
1028 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1029 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
1030 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
1031 		x_return_status => x_PRICE_LIST_rec.return_status);
1032           END IF;
1033 	END IF; --Java Engine Installed
1034 -- pattern
1035 -- jagan's PL/SQL pattern
1036        IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
1037         IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
1038          IF( p_PRICE_LIST_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
1039              qp_delayed_requests_pvt.log_request(
1040 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1041 		p_entity_id => p_PRICE_LIST_rec.list_header_id,
1042 		p_request_unique_key1 => NULL,
1043 		p_request_unique_key2 => 'UD',
1044 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1045 		p_requesting_entity_id => p_PRICE_LIST_rec.list_header_id,
1046 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
1047 		x_return_status => x_PRICE_LIST_rec.return_status);
1048           END IF;
1049        END IF;
1050       END IF;
1051 
1052     END IF;
1053 
1054     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.shareable_flag, p_old_PRICE_LIST_rec.shareable_flag)
1055     THEN
1056         NULL;
1057     END IF;
1058 
1059     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.sold_to_org_id, p_old_PRICE_LIST_rec.sold_to_org_id)
1060     THEN
1061         NULL;
1062     END IF;
1063 
1064     --Added for Price List Locking
1065     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.locked_from_list_header_id, p_old_PRICE_LIST_rec.locked_from_list_header_id)
1066     THEN
1067         NULL;
1068     END IF;
1069 
1070     --added for MOAC
1071     IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.org_id, p_old_PRICE_LIST_rec.org_id)
1072     THEN
1073         NULL;
1074     END IF;
1075 END Apply_Attribute_Changes;
1076 
1077 --  Function Complete_Record
1078 
1079 FUNCTION Complete_Record
1080 (   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
1081 ,   p_old_PRICE_LIST_rec            IN  QP_Price_List_PUB.Price_List_Rec_Type
1082 ) RETURN QP_Price_List_PUB.Price_List_Rec_Type
1083 IS
1084 l_PRICE_LIST_rec              QP_Price_List_PUB.Price_List_Rec_Type := p_PRICE_LIST_rec;
1085 BEGIN
1086 
1087     IF l_PRICE_LIST_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1088         l_PRICE_LIST_rec.attribute1 := p_old_PRICE_LIST_rec.attribute1;
1089     END IF;
1090 
1091     IF l_PRICE_LIST_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1092         l_PRICE_LIST_rec.attribute10 := p_old_PRICE_LIST_rec.attribute10;
1093     END IF;
1094 
1095     IF l_PRICE_LIST_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1096         l_PRICE_LIST_rec.attribute11 := p_old_PRICE_LIST_rec.attribute11;
1097     END IF;
1098 
1099     IF l_PRICE_LIST_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1100         l_PRICE_LIST_rec.attribute12 := p_old_PRICE_LIST_rec.attribute12;
1101     END IF;
1102 
1103     IF l_PRICE_LIST_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1104         l_PRICE_LIST_rec.attribute13 := p_old_PRICE_LIST_rec.attribute13;
1105     END IF;
1106 
1107     IF l_PRICE_LIST_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1108         l_PRICE_LIST_rec.attribute14 := p_old_PRICE_LIST_rec.attribute14;
1109     END IF;
1110 
1111     IF l_PRICE_LIST_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1112         l_PRICE_LIST_rec.attribute15 := p_old_PRICE_LIST_rec.attribute15;
1113     END IF;
1114 
1115     IF l_PRICE_LIST_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1116         l_PRICE_LIST_rec.attribute2 := p_old_PRICE_LIST_rec.attribute2;
1117     END IF;
1118 
1119     IF l_PRICE_LIST_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1120         l_PRICE_LIST_rec.attribute3 := p_old_PRICE_LIST_rec.attribute3;
1121     END IF;
1122 
1123     IF l_PRICE_LIST_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1124         l_PRICE_LIST_rec.attribute4 := p_old_PRICE_LIST_rec.attribute4;
1125     END IF;
1126 
1127     IF l_PRICE_LIST_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1128         l_PRICE_LIST_rec.attribute5 := p_old_PRICE_LIST_rec.attribute5;
1129     END IF;
1130 
1131     IF l_PRICE_LIST_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1132         l_PRICE_LIST_rec.attribute6 := p_old_PRICE_LIST_rec.attribute6;
1133     END IF;
1134 
1135     IF l_PRICE_LIST_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1136         l_PRICE_LIST_rec.attribute7 := p_old_PRICE_LIST_rec.attribute7;
1137     END IF;
1138 
1139     IF l_PRICE_LIST_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1140         l_PRICE_LIST_rec.attribute8 := p_old_PRICE_LIST_rec.attribute8;
1141     END IF;
1142 
1143     IF l_PRICE_LIST_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1144         l_PRICE_LIST_rec.attribute9 := p_old_PRICE_LIST_rec.attribute9;
1145     END IF;
1146 
1147     IF l_PRICE_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1148         l_PRICE_LIST_rec.automatic_flag := p_old_PRICE_LIST_rec.automatic_flag;
1149     END IF;
1150 
1151     IF l_PRICE_LIST_rec.comments = FND_API.G_MISS_CHAR THEN
1152         l_PRICE_LIST_rec.comments := p_old_PRICE_LIST_rec.comments;
1153     END IF;
1154 
1155     IF l_PRICE_LIST_rec.context = FND_API.G_MISS_CHAR THEN
1156         l_PRICE_LIST_rec.context := p_old_PRICE_LIST_rec.context;
1157     END IF;
1158 
1159     IF l_PRICE_LIST_rec.created_by = FND_API.G_MISS_NUM THEN
1160         l_PRICE_LIST_rec.created_by := p_old_PRICE_LIST_rec.created_by;
1161     END IF;
1162 
1163     IF l_PRICE_LIST_rec.creation_date = FND_API.G_MISS_DATE THEN
1164         l_PRICE_LIST_rec.creation_date := p_old_PRICE_LIST_rec.creation_date;
1165     END IF;
1166 
1167     IF l_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
1168         l_PRICE_LIST_rec.currency_code := p_old_PRICE_LIST_rec.currency_code;
1169     END IF;
1170 
1171     IF l_PRICE_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR THEN
1172         l_PRICE_LIST_rec.discount_lines_flag := p_old_PRICE_LIST_rec.discount_lines_flag;
1173     END IF;
1174 
1175     IF l_PRICE_LIST_rec.end_date_active = FND_API.G_MISS_DATE THEN
1176         l_PRICE_LIST_rec.end_date_active := p_old_PRICE_LIST_rec.end_date_active;
1177     END IF;
1178 
1179     IF l_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
1180         l_PRICE_LIST_rec.freight_terms_code := p_old_PRICE_LIST_rec.freight_terms_code;
1181     END IF;
1182 
1183     IF l_PRICE_LIST_rec.gsa_indicator = FND_API.G_MISS_CHAR THEN
1184         l_PRICE_LIST_rec.gsa_indicator := p_old_PRICE_LIST_rec.gsa_indicator;
1185     END IF;
1186 
1187     IF l_PRICE_LIST_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1188         l_PRICE_LIST_rec.last_updated_by := p_old_PRICE_LIST_rec.last_updated_by;
1189     END IF;
1190 
1191     IF l_PRICE_LIST_rec.last_update_date = FND_API.G_MISS_DATE THEN
1192         l_PRICE_LIST_rec.last_update_date := p_old_PRICE_LIST_rec.last_update_date;
1193     END IF;
1194 
1195     IF l_PRICE_LIST_rec.last_update_login = FND_API.G_MISS_NUM THEN
1196         l_PRICE_LIST_rec.last_update_login := p_old_PRICE_LIST_rec.last_update_login;
1197     END IF;
1198 
1199     IF l_PRICE_LIST_rec.name = FND_API.G_MISS_CHAR THEN
1200         l_PRICE_LIST_rec.name := p_old_PRICE_LIST_rec.name;
1201     END IF;
1202 
1203 
1204     IF l_PRICE_LIST_rec.description = FND_API.G_MISS_CHAR THEN
1205         l_PRICE_LIST_rec.description := p_old_PRICE_LIST_rec.description;
1206     END IF;
1207 
1208     IF l_PRICE_LIST_rec.list_header_id = FND_API.G_MISS_NUM THEN
1209         l_PRICE_LIST_rec.list_header_id := p_old_PRICE_LIST_rec.list_header_id;
1210     END IF;
1211 
1212     IF l_PRICE_LIST_rec.list_type_code = FND_API.G_MISS_CHAR THEN
1213         l_PRICE_LIST_rec.list_type_code := p_old_PRICE_LIST_rec.list_type_code;
1214     END IF;
1215 
1216     IF l_PRICE_LIST_rec.version_no = FND_API.G_MISS_CHAR THEN
1217         l_PRICE_LIST_rec.version_no := p_old_PRICE_LIST_rec.version_no;
1218     END IF;
1219 
1220     IF l_PRICE_LIST_rec.program_application_id = FND_API.G_MISS_NUM THEN
1221         l_PRICE_LIST_rec.program_application_id := p_old_PRICE_LIST_rec.program_application_id;
1222     END IF;
1223 
1224     IF l_PRICE_LIST_rec.program_id = FND_API.G_MISS_NUM THEN
1225         l_PRICE_LIST_rec.program_id := p_old_PRICE_LIST_rec.program_id;
1226     END IF;
1227 
1228     IF l_PRICE_LIST_rec.program_update_date = FND_API.G_MISS_DATE THEN
1229         l_PRICE_LIST_rec.program_update_date := p_old_PRICE_LIST_rec.program_update_date;
1230     END IF;
1231 
1232     IF l_PRICE_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR THEN
1233         l_PRICE_LIST_rec.prorate_flag := p_old_PRICE_LIST_rec.prorate_flag;
1234     END IF;
1235 
1236     IF l_PRICE_LIST_rec.request_id = FND_API.G_MISS_NUM THEN
1237         l_PRICE_LIST_rec.request_id := p_old_PRICE_LIST_rec.request_id;
1238     END IF;
1239 
1240     IF l_PRICE_LIST_rec.rounding_factor = FND_API.G_MISS_NUM THEN
1241         l_PRICE_LIST_rec.rounding_factor := p_old_PRICE_LIST_rec.rounding_factor;
1242     END IF;
1243 
1244     IF l_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
1245         l_PRICE_LIST_rec.ship_method_code := p_old_PRICE_LIST_rec.ship_method_code;
1246     END IF;
1247 
1248     IF l_PRICE_LIST_rec.start_date_active = FND_API.G_MISS_DATE THEN
1249         l_PRICE_LIST_rec.start_date_active := p_old_PRICE_LIST_rec.start_date_active;
1250     END IF;
1251 
1252     IF l_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
1253         l_PRICE_LIST_rec.terms_id := p_old_PRICE_LIST_rec.terms_id;
1254     END IF;
1255 
1256     -- Blanket Agreement Pricing bug#3684285
1257     IF l_PRICE_LIST_rec.list_source_code = FND_API.G_MISS_CHAR THEN
1258         l_PRICE_LIST_rec.list_source_code := p_old_PRICE_LIST_rec.list_source_code;
1259     END IF;
1260 
1261     IF l_PRICE_LIST_rec.orig_system_header_ref = FND_API.G_MISS_CHAR THEN
1262         l_PRICE_LIST_rec.orig_system_header_ref := p_old_PRICE_LIST_rec.orig_system_header_ref;
1263     END IF;
1264 
1265     IF l_PRICE_LIST_rec.source_system_code = FND_API.G_MISS_CHAR THEN
1266         l_PRICE_LIST_rec.source_system_code := p_old_PRICE_LIST_rec.source_system_code;
1267     END IF;
1268 
1269 --bug#13110812
1270     IF l_PRICE_LIST_rec.currency_header_id = FND_API.G_MISS_NUM THEN
1271         l_PRICE_LIST_rec.currency_header_id := p_old_PRICE_LIST_rec.currency_header_id;
1272     END IF;
1273 --bug#13110812
1274 
1275     IF l_PRICE_LIST_rec.pte_code = FND_API.G_MISS_CHAR THEN
1276         l_PRICE_LIST_rec.pte_code := p_old_PRICE_LIST_rec.pte_code;
1277     END IF;
1278 
1279     IF l_PRICE_LIST_rec.shareable_flag = FND_API.G_MISS_CHAR THEN
1280         l_PRICE_LIST_rec.shareable_flag := p_old_PRICE_LIST_rec.shareable_flag;
1281     END IF;
1282 
1283     IF l_PRICE_LIST_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN
1284         l_PRICE_LIST_rec.sold_to_org_id := p_old_PRICE_LIST_rec.sold_to_org_id;
1285     END IF;
1286 
1287     /* Added code for active_flag and mobile_download by dhgupta for bug 2052900 */
1288 
1289     IF l_PRICE_LIST_rec.active_flag = FND_API.G_MISS_CHAR THEN
1290         l_PRICE_LIST_rec.active_flag := p_old_PRICE_LIST_rec.active_flag;
1291     END IF;
1292 
1293     IF l_PRICE_LIST_rec.mobile_download = FND_API.G_MISS_CHAR THEN
1294         l_PRICE_LIST_rec.mobile_download := p_old_PRICE_LIST_rec.mobile_download;
1295     END IF;
1296 
1297     -- Pricing Security gtippire
1298     IF l_PRICE_LIST_rec.global_flag = FND_API.G_MISS_CHAR THEN
1299         l_PRICE_LIST_rec.global_flag := p_old_PRICE_LIST_rec.global_flag;
1300     END IF;
1301 
1302     IF l_PRICE_LIST_rec.locked_from_list_header_id = FND_API.G_MISS_NUM THEN
1303         l_PRICE_LIST_rec.locked_from_list_header_id := p_old_PRICE_LIST_rec.locked_from_list_header_id;
1304     END IF;
1305 
1306     --added for MOAC
1307     IF l_PRICE_LIST_rec.org_id = FND_API.G_MISS_NUM THEN
1308         l_PRICE_LIST_rec.org_id := p_old_PRICE_LIST_rec.org_id;
1309     END IF;
1310 
1311     RETURN l_PRICE_LIST_rec;
1312 
1313 END Complete_Record;
1314 
1315 --  Function Convert_Miss_To_Null
1316 
1317 FUNCTION Convert_Miss_To_Null
1318 (   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
1319 ) RETURN QP_Price_List_PUB.Price_List_Rec_Type
1320 IS
1321 l_PRICE_LIST_rec              QP_Price_List_PUB.Price_List_Rec_Type := p_PRICE_LIST_rec;
1322 BEGIN
1323 
1324     IF l_PRICE_LIST_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1325         l_PRICE_LIST_rec.attribute1 := NULL;
1326     END IF;
1327 
1328     IF l_PRICE_LIST_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1329         l_PRICE_LIST_rec.attribute10 := NULL;
1330     END IF;
1331 
1332     IF l_PRICE_LIST_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1333         l_PRICE_LIST_rec.attribute11 := NULL;
1334     END IF;
1335 
1336     IF l_PRICE_LIST_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1337         l_PRICE_LIST_rec.attribute12 := NULL;
1338     END IF;
1339 
1340     IF l_PRICE_LIST_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1341         l_PRICE_LIST_rec.attribute13 := NULL;
1342     END IF;
1343 
1344     IF l_PRICE_LIST_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1345         l_PRICE_LIST_rec.attribute14 := NULL;
1346     END IF;
1347 
1348     IF l_PRICE_LIST_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1349         l_PRICE_LIST_rec.attribute15 := NULL;
1350     END IF;
1351 
1352     IF l_PRICE_LIST_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1353         l_PRICE_LIST_rec.attribute2 := NULL;
1354     END IF;
1355 
1356     IF l_PRICE_LIST_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1357         l_PRICE_LIST_rec.attribute3 := NULL;
1358     END IF;
1359 
1360     IF l_PRICE_LIST_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1361         l_PRICE_LIST_rec.attribute4 := NULL;
1362     END IF;
1363 
1364     IF l_PRICE_LIST_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1365         l_PRICE_LIST_rec.attribute5 := NULL;
1366     END IF;
1367 
1368     IF l_PRICE_LIST_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1369         l_PRICE_LIST_rec.attribute6 := NULL;
1370     END IF;
1371 
1372     IF l_PRICE_LIST_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1373         l_PRICE_LIST_rec.attribute7 := NULL;
1374     END IF;
1375 
1376     IF l_PRICE_LIST_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1377         l_PRICE_LIST_rec.attribute8 := NULL;
1378     END IF;
1379 
1380     IF l_PRICE_LIST_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1381         l_PRICE_LIST_rec.attribute9 := NULL;
1382     END IF;
1383 
1384     IF l_PRICE_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1385         l_PRICE_LIST_rec.automatic_flag := NULL;
1386     END IF;
1387 
1388     IF l_PRICE_LIST_rec.comments = FND_API.G_MISS_CHAR THEN
1389         l_PRICE_LIST_rec.comments := NULL;
1390     END IF;
1391 
1392     IF l_PRICE_LIST_rec.context = FND_API.G_MISS_CHAR THEN
1393         l_PRICE_LIST_rec.context := NULL;
1394     END IF;
1395 
1396     IF l_PRICE_LIST_rec.created_by = FND_API.G_MISS_NUM THEN
1397         l_PRICE_LIST_rec.created_by := NULL;
1398     END IF;
1399 
1400     IF l_PRICE_LIST_rec.creation_date = FND_API.G_MISS_DATE THEN
1401         l_PRICE_LIST_rec.creation_date := NULL;
1402     END IF;
1403 
1404     IF l_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
1405         l_PRICE_LIST_rec.currency_code := NULL;
1406     END IF;
1407 
1408     IF l_PRICE_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR THEN
1409         l_PRICE_LIST_rec.discount_lines_flag := NULL;
1410     END IF;
1411 
1412     IF l_PRICE_LIST_rec.end_date_active = FND_API.G_MISS_DATE THEN
1413         l_PRICE_LIST_rec.end_date_active := NULL;
1414     END IF;
1415 
1416     IF l_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
1417         l_PRICE_LIST_rec.freight_terms_code := NULL;
1418     END IF;
1419 
1420     IF l_PRICE_LIST_rec.gsa_indicator = FND_API.G_MISS_CHAR THEN
1421         l_PRICE_LIST_rec.gsa_indicator := NULL;
1422     END IF;
1423 
1424     IF l_PRICE_LIST_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1425         l_PRICE_LIST_rec.last_updated_by := NULL;
1426     END IF;
1427 
1428     IF l_PRICE_LIST_rec.last_update_date = FND_API.G_MISS_DATE THEN
1429         l_PRICE_LIST_rec.last_update_date := NULL;
1430     END IF;
1431 
1432     IF l_PRICE_LIST_rec.last_update_login = FND_API.G_MISS_NUM THEN
1433         l_PRICE_LIST_rec.last_update_login := NULL;
1434     END IF;
1435 
1436     IF l_PRICE_LIST_rec.list_header_id = FND_API.G_MISS_NUM THEN
1437         l_PRICE_LIST_rec.list_header_id := NULL;
1438     END IF;
1439 
1440     IF l_PRICE_LIST_rec.list_type_code = FND_API.G_MISS_CHAR THEN
1441         l_PRICE_LIST_rec.list_type_code := NULL;
1442     END IF;
1443 
1444     IF l_PRICE_LIST_rec.version_no = FND_API.G_MISS_CHAR THEN
1445         l_PRICE_LIST_rec.version_no := NULL;
1446     END IF;
1447 
1448     IF l_PRICE_LIST_rec.program_application_id = FND_API.G_MISS_NUM THEN
1449         l_PRICE_LIST_rec.program_application_id := NULL;
1450     END IF;
1451 
1452     IF l_PRICE_LIST_rec.program_id = FND_API.G_MISS_NUM THEN
1453         l_PRICE_LIST_rec.program_id := NULL;
1454     END IF;
1455 
1456     IF l_PRICE_LIST_rec.program_update_date = FND_API.G_MISS_DATE THEN
1457         l_PRICE_LIST_rec.program_update_date := NULL;
1458     END IF;
1459 
1460     IF l_PRICE_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR THEN
1461         l_PRICE_LIST_rec.prorate_flag := NULL;
1462     END IF;
1463 
1464     IF l_PRICE_LIST_rec.request_id = FND_API.G_MISS_NUM THEN
1465         l_PRICE_LIST_rec.request_id := NULL;
1466     END IF;
1467 
1468     IF l_PRICE_LIST_rec.rounding_factor = FND_API.G_MISS_NUM THEN
1469         l_PRICE_LIST_rec.rounding_factor := NULL;
1470     END IF;
1471 
1472     IF l_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
1473         l_PRICE_LIST_rec.ship_method_code := NULL;
1474     END IF;
1475 
1476     IF l_PRICE_LIST_rec.start_date_active = FND_API.G_MISS_DATE THEN
1477         l_PRICE_LIST_rec.start_date_active := NULL;
1478     END IF;
1479 
1480     IF l_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
1481         l_PRICE_LIST_rec.terms_id := NULL;
1482     END IF;
1483 
1484     IF l_PRICE_LIST_rec.name = FND_API.G_MISS_CHAR THEN
1485         l_PRICE_LIST_rec.name := NULL;
1486     END IF;
1487 
1488     IF l_PRICE_LIST_rec.description = FND_API.G_MISS_CHAR THEN
1489         l_PRICE_LIST_rec.description := NULL;
1490     END IF;
1491 
1492     IF l_PRICE_LIST_rec.locked_from_list_header_id = FND_API.G_MISS_NUM THEN
1493         l_PRICE_LIST_rec.locked_from_list_header_id := NULL;
1494     END IF;
1495 
1496     RETURN l_PRICE_LIST_rec;
1497 
1498 END Convert_Miss_To_Null;
1499 
1500 --  Procedure Update_Row
1501 
1502 PROCEDURE Update_Row
1503 (   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
1504 )
1505 IS
1506 l_price_list_exists number := 0;
1507 BEGIN
1508 
1509   IF QP_security.check_function( p_function_name => QP_Security.G_FUNCTION_UPDATE,
1510                                  p_instance_type => QP_Security.G_PRICELIST_OBJECT,
1511                                  p_instance_pk1  => p_PRICE_LIST_rec.list_header_id) <> 'F' THEN
1512 
1513     --for moac changes QP_LIST_HEADERS_B to all_b to enable updates to PL with orig_org_id
1514     --that do not belong to the responsibility when the user has update privilges
1515     UPDATE  QP_LIST_HEADERS_ALL_B
1516     SET     ATTRIBUTE1                     = p_PRICE_LIST_rec.attribute1
1517     ,       ATTRIBUTE10                    = p_PRICE_LIST_rec.attribute10
1518     ,       ATTRIBUTE11                    = p_PRICE_LIST_rec.attribute11
1519     ,       ATTRIBUTE12                    = p_PRICE_LIST_rec.attribute12
1520     ,       ATTRIBUTE13                    = p_PRICE_LIST_rec.attribute13
1521     ,       ATTRIBUTE14                    = p_PRICE_LIST_rec.attribute14
1522     ,       ATTRIBUTE15                    = p_PRICE_LIST_rec.attribute15
1523     ,       ATTRIBUTE2                     = p_PRICE_LIST_rec.attribute2
1524     ,       ATTRIBUTE3                     = p_PRICE_LIST_rec.attribute3
1525     ,       ATTRIBUTE4                     = p_PRICE_LIST_rec.attribute4
1526     ,       ATTRIBUTE5                     = p_PRICE_LIST_rec.attribute5
1527     ,       ATTRIBUTE6                     = p_PRICE_LIST_rec.attribute6
1528     ,       ATTRIBUTE7                     = p_PRICE_LIST_rec.attribute7
1529     ,       ATTRIBUTE8                     = p_PRICE_LIST_rec.attribute8
1530     ,       ATTRIBUTE9                     = p_PRICE_LIST_rec.attribute9
1531     ,       AUTOMATIC_FLAG                 = p_PRICE_LIST_rec.automatic_flag
1532     ,       COMMENTS                       = p_PRICE_LIST_rec.comments
1533     ,       CONTEXT                        = p_PRICE_LIST_rec.context
1534     ,       CREATED_BY                     = p_PRICE_LIST_rec.created_by
1535     ,       CREATION_DATE                  = p_PRICE_LIST_rec.creation_date
1536     ,       CURRENCY_CODE                  = p_PRICE_LIST_rec.currency_code
1537     ,       DISCOUNT_LINES_FLAG            = p_PRICE_LIST_rec.discount_lines_flag
1538     ,       END_DATE_ACTIVE                = trunc(p_PRICE_LIST_rec.end_date_active)
1539     ,       FREIGHT_TERMS_CODE             = p_PRICE_LIST_rec.freight_terms_code
1540     ,       GSA_INDICATOR                  = p_PRICE_LIST_rec.gsa_indicator
1541     ,       LAST_UPDATED_BY                = p_PRICE_LIST_rec.last_updated_by
1542     ,       LAST_UPDATE_DATE               = p_PRICE_LIST_rec.last_update_date
1543     ,       LAST_UPDATE_LOGIN              = p_PRICE_LIST_rec.last_update_login
1544     ,       LIST_HEADER_ID                 = p_PRICE_LIST_rec.list_header_id
1545     ,       LIST_TYPE_CODE                 = p_PRICE_LIST_rec.list_type_code
1546     ,       PROGRAM_APPLICATION_ID         = p_PRICE_LIST_rec.program_application_id
1547     ,       PROGRAM_ID                     = p_PRICE_LIST_rec.program_id
1548     ,       PROGRAM_UPDATE_DATE            = p_PRICE_LIST_rec.program_update_date
1549     ,       PRORATE_FLAG                   = p_PRICE_LIST_rec.prorate_flag
1550     ,       REQUEST_ID                     = p_PRICE_LIST_rec.request_id
1551     ,       ROUNDING_FACTOR                = p_PRICE_LIST_rec.rounding_factor
1552     ,       SHIP_METHOD_CODE               = p_PRICE_LIST_rec.ship_method_code
1553     ,       START_DATE_ACTIVE              = trunc(p_PRICE_LIST_rec.start_date_active)
1554     ,       TERMS_ID                       = p_PRICE_LIST_rec.terms_id
1555     ,       ASK_FOR_FLAG                   = 'N'
1556     ,       ACTIVE_FLAG                    =
1557                             decode(p_PRICE_LIST_rec.active_flag, FND_API.G_MISS_CHAR, ACTIVE_FLAG, --dhgupta for 2052900
1558 				    p_PRICE_LIST_rec.active_flag)
1559     ,       MOBILE_DOWNLOAD                =
1560                           decode(p_PRICE_LIST_rec.mobile_download, FND_API.G_MISS_CHAR, MOBILE_DOWNLOAD,--dhgupta for 2052900
1561 				    p_PRICE_LIST_rec.mobile_download) -- mkarya for bug 1944882
1562     ,       CURRENCY_HEADER_ID             = p_PRICE_LIST_rec.currency_header_id
1563     ,       PTE_CODE             = p_PRICE_LIST_rec.pte_code  -- Giri for Attributes Manager
1564     ,	    LIST_SOURCE_CODE     = p_PRICE_LIST_rec.list_source_code --Blanket Sales Order
1565     , 	    ORIG_SYSTEM_HEADER_REF = p_PRICE_LIST_rec.orig_system_header_ref --Blanket Sales Order
1566     ,       GLOBAL_FLAG                    =
1567                           decode(p_PRICE_LIST_rec.global_flag, FND_API.G_MISS_CHAR, GLOBAL_FLAG,
1568 				    p_PRICE_LIST_rec.global_flag) -- Pricing Security gtippire
1569     ,       SOURCE_SYSTEM_CODE     = p_PRICE_LIST_rec.source_system_code
1570     ,       SHAREABLE_FLAG         = p_PRICE_LIST_rec.shareable_flag
1571     ,       SOLD_TO_ORG_ID         = p_PRICE_LIST_rec.sold_to_org_id
1572     ,       LOCKED_FROM_LIST_HEADER_ID =
1573                  p_PRICE_LIST_rec.locked_from_list_header_id --Pricelist locking
1574             --added for MOAC
1575     ,       ORIG_ORG_ID   = p_PRICE_LIST_rec.org_id
1576     WHERE   LIST_HEADER_ID = p_PRICE_LIST_rec.list_header_id
1577     ;
1578 
1579     update QP_LIST_HEADERS_TL set
1580       NAME = p_PRICE_LIST_rec.name,
1581       DESCRIPTION = p_PRICE_LIST_rec.description,
1582       LAST_UPDATE_DATE = p_PRICE_LIST_rec.LAST_UPDATE_DATE,
1583       LAST_UPDATED_BY = p_PRICE_LIST_rec.LAST_UPDATED_BY,
1584       LAST_UPDATE_LOGIN = p_PRICE_LIST_rec.LAST_UPDATE_LOGIN,
1585       VERSION_NO = p_PRICE_LIST_rec.version_no,
1586       SOURCE_LANG = userenv('LANG')
1587       where LIST_HEADER_ID = p_PRICE_LIST_rec.LIST_HEADER_ID
1588         and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
1589 
1590   --ELSE
1591   --    fnd_message.set_name('QP', 'QP_NO_PRIVILEGE');
1592   --    fnd_message.set_token('PRICING_OBJECT', 'Price List');
1593   --    oe_msg_pub.Add;
1594   END IF;
1595 
1596 EXCEPTION
1597 
1598     WHEN OTHERS THEN
1599 
1600         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1601         THEN
1602             oe_msg_pub.Add_Exc_Msg
1603             (   G_PKG_NAME
1604             ,   'Update_Row'
1605             );
1606         END IF;
1607 
1608         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1609 
1610 END Update_Row;
1611 
1612 --  Procedure Insert_Row
1613 
1614 PROCEDURE Insert_Row
1615 (   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
1616 )
1617 IS
1618 
1619 --l_source_system_code  varchar2(30);
1620 x_result              VARCHAR2(1);
1621 
1622 BEGIN
1623 /*
1624    l_source_system_code := fnd_profile.value('QP_SOURCE_SYSTEM_CODE');
1625 
1626    IF l_source_system_code is null then
1627 
1628 	  l_source_system_code := 'QP';
1629 
1630    END IF;
1631 */
1632 
1633     INSERT  INTO QP_LIST_HEADERS_B
1634     (       ATTRIBUTE1
1635     ,       ATTRIBUTE10
1636     ,       ATTRIBUTE11
1637     ,       ATTRIBUTE12
1638     ,       ATTRIBUTE13
1639     ,       ATTRIBUTE14
1640     ,       ATTRIBUTE15
1641     ,       ATTRIBUTE2
1642     ,       ATTRIBUTE3
1643     ,       ATTRIBUTE4
1644     ,       ATTRIBUTE5
1645     ,       ATTRIBUTE6
1646     ,       ATTRIBUTE7
1647     ,       ATTRIBUTE8
1648     ,       ATTRIBUTE9
1649     ,       AUTOMATIC_FLAG
1650     ,       COMMENTS
1651     ,       CONTEXT
1652     ,       CREATED_BY
1653     ,       CREATION_DATE
1654     ,       CURRENCY_CODE
1655     ,       DISCOUNT_LINES_FLAG
1656     ,       END_DATE_ACTIVE
1657     ,       FREIGHT_TERMS_CODE
1658     ,       GSA_INDICATOR
1659     ,       LAST_UPDATED_BY
1660     ,       LAST_UPDATE_DATE
1661     ,       LAST_UPDATE_LOGIN
1662     ,       LIST_HEADER_ID
1663     ,       LIST_TYPE_CODE
1664     ,       PROGRAM_APPLICATION_ID
1665     ,       PROGRAM_ID
1666     ,       PROGRAM_UPDATE_DATE
1667     ,       PRORATE_FLAG
1668     ,       REQUEST_ID
1669     ,       ROUNDING_FACTOR
1670     ,       SHIP_METHOD_CODE
1671     ,       START_DATE_ACTIVE
1672     ,       TERMS_ID
1673     ,       ASK_FOR_FLAG
1674     ,       SOURCE_SYSTEM_CODE
1675     ,       ACTIVE_FLAG
1676     ,       MOBILE_DOWNLOAD -- mkarya for bug 1944882
1677     ,       CURRENCY_HEADER_ID -- Multi-Currency SunilPandey
1678     ,       PTE_CODE -- Attributes Manager Giri
1679     ,	    LIST_SOURCE_CODE --Blanket Sales Order
1680     , 	    ORIG_SYSTEM_HEADER_REF --Blanket Sales Order
1681     , 	    GLOBAL_FLAG --Pricing Security gtippire
1682     ,       ORIG_ORG_ID -- Pricing Security sfiresto
1683     ,       SHAREABLE_FLAG
1684     ,       SOLD_TO_ORG_ID
1685     ,       LOCKED_FROM_LIST_HEADER_ID
1686     )
1687     VALUES
1688     (       p_PRICE_LIST_rec.attribute1
1689     ,       p_PRICE_LIST_rec.attribute10
1690     ,       p_PRICE_LIST_rec.attribute11
1691     ,       p_PRICE_LIST_rec.attribute12
1692     ,       p_PRICE_LIST_rec.attribute13
1693     ,       p_PRICE_LIST_rec.attribute14
1694     ,       p_PRICE_LIST_rec.attribute15
1695     ,       p_PRICE_LIST_rec.attribute2
1696     ,       p_PRICE_LIST_rec.attribute3
1697     ,       p_PRICE_LIST_rec.attribute4
1698     ,       p_PRICE_LIST_rec.attribute5
1699     ,       p_PRICE_LIST_rec.attribute6
1700     ,       p_PRICE_LIST_rec.attribute7
1701     ,       p_PRICE_LIST_rec.attribute8
1702     ,       p_PRICE_LIST_rec.attribute9
1703     ,       p_PRICE_LIST_rec.automatic_flag
1704     ,       p_PRICE_LIST_rec.comments
1705     ,       p_PRICE_LIST_rec.context
1706     ,       p_PRICE_LIST_rec.created_by
1707     ,       p_PRICE_LIST_rec.creation_date
1708     ,       p_PRICE_LIST_rec.currency_code
1709     ,       p_PRICE_LIST_rec.discount_lines_flag
1710     ,       trunc(p_PRICE_LIST_rec.end_date_active)
1711     ,       p_PRICE_LIST_rec.freight_terms_code
1712     ,       p_PRICE_LIST_rec.gsa_indicator
1713     ,       p_PRICE_LIST_rec.last_updated_by
1714     ,       p_PRICE_LIST_rec.last_update_date
1715     ,       p_PRICE_LIST_rec.last_update_login
1716     ,       p_PRICE_LIST_rec.list_header_id
1717     ,       p_PRICE_LIST_rec.list_type_code
1718     ,       p_PRICE_LIST_rec.program_application_id
1719     ,       p_PRICE_LIST_rec.program_id
1720     ,       p_PRICE_LIST_rec.program_update_date
1721     ,       p_PRICE_LIST_rec.prorate_flag
1722     ,       p_PRICE_LIST_rec.request_id
1723     ,       p_PRICE_LIST_rec.rounding_factor
1724     ,       p_PRICE_LIST_rec.ship_method_code
1725     ,       trunc(p_PRICE_LIST_rec.start_date_active)
1726     ,       p_PRICE_LIST_rec.terms_id
1727     ,       'N' /* ask_for_flag */
1728 --    ,       l_source_system_code
1729     ,       p_PRICE_LIST_rec.source_system_code
1730     ,       decode(p_PRICE_LIST_rec.active_flag, FND_API.G_MISS_CHAR, 'Y',
1731 			    p_PRICE_LIST_rec.active_flag)
1732     ,       decode(p_PRICE_LIST_rec.mobile_download, FND_API.G_MISS_CHAR, 'N',
1733 			    p_PRICE_LIST_rec.mobile_download) -- mkarya for bug 1944882
1734     ,       p_PRICE_LIST_rec.currency_header_id
1735     ,       p_PRICE_LIST_rec.pte_code  -- Giri for Attributes Manager
1736     ,	    p_PRICE_LIST_rec.list_source_code -- Blanket Sales Order
1737             --ENH Upgrade BOAPI for orig_sys...ref RAVI
1738     ,	    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
1739     ,       decode(p_PRICE_LIST_rec.global_flag, FND_API.G_MISS_CHAR, 'N',
1740 			    p_PRICE_LIST_rec.global_flag) -- Pricing Security gtippire
1741             --added for MOAC
1742     ,       p_PRICE_LIST_rec.org_id
1743     ,       p_PRICE_LIST_rec.shareable_flag
1744     ,       p_PRICE_LIST_rec.sold_to_org_id
1745     ,       p_PRICE_LIST_rec.locked_from_list_header_id
1746     );
1747 
1748     insert into QP_LIST_HEADERS_TL (
1749     LAST_UPDATE_LOGIN,
1750     NAME,
1751     DESCRIPTION,
1752     VERSION_NO,
1753     CREATION_DATE,
1754     CREATED_BY,
1755     LAST_UPDATE_DATE,
1756     LAST_UPDATED_BY,
1757     LIST_HEADER_ID,
1758     LANGUAGE,
1759     SOURCE_LANG
1760   ) select
1761     p_PRICE_LIST_rec.LAST_UPDATE_LOGIN,
1762     p_PRICE_LIST_rec.NAME,
1763     p_PRICE_LIST_rec.DESCRIPTION,
1764     p_PRICE_LIST_rec.version_no,
1765     p_PRICE_LIST_rec.CREATION_DATE,
1766     p_PRICE_LIST_rec.CREATED_BY,
1767     p_PRICE_LIST_rec.LAST_UPDATE_DATE,
1768     p_PRICE_LIST_rec.LAST_UPDATED_BY,
1769     p_PRICE_LIST_rec.LIST_HEADER_ID,
1770     L.LANGUAGE_CODE,
1771     userenv('LANG')
1772   from FND_LANGUAGES L
1773   where L.INSTALLED_FLAG in ('I', 'B')
1774   and not exists
1775     (select NULL
1776     from QP_LIST_HEADERS_TL T
1777     where T.LIST_HEADER_ID = p_PRICE_LIST_rec.LIST_HEADER_ID
1778     and T.LANGUAGE = L.LANGUAGE_CODE);
1779 
1780   IF p_PRICE_LIST_rec.list_type_code = 'AGR' THEN
1781     QP_security.create_default_grants( p_instance_type => QP_security.G_AGREEMENT_OBJECT,
1782                                        p_instance_pk1  => p_PRICE_LIST_rec.list_header_id,
1783                                        x_return_status => x_result);
1784   ELSE
1785     QP_security.create_default_grants( p_instance_type => QP_security.G_PRICELIST_OBJECT,
1786                                        p_instance_pk1  => p_PRICE_LIST_rec.list_header_id,
1787                                        x_return_status => x_result);
1788   END IF;
1789 
1790 EXCEPTION
1791 
1792     WHEN OTHERS THEN
1793 
1794         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1795         THEN
1796             oe_msg_pub.Add_Exc_Msg
1797             (   G_PKG_NAME
1798             ,   'Insert_Row'
1799             );
1800         END IF;
1801 
1802         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1803 
1804 END Insert_Row;
1805 
1806 --  Procedure Delete_Row
1807 
1808 PROCEDURE Delete_Row
1809 (   p_list_header_id                IN  NUMBER
1810 )
1811 IS
1812 cursor lines is
1813 select list_line_id
1814 from qp_list_lines
1815 where list_header_id = p_list_header_id;
1816 
1817 BEGIN
1818 
1819   for lines_rec in lines loop
1820 
1821     QP_PRICE_LIST_LINE_UTIL.DELETE_ROW(lines_rec.list_line_id);
1822 
1823   end loop;
1824 
1825   /* delete all qualifiers which refer to this list_header_id */
1826 
1827   delete from qp_qualifiers
1828   where list_header_id = p_list_header_id
1829   or ( qualifier_attr_value = to_char(p_list_header_id)
1830 	  and qualifier_context = 'MODLIST'
1831 	  and qualifier_attribute = 'QUALIFIER_ATTRIBUTE4' );
1832 
1833 
1834   delete from QP_LIST_HEADERS_TL
1835   where LIST_HEADER_ID = p_list_header_id;
1836 
1837  /*
1838   if (sql%notfound) then
1839     raise no_data_found;
1840   end if;
1841  */
1842 
1843     DELETE  FROM QP_LIST_HEADERS_B
1844     WHERE   LIST_HEADER_ID = p_list_header_id;
1845 
1846 
1847 
1848 EXCEPTION
1849 
1850     WHEN OTHERS THEN
1851 
1852         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1853         THEN
1854             oe_msg_pub.Add_Exc_Msg
1855             (   G_PKG_NAME
1856             ,   'Delete_Row'
1857             );
1858         END IF;
1859 
1860         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1861 
1862 END Delete_Row;
1863 
1864 --  Function Query_Row
1865 
1866 FUNCTION Query_Row
1867 (   p_list_header_id                IN  NUMBER
1868 ) RETURN QP_Price_List_PUB.Price_List_Rec_Type
1869 IS
1870 l_PRICE_LIST_rec              QP_Price_List_PUB.Price_List_Rec_Type;
1871 BEGIN
1872 
1873     SELECT  ATTRIBUTE1
1874     ,       ATTRIBUTE10
1875     ,       ATTRIBUTE11
1876     ,       ATTRIBUTE12
1877     ,       ATTRIBUTE13
1878     ,       ATTRIBUTE14
1879     ,       ATTRIBUTE15
1880     ,       ATTRIBUTE2
1881     ,       ATTRIBUTE3
1882     ,       ATTRIBUTE4
1883     ,       ATTRIBUTE5
1884     ,       ATTRIBUTE6
1885     ,       ATTRIBUTE7
1886     ,       ATTRIBUTE8
1887     ,       ATTRIBUTE9
1888     ,       AUTOMATIC_FLAG
1889     ,       COMMENTS
1890     ,       CONTEXT
1891     ,       CREATED_BY
1892     ,       CREATION_DATE
1893     ,       CURRENCY_CODE
1894     ,       DISCOUNT_LINES_FLAG
1895     ,       END_DATE_ACTIVE
1896     ,       FREIGHT_TERMS_CODE
1897     ,       GSA_INDICATOR
1898     ,       LAST_UPDATED_BY
1899     ,       LAST_UPDATE_DATE
1900     ,       LAST_UPDATE_LOGIN
1901     ,       LIST_HEADER_ID
1902     ,       LIST_TYPE_CODE
1903     ,       PROGRAM_APPLICATION_ID
1904     ,       PROGRAM_ID
1905     ,       PROGRAM_UPDATE_DATE
1906     ,       PRORATE_FLAG
1907     ,       REQUEST_ID
1908     ,       ROUNDING_FACTOR
1909     ,       SHIP_METHOD_CODE
1910     ,       START_DATE_ACTIVE
1911     ,       TERMS_ID
1912     ,       ACTIVE_FLAG
1913     ,       MOBILE_DOWNLOAD --mkarya for bug 1944882
1914     ,       CURRENCY_HEADER_ID --Multi-Currency SunilPandey
1915     ,       PTE_CODE --Attributes Manager Giri
1916     ,	    LIST_SOURCE_CODE --Blanket Sales Order
1917     ,	    ORIG_SYSTEM_HEADER_REF --Blanket Sales Order
1918     ,	    GLOBAL_FLAG --Pricing Security gtippire
1919     ,       SOURCE_SYSTEM_CODE
1920     ,       SHAREABLE_FLAG
1921     ,       SOLD_TO_ORG_ID
1922     ,       LOCKED_FROM_LIST_HEADER_ID
1923             --added for MOAC
1924     ,       ORIG_ORG_ID
1925     INTO    l_PRICE_LIST_rec.attribute1
1926     ,       l_PRICE_LIST_rec.attribute10
1927     ,       l_PRICE_LIST_rec.attribute11
1928     ,       l_PRICE_LIST_rec.attribute12
1929     ,       l_PRICE_LIST_rec.attribute13
1930     ,       l_PRICE_LIST_rec.attribute14
1931     ,       l_PRICE_LIST_rec.attribute15
1932     ,       l_PRICE_LIST_rec.attribute2
1933     ,       l_PRICE_LIST_rec.attribute3
1934     ,       l_PRICE_LIST_rec.attribute4
1935     ,       l_PRICE_LIST_rec.attribute5
1936     ,       l_PRICE_LIST_rec.attribute6
1937     ,       l_PRICE_LIST_rec.attribute7
1938     ,       l_PRICE_LIST_rec.attribute8
1939     ,       l_PRICE_LIST_rec.attribute9
1940     ,       l_PRICE_LIST_rec.automatic_flag
1941     ,       l_PRICE_LIST_rec.comments
1942     ,       l_PRICE_LIST_rec.context
1943     ,       l_PRICE_LIST_rec.created_by
1944     ,       l_PRICE_LIST_rec.creation_date
1945     ,       l_PRICE_LIST_rec.currency_code
1946     ,       l_PRICE_LIST_rec.discount_lines_flag
1947     ,       l_PRICE_LIST_rec.end_date_active
1948     ,       l_PRICE_LIST_rec.freight_terms_code
1949     ,       l_PRICE_LIST_rec.gsa_indicator
1950     ,       l_PRICE_LIST_rec.last_updated_by
1951     ,       l_PRICE_LIST_rec.last_update_date
1952     ,       l_PRICE_LIST_rec.last_update_login
1953     ,       l_PRICE_LIST_rec.list_header_id
1954     ,       l_PRICE_LIST_rec.list_type_code
1955     ,       l_PRICE_LIST_rec.program_application_id
1956     ,       l_PRICE_LIST_rec.program_id
1957     ,       l_PRICE_LIST_rec.program_update_date
1958     ,       l_PRICE_LIST_rec.prorate_flag
1959     ,       l_PRICE_LIST_rec.request_id
1960     ,       l_PRICE_LIST_rec.rounding_factor
1961     ,       l_PRICE_LIST_rec.ship_method_code
1962     ,       l_PRICE_LIST_rec.start_date_active
1963     ,       l_PRICE_LIST_rec.terms_id
1964     ,       l_PRICE_LIST_rec.active_flag
1965     ,       l_PRICE_LIST_rec.mobile_download -- mkarya for bug 1944882
1966     ,       l_PRICE_LIST_rec.currency_header_id -- Multi-Currency SunilPandey
1967     ,       l_PRICE_LIST_rec.pte_code -- Attributes Manager Giri
1968     ,	    l_PRICE_LIST_rec.list_source_code -- Blanket Sales Order
1969     ,       l_PRICE_LIST_rec.orig_system_header_ref -- Blanket Sales Order
1970     ,       l_PRICE_LIST_rec.global_flag -- Pricing Security gtippire
1971     ,       l_PRICE_LIST_rec.source_system_code
1972     ,       l_PRICE_LIST_rec.shareable_flag
1973     ,       l_PRICE_LIST_rec.sold_to_org_id
1974     ,       l_PRICE_LIST_rec.locked_from_list_header_id
1975             --added for MOAC
1976     ,       l_PRICE_LIST_rec.org_id
1977     FROM    QP_LIST_HEADERS_B
1978     WHERE   LIST_HEADER_ID = p_list_header_id
1979     ;
1980 
1981     SELECT NAME
1982     ,      DESCRIPTION
1983     ,      VERSION_NO
1984     INTO   l_PRICE_LIST_rec.name
1985     ,      l_PRICE_LIST_rec.description
1986     ,      l_PRICE_LIST_rec.version_no
1987     FROM   QP_LIST_HEADERS_TL
1988     WHERE  LIST_HEADER_ID = p_list_header_id
1989     AND    LANGUAGE = userenv('LANG');
1990 
1991 
1992     RETURN l_PRICE_LIST_rec;
1993 
1994 EXCEPTION
1995 
1996     WHEN OTHERS THEN
1997 
1998         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1999         THEN
2000             oe_msg_pub.Add_Exc_Msg
2001             (   G_PKG_NAME
2002             ,   'Query_Row'
2003             );
2004         END IF;
2005 
2006         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2007 
2008 END Query_Row;
2009 
2010 --  Procedure       lock_Row
2011 --
2012 
2013 PROCEDURE Lock_Row
2014 (   x_return_status                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2015 ,   p_PRICE_LIST_rec                IN            QP_Price_List_PUB.Price_List_Rec_Type
2016 ,   x_PRICE_LIST_rec                OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Rec_Type
2017 )
2018 IS
2019 cursor c1 is select
2020       NAME,
2021       DESCRIPTION,
2022 	 VERSION_NO,
2023       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
2024     from QP_LIST_HEADERS_TL
2025     where LIST_HEADER_ID = p_PRICE_LIST_rec.LIST_HEADER_ID
2026     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
2027     for update of LIST_HEADER_ID nowait;
2028 
2029 l_PRICE_LIST_rec              QP_Price_List_PUB.Price_List_Rec_Type;
2030 BEGIN
2031 
2032     SELECT  ATTRIBUTE1
2033     ,       ATTRIBUTE10
2034     ,       ATTRIBUTE11
2035     ,       ATTRIBUTE12
2036     ,       ATTRIBUTE13
2037     ,       ATTRIBUTE14
2038     ,       ATTRIBUTE15
2039     ,       ATTRIBUTE2
2040     ,       ATTRIBUTE3
2041     ,       ATTRIBUTE4
2042     ,       ATTRIBUTE5
2043     ,       ATTRIBUTE6
2044     ,       ATTRIBUTE7
2045     ,       ATTRIBUTE8
2046     ,       ATTRIBUTE9
2047     ,       AUTOMATIC_FLAG
2048     ,       COMMENTS
2049     ,       CONTEXT
2050     ,       CREATED_BY
2051     ,       CREATION_DATE
2052     ,       CURRENCY_CODE
2053     ,       DISCOUNT_LINES_FLAG
2054     ,       END_DATE_ACTIVE
2055     ,       FREIGHT_TERMS_CODE
2056     ,       GSA_INDICATOR
2057     ,       LAST_UPDATED_BY
2058     ,       LAST_UPDATE_DATE
2059     ,       LAST_UPDATE_LOGIN
2060     ,       LIST_HEADER_ID
2061     ,       LIST_TYPE_CODE
2062     ,       PROGRAM_APPLICATION_ID
2063     ,       PROGRAM_ID
2064     ,       PROGRAM_UPDATE_DATE
2065     ,       PRORATE_FLAG
2066     ,       REQUEST_ID
2067     ,       ROUNDING_FACTOR
2068     ,       SHIP_METHOD_CODE
2069     ,       START_DATE_ACTIVE
2070     ,       TERMS_ID
2071     ,       ACTIVE_FLAG  -- Added by dhgupta for bug 2144903
2072     ,       MOBILE_DOWNLOAD  -- Added by dhgupta for bug 2144903
2073     ,       CURRENCY_HEADER_ID  --Multi-Currency Change SunilPandey; new change
2074     ,       PTE_CODE  --Attributes Manager Change - Giri
2075     ,       LIST_SOURCE_CODE --Blanket Sales Order
2076     ,	    ORIG_SYSTEM_HEADER_REF -- Blanket Sales Order
2077     ,	    GLOBAL_FLAG -- Pricing Security gtippire
2078     ,       SOURCE_SYSTEM_CODE
2079     ,       SHAREABLE_FLAG
2080     ,       SOLD_TO_ORG_ID
2081     ,       LOCKED_FROM_LIST_HEADER_ID
2082             --added for MOAC
2083     ,       ORIG_ORG_ID
2084     INTO    l_PRICE_LIST_rec.attribute1
2085     ,       l_PRICE_LIST_rec.attribute10
2086     ,       l_PRICE_LIST_rec.attribute11
2087     ,       l_PRICE_LIST_rec.attribute12
2088     ,       l_PRICE_LIST_rec.attribute13
2089     ,       l_PRICE_LIST_rec.attribute14
2090     ,       l_PRICE_LIST_rec.attribute15
2091     ,       l_PRICE_LIST_rec.attribute2
2092     ,       l_PRICE_LIST_rec.attribute3
2093     ,       l_PRICE_LIST_rec.attribute4
2094     ,       l_PRICE_LIST_rec.attribute5
2095     ,       l_PRICE_LIST_rec.attribute6
2096     ,       l_PRICE_LIST_rec.attribute7
2097     ,       l_PRICE_LIST_rec.attribute8
2098     ,       l_PRICE_LIST_rec.attribute9
2099     ,       l_PRICE_LIST_rec.automatic_flag
2100     ,       l_PRICE_LIST_rec.comments
2101     ,       l_PRICE_LIST_rec.context
2102     ,       l_PRICE_LIST_rec.created_by
2103     ,       l_PRICE_LIST_rec.creation_date
2104     ,       l_PRICE_LIST_rec.currency_code
2105     ,       l_PRICE_LIST_rec.discount_lines_flag
2106     ,       l_PRICE_LIST_rec.end_date_active
2107     ,       l_PRICE_LIST_rec.freight_terms_code
2108     ,       l_PRICE_LIST_rec.gsa_indicator
2109     ,       l_PRICE_LIST_rec.last_updated_by
2110     ,       l_PRICE_LIST_rec.last_update_date
2111     ,       l_PRICE_LIST_rec.last_update_login
2112     ,       l_PRICE_LIST_rec.list_header_id
2113     ,       l_PRICE_LIST_rec.list_type_code
2114     ,       l_PRICE_LIST_rec.program_application_id
2115     ,       l_PRICE_LIST_rec.program_id
2116     ,       l_PRICE_LIST_rec.program_update_date
2117     ,       l_PRICE_LIST_rec.prorate_flag
2118     ,       l_PRICE_LIST_rec.request_id
2119     ,       l_PRICE_LIST_rec.rounding_factor
2120     ,       l_PRICE_LIST_rec.ship_method_code
2121     ,       l_PRICE_LIST_rec.start_date_active
2122     ,       l_PRICE_LIST_rec.terms_id
2123     ,       l_PRICE_LIST_rec.active_flag  -- Added by dhgupta for bug 2144903
2124     ,       l_PRICE_LIST_rec.mobile_download -- Added by dhgupta for bug 2144903
2125     ,       l_PRICE_LIST_rec.currency_header_id --Multi-Currency Change SunilPandey; new change
2126     ,       l_PRICE_LIST_rec.pte_code --Attributes manager Change - Giri
2127     ,	    l_PRICE_LIST_rec.list_source_code --Blanket Sales Order
2128     ,	    l_PRICE_LIST_rec.orig_system_header_ref --Blanket Sales Order
2129     ,	    l_PRICE_LIST_rec.global_flag --Pricing Security gtippire
2130     ,       l_PRICE_LIST_rec.source_system_code
2131     ,       l_PRICE_LIST_rec.shareable_flag
2132     ,       l_PRICE_LIST_rec.sold_to_org_id
2133     ,       l_PRICE_LIST_rec.locked_from_list_header_id
2134             --added for MOAC
2135     ,       l_PRICE_LIST_rec.org_id
2136     --for moac changes QP_LIST_HEADERS_B to all_b to enable locks/updates to PL with orig_org_id
2137     --that do not belong to the responsibility when the user has update privilges
2138     FROM    QP_LIST_HEADERS_ALL_B
2139     WHERE   LIST_HEADER_ID = p_PRICE_LIST_rec.list_header_id
2140         FOR UPDATE NOWAIT;
2141 
2142     --  Row locked. Compare IN attributes to DB attributes.
2143 
2144     IF  QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute1,
2145                          l_PRICE_LIST_rec.attribute1)
2146     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute10,
2147                          l_PRICE_LIST_rec.attribute10)
2148     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute11,
2149                          l_PRICE_LIST_rec.attribute11)
2150     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute12,
2151                          l_PRICE_LIST_rec.attribute12)
2152     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute13,
2153                          l_PRICE_LIST_rec.attribute13)
2154     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute14,
2155                          l_PRICE_LIST_rec.attribute14)
2156     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute15,
2157                          l_PRICE_LIST_rec.attribute15)
2158     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute2,
2159                          l_PRICE_LIST_rec.attribute2)
2160     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute3,
2161                          l_PRICE_LIST_rec.attribute3)
2162     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute4,
2163                          l_PRICE_LIST_rec.attribute4)
2164     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute5,
2165                          l_PRICE_LIST_rec.attribute5)
2166     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute6,
2167                          l_PRICE_LIST_rec.attribute6)
2168     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute7,
2169                          l_PRICE_LIST_rec.attribute7)
2170     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute8,
2171                          l_PRICE_LIST_rec.attribute8)
2172     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.attribute9,
2173                          l_PRICE_LIST_rec.attribute9)
2174     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.automatic_flag,
2175                          l_PRICE_LIST_rec.automatic_flag)
2176     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.comments,
2177                          l_PRICE_LIST_rec.comments)
2178     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.context,
2179                          l_PRICE_LIST_rec.context)
2180     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.created_by,
2181                          l_PRICE_LIST_rec.created_by)
2182     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.creation_date,
2183                          l_PRICE_LIST_rec.creation_date)
2184     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.currency_code,
2185                          l_PRICE_LIST_rec.currency_code)
2186     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.discount_lines_flag,
2187                          l_PRICE_LIST_rec.discount_lines_flag)
2188     AND QP_GLOBALS.Equal(to_date(to_char(p_PRICE_LIST_rec.end_date_active,'DD/MM/YYYY'),'DD/MM/YYYY'),
2189                          to_date(to_char(l_PRICE_LIST_rec.end_date_active,'DD/MM/YYYY'),'DD/MM/YYYY'))
2190     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.freight_terms_code,
2191                          l_PRICE_LIST_rec.freight_terms_code)
2192     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.gsa_indicator,
2193                          l_PRICE_LIST_rec.gsa_indicator)
2194     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.last_updated_by,
2195                          l_PRICE_LIST_rec.last_updated_by)
2196     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_date,
2197                          l_PRICE_LIST_rec.last_update_date)
2198     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_login,
2199                          l_PRICE_LIST_rec.last_update_login)
2200     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_header_id,
2201                          l_PRICE_LIST_rec.list_header_id)
2202     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_type_code,
2203                          l_PRICE_LIST_rec.list_type_code)
2204     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.program_application_id,
2205                          l_PRICE_LIST_rec.program_application_id)
2206     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.program_id,
2207                          l_PRICE_LIST_rec.program_id)
2208     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.program_update_date,
2209                          l_PRICE_LIST_rec.program_update_date)
2210     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.prorate_flag,
2211                          l_PRICE_LIST_rec.prorate_flag)
2212     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.request_id,
2213                          l_PRICE_LIST_rec.request_id)
2214     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.rounding_factor,
2215                          l_PRICE_LIST_rec.rounding_factor)
2216     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.ship_method_code,
2217                          l_PRICE_LIST_rec.ship_method_code)
2218     AND QP_GLOBALS.Equal(to_date(to_char(p_PRICE_LIST_rec.start_date_active,'DD/MM/YYYY'),'DD/MM/YYYY'),
2219                          to_date(to_char(l_PRICE_LIST_rec.start_date_active,'DD/MM/YYYY'),'DD/MM/YYYY'))
2220     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.terms_id,
2221                          l_PRICE_LIST_rec.terms_id)
2222     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.active_flag,    -- Added by dhgupta for bug 2144903
2223                          l_PRICE_LIST_rec.active_flag)
2224     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.mobile_download,  -- Added by dhgupta for bug 2144903
2225                          l_PRICE_LIST_rec.mobile_download)
2226     -- Multi-Currency Change SunilPandey
2227     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.currency_header_id,
2228                          l_PRICE_LIST_rec.currency_header_id)
2229     -- Blanket Sales Order
2230     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_source_code,
2231                          l_PRICE_LIST_rec.list_source_code)
2232     -- Bug # 5128941
2233     --AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.orig_system_header_ref,
2234     --                     l_PRICE_LIST_rec.orig_system_header_ref)
2235     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.global_flag,  -- Pricing Security gtippire
2236                          l_PRICE_LIST_rec.global_flag)
2237     -- Blanket Pricing
2238     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.source_system_code,
2239                          l_PRICE_LIST_rec.source_system_code)
2240     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.shareable_flag,
2241                          l_PRICE_LIST_rec.shareable_flag)
2242     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.sold_to_org_id,
2243 	                 l_PRICE_LIST_rec.sold_to_org_id)
2244     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.locked_from_list_header_id,
2245 	                 l_PRICE_LIST_rec.locked_from_list_header_id)
2246     --added for MOAC
2247     AND QP_GLOBALS.Equal(p_PRICE_LIST_rec.org_id,
2248                          l_PRICE_LIST_rec.org_id)
2249     THEN
2250 
2251         --  Row has not changed. Set out parameter.
2252 
2253         x_PRICE_LIST_rec               := l_PRICE_LIST_rec;
2254 
2255         --  Set return status
2256 
2257         x_return_status                := FND_API.G_RET_STS_SUCCESS;
2258         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2259 
2260        oe_debug_pub.add('success 1');
2261 
2262     ELSE
2263 
2264        --8594682 - Add debug messages for OE_LOCK error
2265 	oe_debug_pub.ADD('-------------------Data compare in Price list header (database vs record)------------------');
2266 	oe_debug_pub.add('list_header_id	:'||l_PRICE_LIST_rec.list_header_id||':'||p_PRICE_LIST_rec.list_header_id||':');
2267 	oe_debug_pub.ADD('attribute1		:'||l_PRICE_LIST_rec.attribute1||':'||p_PRICE_LIST_rec.attribute1||':');
2268 	oe_debug_pub.ADD('attribute2		:'||l_PRICE_LIST_rec.attribute2||':'||p_PRICE_LIST_rec.attribute2||':');
2269 	oe_debug_pub.ADD('attribute3		:'||l_PRICE_LIST_rec.attribute3||':'||p_PRICE_LIST_rec.attribute3||':');
2270 	oe_debug_pub.ADD('attribute4		:'||l_PRICE_LIST_rec.attribute4||':'||p_PRICE_LIST_rec.attribute4||':');
2271 	oe_debug_pub.ADD('attribute5		:'||l_PRICE_LIST_rec.attribute5||':'||p_PRICE_LIST_rec.attribute5||':');
2272 	oe_debug_pub.ADD('attribute6		:'||l_PRICE_LIST_rec.attribute6||':'||p_PRICE_LIST_rec.attribute6||':');
2273 	oe_debug_pub.ADD('attribute7		:'||l_PRICE_LIST_rec.attribute7||':'||p_PRICE_LIST_rec.attribute7||':');
2274 	oe_debug_pub.ADD('attribute8		:'||l_PRICE_LIST_rec.attribute8||':'||p_PRICE_LIST_rec.attribute8||':');
2275 	oe_debug_pub.ADD('attribute9		:'||l_PRICE_LIST_rec.attribute9||':'||p_PRICE_LIST_rec.attribute9||':');
2276 	oe_debug_pub.ADD('attribute10		:'||l_PRICE_LIST_rec.attribute10||':'||p_PRICE_LIST_rec.attribute10||':');
2277 	oe_debug_pub.ADD('attribute11		:'||l_PRICE_LIST_rec.attribute11||':'||p_PRICE_LIST_rec.attribute11||':');
2278 	oe_debug_pub.ADD('attribute12		:'||l_PRICE_LIST_rec.attribute12||':'||p_PRICE_LIST_rec.attribute12||':');
2279 	oe_debug_pub.ADD('attribute13		:'||l_PRICE_LIST_rec.attribute13||':'||p_PRICE_LIST_rec.attribute13||':');
2280 	oe_debug_pub.ADD('attribute14		:'||l_PRICE_LIST_rec.attribute14||':'||p_PRICE_LIST_rec.attribute14||':');
2281 	oe_debug_pub.ADD('attribute15		:'||l_PRICE_LIST_rec.attribute15||':'||p_PRICE_LIST_rec.attribute15||':');
2282 	oe_debug_pub.ADD('AUTOMATIC_FLAG	:'||l_PRICE_LIST_rec.AUTOMATIC_FLAG||':'||p_PRICE_LIST_rec.AUTOMATIC_FLAG||':');
2283 	oe_debug_pub.ADD('COMMENTS		:'||l_PRICE_LIST_rec.COMMENTS||':'||p_PRICE_LIST_rec.COMMENTS||':');
2284 	oe_debug_pub.ADD('CONTEXT		:'||l_PRICE_LIST_rec.CONTEXT||':'||p_PRICE_LIST_rec.CONTEXT||':');
2285 	oe_debug_pub.ADD('CREATED_BY		:'||l_PRICE_LIST_rec.CREATED_BY||':'||p_PRICE_LIST_rec.CREATED_BY||':');
2286 	oe_debug_pub.ADD('CREATION_DATE		:'||l_PRICE_LIST_rec.CREATION_DATE||':'||p_PRICE_LIST_rec.CREATION_DATE||':');
2287 	oe_debug_pub.ADD('CURRENCY_CODE		:'||l_PRICE_LIST_rec.CURRENCY_CODE||':'||p_PRICE_LIST_rec.CURRENCY_CODE||':');
2288 	oe_debug_pub.ADD('DISCOUNT_LINES_FLAG	:'||l_PRICE_LIST_rec.DISCOUNT_LINES_FLAG||':'||p_PRICE_LIST_rec.DISCOUNT_LINES_FLAG||':');
2289 	oe_debug_pub.ADD('END_DATE_ACTIVE	:'||l_PRICE_LIST_rec.END_DATE_ACTIVE||':'||p_PRICE_LIST_rec.END_DATE_ACTIVE||':');
2290 	oe_debug_pub.ADD('FREIGHT_TERMS_CODE	:'||l_PRICE_LIST_rec.FREIGHT_TERMS_CODE||':'||p_PRICE_LIST_rec.FREIGHT_TERMS_CODE||':');
2291 	oe_debug_pub.ADD('GSA_INDICATOR		:'||l_PRICE_LIST_rec.GSA_INDICATOR||':'||p_PRICE_LIST_rec.GSA_INDICATOR||':');
2292 	oe_debug_pub.ADD('LIST_TYPE_CODE	:'||l_PRICE_LIST_rec.LIST_TYPE_CODE||':'||p_PRICE_LIST_rec.LIST_TYPE_CODE||':');
2293 	oe_debug_pub.ADD('PROGRAM_APPLICATION_ID:'||l_PRICE_LIST_rec.PROGRAM_APPLICATION_ID||':'||p_PRICE_LIST_rec.PROGRAM_APPLICATION_ID||':');
2294 	oe_debug_pub.ADD('PRORATE_FLAG		:'||l_PRICE_LIST_rec.PRORATE_FLAG||':'||p_PRICE_LIST_rec.PRORATE_FLAG||':');
2295 	oe_debug_pub.ADD('REQUEST_ID		:'||l_PRICE_LIST_rec.REQUEST_ID||':'||p_PRICE_LIST_rec.REQUEST_ID||':');
2296 	oe_debug_pub.ADD('ROUNDING_FACTOR	:'||l_PRICE_LIST_rec.ROUNDING_FACTOR||':'||p_PRICE_LIST_rec.ROUNDING_FACTOR||':');
2297 	oe_debug_pub.ADD('SHIP_METHOD_CODE	:'||l_PRICE_LIST_rec.SHIP_METHOD_CODE||':'||p_PRICE_LIST_rec.SHIP_METHOD_CODE||':');
2298 	oe_debug_pub.ADD('START_DATE_ACTIVE	:'||l_PRICE_LIST_rec.START_DATE_ACTIVE||':'||p_PRICE_LIST_rec.START_DATE_ACTIVE||':');
2299 	oe_debug_pub.ADD('TERMS_ID		:'||l_PRICE_LIST_rec.TERMS_ID||':'||p_PRICE_LIST_rec.TERMS_ID||':');
2300 	oe_debug_pub.ADD('ACTIVE_FLAG		:'||l_PRICE_LIST_rec.ACTIVE_FLAG||':'||p_PRICE_LIST_rec.ACTIVE_FLAG||':');
2301 	oe_debug_pub.ADD('MOBILE_DOWNLOAD	:'||l_PRICE_LIST_rec.MOBILE_DOWNLOAD||':'||p_PRICE_LIST_rec.MOBILE_DOWNLOAD||':');
2302 	oe_debug_pub.ADD('CURRENCY_HEADER_ID	:'||l_PRICE_LIST_rec.CURRENCY_HEADER_ID||':'||p_PRICE_LIST_rec.CURRENCY_HEADER_ID||':');
2303 	oe_debug_pub.ADD('PTE_CODE		:'||l_PRICE_LIST_rec.PTE_CODE||':'||p_PRICE_LIST_rec.PTE_CODE||':');
2304 	oe_debug_pub.ADD('LIST_SOURCE_CODE	:'||l_PRICE_LIST_rec.LIST_SOURCE_CODE||':'||p_PRICE_LIST_rec.LIST_SOURCE_CODE||':');
2305 	oe_debug_pub.ADD('ORIG_SYSTEM_HEADER_REF:'||l_PRICE_LIST_rec.ORIG_SYSTEM_HEADER_REF||':'||p_PRICE_LIST_rec.ORIG_SYSTEM_HEADER_REF||':');
2306 	oe_debug_pub.ADD('GLOBAL_FLAG		:'||l_PRICE_LIST_rec.GLOBAL_FLAG||':'||p_PRICE_LIST_rec.GLOBAL_FLAG||':');
2307 	oe_debug_pub.ADD('SOURCE_SYSTEM_CODE	:'||l_PRICE_LIST_rec.SOURCE_SYSTEM_CODE||':'||p_PRICE_LIST_rec.SOURCE_SYSTEM_CODE||':');
2308 	oe_debug_pub.ADD('SHAREABLE_FLAG	:'||l_PRICE_LIST_rec.SHAREABLE_FLAG||':'||p_PRICE_LIST_rec.SHAREABLE_FLAG||':');
2309 	oe_debug_pub.ADD('SOLD_TO_ORG_ID	:'||l_PRICE_LIST_rec.SOLD_TO_ORG_ID||':'||p_PRICE_LIST_rec.SOLD_TO_ORG_ID||':');
2310 	oe_debug_pub.ADD('LOCKED_FROM_LIST_HEADER_ID:'||l_PRICE_LIST_rec.LOCKED_FROM_LIST_HEADER_ID||':'||p_PRICE_LIST_rec.LOCKED_FROM_LIST_HEADER_ID||':');
2311 	oe_debug_pub.ADD('-------------------Data compare in price list header end------------------');
2312 	--end 8594682
2313 
2314        if not QP_GLOBALS.EQUAL(p_PRICE_LIST_rec.list_source_code,l_PRICE_LIST_rec.list_source_code) then
2315         --  Row has changed by another user.
2316         oe_debug_pub.add('Passed Value: LSC'||p_PRICE_LIST_rec.list_source_code);
2317         oe_debug_pub.add('DB Value: LSC'||l_PRICE_LIST_rec.list_source_code);
2318 
2319        end if ;
2320 
2321       if not QP_GLOBALS.EQUAL(p_PRICE_LIST_rec.orig_system_header_ref,l_PRICE_LIST_rec.orig_system_header_ref) then
2322 
2323         oe_debug_pub.add('Passed Value: OSHR'||p_PRICE_LIST_rec.orig_system_header_ref);
2324 
2325 
2326         oe_debug_pub.add('DB Value: OSHR'||l_PRICE_LIST_rec.orig_system_header_ref);
2327       end if;
2328         oe_debug_pub.add('failed 1');
2329 
2330         x_return_status                := FND_API.G_RET_STS_ERROR;
2331         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2332 
2333         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2334         THEN
2335 
2336             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
2337             oe_msg_pub.Add;
2338 
2339         END IF;
2340 
2341     END IF;
2342 
2343     for tlinfo in c1 loop
2344     if (tlinfo.BASELANG = 'Y') then
2345         oe_debug_pub.add('DB Value: name'||tlinfo.NAME||' Passed Value: '|| p_PRICE_LIST_rec.NAME);
2346         oe_debug_pub.add('DB Value: description'||tlinfo.description||' Passed Value: '|| p_PRICE_LIST_rec.description);
2347         oe_debug_pub.add('DB Value: version_no'||tlinfo.version_no||' Passed Value: '|| p_PRICE_LIST_rec.version_no);
2348       if ( 1=1 --   (tlinfo.NAME = p_PRICE_LIST_rec.NAME)
2349           AND ((tlinfo.DESCRIPTION = p_PRICE_LIST_rec.DESCRIPTION)
2350                OR ((tlinfo.DESCRIPTION is null) AND (p_PRICE_LIST_rec.DESCRIPTION is null)))
2351           AND ((tlinfo.VERSION_NO = p_PRICE_LIST_rec.VERSION_NO)
2352                OR ((tlinfo.VERSION_NO is null) AND (p_PRICE_LIST_rec.VERSION_NO is null)))
2353       ) then
2354              x_PRICE_LIST_rec.NAME := tlinfo.NAME;
2355              x_PRICE_LIST_rec.VERSION_NO := tlinfo.VERSION_NO;
2356              x_PRICE_LIST_rec.DESCRIPTION := tlinfo.DESCRIPTION;
2357       else
2358                 oe_debug_pub.add('failed 2');
2359 
2360         oe_debug_pub.add('tlinfo.name - rec.name ' || tlinfo.name || ' - ' || p_PRICE_LIST_rec.name );
2361 
2362         oe_debug_pub.add('tlinfo.description - rec.desc ' || tlinfo.description || ' - ' || p_PRICE_LIST_rec.description );
2363 
2364         oe_debug_pub.add('tlinfo.ver_no - rec.ver_no ' || tlinfo.version_no || ' - ' || p_PRICE_LIST_rec.version_no );
2365 
2366         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
2367         app_exception.raise_exception;
2368       end if;
2369     end if;
2370   end loop;
2371 
2372 
2373 
2374 EXCEPTION
2375 
2376     WHEN NO_DATA_FOUND THEN
2377 
2378         x_return_status                := FND_API.G_RET_STS_ERROR;
2379         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2380 
2381         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2382         THEN
2383 
2384             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
2385             oe_msg_pub.Add;
2386 
2387         END IF;
2388     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2389 
2390         x_return_status                := FND_API.G_RET_STS_ERROR;
2391         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2392 
2393         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2394         THEN
2395 
2396             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
2397             oe_msg_pub.Add;
2398 
2399         END IF;
2400     WHEN OTHERS THEN
2401 
2402         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2403         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2404 
2405         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2406         THEN
2407             oe_msg_pub.Add_Exc_Msg
2408             (   G_PKG_NAME
2409             ,   'Lock_Row'
2410             );
2411         END IF;
2412 
2413 END Lock_Row;
2414 
2415 --  Function Get_Values
2416 
2417 FUNCTION Get_Values
2418 (   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
2419 ,   p_old_PRICE_LIST_rec            IN  QP_Price_List_PUB.Price_List_Rec_Type :=
2420                                         QP_Price_List_PUB.G_MISS_PRICE_LIST_REC
2421 ) RETURN QP_Price_List_PUB.Price_List_Val_Rec_Type
2422 IS
2423 l_PRICE_LIST_val_rec          QP_Price_List_PUB.Price_List_Val_Rec_Type;
2424 BEGIN
2425 
2426     IF p_PRICE_LIST_rec.automatic_flag IS NOT NULL AND
2427         p_PRICE_LIST_rec.automatic_flag <> FND_API.G_MISS_CHAR AND
2428         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.automatic_flag,
2429         p_old_PRICE_LIST_rec.automatic_flag)
2430     THEN
2431         l_PRICE_LIST_val_rec.automatic := QP_Id_To_Value.Automatic
2432         (   p_automatic_flag              => p_PRICE_LIST_rec.automatic_flag
2433         );
2434     END IF;
2435 
2436     IF p_PRICE_LIST_rec.currency_code IS NOT NULL AND
2437         p_PRICE_LIST_rec.currency_code <> FND_API.G_MISS_CHAR AND
2438         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.currency_code,
2439         p_old_PRICE_LIST_rec.currency_code)
2440     THEN
2441         l_PRICE_LIST_val_rec.currency := QP_Id_To_Value.Currency
2442         (   p_currency_code               => p_PRICE_LIST_rec.currency_code
2443         );
2444     END IF;
2445 
2446     IF p_PRICE_LIST_rec.discount_lines_flag IS NOT NULL AND
2447         p_PRICE_LIST_rec.discount_lines_flag <> FND_API.G_MISS_CHAR AND
2448         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.discount_lines_flag,
2449         p_old_PRICE_LIST_rec.discount_lines_flag)
2450     THEN
2451         l_PRICE_LIST_val_rec.discount_lines := QP_Id_To_Value.Discount_Lines
2452         (   p_discount_lines_flag         => p_PRICE_LIST_rec.discount_lines_flag
2453         );
2454     END IF;
2455 
2456     IF p_PRICE_LIST_rec.freight_terms_code IS NOT NULL AND
2457         p_PRICE_LIST_rec.freight_terms_code <> FND_API.G_MISS_CHAR AND
2458         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.freight_terms_code,
2459         p_old_PRICE_LIST_rec.freight_terms_code)
2460     THEN
2461         l_PRICE_LIST_val_rec.freight_terms := QP_Id_To_Value.Freight_Terms
2462         (   p_freight_terms_code          => p_PRICE_LIST_rec.freight_terms_code
2463         );
2464     END IF;
2465 
2466     IF p_PRICE_LIST_rec.list_header_id IS NOT NULL AND
2467         p_PRICE_LIST_rec.list_header_id <> FND_API.G_MISS_NUM AND
2468         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_header_id,
2469         p_old_PRICE_LIST_rec.list_header_id)
2470     THEN
2471         l_PRICE_LIST_val_rec.list_header := QP_Id_To_Value.List_Header
2472         (   p_list_header_id              => p_PRICE_LIST_rec.list_header_id
2473         );
2474     END IF;
2475 
2476     IF p_PRICE_LIST_rec.list_type_code IS NOT NULL AND
2477         p_PRICE_LIST_rec.list_type_code <> FND_API.G_MISS_CHAR AND
2478         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.list_type_code,
2479         p_old_PRICE_LIST_rec.list_type_code)
2480     THEN
2481         l_PRICE_LIST_val_rec.list_type := QP_Id_To_Value.List_Type
2482         (   p_list_type_code              => p_PRICE_LIST_rec.list_type_code
2483         );
2484     END IF;
2485 
2486     IF p_PRICE_LIST_rec.prorate_flag IS NOT NULL AND
2487         p_PRICE_LIST_rec.prorate_flag <> FND_API.G_MISS_CHAR AND
2488         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.prorate_flag,
2489         p_old_PRICE_LIST_rec.prorate_flag)
2490     THEN
2491         l_PRICE_LIST_val_rec.prorate := QP_Id_To_Value.Prorate
2492         (   p_prorate_flag                => p_PRICE_LIST_rec.prorate_flag
2493         );
2494     END IF;
2495 
2496     IF p_PRICE_LIST_rec.ship_method_code IS NOT NULL AND
2497         p_PRICE_LIST_rec.ship_method_code <> FND_API.G_MISS_CHAR AND
2498         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.ship_method_code,
2499         p_old_PRICE_LIST_rec.ship_method_code)
2500     THEN
2501         l_PRICE_LIST_val_rec.ship_method := QP_Id_To_Value.Ship_Method
2502         (   p_ship_method_code            => p_PRICE_LIST_rec.ship_method_code
2503         );
2504     END IF;
2505 
2506     IF p_PRICE_LIST_rec.terms_id IS NOT NULL AND
2507         p_PRICE_LIST_rec.terms_id <> FND_API.G_MISS_NUM AND
2508         NOT QP_GLOBALS.Equal(p_PRICE_LIST_rec.terms_id,
2509         p_old_PRICE_LIST_rec.terms_id)
2510     THEN
2511         l_PRICE_LIST_val_rec.terms := QP_Id_To_Value.Terms
2512         (   p_terms_id                    => p_PRICE_LIST_rec.terms_id
2513         );
2514     END IF;
2515 
2516     RETURN l_PRICE_LIST_val_rec;
2517 
2518 END Get_Values;
2519 
2520 --  Function Get_Ids
2521 
2522 FUNCTION Get_Ids
2523 (   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
2524 ,   p_PRICE_LIST_val_rec            IN  QP_Price_List_PUB.Price_List_Val_Rec_Type
2525 ) RETURN QP_Price_List_PUB.Price_List_Rec_Type
2526 IS
2527 l_PRICE_LIST_rec              QP_Price_List_PUB.Price_List_Rec_Type;
2528 BEGIN
2529 
2530     --  initialize  return_status.
2531 
2532     l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2533 
2534     --  initialize l_PRICE_LIST_rec.
2535 
2536     l_PRICE_LIST_rec := p_PRICE_LIST_rec;
2537 
2538     IF  p_PRICE_LIST_val_rec.automatic <> FND_API.G_MISS_CHAR
2539     THEN
2540 
2541         IF p_PRICE_LIST_rec.automatic_flag <> FND_API.G_MISS_CHAR THEN
2542 
2543             l_PRICE_LIST_rec.automatic_flag := p_PRICE_LIST_rec.automatic_flag;
2544 
2545             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2546             THEN
2547 
2548                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2549                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','automatic');
2550                 oe_msg_pub.Add;
2551 
2552             END IF;
2553 
2554         ELSE
2555 
2556             l_PRICE_LIST_rec.automatic_flag := QP_Value_To_Id.automatic
2557             (   p_automatic                   => p_PRICE_LIST_val_rec.automatic
2558             );
2559 
2560             IF l_PRICE_LIST_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2561                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2562             END IF;
2563 
2564         END IF;
2565 
2566     END IF;
2567 
2568     IF  p_PRICE_LIST_val_rec.currency <> FND_API.G_MISS_CHAR
2569     THEN
2570 
2571         IF p_PRICE_LIST_rec.currency_code <> FND_API.G_MISS_CHAR THEN
2572 
2573             l_PRICE_LIST_rec.currency_code := p_PRICE_LIST_rec.currency_code;
2574 
2575             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2576             THEN
2577 
2578                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2579                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','currency');
2580                 oe_msg_pub.Add;
2581 
2582             END IF;
2583 
2584         ELSE
2585 
2586             l_PRICE_LIST_rec.currency_code := QP_Value_To_Id.currency
2587             (   p_currency                    => p_PRICE_LIST_val_rec.currency
2588             );
2589 
2590             IF l_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
2591                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2592             END IF;
2593 
2594         END IF;
2595 
2596     END IF;
2597 
2598     IF  p_PRICE_LIST_val_rec.discount_lines <> FND_API.G_MISS_CHAR
2599     THEN
2600 
2601         IF p_PRICE_LIST_rec.discount_lines_flag <> FND_API.G_MISS_CHAR THEN
2602 
2603             l_PRICE_LIST_rec.discount_lines_flag := p_PRICE_LIST_rec.discount_lines_flag;
2604 
2605             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2606             THEN
2607 
2608                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2609                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','discount_lines');
2610                 oe_msg_pub.Add;
2611 
2612             END IF;
2613 
2614         ELSE
2615 
2616             l_PRICE_LIST_rec.discount_lines_flag := QP_Value_To_Id.discount_lines
2617             (   p_discount_lines              => p_PRICE_LIST_val_rec.discount_lines
2618             );
2619 
2620             IF l_PRICE_LIST_rec.discount_lines_flag = FND_API.G_MISS_CHAR THEN
2621                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2622             END IF;
2623 
2624         END IF;
2625 
2626     END IF;
2627 
2628     IF  p_PRICE_LIST_val_rec.freight_terms <> FND_API.G_MISS_CHAR
2629     THEN
2630 
2631         IF p_PRICE_LIST_rec.freight_terms_code <> FND_API.G_MISS_CHAR THEN
2632 
2633             l_PRICE_LIST_rec.freight_terms_code := p_PRICE_LIST_rec.freight_terms_code;
2634 
2635             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2636             THEN
2637 
2638                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2639                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','freight_terms');
2640                 oe_msg_pub.Add;
2641 
2642             END IF;
2643 
2644         ELSE
2645 
2646             l_PRICE_LIST_rec.freight_terms_code := QP_Value_To_Id.freight_terms
2647             (   p_freight_terms               => p_PRICE_LIST_val_rec.freight_terms
2648             );
2649 
2650             IF l_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
2651                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2652             END IF;
2653 
2654         END IF;
2655 
2656     END IF;
2657 
2658     IF  p_PRICE_LIST_val_rec.list_header <> FND_API.G_MISS_CHAR
2659     THEN
2660 
2661         IF p_PRICE_LIST_rec.list_header_id <> FND_API.G_MISS_NUM THEN
2662 
2663             l_PRICE_LIST_rec.list_header_id := p_PRICE_LIST_rec.list_header_id;
2664 
2665             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2666             THEN
2667 
2668                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2669                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
2670                 oe_msg_pub.Add;
2671 
2672             END IF;
2673 
2674         ELSE
2675 
2676             l_PRICE_LIST_rec.list_header_id := QP_Value_To_Id.list_header
2677             (   p_list_header                 => p_PRICE_LIST_val_rec.list_header
2678             );
2679 
2680             IF l_PRICE_LIST_rec.list_header_id = FND_API.G_MISS_NUM THEN
2681                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2682             END IF;
2683 
2684         END IF;
2685 
2686     END IF;
2687 
2688     IF  p_PRICE_LIST_val_rec.list_type <> FND_API.G_MISS_CHAR
2689     THEN
2690 
2691         IF p_PRICE_LIST_rec.list_type_code <> FND_API.G_MISS_CHAR THEN
2692 
2693             l_PRICE_LIST_rec.list_type_code := p_PRICE_LIST_rec.list_type_code;
2694 
2695             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2696             THEN
2697 
2698                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2699                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_type');
2700                 oe_msg_pub.Add;
2701 
2702             END IF;
2703 
2704         ELSE
2705 
2706             l_PRICE_LIST_rec.list_type_code := QP_Value_To_Id.list_type
2707             (   p_list_type                   => p_PRICE_LIST_val_rec.list_type
2708             );
2709 
2710             IF l_PRICE_LIST_rec.list_type_code = FND_API.G_MISS_CHAR THEN
2711                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2712             END IF;
2713 
2714         END IF;
2715 
2716     END IF;
2717 
2718     IF  p_PRICE_LIST_val_rec.prorate <> FND_API.G_MISS_CHAR
2719     THEN
2720 
2721         IF p_PRICE_LIST_rec.prorate_flag <> FND_API.G_MISS_CHAR THEN
2722 
2723             l_PRICE_LIST_rec.prorate_flag := p_PRICE_LIST_rec.prorate_flag;
2724 
2725             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2726             THEN
2727 
2728                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2729                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','prorate');
2730                 oe_msg_pub.Add;
2731 
2732             END IF;
2733 
2734         ELSE
2735 
2736             l_PRICE_LIST_rec.prorate_flag := QP_Value_To_Id.prorate
2737             (   p_prorate                     => p_PRICE_LIST_val_rec.prorate
2738             );
2739 
2740             IF l_PRICE_LIST_rec.prorate_flag = FND_API.G_MISS_CHAR THEN
2741                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2742             END IF;
2743 
2744         END IF;
2745 
2746     END IF;
2747 
2748     IF  p_PRICE_LIST_val_rec.ship_method <> FND_API.G_MISS_CHAR
2749     THEN
2750 
2751         IF p_PRICE_LIST_rec.ship_method_code <> FND_API.G_MISS_CHAR THEN
2752 
2753             l_PRICE_LIST_rec.ship_method_code := p_PRICE_LIST_rec.ship_method_code;
2754 
2755             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2756             THEN
2757 
2758                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2759                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ship_method');
2760                 oe_msg_pub.Add;
2761 
2762             END IF;
2763 
2764         ELSE
2765 
2766             l_PRICE_LIST_rec.ship_method_code := QP_Value_To_Id.ship_method
2767             (   p_ship_method                 => p_PRICE_LIST_val_rec.ship_method
2768             );
2769 
2770             IF l_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
2771                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2772             END IF;
2773 
2774         END IF;
2775 
2776     END IF;
2777 
2778     IF  p_PRICE_LIST_val_rec.terms <> FND_API.G_MISS_CHAR
2779     THEN
2780 
2781         IF p_PRICE_LIST_rec.terms_id <> FND_API.G_MISS_NUM THEN
2782 
2783             l_PRICE_LIST_rec.terms_id := p_PRICE_LIST_rec.terms_id;
2784 
2785             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2786             THEN
2787 
2788                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2789                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','terms');
2790                 oe_msg_pub.Add;
2791 
2792             END IF;
2793 
2794         ELSE
2795 
2796             l_PRICE_LIST_rec.terms_id := QP_Value_To_Id.terms
2797             (   p_terms                       => p_PRICE_LIST_val_rec.terms
2798             );
2799 
2800             IF l_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
2801                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
2802             END IF;
2803 
2804         END IF;
2805 
2806     END IF;
2807 
2808 
2809     RETURN l_PRICE_LIST_rec;
2810 
2811 END Get_Ids;
2812 
2813 --ENH Upgrade BOAPI for orig_sys...ref RAVI
2814 FUNCTION Get_Orig_Sys_Hdr(
2815   p_LIST_HEADER_ID NUMBER
2816 ) RETURN VARCHAR2
2817 IS
2818   l_exist NUMBER:=0;
2819 BEGIN
2820   IF p_LIST_HEADER_ID IS NULL THEN
2821     RETURN NULL;
2822   ELSE
2823     Select COUNT(*) into l_exist
2824     from qp_list_headers_b h
2825     where h.orig_system_header_ref=to_char(p_LIST_HEADER_ID);
2826 
2827     IF l_exist>0 THEN
2828       RETURN 'INT-D-'||TO_CHAR(p_LIST_HEADER_ID);
2829     ELSE
2830       RETURN TO_CHAR(p_LIST_HEADER_ID);
2831     END IF;
2832   END IF;
2833 END;
2834 
2835 END QP_Price_List_Util;