13: , p_old_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type :=
14: QP_Price_Formula_PUB.G_MISS_FORMULA_REC
15: )
16: IS
17: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18: l_count NUMBER := 0;
19: l_cursor INTEGER;
20: l_check_formula VARCHAR2(1); --sfiresto
21: l_dummy_operand_tbl QP_FORMULA_RULES_PVT.t_Operand_Tbl_Type; --sfiresto
29:
30: IF p_FORMULA_rec.price_formula_id IS NULL
31: THEN
32:
33: l_return_status := FND_API.G_RET_STS_ERROR;
34:
35: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
36: THEN
37:
49:
50: IF p_FORMULA_rec.name IS NULL
51: THEN
52:
53: l_return_status := FND_API.G_RET_STS_ERROR;
54:
55: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
56: THEN
57:
65:
66: IF p_FORMULA_rec.formula IS NULL
67: THEN
68:
69: l_return_status := FND_API.G_RET_STS_ERROR;
70:
71: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
72: THEN
73:
81:
82:
83: -- Return Error if a required attribute is missing.
84:
85: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
86:
87: RAISE FND_API.G_EXC_ERROR;
88:
89: END IF;
83: -- Return Error if a required attribute is missing.
84:
85: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
86:
87: RAISE FND_API.G_EXC_ERROR;
88:
89: END IF;
90:
91: -- Give warning message that dynamic formula package generater must be run if it is a new Formula
171: --Raises an exception if expression not valid
172: EXCEPTION
173:
174: WHEN OTHERS THEN
175: l_return_status := FND_API.G_RET_STS_ERROR;
176:
177: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
178: THEN
179:
203:
204: IF l_count > 0
205: THEN
206:
207: l_return_status := FND_API.G_RET_STS_ERROR;
208:
209: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
210: THEN
211:
228: nvl(p_FORMULA_rec.end_date_active,
229: TO_DATE('12-31-9999', 'MM-DD-YYYY'))
230: THEN
231:
232: l_return_status := FND_API.G_RET_STS_ERROR;
233:
234: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
235: THEN
236:
242: END IF;
243:
244: -- Return Error if dependent attribute is invalid.
245:
246: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
247:
248: RAISE FND_API.G_EXC_ERROR;
249:
250: END IF;
244: -- Return Error if dependent attribute is invalid.
245:
246: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
247:
248: RAISE FND_API.G_EXC_ERROR;
249:
250: END IF;
251:
252:
256:
257: oe_debug_pub.add('Leaving proc Entity in Formula Validation Pkg');
258: EXCEPTION
259:
260: WHEN FND_API.G_EXC_ERROR THEN
261:
262: x_return_status := FND_API.G_RET_STS_ERROR;
263:
264: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
258: EXCEPTION
259:
260: WHEN FND_API.G_EXC_ERROR THEN
261:
262: x_return_status := FND_API.G_RET_STS_ERROR;
263:
264: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
265:
266: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
260: WHEN FND_API.G_EXC_ERROR THEN
261:
262: x_return_status := FND_API.G_RET_STS_ERROR;
263:
264: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
265:
266: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267:
268: WHEN OTHERS THEN
262: x_return_status := FND_API.G_RET_STS_ERROR;
263:
264: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
265:
266: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267:
268: WHEN OTHERS THEN
269:
270: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
266: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267:
268: WHEN OTHERS THEN
269:
270: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
271:
272: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
273: THEN
274: OE_MSG_PUB.Add_Exc_Msg
290: IS
291: BEGIN
292:
293: oe_debug_pub.add('Entering proc Attributes in Formula Validation Pkg');
294: x_return_status := FND_API.G_RET_STS_SUCCESS;
295:
296: -- Validate FORMULA attributes
297:
298: IF p_FORMULA_rec.created_by IS NOT NULL AND
300: p_old_FORMULA_rec.created_by OR
301: p_old_FORMULA_rec.created_by IS NULL )
302: THEN
303: IF NOT QP_Validate.Created_By(p_FORMULA_rec.created_by) THEN
304: x_return_status := FND_API.G_RET_STS_ERROR;
305: END IF;
306: END IF;
307:
308: IF p_FORMULA_rec.creation_date IS NOT NULL AND
310: p_old_FORMULA_rec.creation_date OR
311: p_old_FORMULA_rec.creation_date IS NULL )
312: THEN
313: IF NOT QP_Validate.Creation_Date(p_FORMULA_rec.creation_date) THEN
314: x_return_status := FND_API.G_RET_STS_ERROR;
315: END IF;
316: END IF;
317:
318: IF p_FORMULA_rec.description IS NOT NULL AND
320: p_old_FORMULA_rec.description OR
321: p_old_FORMULA_rec.description IS NULL )
322: THEN
323: IF NOT QP_Validate.Description(p_FORMULA_rec.description) THEN
324: x_return_status := FND_API.G_RET_STS_ERROR;
325: END IF;
326: END IF;
327:
328: IF p_FORMULA_rec.end_date_active IS NOT NULL AND
330: p_old_FORMULA_rec.end_date_active OR
331: p_old_FORMULA_rec.end_date_active IS NULL )
332: THEN
333: IF NOT QP_Validate.End_Date_Active(p_FORMULA_rec.end_date_active) THEN
334: x_return_status := FND_API.G_RET_STS_ERROR;
335: END IF;
336: END IF;
337:
338: IF p_FORMULA_rec.formula IS NOT NULL AND
340: p_old_FORMULA_rec.formula OR
341: p_old_FORMULA_rec.formula IS NULL )
342: THEN
343: IF NOT QP_Validate.Formula(p_FORMULA_rec.formula) THEN
344: x_return_status := FND_API.G_RET_STS_ERROR;
345: END IF;
346: END IF;
347:
348: IF p_FORMULA_rec.last_updated_by IS NOT NULL AND
350: p_old_FORMULA_rec.last_updated_by OR
351: p_old_FORMULA_rec.last_updated_by IS NULL )
352: THEN
353: IF NOT QP_Validate.Last_Updated_By(p_FORMULA_rec.last_updated_by) THEN
354: x_return_status := FND_API.G_RET_STS_ERROR;
355: END IF;
356: END IF;
357:
358: IF p_FORMULA_rec.last_update_date IS NOT NULL AND
360: p_old_FORMULA_rec.last_update_date OR
361: p_old_FORMULA_rec.last_update_date IS NULL )
362: THEN
363: IF NOT QP_Validate.Last_Update_Date(p_FORMULA_rec.last_update_date) THEN
364: x_return_status := FND_API.G_RET_STS_ERROR;
365: END IF;
366: END IF;
367:
368: IF p_FORMULA_rec.last_update_login IS NOT NULL AND
370: p_old_FORMULA_rec.last_update_login OR
371: p_old_FORMULA_rec.last_update_login IS NULL )
372: THEN
373: IF NOT QP_Validate.Last_Update_Login(p_FORMULA_rec.last_update_login) THEN
374: x_return_status := FND_API.G_RET_STS_ERROR;
375: END IF;
376: END IF;
377:
378: IF p_FORMULA_rec.name IS NOT NULL AND
380: p_old_FORMULA_rec.name OR
381: p_old_FORMULA_rec.name IS NULL )
382: THEN
383: IF NOT QP_Validate.Name(p_FORMULA_rec.name) THEN
384: x_return_status := FND_API.G_RET_STS_ERROR;
385: END IF;
386: END IF;
387:
388: IF p_FORMULA_rec.price_formula_id IS NOT NULL AND
390: p_old_FORMULA_rec.price_formula_id OR
391: p_old_FORMULA_rec.price_formula_id IS NULL )
392: THEN
393: IF NOT QP_Validate.Price_Formula(p_FORMULA_rec.price_formula_id) THEN
394: x_return_status := FND_API.G_RET_STS_ERROR;
395: END IF;
396: END IF;
397:
398: IF p_FORMULA_rec.start_date_active IS NOT NULL AND
400: p_old_FORMULA_rec.start_date_active OR
401: p_old_FORMULA_rec.start_date_active IS NULL )
402: THEN
403: IF NOT QP_Validate.Start_Date_Active(p_FORMULA_rec.start_date_active) THEN
404: x_return_status := FND_API.G_RET_STS_ERROR;
405: END IF;
406: END IF;
407:
408: IF (p_FORMULA_rec.attribute1 IS NOT NULL AND
542:
543: -- Validate descriptive flexfield.
544:
545: IF NOT QP_Validate.Desc_Flex( 'FORMULA' ) THEN
546: x_return_status := FND_API.G_RET_STS_ERROR;
547: END IF;
548:
549: END IF;
550:
552:
553: oe_debug_pub.add('Leaving proc Attributes in Formula Validation Pkg');
554: EXCEPTION
555:
556: WHEN FND_API.G_EXC_ERROR THEN
557:
558: x_return_status := FND_API.G_RET_STS_ERROR;
559:
560: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
554: EXCEPTION
555:
556: WHEN FND_API.G_EXC_ERROR THEN
557:
558: x_return_status := FND_API.G_RET_STS_ERROR;
559:
560: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
561:
562: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
556: WHEN FND_API.G_EXC_ERROR THEN
557:
558: x_return_status := FND_API.G_RET_STS_ERROR;
559:
560: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
561:
562: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
563:
564: WHEN OTHERS THEN
558: x_return_status := FND_API.G_RET_STS_ERROR;
559:
560: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
561:
562: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
563:
564: WHEN OTHERS THEN
565:
566: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
562: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
563:
564: WHEN OTHERS THEN
565:
566: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
567:
568: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
569: THEN
570: OE_MSG_PUB.Add_Exc_Msg
581: ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
582: , p_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type
583: )
584: IS
585: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
586: BEGIN
587:
588: oe_debug_pub.add('Entering proc Entity_Delete in Formula Validation Pkg');
589: -- Validate entity delete.
596:
597: oe_debug_pub.add('Leaving proc Entity_Delete in Formula Validation Pkg');
598: EXCEPTION
599:
600: WHEN FND_API.G_EXC_ERROR THEN
601:
602: x_return_status := FND_API.G_RET_STS_ERROR;
603:
604: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
598: EXCEPTION
599:
600: WHEN FND_API.G_EXC_ERROR THEN
601:
602: x_return_status := FND_API.G_RET_STS_ERROR;
603:
604: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
605:
606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
600: WHEN FND_API.G_EXC_ERROR THEN
601:
602: x_return_status := FND_API.G_RET_STS_ERROR;
603:
604: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
605:
606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
607:
608: WHEN OTHERS THEN
602: x_return_status := FND_API.G_RET_STS_ERROR;
603:
604: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
605:
606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
607:
608: WHEN OTHERS THEN
609:
610: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
607:
608: WHEN OTHERS THEN
609:
610: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
611:
612: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
613: THEN
614: OE_MSG_PUB.Add_Exc_Msg