DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_VALIDATE_PRICE_LIST

Source


1 PACKAGE BODY QP_Validate_Price_List AS
2 /* $Header: QPXLPLHB.pls 120.9.12020000.2 2013/02/28 10:37:08 kdurgasi ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Validate_Price_List';
7 
8 --  Procedure Entity
9 
10 PROCEDURE Entity
11 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
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 )
16 IS
17 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 l_dummy_c                     VARCHAR2(1);
19 l_security_profile            VARCHAR2(1);
20 l_unit_precision_type         VARCHAR2(255):= '';
21 l_price_rounding              VARCHAR2(50):= '';
22 
23 	cursor c_lines_edates_cur(p_list_header_id NUMBER, p_lh_end_date date)  is
24 	 SELECT 'x' FROM dual WHERE EXISTS (
25     select 'x'
26 	from qp_list_lines
27 	where list_header_id = p_list_header_id
28 	and NOT(end_date_active is null or end_date_active = FND_API.G_MISS_DATE)
29 	AND p_lh_end_date<end_date_active);
30 
31 	cursor c_lines_sdates_cur(p_list_header_id NUMBER, p_lh_start_date date)  is
32 	SELECT 'x' FROM dual WHERE EXISTS (
33     select 'x'
34 	from qp_list_lines
35 	where list_header_id = p_list_header_id
36 	and NOT(start_date_active is null or start_date_active = FND_API.G_MISS_DATE)
37 	AND p_lh_start_date>start_date_active);
38 
39 	l_dummy varchar2(1);
40 BEGIN
41 
42     --  Check required attributes. list_header_id, list_type_code
43     --  and currency_code are required.
44 
45     IF  p_PRICE_LIST_rec.list_header_id IS NULL
46     THEN
47 
48         l_return_status := FND_API.G_RET_STS_ERROR;
49 
50         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
51         THEN
52 
53             FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
54             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header_id');
55             oe_msg_pub.Add;
56 
57         END IF;
58 
59     END IF;
60 
61 --5286339
62   IF p_PRICE_LIST_rec.operation = QP_GLOBALS.G_OPR_UPDATE
63     THEN
64       IF  nvl(p_old_PRICE_LIST_rec.shareable_flag,'X') <>
65         nvl(p_PRICE_LIST_rec.shareable_flag,'X')
66          THEN
67        l_return_status := FND_API.G_RET_STS_ERROR;
68 
69        FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_ATTRIBUTE');
70        FND_MESSAGE.SET_TOKEN('ATTRIBUTE','shareable_flag');
71        OE_MSG_PUB.Add;
72 
73       END IF;
74 
75       IF  nvl(p_old_PRICE_LIST_rec.list_source_code,'X') <>
76         nvl(p_PRICE_LIST_rec.list_source_code,'X')
77          THEN
78        l_return_status := FND_API.G_RET_STS_ERROR;
79 
80        FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_ATTRIBUTE');
81        FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_source_code');
82        OE_MSG_PUB.Add;
83 
84      END IF;
85 
86      IF  nvl(p_old_PRICE_LIST_rec.rounding_factor,9999999) <>
87         nvl(p_PRICE_LIST_rec.rounding_factor,9999999)
88          THEN
89 
90 	 l_unit_precision_type :=  FND_PROFILE.VALUE('QP_UNIT_PRICE_PRECISION_TYPE');
91          l_price_rounding := fnd_profile.value('QP_PRICE_ROUNDING');
92 
93 	 IF l_unit_precision_type = 'STANDARD' THEN
94            IF l_price_rounding = 'PRECISION' THEN
95                       l_return_status := FND_API.G_RET_STS_ERROR;
96                       FND_MESSAGE.SET_NAME('QP', 'QP_ROUNDING_FACTOR_NO_UPDATE');
97                       OE_MSG_PUB.Add;
98                END IF;
99            END IF;
100      END IF;
101 
102      IF  nvl(p_old_PRICE_LIST_rec.pte_code,'X') <>
103        nvl(p_PRICE_LIST_rec.pte_code,'X')
104          THEN
105        l_return_status := FND_API.G_RET_STS_ERROR;
106 
107        FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_ATTRIBUTE');
108        FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pte_code');
109        OE_MSG_PUB.Add;
110 
111      END IF;
112 
113      IF  nvl(p_old_PRICE_LIST_rec.source_system_code,'X') <>
114        nvl(p_PRICE_LIST_rec.source_system_code,'X')
115          THEN
116        l_return_status := FND_API.G_RET_STS_ERROR;
117 
118        FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_ATTRIBUTE');
119        FND_MESSAGE.SET_TOKEN('ATTRIBUTE','source_system_code');
120        OE_MSG_PUB.Add;
121 
122     END IF;
123 
124     IF  nvl(p_old_PRICE_LIST_rec.sold_to_org_id,9999999) <>
125       nvl(p_PRICE_LIST_rec.sold_to_org_id,9999999)
126          THEN
127        l_return_status := FND_API.G_RET_STS_ERROR;
128 
129        FND_MESSAGE.SET_NAME('QP','QP_CANNOT_UPDATE_ATTRIBUTE');
130        FND_MESSAGE.SET_TOKEN('ATTRIBUTE','sold_to_org_id');
131        OE_MSG_PUB.Add;
132 
133     END IF;
134 
135   END IF;
136 
137 --5286339
138 
139     IF  p_PRICE_LIST_rec.list_type_code IS NULL
140     THEN
141 
142         l_return_status := FND_API.G_RET_STS_ERROR;
143 
144         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
145         THEN
146 
147             FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
148             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('LIST_TYPE_CODE'));  -- Fix For Bug-1974413
149             oe_msg_pub.Add;
150 
151         END IF;
152 
153     END IF;
154 
155 
156     IF  p_PRICE_LIST_rec.currency_code IS NULL
157     THEN
158 
159         l_return_status := FND_API.G_RET_STS_ERROR;
160 
161         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
162         THEN
163 
164             FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
165             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('CURRENCY_CODE'));  -- Fix For Bug-1974413
166             oe_msg_pub.Add;
167 
168         END IF;
169 
170     END IF;
171 
172           -- Bug 2347427 start
173 
174     IF  p_PRICE_LIST_rec.currency_code IS NOT NULL AND
175         ( p_PRICE_LIST_rec.currency_code <>
176             p_old_PRICE_LIST_rec.currency_code )
177     THEN
178         FND_MESSAGE.SET_NAME('QP','QP_CHANGE_SEC_PRL_CURR');
179         OE_MSG_PUB.Add;
180     END IF;
181 
182         -- Bug 2347427 end
183 
184     IF  p_PRICE_LIST_rec.name IS NULL
185     THEN
186 
187         l_return_status := FND_API.G_RET_STS_ERROR;
188 
189         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
190         THEN
191 
192             FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
193             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',QP_PRC_UTIL.Get_Attribute_Name('NAME'));  -- Fix For Bug-1974413
194             oe_msg_pub.Add;
195 
196         END IF;
197 
198     END IF;
199 
200     --  Return Error if a required attribute is missing.
201 
202     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
203 
204         RAISE FND_API.G_EXC_ERROR;
205 
206     END IF;
207 
208     --
209     --  Check conditionally required attributes here.
210     --
211 
212    IF NOT QP_Validate.Currency(p_PRICE_LIST_rec.currency_code) THEN
213             l_return_status := FND_API.G_RET_STS_ERROR;
214    END IF;
215 
216 
217    IF NOT QP_Validate.Rounding_Factor(p_PRICE_LIST_rec.rounding_factor,p_PRICE_LIST_rec.currency_code) THEN
218             l_return_status := FND_API.G_RET_STS_ERROR;
219    END IF;
220 
221    IF ( p_PRICE_LIST_rec.automatic_flag IS NOT NULL
222       and p_PRICE_LIST_rec.automatic_flag <> FND_API.G_MISS_CHAR ) THEN
223 
224       IF p_PRICE_LIST_rec.automatic_flag not in ('Y', 'N', 'y', 'n') THEN
225 
226          l_return_status := FND_API.G_RET_STS_ERROR;
227 
228          IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
229          THEN
230 
231             FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
232             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','automatic');
233             oe_msg_pub.Add;
234 
235          END IF;
236 
237       END IF;
238 
239   END IF;
240   --add validation for active_flag
241   IF ( p_PRICE_LIST_rec.active_flag IS NOT NULL
242 	  and p_PRICE_LIST_rec.active_flag <> FND_API.G_MISS_CHAR ) THEN
243 
244 		 IF p_PRICE_LIST_rec.active_flag not in ('Y', 'N', 'y', 'n') THEN
245 
246 		 l_return_status := FND_API.G_RET_STS_ERROR;
247 
248 		 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
249 		 THEN
250 
251 			FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
252 			FND_MESSAGE.SET_TOKEN('ATTRIBUTE','active_flag');
253 			oe_msg_pub.add;
254             END IF;
255 		  END IF;
256 		  END IF;
257 
258   -- mkarya for bug 1944882
259   IF ( p_PRICE_LIST_rec.mobile_download IS NOT NULL
260 	  and p_PRICE_LIST_rec.mobile_download <> FND_API.G_MISS_CHAR ) THEN
261 
262      IF p_PRICE_LIST_rec.mobile_download not in ('Y', 'N', 'n') THEN
263 
264 	 l_return_status := FND_API.G_RET_STS_ERROR;
265 
266 	 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR) THEN
267 
268 		FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
269 		FND_MESSAGE.SET_TOKEN('ATTRIBUTE','mobile_download');
270 		oe_msg_pub.add;
271          END IF;
272      END IF;
273   END IF;
274 
275   -- Pricing Security gtippire
276   IF ( p_PRICE_LIST_rec.global_flag IS NOT NULL
277 	  and p_PRICE_LIST_rec.global_flag <> FND_API.G_MISS_CHAR ) THEN
278 
279      IF p_PRICE_LIST_rec.global_flag not in ('Y', 'N', 'n') THEN
280 
281 	 l_return_status := FND_API.G_RET_STS_ERROR;
282 	 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR) THEN
283 
284 		FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
285 		FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Global_flag');
286 		oe_msg_pub.add;
287          END IF;
288      END IF;
289   END IF;
290 
291     --added for MOAC
292     l_security_profile := QP_SECURITY.security_on;
293 
294     IF ( p_PRICE_LIST_rec.global_flag IS NOT NULL)
295     THEN
296 
297                 --if security is OFF, global_flag cannot be 'N'
298                 IF (l_security_profile = 'N'
299                 and p_PRICE_LIST_rec.global_flag in ('N', 'n')) THEN
300 	          l_return_status := FND_API.G_RET_STS_ERROR;
301 	          IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR) THEN
302 		    FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
303 		    FND_MESSAGE.SET_TOKEN('ATTRIBUTE','global_flag');
304 		    oe_msg_pub.add;
305                   END IF;
306         	END IF;
307 
308                 IF l_security_profile = 'Y' THEN
309                   --if security is ON and global_flag is 'N', org_id cannot be null
310                   IF (p_PRICE_LIST_rec.global_flag in ('N', 'n')
311                   and p_PRICE_LIST_rec.org_id is null) THEN
312 	            l_return_status := FND_API.G_RET_STS_ERROR;
313 	            IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR) THEN
314 		      FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
315                       FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ORG_ID');
316 		      oe_msg_pub.add;
317                     END IF;
318                   END IF;
319 
320                   --if org_id is not null and it is not a valid org
321                   IF (p_PRICE_LIST_rec.org_id is not null
322                   and QP_UTIL.validate_org_id(p_PRICE_LIST_rec.org_id) = 'N') THEN
323 	            l_return_status := FND_API.G_RET_STS_ERROR;
324 	            IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR) THEN
325 		      FND_MESSAGE.SET_NAME('FND','FND_MO_ORG_INVALID');
326 --		      FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ORG_ID');
327 		      oe_msg_pub.add;
328                     END IF;
329                   END IF;
330                 END IF;--IF l_security_profile = 'Y'
331 
332                 -- global_flag 'Y', and org_id not null combination is invalid
333                 IF ((p_PRICE_LIST_rec.global_flag = 'Y'
334                 and p_PRICE_LIST_rec.org_id is not null) OR (p_PRICE_LIST_rec.global_flag ='N' and p_PRICE_LIST_rec.org_id is null)) THEN
335 --                and p_MODIFIER_LIST_rec.org_id <> FND_API.G_MISS_NUM THEN
336 	          l_return_status := FND_API.G_RET_STS_ERROR;
337 	          IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR) THEN
338                     FND_MESSAGE.SET_NAME('QP', 'QP_GLOBAL_OR_ORG');
339 		    oe_msg_pub.add;
340                   END IF;
341                 END IF;--p_header_rec.global_flag
342     END IF;
343     --end validations for moac
344 
345 
346   -- Multi-Currency SunilPandey
347   -- Check if the multi-currency profile option is set then multi-currency name must be
348   -- present and rounding_factor should be null else other way round
349   -- If NVL(UPPER(fnd_profile.value('QP_MULTI_CURRENCY_INSTALLED')), 'NO') = 'Y'
350   If QP_UTIL.Get_QP_Status = 'I' AND  -- bug 4739577 (sfiresto)
351      QP_LIST_HEADERS_PVT.G_MULTI_CURRENCY_INSTALLED = 'Y'
352   then
353 
354      -- Multi-Currency is installed
355      If (p_PRICE_LIST_rec.currency_header_id is NULL  or
356 	 p_PRICE_LIST_rec.currency_header_id = FND_API.G_MISS_NUM )
357      then
358 	 l_return_status := FND_API.G_RET_STS_ERROR;
359 
360          FND_MESSAGE.SET_NAME('QP','QP_MUL_CURR_REQD');
361          oe_msg_pub.add;
362 
363      end if;
364 
365      /*
366      If (p_PRICE_LIST_rec.rounding_factor is NOT NULL  and
367 	 p_PRICE_LIST_rec.rounding_factor <> FND_API.G_MISS_NUM )
368      then
369 	 l_return_status := FND_API.G_RET_STS_ERROR;
370 
371          FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');  -- CHANGE
372          FND_MESSAGE.SET_TOKEN('ATTRIBUTE','rounding_factor');
373          oe_msg_pub.add;
374 
375      end if;
376      */
377   else
378      -- Multi-Currency not installed
379      If (p_PRICE_LIST_rec.currency_header_id is NOT NULL  and
380 	 p_PRICE_LIST_rec.currency_header_id <> FND_API.G_MISS_NUM and
381 	 p_old_PRICE_LIST_rec.currency_header_id <> p_PRICE_LIST_rec.currency_header_id)
382      then
383 	 l_return_status := FND_API.G_RET_STS_ERROR;
384 
385          FND_MESSAGE.SET_NAME('QP','QP_MUL_CURR_NULL');
386          oe_msg_pub.add;
387 
388      end if;
389 
390   end if;
391 
392    -- Bug 2293974 - rounding factor is mandatory irrespective of multi-currency is installed or not
393      If (p_PRICE_LIST_rec.rounding_factor is NULL  or
394 	 p_PRICE_LIST_rec.rounding_factor = FND_API.G_MISS_NUM )
395      then
396 	 l_return_status := FND_API.G_RET_STS_ERROR;
397 
398          FND_MESSAGE.SET_NAME('QP','QP_RNDG_FACTOR_REQD');
399          oe_msg_pub.add;
400 
401      end if;
402 
403   IF ( p_PRICE_LIST_rec.currency_header_id IS NOT NULL and
404        p_PRICE_LIST_rec.currency_header_id <> FND_API.G_MISS_NUM ) THEN
405    BEGIN
406 
407      SELECT 'X'
408      INTO l_dummy_c
409      FROM QP_CURRENCY_LISTS_B
410      WHERE currency_header_id = p_PRICE_LIST_rec.currency_header_id and
411 	   base_currency_code = p_PRICE_LIST_rec.currency_code;
412 
413    EXCEPTION
414       WHEN NO_DATA_FOUND THEN
415 	 l_return_status := FND_API.G_RET_STS_ERROR;
416          FND_MESSAGE.SET_NAME('QP','QP_INVALID_ATTRIBUTE');
417          FND_MESSAGE.SET_TOKEN('ATTRIBUTE','currency_header_id');
418          oe_msg_pub.add;
419    END;
420   END IF;
421 
422    IF NOT QP_Validate.List_Type(p_PRICE_LIST_rec.list_type_code) THEN
423             l_return_status := FND_API.G_RET_STS_ERROR;
424    END IF;
425 
426    /*
427 
428    IF NOT QP_Validate.Source_System(p_PRICE_LIST_rec.source_system_code) THEN
429             l_return_status := FND_API.G_RET_STS_ERROR;
430    END IF;
431 
432    */
433 
434    IF NOT QP_Validate.Ship_Method(p_PRICE_LIST_rec.ship_method_code) THEN
435             l_return_status := FND_API.G_RET_STS_ERROR;
436    END IF;
437 
438    IF NOT QP_Validate.Freight_Terms(p_PRICE_LIST_rec.freight_terms_code) THEN
439             l_return_status := FND_API.G_RET_STS_ERROR;
440    END IF;
441 
442    IF NOT QP_Validate.Terms(p_PRICE_LIST_rec.terms_id) THEN
443             l_return_status := FND_API.G_RET_STS_ERROR;
444    END IF;
445 
446     --
447     --  Validate attribute dependencies here.
448     --
449 
450 IF NOT QP_Validate.Start_Date_Active(p_PRICE_LIST_rec.start_date_active, p_PRICE_LIST_rec.end_date_active) THEN
451 
452             l_return_status := FND_API.G_RET_STS_ERROR;
453 
454            /*
455 
456             IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
457             THEN
458 
459               FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
460               FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line_id');
461               oe_msg_pub.Add;
462 
463             END IF;
464 
465            */
466 
467        END IF;
468 
469 IF  NOT((p_PRICE_LIST_rec.end_date_active is null or p_PRICE_LIST_rec.end_date_active  = FND_API.G_MISS_DATE)
470 	and (p_PRICE_LIST_rec.start_date_active is null or p_PRICE_LIST_rec.start_date_active  = FND_API.G_MISS_DATE)) THEN
471 		open c_lines_edates_cur(p_PRICE_LIST_rec.list_header_id,p_PRICE_LIST_rec.end_date_active);
472 		fetch c_lines_edates_cur into l_dummy;
473 		IF c_lines_edates_cur%found THEN -- line date not within hdr date
474 			l_return_status := FND_API.G_RET_STS_ERROR;
475 			FND_MESSAGE.SET_NAME('QP','QP_PLL_END_DATE_NOT_WITHIN');
476          		oe_msg_pub.add;
477 		END IF;
478 
479 		open c_lines_sdates_cur(p_PRICE_LIST_rec.list_header_id,p_PRICE_LIST_rec.start_date_active);
480 		fetch c_lines_sdates_cur into l_dummy;
481 
482 		IF c_lines_sdates_cur%found THEN -- line date not within hdr date
483 			l_return_status := FND_API.G_RET_STS_ERROR;
484 			FND_MESSAGE.SET_NAME('QP','QP_PLL_START_DATE_NOT_WITHIN');
485          		oe_msg_pub.add;
486 		END IF;
487 END IF;
488 
489        IF NOT QP_Validate.Price_List_Name(p_PRICE_LIST_rec.name,
490                                 p_PRICE_LIST_rec.list_header_id,
491                                 p_PRICE_LIST_rec.version_no) THEN
492 
493             l_return_status := FND_API.G_RET_STS_ERROR;
494 
495         END IF;
496 
497 
498      IF l_return_status = FND_API.G_RET_STS_ERROR THEN
499 
500         RAISE FND_API.G_EXC_ERROR;
501 
502      END IF;
503 
504     --  Done validating entity
505 
506     x_return_status := l_return_status;
507 
508 EXCEPTION
509 
510     WHEN FND_API.G_EXC_ERROR THEN
511 
512         x_return_status := FND_API.G_RET_STS_ERROR;
513 
514     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
515 
516         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
517 
518     WHEN OTHERS THEN
519 
520         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
521 
522         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
523         THEN
524             oe_msg_pub.Add_Exc_Msg
525             (   G_PKG_NAME
526             ,   'Entity'
527             );
528         END IF;
529 
530 END Entity;
531 
532 --  Procedure Attributes
533 
534 PROCEDURE Attributes
535 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
536 ,   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
537 ,   p_old_PRICE_LIST_rec            IN  QP_Price_List_PUB.Price_List_Rec_Type :=
538                                         QP_Price_List_PUB.G_MISS_PRICE_LIST_REC
539 )
540 IS
541 
542 BEGIN
543 
544     x_return_status := FND_API.G_RET_STS_SUCCESS;
545 
546     --  Validate PRICE_LIST attributes
547 
548     IF  p_PRICE_LIST_rec.automatic_flag IS NOT NULL AND
549         (   p_PRICE_LIST_rec.automatic_flag <>
550             p_old_PRICE_LIST_rec.automatic_flag OR
551             p_old_PRICE_LIST_rec.automatic_flag IS NULL )
552     THEN
553         IF NOT QP_Validate.Automatic(p_PRICE_LIST_rec.automatic_flag) THEN
554             x_return_status := FND_API.G_RET_STS_ERROR;
555         END IF;
556     END IF;
557 
558     IF p_PRICE_LIST_rec.active_flag IS NOT NULL AND
559 	    (p_PRICE_LIST_rec.active_flag <>
560 		p_old_PRICE_LIST_rec.active_flag OR
561 		p_old_PRICE_LIST_rec.active_flag IS NULL)
562     THEN
563 	   IF NOT QP_Validate.active(p_PRICE_LIST_rec.active_flag) THEN
564 		   x_return_status := FND_API.G_RET_STS_ERROR;
565         END IF;
566     END IF;
567 
568     --mkarya for bug 1944882
569     IF p_PRICE_LIST_rec.mobile_download IS NOT NULL AND
570 	    (p_PRICE_LIST_rec.mobile_download <>
571 		p_old_PRICE_LIST_rec.mobile_download OR
572 		p_old_PRICE_LIST_rec.mobile_download IS NULL)
573     THEN
574 	   IF NOT QP_Validate.mobile_download(p_PRICE_LIST_rec.mobile_download) THEN
575 		   x_return_status := FND_API.G_RET_STS_ERROR;
576         END IF;
577     END IF;
578 
579     --Pricing Security gtippire
580     IF p_PRICE_LIST_rec.global_flag IS NOT NULL AND
581 	    (p_PRICE_LIST_rec.global_flag <>
582 		p_old_PRICE_LIST_rec.global_flag OR
583 		p_old_PRICE_LIST_rec.global_flag IS NULL)
584     THEN
585 	   IF NOT QP_Validate.global_flag(p_PRICE_LIST_rec.global_flag) THEN
586 		   x_return_status := FND_API.G_RET_STS_ERROR;
587         END IF;
588     END IF;
589 
590 
591     IF  p_PRICE_LIST_rec.description IS NOT NULL AND
592         (   p_PRICE_LIST_rec.description <>
593             p_old_PRICE_LIST_rec.description OR
594             p_old_PRICE_LIST_rec.description IS NULL )
595     THEN
596       IF NOT QP_Validate.Description(p_PRICE_LIST_rec.description) THEN
597             x_return_status := FND_API.G_RET_STS_ERROR;
598         END IF;
599     END IF;
600 
601     IF  p_PRICE_LIST_rec.name IS NOT NULL AND
602         (   p_PRICE_LIST_rec.name <>
603             p_old_PRICE_LIST_rec.name OR
604             p_old_PRICE_LIST_rec.name IS NULL )
605     THEN
606         IF NOT QP_Validate.Name(p_PRICE_LIST_rec.name) THEN
607             x_return_status := FND_API.G_RET_STS_ERROR;
608         END IF;
609     END IF;
610 
611     IF  p_PRICE_LIST_rec.comments IS NOT NULL AND
612         (   p_PRICE_LIST_rec.comments <>
613             p_old_PRICE_LIST_rec.comments OR
614             p_old_PRICE_LIST_rec.comments IS NULL )
615     THEN
616         IF NOT QP_Validate.Comments(p_PRICE_LIST_rec.comments) THEN
617             x_return_status := FND_API.G_RET_STS_ERROR;
618         END IF;
619     END IF;
620 
621     IF  p_PRICE_LIST_rec.created_by IS NOT NULL AND
622         (   p_PRICE_LIST_rec.created_by <>
623             p_old_PRICE_LIST_rec.created_by OR
624             p_old_PRICE_LIST_rec.created_by IS NULL )
625     THEN
626         IF NOT QP_Validate.Created_By(p_PRICE_LIST_rec.created_by) THEN
627             x_return_status := FND_API.G_RET_STS_ERROR;
628         END IF;
629     END IF;
630 
631     IF  p_PRICE_LIST_rec.creation_date IS NOT NULL AND
632         (   p_PRICE_LIST_rec.creation_date <>
633             p_old_PRICE_LIST_rec.creation_date OR
634             p_old_PRICE_LIST_rec.creation_date IS NULL )
635     THEN
636         IF NOT QP_Validate.Creation_Date(p_PRICE_LIST_rec.creation_date) THEN
637             x_return_status := FND_API.G_RET_STS_ERROR;
638         END IF;
639     END IF;
640 
641     IF  p_PRICE_LIST_rec.currency_code IS NOT NULL AND
642         (   p_PRICE_LIST_rec.currency_code <>
643             p_old_PRICE_LIST_rec.currency_code OR
644             p_old_PRICE_LIST_rec.currency_code IS NULL )
645     THEN
646         IF NOT QP_Validate.Currency(p_PRICE_LIST_rec.currency_code) THEN
647             x_return_status := FND_API.G_RET_STS_ERROR;
648         END IF;
649     END IF;
650 
651     IF  p_PRICE_LIST_rec.discount_lines_flag IS NOT NULL AND
652         (   p_PRICE_LIST_rec.discount_lines_flag <>
653             p_old_PRICE_LIST_rec.discount_lines_flag OR
654             p_old_PRICE_LIST_rec.discount_lines_flag IS NULL )
655     THEN
656         IF NOT QP_Validate.Discount_Lines(p_PRICE_LIST_rec.discount_lines_flag) THEN
657             x_return_status := FND_API.G_RET_STS_ERROR;
658         END IF;
659     END IF;
660 
661     IF  p_PRICE_LIST_rec.end_date_active IS NOT NULL AND
662         (   p_PRICE_LIST_rec.end_date_active <>
663             p_old_PRICE_LIST_rec.end_date_active OR
664             p_old_PRICE_LIST_rec.end_date_active IS NULL )
665     THEN
666         IF NOT QP_Validate.End_Date_Active(p_PRICE_LIST_rec.end_date_active, p_PRICE_LIST_rec.start_date_active) THEN
667             x_return_status := FND_API.G_RET_STS_ERROR;
668         END IF;
669 
670     END IF;
671 
672     IF  p_PRICE_LIST_rec.freight_terms_code IS NOT NULL AND
673         (   p_PRICE_LIST_rec.freight_terms_code <>
674             p_old_PRICE_LIST_rec.freight_terms_code OR
675             p_old_PRICE_LIST_rec.freight_terms_code IS NULL )
676     THEN
677         IF NOT QP_Validate.Freight_Terms(p_PRICE_LIST_rec.freight_terms_code) THEN
678             x_return_status := FND_API.G_RET_STS_ERROR;
679         END IF;
680     END IF;
681 
682     IF  p_PRICE_LIST_rec.gsa_indicator IS NOT NULL AND
683         (   p_PRICE_LIST_rec.gsa_indicator <>
684             p_old_PRICE_LIST_rec.gsa_indicator OR
685             p_old_PRICE_LIST_rec.gsa_indicator IS NULL )
686     THEN
687         IF NOT QP_Validate.Gsa_Indicator(p_PRICE_LIST_rec.gsa_indicator) THEN
688             x_return_status := FND_API.G_RET_STS_ERROR;
689         END IF;
690     END IF;
691 
692     IF  p_PRICE_LIST_rec.last_updated_by IS NOT NULL AND
693         (   p_PRICE_LIST_rec.last_updated_by <>
694             p_old_PRICE_LIST_rec.last_updated_by OR
695             p_old_PRICE_LIST_rec.last_updated_by IS NULL )
696     THEN
697         IF NOT QP_Validate.Last_Updated_By(p_PRICE_LIST_rec.last_updated_by) THEN
698             x_return_status := FND_API.G_RET_STS_ERROR;
699         END IF;
700     END IF;
701 
702     IF  p_PRICE_LIST_rec.last_update_date IS NOT NULL AND
703         (   p_PRICE_LIST_rec.last_update_date <>
704             p_old_PRICE_LIST_rec.last_update_date OR
705             p_old_PRICE_LIST_rec.last_update_date IS NULL )
706     THEN
707         IF NOT QP_Validate.Last_Update_Date(p_PRICE_LIST_rec.last_update_date) THEN
708             x_return_status := FND_API.G_RET_STS_ERROR;
709         END IF;
710     END IF;
711 
712     IF  p_PRICE_LIST_rec.last_update_login IS NOT NULL AND
713         (   p_PRICE_LIST_rec.last_update_login <>
714             p_old_PRICE_LIST_rec.last_update_login OR
715             p_old_PRICE_LIST_rec.last_update_login IS NULL )
716     THEN
717         IF NOT QP_Validate.Last_Update_Login(p_PRICE_LIST_rec.last_update_login) THEN
718             x_return_status := FND_API.G_RET_STS_ERROR;
719         END IF;
720     END IF;
721 
722     IF  p_PRICE_LIST_rec.list_header_id IS NOT NULL AND
723         (   p_PRICE_LIST_rec.list_header_id <>
724             p_old_PRICE_LIST_rec.list_header_id OR
725             p_old_PRICE_LIST_rec.list_header_id IS NULL )
726     THEN
727         IF NOT QP_Validate.List_Header(p_PRICE_LIST_rec.list_header_id) THEN
728             x_return_status := FND_API.G_RET_STS_ERROR;
729         END IF;
730     END IF;
731 
732     IF  p_PRICE_LIST_rec.list_type_code IS NOT NULL AND
733         (   p_PRICE_LIST_rec.list_type_code <>
734             p_old_PRICE_LIST_rec.list_type_code OR
735             p_old_PRICE_LIST_rec.list_type_code IS NULL )
736     THEN
737         IF NOT QP_Validate.List_Type(p_PRICE_LIST_rec.list_type_code) THEN
738             x_return_status := FND_API.G_RET_STS_ERROR;
739         END IF;
740     END IF;
741 
742     IF  p_PRICE_LIST_rec.version_no IS NOT NULL AND
743         (   p_PRICE_LIST_rec.version_no <>
744             p_old_PRICE_LIST_rec.version_no OR
745             p_old_PRICE_LIST_rec.version_no IS NULL )
746     THEN
747         IF NOT QP_Validate.Version(p_PRICE_LIST_rec.version_no) THEN
748             x_return_status := FND_API.G_RET_STS_ERROR;
749         END IF;
750     END IF;
751 
752     IF  p_PRICE_LIST_rec.program_application_id IS NOT NULL AND
753         (   p_PRICE_LIST_rec.program_application_id <>
754             p_old_PRICE_LIST_rec.program_application_id OR
755             p_old_PRICE_LIST_rec.program_application_id IS NULL )
756     THEN
757         IF NOT QP_Validate.Program_Application(p_PRICE_LIST_rec.program_application_id) THEN
758             x_return_status := FND_API.G_RET_STS_ERROR;
759         END IF;
760     END IF;
761 
762     IF  p_PRICE_LIST_rec.program_id IS NOT NULL AND
763         (   p_PRICE_LIST_rec.program_id <>
764             p_old_PRICE_LIST_rec.program_id OR
765             p_old_PRICE_LIST_rec.program_id IS NULL )
766     THEN
767         IF NOT QP_Validate.Program(p_PRICE_LIST_rec.program_id) THEN
768             x_return_status := FND_API.G_RET_STS_ERROR;
769         END IF;
770     END IF;
771 
772     IF  p_PRICE_LIST_rec.program_update_date IS NOT NULL AND
773         (   p_PRICE_LIST_rec.program_update_date <>
774             p_old_PRICE_LIST_rec.program_update_date OR
775             p_old_PRICE_LIST_rec.program_update_date IS NULL )
776     THEN
777         IF NOT QP_Validate.Program_Update_Date(p_PRICE_LIST_rec.program_update_date) THEN
778             x_return_status := FND_API.G_RET_STS_ERROR;
779         END IF;
780     END IF;
781 
782     IF  p_PRICE_LIST_rec.prorate_flag IS NOT NULL AND
783         (   p_PRICE_LIST_rec.prorate_flag <>
784             p_old_PRICE_LIST_rec.prorate_flag OR
785             p_old_PRICE_LIST_rec.prorate_flag IS NULL )
786     THEN
787         IF NOT QP_Validate.Prorate(p_PRICE_LIST_rec.prorate_flag) THEN
788             x_return_status := FND_API.G_RET_STS_ERROR;
789         END IF;
790     END IF;
791 
792     IF  p_PRICE_LIST_rec.request_id IS NOT NULL AND
793         (   p_PRICE_LIST_rec.request_id <>
794             p_old_PRICE_LIST_rec.request_id OR
795             p_old_PRICE_LIST_rec.request_id IS NULL )
796     THEN
797         IF NOT QP_Validate.Request(p_PRICE_LIST_rec.request_id) THEN
798             x_return_status := FND_API.G_RET_STS_ERROR;
799         END IF;
800     END IF;
801 
802     IF  p_PRICE_LIST_rec.rounding_factor IS NOT NULL AND
803         (   p_PRICE_LIST_rec.rounding_factor <>
804             p_old_PRICE_LIST_rec.rounding_factor OR
805             p_old_PRICE_LIST_rec.rounding_factor IS NULL )
806     THEN
807         IF NOT QP_Validate.Rounding_Factor(p_PRICE_LIST_rec.rounding_factor) THEN
808             x_return_status := FND_API.G_RET_STS_ERROR;
809         END IF;
810     END IF;
811 
812     IF  p_PRICE_LIST_rec.ship_method_code IS NOT NULL AND
813         (   p_PRICE_LIST_rec.ship_method_code <>
814             p_old_PRICE_LIST_rec.ship_method_code OR
815             p_old_PRICE_LIST_rec.ship_method_code IS NULL )
816     THEN
817         IF NOT QP_Validate.Ship_Method(p_PRICE_LIST_rec.ship_method_code) THEN
818             x_return_status := FND_API.G_RET_STS_ERROR;
819         END IF;
820     END IF;
821 
822     IF  p_PRICE_LIST_rec.start_date_active IS NOT NULL AND
823         (   p_PRICE_LIST_rec.start_date_active <>
824             p_old_PRICE_LIST_rec.start_date_active OR
825             p_old_PRICE_LIST_rec.start_date_active IS NULL )
826     THEN
827         IF NOT QP_Validate.Start_Date_Active(p_PRICE_LIST_rec.start_date_active, p_PRICE_LIST_rec.end_date_active) THEN
828             x_return_status := FND_API.G_RET_STS_ERROR;
829         END IF;
830 
831 
832     END IF;
833 
834     IF  p_PRICE_LIST_rec.terms_id IS NOT NULL AND
835         (   p_PRICE_LIST_rec.terms_id <>
836             p_old_PRICE_LIST_rec.terms_id OR
837             p_old_PRICE_LIST_rec.terms_id IS NULL )
838     THEN
839         IF NOT QP_Validate.Terms(p_PRICE_LIST_rec.terms_id) THEN
840             x_return_status := FND_API.G_RET_STS_ERROR;
841         END IF;
842     END IF;
843 
844     --Multi-Currency SunilPandey
845     IF p_PRICE_LIST_rec.currency_header_id IS NOT NULL AND
846 	    (p_PRICE_LIST_rec.currency_header_id <>
847 		p_old_PRICE_LIST_rec.currency_header_id OR
848 		p_old_PRICE_LIST_rec.currency_header_id IS NULL)
849     THEN
850 	   IF NOT QP_Validate.currency_header(p_PRICE_LIST_rec.currency_header_id) THEN
851 		   x_return_status := FND_API.G_RET_STS_ERROR;
852         END IF;
853     END IF;
854 
855     --Attribute Manager Giri
856     IF p_PRICE_LIST_rec.pte_code IS NOT NULL AND
857 	    (p_PRICE_LIST_rec.pte_code <>
858 		p_old_PRICE_LIST_rec.pte_code OR
859 		p_old_PRICE_LIST_rec.pte_code IS NULL)
860     THEN
861 	   IF NOT QP_Validate.pte(p_PRICE_LIST_rec.pte_code) THEN
862 		   x_return_status := FND_API.G_RET_STS_ERROR;
863         END IF;
864     END IF;
865 
866     --Blanket Sales Order
867     IF p_PRICE_LIST_rec.LIST_SOURCE_CODE IS NOT NULL AND
868             (p_PRICE_LIST_rec.LIST_SOURCE_CODE <>
869                 p_old_PRICE_LIST_rec.LIST_SOURCE_CODE OR
870                 p_old_PRICE_LIST_rec.LIST_SOURCE_CODE IS NULL)
871     THEN
872            IF NOT QP_Validate.list_source_code(p_PRICE_LIST_rec.LIST_SOURCE_CODE) THEN
873                    x_return_status := FND_API.G_RET_STS_ERROR;
874         END IF;
875 
876     END IF;
877 
878     -- Blanket Pricing
879     IF p_PRICE_LIST_rec.ORIG_SYSTEM_HEADER_REF IS NOT NULL AND
880             (p_PRICE_LIST_rec.ORIG_SYSTEM_HEADER_REF <>
881                 p_old_PRICE_LIST_rec.ORIG_SYSTEM_HEADER_REF OR
882                 p_old_PRICE_LIST_rec.ORIG_SYSTEM_HEADER_REF IS NULL)
883     THEN
884         IF NOT QP_Validate.orig_system_header_ref(p_PRICE_LIST_rec.ORIG_SYSTEM_HEADER_REF) THEN
885                    x_return_status := FND_API.G_RET_STS_ERROR;
886         END IF;
887 
888     END IF;
889 
890     IF p_PRICE_LIST_rec.SOURCE_SYSTEM_CODE IS NOT NULL AND
891         (p_PRICE_LIST_rec.SOURCE_SYSTEM_CODE <>
892             p_old_PRICE_LIST_rec.SOURCE_SYSTEM_CODE OR
893             p_old_PRICE_LIST_rec.SOURCE_SYSTEM_CODE IS NULL)
894     THEN
895             IF NOT QP_Validate.Source_System(p_PRICE_LIST_rec.SOURCE_SYSTEM_CODE) THEN
896                    x_return_status := FND_API.G_RET_STS_ERROR;
897             END IF;
898     END IF;
899 
900     IF p_PRICE_LIST_rec.SHAREABLE_FLAG IS NOT NULL AND
901         (p_PRICE_LIST_rec.SHAREABLE_FLAG <>
902             p_old_PRICE_LIST_rec.SHAREABLE_FLAG OR
903             p_old_PRICE_LIST_rec.SHAREABLE_FLAG IS NULL)
904     THEN
905             IF NOT QP_Validate.shareable_flag(p_PRICE_LIST_rec.SHAREABLE_FLAG) THEN
906                    x_return_status := FND_API.G_RET_STS_ERROR;
907             END IF;
908     END IF;
909 
910     IF p_PRICE_LIST_rec.SOLD_TO_ORG_ID IS NOT NULL AND
911         (p_PRICE_LIST_rec.SOLD_TO_ORG_ID <>
912             p_old_PRICE_LIST_rec.SOLD_TO_ORG_ID OR
913             p_old_PRICE_LIST_rec.SOLD_TO_ORG_ID IS NULL)
914     THEN
915             IF NOT QP_Validate.sold_to_org_id(p_PRICE_LIST_rec.SOLD_TO_ORG_ID) THEN
916                    x_return_status := FND_API.G_RET_STS_ERROR;
917             END IF;
918     END IF;
919 
920     IF p_PRICE_LIST_rec.locked_from_list_header_id IS NOT NULL AND
921         (p_PRICE_LIST_rec.locked_from_list_header_id <>
922             p_old_PRICE_LIST_rec.locked_from_list_header_id OR
923             p_old_PRICE_LIST_rec.locked_from_list_header_id IS NULL)
924     THEN
925             IF NOT QP_Validate.locked_from_list_header_id(p_PRICE_LIST_rec.locked_from_list_header_id) THEN
926                    x_return_status := FND_API.G_RET_STS_ERROR;
927             END IF;
928     END IF;
929 
930     --added for MOAC
931     IF p_PRICE_LIST_rec.org_id IS NOT NULL AND
932         (p_PRICE_LIST_rec.org_id <>
933             p_old_PRICE_LIST_rec.org_id OR
934             p_old_PRICE_LIST_rec.org_id IS NULL)
935     THEN
936             IF NOT QP_Validate.org_id(p_PRICE_LIST_rec.org_id) THEN
937                    x_return_status := FND_API.G_RET_STS_ERROR;
938             END IF;
939     END IF;
940 
941     IF  (p_PRICE_LIST_rec.attribute1 IS NOT NULL AND
942         (   p_PRICE_LIST_rec.attribute1 <>
943             p_old_PRICE_LIST_rec.attribute1 OR
944             p_old_PRICE_LIST_rec.attribute1 IS NULL ))
945     OR  (p_PRICE_LIST_rec.attribute10 IS NOT NULL AND
946         (   p_PRICE_LIST_rec.attribute10 <>
947             p_old_PRICE_LIST_rec.attribute10 OR
948             p_old_PRICE_LIST_rec.attribute10 IS NULL ))
949     OR  (p_PRICE_LIST_rec.attribute11 IS NOT NULL AND
950         (   p_PRICE_LIST_rec.attribute11 <>
951             p_old_PRICE_LIST_rec.attribute11 OR
952             p_old_PRICE_LIST_rec.attribute11 IS NULL ))
953     OR  (p_PRICE_LIST_rec.attribute12 IS NOT NULL AND
954         (   p_PRICE_LIST_rec.attribute12 <>
955             p_old_PRICE_LIST_rec.attribute12 OR
956             p_old_PRICE_LIST_rec.attribute12 IS NULL ))
957     OR  (p_PRICE_LIST_rec.attribute13 IS NOT NULL AND
958         (   p_PRICE_LIST_rec.attribute13 <>
959             p_old_PRICE_LIST_rec.attribute13 OR
960             p_old_PRICE_LIST_rec.attribute13 IS NULL ))
961     OR  (p_PRICE_LIST_rec.attribute14 IS NOT NULL AND
962         (   p_PRICE_LIST_rec.attribute14 <>
963             p_old_PRICE_LIST_rec.attribute14 OR
964             p_old_PRICE_LIST_rec.attribute14 IS NULL ))
965     OR  (p_PRICE_LIST_rec.attribute15 IS NOT NULL AND
966         (   p_PRICE_LIST_rec.attribute15 <>
967             p_old_PRICE_LIST_rec.attribute15 OR
968             p_old_PRICE_LIST_rec.attribute15 IS NULL ))
969     OR  (p_PRICE_LIST_rec.attribute2 IS NOT NULL AND
970         (   p_PRICE_LIST_rec.attribute2 <>
971             p_old_PRICE_LIST_rec.attribute2 OR
972             p_old_PRICE_LIST_rec.attribute2 IS NULL ))
973     OR  (p_PRICE_LIST_rec.attribute3 IS NOT NULL AND
974         (   p_PRICE_LIST_rec.attribute3 <>
975             p_old_PRICE_LIST_rec.attribute3 OR
976             p_old_PRICE_LIST_rec.attribute3 IS NULL ))
977     OR  (p_PRICE_LIST_rec.attribute4 IS NOT NULL AND
978         (   p_PRICE_LIST_rec.attribute4 <>
979             p_old_PRICE_LIST_rec.attribute4 OR
980             p_old_PRICE_LIST_rec.attribute4 IS NULL ))
981     OR  (p_PRICE_LIST_rec.attribute5 IS NOT NULL AND
982         (   p_PRICE_LIST_rec.attribute5 <>
983             p_old_PRICE_LIST_rec.attribute5 OR
984             p_old_PRICE_LIST_rec.attribute5 IS NULL ))
985     OR  (p_PRICE_LIST_rec.attribute6 IS NOT NULL AND
986         (   p_PRICE_LIST_rec.attribute6 <>
987             p_old_PRICE_LIST_rec.attribute6 OR
988             p_old_PRICE_LIST_rec.attribute6 IS NULL ))
989     OR  (p_PRICE_LIST_rec.attribute7 IS NOT NULL AND
990         (   p_PRICE_LIST_rec.attribute7 <>
991             p_old_PRICE_LIST_rec.attribute7 OR
992             p_old_PRICE_LIST_rec.attribute7 IS NULL ))
993     OR  (p_PRICE_LIST_rec.attribute8 IS NOT NULL AND
994         (   p_PRICE_LIST_rec.attribute8 <>
995             p_old_PRICE_LIST_rec.attribute8 OR
996             p_old_PRICE_LIST_rec.attribute8 IS NULL ))
997     OR  (p_PRICE_LIST_rec.attribute9 IS NOT NULL AND
998         (   p_PRICE_LIST_rec.attribute9 <>
999             p_old_PRICE_LIST_rec.attribute9 OR
1000             p_old_PRICE_LIST_rec.attribute9 IS NULL ))
1001     OR  (p_PRICE_LIST_rec.context IS NOT NULL AND
1002         (   p_PRICE_LIST_rec.context <>
1003             p_old_PRICE_LIST_rec.context OR
1004             p_old_PRICE_LIST_rec.context IS NULL ))
1005     THEN
1006 
1007     --  These calls are temporarily commented out
1008 
1009 /*
1010         FND_FLEX_DESC_VAL.Set_Column_Value
1011         (   column_name                   => 'ATTRIBUTE1'
1012         ,   column_value                  => p_PRICE_LIST_rec.attribute1
1013         );
1014         FND_FLEX_DESC_VAL.Set_Column_Value
1015         (   column_name                   => 'ATTRIBUTE10'
1016         ,   column_value                  => p_PRICE_LIST_rec.attribute10
1017         );
1018         FND_FLEX_DESC_VAL.Set_Column_Value
1019         (   column_name                   => 'ATTRIBUTE11'
1020         ,   column_value                  => p_PRICE_LIST_rec.attribute11
1021         );
1022         FND_FLEX_DESC_VAL.Set_Column_Value
1023         (   column_name                   => 'ATTRIBUTE12'
1024         ,   column_value                  => p_PRICE_LIST_rec.attribute12
1025         );
1026         FND_FLEX_DESC_VAL.Set_Column_Value
1027         (   column_name                   => 'ATTRIBUTE13'
1028         ,   column_value                  => p_PRICE_LIST_rec.attribute13
1029         );
1030         FND_FLEX_DESC_VAL.Set_Column_Value
1031         (   column_name                   => 'ATTRIBUTE14'
1032         ,   column_value                  => p_PRICE_LIST_rec.attribute14
1033         );
1034         FND_FLEX_DESC_VAL.Set_Column_Value
1035         (   column_name                   => 'ATTRIBUTE15'
1036         ,   column_value                  => p_PRICE_LIST_rec.attribute15
1037         );
1038         FND_FLEX_DESC_VAL.Set_Column_Value
1039         (   column_name                   => 'ATTRIBUTE2'
1040         ,   column_value                  => p_PRICE_LIST_rec.attribute2
1041         );
1042         FND_FLEX_DESC_VAL.Set_Column_Value
1043         (   column_name                   => 'ATTRIBUTE3'
1044         ,   column_value                  => p_PRICE_LIST_rec.attribute3
1045         );
1046         FND_FLEX_DESC_VAL.Set_Column_Value
1047         (   column_name                   => 'ATTRIBUTE4'
1048         ,   column_value                  => p_PRICE_LIST_rec.attribute4
1049         );
1050         FND_FLEX_DESC_VAL.Set_Column_Value
1051         (   column_name                   => 'ATTRIBUTE5'
1052         ,   column_value                  => p_PRICE_LIST_rec.attribute5
1053         );
1054         FND_FLEX_DESC_VAL.Set_Column_Value
1055         (   column_name                   => 'ATTRIBUTE6'
1056         ,   column_value                  => p_PRICE_LIST_rec.attribute6
1057         );
1058         FND_FLEX_DESC_VAL.Set_Column_Value
1059         (   column_name                   => 'ATTRIBUTE7'
1060         ,   column_value                  => p_PRICE_LIST_rec.attribute7
1061         );
1062         FND_FLEX_DESC_VAL.Set_Column_Value
1063         (   column_name                   => 'ATTRIBUTE8'
1064         ,   column_value                  => p_PRICE_LIST_rec.attribute8
1065         );
1066         FND_FLEX_DESC_VAL.Set_Column_Value
1067         (   column_name                   => 'ATTRIBUTE9'
1068         ,   column_value                  => p_PRICE_LIST_rec.attribute9
1069         );
1070         FND_FLEX_DESC_VAL.Set_Column_Value
1071         (   column_name                   => 'CONTEXT'
1072         ,   column_value                  => p_PRICE_LIST_rec.context
1073         );
1074 */
1075 
1076         --  Validate descriptive flexfield.
1077 
1078         IF NOT QP_Validate.Desc_Flex( 'PRICE_LIST' ) THEN
1079             x_return_status := FND_API.G_RET_STS_ERROR;
1080         END IF;
1081 
1082     END IF;
1083 
1084     --  Done validating attributes
1085 
1086 EXCEPTION
1087 
1088     WHEN FND_API.G_EXC_ERROR THEN
1089 
1090         x_return_status := FND_API.G_RET_STS_ERROR;
1091 
1092     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1093 
1094         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1095 
1096     WHEN OTHERS THEN
1097 
1098         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1099 
1100         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1101         THEN
1102             oe_msg_pub.Add_Exc_Msg
1103             (   G_PKG_NAME
1104             ,   'Attributes'
1105             );
1106         END IF;
1107 
1108 END Attributes;
1109 
1110 --  Procedure Entity_Delete
1111 
1112 PROCEDURE Entity_Delete
1113 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1114 ,   p_PRICE_LIST_rec                IN  QP_Price_List_PUB.Price_List_Rec_Type
1115 )
1116 IS
1117 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1118 BEGIN
1119 
1120     --  Validate entity delete.
1121 
1122     NULL;
1123 
1124     --  Done.
1125 
1126     x_return_status := l_return_status;
1127 
1128 EXCEPTION
1129 
1130     WHEN FND_API.G_EXC_ERROR THEN
1131 
1132         x_return_status := FND_API.G_RET_STS_ERROR;
1133 
1134     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1135 
1136         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1137 
1138     WHEN OTHERS THEN
1139 
1140         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1141 
1142         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1143         THEN
1144             oe_msg_pub.Add_Exc_Msg
1145             (   G_PKG_NAME
1146             ,   'Entity_Delete'
1147             );
1148         END IF;
1149 
1150 END Entity_Delete;
1151 
1152 END QP_Validate_Price_List;