8: -- Formula
9:
10: PROCEDURE Formula
11: ( p_validation_level IN NUMBER
12: , p_control_rec IN QP_GLOBALS.Control_Rec_Type
13: , p_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type
14: , p_old_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type
15: , x_FORMULA_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Rec_Type
16: , x_old_FORMULA_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Rec_Type
16: , x_old_FORMULA_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Rec_Type
17: )
18: IS
19: l_return_status VARCHAR2(1);
20: l_control_rec QP_GLOBALS.Control_Rec_Type;
21: l_FORMULA_rec QP_Price_Formula_PUB.Formula_Rec_Type := p_FORMULA_rec;
22: l_old_FORMULA_rec QP_Price_Formula_PUB.Formula_Rec_Type := p_old_FORMULA_rec;
23:
24: --[prarasto]
28:
29: oe_debug_pub.add('Entering procedure Formula in Pvt formula package');
30: -- Load API control record
31:
32: l_control_rec := QP_GLOBALS.Init_Control_Rec
33: ( p_operation => l_FORMULA_rec.operation
34: , p_control_rec => p_control_rec
35: );
36:
39: l_FORMULA_rec.return_status := FND_API.G_RET_STS_SUCCESS;
40:
41: -- Prepare record.
42:
43: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
44:
45: l_FORMULA_rec.db_flag := FND_API.G_FALSE;
46:
47: -- Set missing old record elements to NULL.
48:
49: l_old_FORMULA_rec :=
50: QP_Formula_Util.Convert_Miss_To_Null (l_old_FORMULA_rec);
51:
52: ELSIF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE
53: OR l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_DELETE
54: THEN
55:
56: l_FORMULA_rec.db_flag := FND_API.G_TRUE;
49: l_old_FORMULA_rec :=
50: QP_Formula_Util.Convert_Miss_To_Null (l_old_FORMULA_rec);
51:
52: ELSIF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE
53: OR l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_DELETE
54: THEN
55:
56: l_FORMULA_rec.db_flag := FND_API.G_TRUE;
57:
83: END IF;
84:
85: -- Attribute level validation.
86:
87: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_CREATE OR
88: l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE OR
89: l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
90:
91: IF l_control_rec.default_attributes
84:
85: -- Attribute level validation.
86:
87: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_CREATE OR
88: l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE OR
89: l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
90:
91: IF l_control_rec.default_attributes
92: OR l_control_rec.change_attributes
85: -- Attribute level validation.
86:
87: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_CREATE OR
88: l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE OR
89: l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
90:
91: IF l_control_rec.default_attributes
92: OR l_control_rec.change_attributes
93: THEN
158: -- Entity level validation.
159:
160: IF l_control_rec.validate_entity THEN
161:
162: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
163:
164: QP_Validate_Formula.Entity_Delete
165: ( x_return_status => l_return_status
166: , p_FORMULA_rec => l_FORMULA_rec
187: -- Step 4. Write to DB
188:
189: IF l_control_rec.write_to_db THEN
190:
191: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
192:
193: QP_Formula_Util.Delete_Row
194: ( p_price_formula_id => l_FORMULA_rec.price_formula_id
195: );
201: l_FORMULA_rec.last_update_date := SYSDATE;
202: l_FORMULA_rec.last_updated_by := FND_GLOBAL.USER_ID;
203: l_FORMULA_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
204:
205: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
206:
207: QP_Formula_Util.Update_Row (l_FORMULA_rec);
208:
209: ELSIF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
205: IF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
206:
207: QP_Formula_Util.Update_Row (l_FORMULA_rec);
208:
209: ELSIF l_FORMULA_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
210:
211: l_FORMULA_rec.creation_date := SYSDATE;
212: l_FORMULA_rec.created_by := FND_GLOBAL.USER_ID;
213:
265: -- Formula_Liness
266:
267: PROCEDURE Formula_Liness
268: ( p_validation_level IN NUMBER
269: , p_control_rec IN QP_GLOBALS.Control_Rec_Type
270: , p_FORMULA_LINES_tbl IN QP_Price_Formula_PUB.Formula_Lines_Tbl_Type
271: , p_old_FORMULA_LINES_tbl IN QP_Price_Formula_PUB.Formula_Lines_Tbl_Type
272: , x_FORMULA_LINES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Lines_Tbl_Type
273: , x_old_FORMULA_LINES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Lines_Tbl_Type
273: , x_old_FORMULA_LINES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Lines_Tbl_Type
274: )
275: IS
276: l_return_status VARCHAR2(1);
277: l_control_rec QP_GLOBALS.Control_Rec_Type;
278: l_FORMULA_LINES_rec QP_Price_Formula_PUB.Formula_Lines_Rec_Type;
279: l_FORMULA_LINES_tbl QP_Price_Formula_PUB.Formula_Lines_Tbl_Type;
280: l_old_FORMULA_LINES_rec QP_Price_Formula_PUB.Formula_Lines_Rec_Type;
281: l_old_FORMULA_LINES_tbl QP_Price_Formula_PUB.Formula_Lines_Tbl_Type;
304: END IF;
305:
306: -- Load API control record
307:
308: l_control_rec := QP_GLOBALS.Init_Control_Rec
309: ( p_operation => l_FORMULA_LINES_rec.operation
310: , p_control_rec => p_control_rec
311: );
312:
315: l_FORMULA_LINES_rec.return_status := FND_API.G_RET_STS_SUCCESS;
316:
317: -- Prepare record.
318:
319: IF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
320:
321: l_FORMULA_LINES_rec.db_flag := FND_API.G_FALSE;
322:
323: -- Set missing old record elements to NULL.
324:
325: l_old_FORMULA_LINES_rec :=
326: QP_Formula_Lines_Util.Convert_Miss_To_Null (l_old_FORMULA_LINES_rec);
327:
328: ELSIF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_UPDATE
329: OR l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_DELETE
330: THEN
331:
332: l_FORMULA_LINES_rec.db_flag := FND_API.G_TRUE;
325: l_old_FORMULA_LINES_rec :=
326: QP_Formula_Lines_Util.Convert_Miss_To_Null (l_old_FORMULA_LINES_rec);
327:
328: ELSIF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_UPDATE
329: OR l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_DELETE
330: THEN
331:
332: l_FORMULA_LINES_rec.db_flag := FND_API.G_TRUE;
333:
431: -- Entity level validation.
432:
433: IF l_control_rec.validate_entity THEN
434:
435: IF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
436:
437: QP_Validate_Formula_Lines.Entity_Delete
438: ( x_return_status => l_return_status
439: , p_FORMULA_LINES_rec => l_FORMULA_LINES_rec
460: -- Step 4. Write to DB
461:
462: IF l_control_rec.write_to_db THEN
463:
464: IF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
465:
466: QP_Formula_Lines_Util.Delete_Row
467: ( p_price_formula_line_id => l_FORMULA_LINES_rec.price_formula_line_id
468: );
474: l_FORMULA_LINES_rec.last_update_date := SYSDATE;
475: l_FORMULA_LINES_rec.last_updated_by := FND_GLOBAL.USER_ID;
476: l_FORMULA_LINES_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
477:
478: IF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
479:
480: QP_Formula_Lines_Util.Update_Row (l_FORMULA_LINES_rec);
481:
482: ELSIF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
478: IF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
479:
480: QP_Formula_Lines_Util.Update_Row (l_FORMULA_LINES_rec);
481:
482: ELSIF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
483:
484: l_FORMULA_LINES_rec.creation_date := SYSDATE;
485: l_FORMULA_LINES_rec.created_by := FND_GLOBAL.USER_ID;
486:
586: ( p_api_version_number IN NUMBER
587: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
588: , p_commit IN VARCHAR2 := FND_API.G_FALSE
589: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
590: , p_control_rec IN QP_GLOBALS.Control_Rec_Type :=
591: QP_GLOBALS.G_MISS_CONTROL_REC
592: , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
593: , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
594: , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
587: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
588: , p_commit IN VARCHAR2 := FND_API.G_FALSE
589: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
590: , p_control_rec IN QP_GLOBALS.Control_Rec_Type :=
591: QP_GLOBALS.G_MISS_CONTROL_REC
592: , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
593: , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
594: , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
595: , p_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type :=
606: IS
607: l_api_version_number CONSTANT NUMBER := 1.0;
608: l_api_name CONSTANT VARCHAR2(30):= 'Process_Price_Formula';
609: l_return_status VARCHAR2(1);
610: l_control_rec QP_GLOBALS.Control_Rec_Type;
611: l_FORMULA_rec QP_Price_Formula_PUB.Formula_Rec_Type := p_FORMULA_rec;
612: l_old_FORMULA_rec QP_Price_Formula_PUB.Formula_Rec_Type := p_old_FORMULA_rec;
613: l_FORMULA_LINES_rec QP_Price_Formula_PUB.Formula_Lines_Rec_Type;
614: l_FORMULA_LINES_tbl QP_Price_Formula_PUB.Formula_Lines_Tbl_Type;
679:
680: -- Perform FORMULA group requests.
681:
682: IF p_control_rec.process AND
683: (p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL OR
684: p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_FORMULA)
685: THEN
686:
687: NULL;
680: -- Perform FORMULA group requests.
681:
682: IF p_control_rec.process AND
683: (p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL OR
684: p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_FORMULA)
685: THEN
686:
687: NULL;
688:
693: FOR I IN 1..l_FORMULA_LINES_tbl.COUNT LOOP
694:
695: l_FORMULA_LINES_rec := l_FORMULA_LINES_tbl(I);
696:
697: IF l_FORMULA_LINES_rec.operation = QP_GLOBALS.G_OPR_CREATE
698: AND (l_FORMULA_LINES_rec.price_formula_id IS NULL OR
699: l_FORMULA_LINES_rec.price_formula_id = FND_API.G_MISS_NUM)
700: THEN
701:
721:
722: -- Perform FORMULA_LINES group requests.
723:
724: IF p_control_rec.process AND
725: (p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL OR
726: p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_FORMULA_LINES)
727: THEN
728:
729: NULL;
722: -- Perform FORMULA_LINES group requests.
723:
724: IF p_control_rec.process AND
725: (p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL OR
726: p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_FORMULA_LINES)
727: THEN
728:
729: NULL;
730:
732:
733: -- Step 6. Perform Object group logic
734:
735: IF p_control_rec.process AND
736: p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL
737: THEN
738:
739: NULL;
740:
891: SAVEPOINT Lock_Price_Formula_PVT;
892:
893: -- Lock FORMULA
894:
895: IF p_FORMULA_rec.operation = QP_GLOBALS.G_OPR_LOCK THEN
896:
897: QP_Formula_Util.Lock_Row
898: ( p_FORMULA_rec => p_FORMULA_rec
899: , x_FORMULA_rec => x_FORMULA_rec
912: -- Lock FORMULA_LINES
913:
914: FOR I IN 1..p_FORMULA_LINES_tbl.COUNT LOOP
915:
916: IF p_FORMULA_LINES_tbl(I).operation = QP_GLOBALS.G_OPR_LOCK THEN
917:
918: QP_Formula_Lines_Util.Lock_Row
919: ( p_FORMULA_LINES_rec => p_FORMULA_LINES_tbl(I)
920: , x_FORMULA_LINES_rec => l_FORMULA_LINES_rec