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
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:
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:
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:
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:
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:
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:
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;
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: --
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:
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:
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:
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:
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:
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:
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:
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:
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;
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: --
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
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;
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
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;
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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:
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
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;
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
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;
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
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.
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
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;
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
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;
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