DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_VALIDATE_FORMULA_LINES

Source


1 PACKAGE BODY QP_Validate_Formula_Lines AS
2 /* $Header: QPXLPFLB.pls 120.1 2005/06/08 23:46:11 appldev  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Validate_Formula_Lines';
7 
8 --  Procedure Entity
9 
10 PROCEDURE Entity
11 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12 ,   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
13 ,   p_old_FORMULA_LINES_rec         IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type :=
14                                         QP_Price_Formula_PUB.G_MISS_FORMULA_LINES_REC
15 )
16 IS
17 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 l_count                       NUMBER := 0;
19 l_qp_status                   VARCHAR2(1);
20 
21 BEGIN
22 
23 oe_debug_pub.add('Entering proc Entity of Formula Lines Validation Pkg');
24 
25     -- Check if only Basic Pricing installed. If so then Formula Line types
26     -- 'PLL', 'FUNC' and 'LP' are not allowed. They are permitted only when
27     -- Advanced Pricing is installed.
28 
29     l_qp_status := QP_UTIL.get_qp_status;
30 
31     IF  l_qp_status = 'S' AND
32         p_FORMULA_LINES_rec.formula_line_type_code IN ('PLL', 'FUNC', 'LP')
33     THEN
34 
35         l_return_status := FND_API.G_RET_STS_ERROR;
36 	   FND_MESSAGE.SET_NAME('QP', 'QP_BASIC_PRICING_UNAVAILABLE');
37         OE_MSG_PUB.Add;
38 	   RAISE FND_API.G_EXC_ERROR;
39 
40     END IF;
41 
42 
43     --  Check required attributes.
44 
45     IF  p_FORMULA_LINES_rec.price_formula_line_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','price_formula_line');
55             OE_MSG_PUB.Add;
56 
57         END IF;
58 
59     END IF;
60 
61     --
62     --  Check rest of required attributes here.
63     --
64 
65     IF  p_FORMULA_LINES_rec.price_formula_id IS NULL
66     THEN
67 
68         l_return_status := FND_API.G_RET_STS_ERROR;
69 
70         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
71         THEN
72 
73             FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
74             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_formula');
75             OE_MSG_PUB.Add;
76 
77         END IF;
78 
79     END IF;
80 
81     IF  p_FORMULA_LINES_rec.formula_line_type_code IS NULL
82     THEN
83 
84         l_return_status := FND_API.G_RET_STS_ERROR;
85 
86         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
87         THEN
88 
89             FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
90             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_formula_line_type');
91             OE_MSG_PUB.Add;
92 
93         END IF;
94 
95     END IF;
96 
97     IF  p_FORMULA_LINES_rec.step_number IS NULL
98     THEN
99 
100         l_return_status := FND_API.G_RET_STS_ERROR;
101 
102         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
103         THEN
104 
105             FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
106             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','step_number');
107             OE_MSG_PUB.Add;
108 
109         END IF;
110 
111     END IF;
112 
113 
114     --  Return Error if a required attribute is missing.
115 
116     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
117 
118         RAISE FND_API.G_EXC_ERROR;
119 
120     END IF;
121 
122     --
123     --  Check conditionally required attributes here.
124     --
125 
126     IF  p_FORMULA_LINES_rec.formula_line_type_code = 'NUM' THEN
127                              -- Formula Line Type is Numeric Constant
128         IF p_FORMULA_LINES_rec.numeric_constant IS NULL THEN
129            l_return_status := FND_API.G_RET_STS_ERROR;
130 
131            IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
132            THEN
133 
134                FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
135                FND_MESSAGE.SET_TOKEN('ATTRIBUTE','numeric_constant');
136                OE_MSG_PUB.Add;
137 
138            END IF;
139 
140 	   END IF;
141 
142     ELSIF  p_FORMULA_LINES_rec.formula_line_type_code = 'PLL' THEN
143                              -- Formula Line Type is Price List Line
144         IF p_FORMULA_LINES_rec.price_list_line_id IS NULL THEN
145            l_return_status := FND_API.G_RET_STS_ERROR;
146 
147            IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
148            THEN
149 
150                FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
151                FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_list_line');
152                OE_MSG_PUB.Add;
153 
154            END IF;
155 
156 	   END IF;
157 
158     ELSIF  p_FORMULA_LINES_rec.formula_line_type_code = 'ML' THEN
159                              -- Formula Line Type is Factor(Modifier) List
160       /*IF p_FORMULA_LINES_rec.price_modifier_list_id IS NULL THEN
161            l_return_status := FND_API.G_RET_STS_ERROR;
162 
163            IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
164            THEN
165 
166                FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
167                FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_modifier_list');
168                OE_MSG_PUB.Add;
169 
170            END IF;
171 
172 	   END IF;*/
173 	   NULL;
174 
175     ELSIF  p_FORMULA_LINES_rec.formula_line_type_code = 'PRA' THEN
176                              -- Formula Line Type is Pricing Attribute
177         IF p_FORMULA_LINES_rec.pricing_attribute_context IS NULL THEN
178            l_return_status := FND_API.G_RET_STS_ERROR;
179 
180            IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
181            THEN
182 
183                FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
184                FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attribute_context');
185                OE_MSG_PUB.Add;
186 
187            END IF;
188 
189 	   END IF;
190 
191         IF p_FORMULA_LINES_rec.pricing_attribute IS NULL THEN
192            l_return_status := FND_API.G_RET_STS_ERROR;
193 
194            IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
195            THEN
196 
197                FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
198                FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attribute');
199                OE_MSG_PUB.Add;
200 
201            END IF;
202 
203 	   END IF;
204 
205     -- mkarya for bug 1906545, new formula_line_type_code 'MV' has been added
206     ELSIF  p_FORMULA_LINES_rec.formula_line_type_code NOT IN ('FUNC','LP','MV') THEN
207 
208         l_return_status := FND_API.G_RET_STS_ERROR;
209 
210         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
211         THEN
212 
213             FND_MESSAGE.SET_NAME('QP','QP_INVALID_FORMULA_LINE_TYPE');
214             OE_MSG_PUB.Add;
215 
216         END IF;
217 
218     END IF;
219 
220     --
221     --  Check for duplicates here.
222     --
223 
224     IF  p_FORMULA_LINES_rec.step_number IS NOT NULL AND
225         (   p_FORMULA_LINES_rec.step_number <>
226             p_old_FORMULA_LINES_rec.step_number OR
227             p_old_FORMULA_LINES_rec.step_number IS NULL ) THEN
228 
229         SELECT count(*)
230         INTO   l_count
231         FROM   qp_price_formula_lines
232         WHERE  step_number = p_FORMULA_LINES_rec.step_number
233 	   AND    price_formula_id = p_FORMULA_LINES_rec.price_formula_id;
234 
235         IF l_count > 0
236         THEN
237 
238             l_return_status := FND_API.G_RET_STS_ERROR;
239 
240             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
241             THEN
242 
243                 FND_MESSAGE.SET_NAME('QP','QP_DUPLICATE_ATTRIBUTE');
244                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','step_number');
245                 OE_MSG_PUB.Add;
246 
247             END IF;
248 
249         END IF;
250 
251     END IF; -- Check if modified or newly added step number already exists
252 
253 
254 /**** bug 4049775  ******************************************************/
255  IF p_FORMULA_LINES_rec.pricing_attribute_context IS NOT NULL AND p_FORMULA_LINES_rec.pricing_attribute IS NOT NULL THEN
256        DECLARE
257 	l_type VARCHAR2(1);
258        BEGIN
259 	select user_format_type into l_type
260 	from qp_segments_b b, qp_prc_contexts_b c
261 	where c.prc_context_code=p_FORMULA_LINES_rec.pricing_attribute_context
262 	and b.SEGMENT_MAPPING_COLUMN = p_FORMULA_LINES_rec.pricing_attribute
263 	and b.prc_context_id = c.prc_context_id;
264 
265         IF l_type <> 'N' THEN
266 
267 	     l_return_status := FND_API.G_RET_STS_ERROR;
268 
269             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
270             THEN
271 
272                 FND_MESSAGE.SET_NAME('QP','QP_INVALID_NUM_ATTRIBUTE');
273                 OE_MSG_PUB.Add;
274 
275             END IF;
276 
277         END IF;
278        END;
279     END IF;
280 
281     --  Return Error if a required attribute is missing or invalid.
282     --  or if duplicates exist
283 
284     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
285 
286         RAISE FND_API.G_EXC_ERROR;
287 
288     END IF;
289 
290     --
291     --  Validate attribute dependencies here.
292     --
293 
294 
295     --  Done validating entity
296 
297     x_return_status := l_return_status;
298 
299 
300 
301 
302 oe_debug_pub.add('Leaving proc Entity of Formula Lines Validation Pkg');
303 EXCEPTION
304 
305     WHEN FND_API.G_EXC_ERROR THEN
306 
307         x_return_status := FND_API.G_RET_STS_ERROR;
308 
309     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
310 
311         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
312 
313     WHEN OTHERS THEN
314 
315         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
316 
317         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
318         THEN
319             OE_MSG_PUB.Add_Exc_Msg
320             (   G_PKG_NAME
321             ,   'Entity'
322             );
323         END IF;
324 
325 END Entity;
326 
327 --  Procedure Attributes
328 
329 PROCEDURE Attributes
330 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
331 ,   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
332 ,   p_old_FORMULA_LINES_rec         IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type :=
333                                         QP_Price_Formula_PUB.G_MISS_FORMULA_LINES_REC
334 )
335 IS
336 BEGIN
337 
338 oe_debug_pub.add('Entering proc Attributes of Formula Lines Validation Pkg');
339     x_return_status := FND_API.G_RET_STS_SUCCESS;
340 
341     --  Validate FORMULA_LINES attributes
342 
343     IF  p_FORMULA_LINES_rec.created_by IS NOT NULL AND
344         (   p_FORMULA_LINES_rec.created_by <>
345             p_old_FORMULA_LINES_rec.created_by OR
346             p_old_FORMULA_LINES_rec.created_by IS NULL )
347     THEN
348         IF NOT QP_Validate.Created_By(p_FORMULA_LINES_rec.created_by) THEN
349             x_return_status := FND_API.G_RET_STS_ERROR;
350         END IF;
351     END IF;
352 
353     IF  p_FORMULA_LINES_rec.creation_date IS NOT NULL AND
354         (   p_FORMULA_LINES_rec.creation_date <>
355             p_old_FORMULA_LINES_rec.creation_date OR
356             p_old_FORMULA_LINES_rec.creation_date IS NULL )
357     THEN
358         IF NOT QP_Validate.Creation_Date(p_FORMULA_LINES_rec.creation_date) THEN
359             x_return_status := FND_API.G_RET_STS_ERROR;
360         END IF;
361     END IF;
362 
363     IF  p_FORMULA_LINES_rec.end_date_active IS NOT NULL AND
364         (   p_FORMULA_LINES_rec.end_date_active <>
365             p_old_FORMULA_LINES_rec.end_date_active OR
366             p_old_FORMULA_LINES_rec.end_date_active IS NULL )
367     THEN
368         IF NOT QP_Validate.End_Date_Active(p_FORMULA_LINES_rec.end_date_active) THEN
369             x_return_status := FND_API.G_RET_STS_ERROR;
370         END IF;
371     END IF;
372 
373     IF  p_FORMULA_LINES_rec.last_updated_by IS NOT NULL AND
374         (   p_FORMULA_LINES_rec.last_updated_by <>
375             p_old_FORMULA_LINES_rec.last_updated_by OR
376             p_old_FORMULA_LINES_rec.last_updated_by IS NULL )
377     THEN
378         IF NOT QP_Validate.Last_Updated_By(p_FORMULA_LINES_rec.last_updated_by) THEN
379             x_return_status := FND_API.G_RET_STS_ERROR;
380         END IF;
381     END IF;
382 
383     IF  p_FORMULA_LINES_rec.last_update_date IS NOT NULL AND
384         (   p_FORMULA_LINES_rec.last_update_date <>
385             p_old_FORMULA_LINES_rec.last_update_date OR
386             p_old_FORMULA_LINES_rec.last_update_date IS NULL )
387     THEN
388         IF NOT QP_Validate.Last_Update_Date(p_FORMULA_LINES_rec.last_update_date) THEN
389             x_return_status := FND_API.G_RET_STS_ERROR;
390         END IF;
391     END IF;
392 
393     IF  p_FORMULA_LINES_rec.last_update_login IS NOT NULL AND
394         (   p_FORMULA_LINES_rec.last_update_login <>
395             p_old_FORMULA_LINES_rec.last_update_login OR
396             p_old_FORMULA_LINES_rec.last_update_login IS NULL )
397     THEN
398         IF NOT QP_Validate.Last_Update_Login(p_FORMULA_LINES_rec.last_update_login) THEN
399             x_return_status := FND_API.G_RET_STS_ERROR;
400         END IF;
401     END IF;
402 
403     IF  p_FORMULA_LINES_rec.numeric_constant IS NOT NULL AND
404         (   p_FORMULA_LINES_rec.numeric_constant <>
405             p_old_FORMULA_LINES_rec.numeric_constant OR
406             p_old_FORMULA_LINES_rec.numeric_constant IS NULL )
407     THEN
408         IF NOT QP_Validate.Numeric_Constant(p_FORMULA_LINES_rec.numeric_constant) THEN
409             x_return_status := FND_API.G_RET_STS_ERROR;
410         END IF;
411     END IF;
412 
413     --POSCO change.
414     IF  p_FORMULA_LINES_rec.reqd_flag IS NOT NULL AND
415         (   p_FORMULA_LINES_rec.reqd_flag <>
416             p_old_FORMULA_LINES_rec.reqd_flag OR
417             p_old_FORMULA_LINES_rec.reqd_flag IS NULL )
418     THEN
419         IF NOT QP_Validate.Reqd_Flag(p_FORMULA_LINES_rec.reqd_flag) THEN
420             x_return_status := FND_API.G_RET_STS_ERROR;
421         END IF;
422     END IF;
423 
424     IF  p_FORMULA_LINES_rec.price_formula_id IS NOT NULL AND
425         (   p_FORMULA_LINES_rec.price_formula_id <>
426             p_old_FORMULA_LINES_rec.price_formula_id OR
427             p_old_FORMULA_LINES_rec.price_formula_id IS NULL )
428     THEN
429         IF NOT QP_Validate.Price_Formula(p_FORMULA_LINES_rec.price_formula_id) THEN
430             x_return_status := FND_API.G_RET_STS_ERROR;
431         END IF;
432     END IF;
433 
434     IF  p_FORMULA_LINES_rec.price_formula_line_id IS NOT NULL AND
435         (   p_FORMULA_LINES_rec.price_formula_line_id <>
436             p_old_FORMULA_LINES_rec.price_formula_line_id OR
437             p_old_FORMULA_LINES_rec.price_formula_line_id IS NULL )
438     THEN
439         IF NOT QP_Validate.Price_Formula_Line(p_FORMULA_LINES_rec.price_formula_line_id) THEN
440             x_return_status := FND_API.G_RET_STS_ERROR;
441         END IF;
442     END IF;
443 
444     IF  p_FORMULA_LINES_rec.formula_line_type_code IS NOT NULL AND
445         (   p_FORMULA_LINES_rec.formula_line_type_code <>
446             p_old_FORMULA_LINES_rec.formula_line_type_code OR
447             p_old_FORMULA_LINES_rec.formula_line_type_code IS NULL )
448     THEN
449         IF NOT QP_Validate.Price_Formula_Line_Type(p_FORMULA_LINES_rec.formula_line_type_code) THEN
450             x_return_status := FND_API.G_RET_STS_ERROR;
451         END IF;
452     END IF;
453 
454     IF  p_FORMULA_LINES_rec.price_list_line_id IS NOT NULL AND
455         (   p_FORMULA_LINES_rec.price_list_line_id <>
456             p_old_FORMULA_LINES_rec.price_list_line_id OR
457             p_old_FORMULA_LINES_rec.price_list_line_id IS NULL )
458     THEN
459         IF NOT QP_Validate.Price_List_Line(p_FORMULA_LINES_rec.price_list_line_id) THEN
460             x_return_status := FND_API.G_RET_STS_ERROR;
461         END IF;
462     END IF;
463 
464     IF  p_FORMULA_LINES_rec.price_modifier_list_id IS NOT NULL AND
465         (   p_FORMULA_LINES_rec.price_modifier_list_id <>
466             p_old_FORMULA_LINES_rec.price_modifier_list_id OR
467             p_old_FORMULA_LINES_rec.price_modifier_list_id IS NULL )
468     THEN
469         IF NOT QP_Validate.Price_Modifier_List(p_FORMULA_LINES_rec.price_modifier_list_id) THEN
470             x_return_status := FND_API.G_RET_STS_ERROR;
471         END IF;
472     END IF;
473 
474     IF  p_FORMULA_LINES_rec.pricing_attribute IS NOT NULL AND
475         (   p_FORMULA_LINES_rec.pricing_attribute <>
476             p_old_FORMULA_LINES_rec.pricing_attribute OR
477             p_old_FORMULA_LINES_rec.pricing_attribute IS NULL )
478     THEN
479         IF NOT QP_Validate.Pricing_Attribute(p_FORMULA_LINES_rec.pricing_attribute) THEN
480             x_return_status := FND_API.G_RET_STS_ERROR;
481         END IF;
482     END IF;
483 
484     IF  p_FORMULA_LINES_rec.pricing_attribute_context IS NOT NULL AND
485         (   p_FORMULA_LINES_rec.pricing_attribute_context <>
486             p_old_FORMULA_LINES_rec.pricing_attribute_context OR
487             p_old_FORMULA_LINES_rec.pricing_attribute_context IS NULL )
488     THEN
489         IF NOT QP_Validate.Pricing_Attribute_Context(p_FORMULA_LINES_rec.pricing_attribute_context) THEN
490             x_return_status := FND_API.G_RET_STS_ERROR;
491         END IF;
492     END IF;
493 
494     IF  p_FORMULA_LINES_rec.start_date_active IS NOT NULL AND
495         (   p_FORMULA_LINES_rec.start_date_active <>
496             p_old_FORMULA_LINES_rec.start_date_active OR
497             p_old_FORMULA_LINES_rec.start_date_active IS NULL )
498     THEN
499         IF NOT QP_Validate.Start_Date_Active(p_FORMULA_LINES_rec.start_date_active) THEN
500             x_return_status := FND_API.G_RET_STS_ERROR;
501         END IF;
502     END IF;
503 
504     IF  p_FORMULA_LINES_rec.step_number IS NOT NULL AND
505         (   p_FORMULA_LINES_rec.step_number <>
506             p_old_FORMULA_LINES_rec.step_number OR
507             p_old_FORMULA_LINES_rec.step_number IS NULL )
508     THEN
509         IF NOT QP_Validate.Step_Number(p_FORMULA_LINES_rec.step_number) THEN
510             x_return_status := FND_API.G_RET_STS_ERROR;
511         END IF;
512     END IF;
513 
514     IF  (p_FORMULA_LINES_rec.attribute1 IS NOT NULL AND
515         (   p_FORMULA_LINES_rec.attribute1 <>
516             p_old_FORMULA_LINES_rec.attribute1 OR
517             p_old_FORMULA_LINES_rec.attribute1 IS NULL ))
518     OR  (p_FORMULA_LINES_rec.attribute10 IS NOT NULL AND
519         (   p_FORMULA_LINES_rec.attribute10 <>
520             p_old_FORMULA_LINES_rec.attribute10 OR
521             p_old_FORMULA_LINES_rec.attribute10 IS NULL ))
522     OR  (p_FORMULA_LINES_rec.attribute11 IS NOT NULL AND
523         (   p_FORMULA_LINES_rec.attribute11 <>
524             p_old_FORMULA_LINES_rec.attribute11 OR
525             p_old_FORMULA_LINES_rec.attribute11 IS NULL ))
526     OR  (p_FORMULA_LINES_rec.attribute12 IS NOT NULL AND
527         (   p_FORMULA_LINES_rec.attribute12 <>
528             p_old_FORMULA_LINES_rec.attribute12 OR
529             p_old_FORMULA_LINES_rec.attribute12 IS NULL ))
530     OR  (p_FORMULA_LINES_rec.attribute13 IS NOT NULL AND
531         (   p_FORMULA_LINES_rec.attribute13 <>
532             p_old_FORMULA_LINES_rec.attribute13 OR
533             p_old_FORMULA_LINES_rec.attribute13 IS NULL ))
534     OR  (p_FORMULA_LINES_rec.attribute14 IS NOT NULL AND
535         (   p_FORMULA_LINES_rec.attribute14 <>
536             p_old_FORMULA_LINES_rec.attribute14 OR
537             p_old_FORMULA_LINES_rec.attribute14 IS NULL ))
538     OR  (p_FORMULA_LINES_rec.attribute15 IS NOT NULL AND
539         (   p_FORMULA_LINES_rec.attribute15 <>
540             p_old_FORMULA_LINES_rec.attribute15 OR
541             p_old_FORMULA_LINES_rec.attribute15 IS NULL ))
542     OR  (p_FORMULA_LINES_rec.attribute2 IS NOT NULL AND
543         (   p_FORMULA_LINES_rec.attribute2 <>
544             p_old_FORMULA_LINES_rec.attribute2 OR
545             p_old_FORMULA_LINES_rec.attribute2 IS NULL ))
546     OR  (p_FORMULA_LINES_rec.attribute3 IS NOT NULL AND
547         (   p_FORMULA_LINES_rec.attribute3 <>
548             p_old_FORMULA_LINES_rec.attribute3 OR
549             p_old_FORMULA_LINES_rec.attribute3 IS NULL ))
550     OR  (p_FORMULA_LINES_rec.attribute4 IS NOT NULL AND
551         (   p_FORMULA_LINES_rec.attribute4 <>
552             p_old_FORMULA_LINES_rec.attribute4 OR
553             p_old_FORMULA_LINES_rec.attribute4 IS NULL ))
554     OR  (p_FORMULA_LINES_rec.attribute5 IS NOT NULL AND
555         (   p_FORMULA_LINES_rec.attribute5 <>
556             p_old_FORMULA_LINES_rec.attribute5 OR
557             p_old_FORMULA_LINES_rec.attribute5 IS NULL ))
558     OR  (p_FORMULA_LINES_rec.attribute6 IS NOT NULL AND
559         (   p_FORMULA_LINES_rec.attribute6 <>
560             p_old_FORMULA_LINES_rec.attribute6 OR
561             p_old_FORMULA_LINES_rec.attribute6 IS NULL ))
562     OR  (p_FORMULA_LINES_rec.attribute7 IS NOT NULL AND
563         (   p_FORMULA_LINES_rec.attribute7 <>
564             p_old_FORMULA_LINES_rec.attribute7 OR
565             p_old_FORMULA_LINES_rec.attribute7 IS NULL ))
566     OR  (p_FORMULA_LINES_rec.attribute8 IS NOT NULL AND
567         (   p_FORMULA_LINES_rec.attribute8 <>
568             p_old_FORMULA_LINES_rec.attribute8 OR
569             p_old_FORMULA_LINES_rec.attribute8 IS NULL ))
570     OR  (p_FORMULA_LINES_rec.attribute9 IS NOT NULL AND
571         (   p_FORMULA_LINES_rec.attribute9 <>
572             p_old_FORMULA_LINES_rec.attribute9 OR
573             p_old_FORMULA_LINES_rec.attribute9 IS NULL ))
574     OR  (p_FORMULA_LINES_rec.context IS NOT NULL AND
575         (   p_FORMULA_LINES_rec.context <>
576             p_old_FORMULA_LINES_rec.context OR
577             p_old_FORMULA_LINES_rec.context IS NULL ))
578     THEN
579 
580     --  These calls are temporarily commented out
581 
582 /*
583         FND_FLEX_DESC_VAL.Set_Column_Value
584         (   column_name                   => 'ATTRIBUTE1'
585         ,   column_value                  => p_FORMULA_LINES_rec.attribute1
586         );
587         FND_FLEX_DESC_VAL.Set_Column_Value
588         (   column_name                   => 'ATTRIBUTE10'
589         ,   column_value                  => p_FORMULA_LINES_rec.attribute10
590         );
591         FND_FLEX_DESC_VAL.Set_Column_Value
592         (   column_name                   => 'ATTRIBUTE11'
593         ,   column_value                  => p_FORMULA_LINES_rec.attribute11
594         );
595         FND_FLEX_DESC_VAL.Set_Column_Value
596         (   column_name                   => 'ATTRIBUTE12'
597         ,   column_value                  => p_FORMULA_LINES_rec.attribute12
598         );
599         FND_FLEX_DESC_VAL.Set_Column_Value
600         (   column_name                   => 'ATTRIBUTE13'
601         ,   column_value                  => p_FORMULA_LINES_rec.attribute13
602         );
603         FND_FLEX_DESC_VAL.Set_Column_Value
604         (   column_name                   => 'ATTRIBUTE14'
605         ,   column_value                  => p_FORMULA_LINES_rec.attribute14
606         );
607         FND_FLEX_DESC_VAL.Set_Column_Value
608         (   column_name                   => 'ATTRIBUTE15'
609         ,   column_value                  => p_FORMULA_LINES_rec.attribute15
610         );
611         FND_FLEX_DESC_VAL.Set_Column_Value
612         (   column_name                   => 'ATTRIBUTE2'
613         ,   column_value                  => p_FORMULA_LINES_rec.attribute2
614         );
615         FND_FLEX_DESC_VAL.Set_Column_Value
616         (   column_name                   => 'ATTRIBUTE3'
617         ,   column_value                  => p_FORMULA_LINES_rec.attribute3
618         );
619         FND_FLEX_DESC_VAL.Set_Column_Value
620         (   column_name                   => 'ATTRIBUTE4'
621         ,   column_value                  => p_FORMULA_LINES_rec.attribute4
622         );
623         FND_FLEX_DESC_VAL.Set_Column_Value
624         (   column_name                   => 'ATTRIBUTE5'
625         ,   column_value                  => p_FORMULA_LINES_rec.attribute5
626         );
627         FND_FLEX_DESC_VAL.Set_Column_Value
628         (   column_name                   => 'ATTRIBUTE6'
629         ,   column_value                  => p_FORMULA_LINES_rec.attribute6
630         );
631         FND_FLEX_DESC_VAL.Set_Column_Value
632         (   column_name                   => 'ATTRIBUTE7'
633         ,   column_value                  => p_FORMULA_LINES_rec.attribute7
634         );
635         FND_FLEX_DESC_VAL.Set_Column_Value
636         (   column_name                   => 'ATTRIBUTE8'
637         ,   column_value                  => p_FORMULA_LINES_rec.attribute8
638         );
639         FND_FLEX_DESC_VAL.Set_Column_Value
640         (   column_name                   => 'ATTRIBUTE9'
641         ,   column_value                  => p_FORMULA_LINES_rec.attribute9
642         );
643         FND_FLEX_DESC_VAL.Set_Column_Value
644         (   column_name                   => 'CONTEXT'
645         ,   column_value                  => p_FORMULA_LINES_rec.context
646         );
647 */
648 
649         --  Validate descriptive flexfield.
650 
651         IF NOT QP_Validate.Desc_Flex( 'FORMULA_LINES' ) THEN
652             x_return_status := FND_API.G_RET_STS_ERROR;
653         END IF;
654 
655     END IF;
656 
657     --  Done validating attributes
658 
659 oe_debug_pub.add('Leaving proc Attributes of Formula Lines Validation Pkg');
660 EXCEPTION
661 
662     WHEN FND_API.G_EXC_ERROR THEN
663 
664         x_return_status := FND_API.G_RET_STS_ERROR;
665 
666     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
667 
668         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
669 
670     WHEN OTHERS THEN
671 
672         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
673 
674         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
675         THEN
676             OE_MSG_PUB.Add_Exc_Msg
677             (   G_PKG_NAME
678             ,   'Attributes'
679             );
680         END IF;
681 
682 END Attributes;
683 
684 --  Procedure Entity_Delete
685 
686 PROCEDURE Entity_Delete
687 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
688 ,   p_FORMULA_LINES_rec             IN  QP_Price_Formula_PUB.Formula_Lines_Rec_Type
689 )
690 IS
691 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
692 BEGIN
693 
694 oe_debug_pub.add('Entering proc Entity_Delete of Formula Lines Validation Pkg');
695     --  Validate entity delete.
696 
697     NULL;
698 
699     --  Done.
700 
701     x_return_status := l_return_status;
702 
703 oe_debug_pub.add('Leaving proc Entity_Delete of Formula Lines Validation Pkg');
704 EXCEPTION
705 
706     WHEN FND_API.G_EXC_ERROR THEN
707 
708         x_return_status := FND_API.G_RET_STS_ERROR;
709 
710     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
711 
712         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
713 
714     WHEN OTHERS THEN
715 
716         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
717 
718         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
719         THEN
720             OE_MSG_PUB.Add_Exc_Msg
721             (   G_PKG_NAME
722             ,   'Entity_Delete'
723             );
724         END IF;
725 
726 END Entity_Delete;
727 
728 END QP_Validate_Formula_Lines;