DBA Data[Home] [Help]

PACKAGE BODY: APPS.FUN_RULE_CRITERIA_PKG

Source


1 PACKAGE BODY FUN_RULE_CRITERIA_PKG AS
2 /*$Header: FUNXTMRULRCTTBB.pls 120.0 2005/06/20 04:30:01 ammishra noship $ */
3 
4 PROCEDURE Insert_Row (
5     X_ROWID                                 IN OUT NOCOPY VARCHAR2,
6     X_CRITERIA_ID                           IN     NUMBER,
7     X_RULE_DETAIL_ID		            IN     NUMBER,
8     X_CRITERIA_PARAM_ID  	            IN     NUMBER,
9     X_CONDITION				    IN     VARCHAR2,
10     X_PARAM_VALUE			    IN     VARCHAR2,
11     X_CASE_SENSITIVE_FLAG		    IN     VARCHAR2,
12     X_CREATED_BY_MODULE                     IN     VARCHAR2
13 ) IS
14 
15 BEGIN
16 
17     INSERT INTO FUN_RULE_CRITERIA (
18         CRITERIA_ID,
19         RULE_DETAIL_ID,
20         CRITERIA_PARAM_ID,
21         CONDITION,
22         PARAM_VALUE,
23         CASE_SENSITIVE_FLAG,
24         CREATED_BY,
25         CREATION_DATE,
26         LAST_UPDATE_LOGIN,
27         LAST_UPDATE_DATE,
28         LAST_UPDATED_BY,
29         OBJECT_VERSION_NUMBER,
30         CREATED_BY_MODULE
31     )
32     VALUES (
33         DECODE( X_CRITERIA_ID, NULL , FUN_RULE_CRITERIA_S.NEXTVAL , X_CRITERIA_ID),
34         DECODE( X_RULE_DETAIL_ID, FND_API.G_MISS_NUM, NULL, X_RULE_DETAIL_ID ),
35 	DECODE( X_CRITERIA_PARAM_ID, FND_API.G_MISS_NUM, NULL, X_CRITERIA_PARAM_ID ),
36 	DECODE( X_CONDITION, FND_API.G_MISS_CHAR, NULL, X_CONDITION ),
37 	DECODE( X_PARAM_VALUE, FND_API.G_MISS_CHAR, NULL, X_PARAM_VALUE ),
38 	DECODE( X_CASE_SENSITIVE_FLAG, FND_API.G_MISS_CHAR, NULL, X_CASE_SENSITIVE_FLAG ),
39         FUN_RULE_UTILITY_PKG.CREATED_BY,
40         FUN_RULE_UTILITY_PKG.CREATION_DATE,
41         FUN_RULE_UTILITY_PKG.LAST_UPDATE_LOGIN,
42         FUN_RULE_UTILITY_PKG.LAST_UPDATE_DATE,
43         FUN_RULE_UTILITY_PKG.LAST_UPDATED_BY,
44         1,
45         DECODE( X_CREATED_BY_MODULE, FND_API.G_MISS_CHAR, NULL, X_CREATED_BY_MODULE )
46        )RETURNING ROWID INTO X_ROWID;
47 
48 END Insert_Row;
49 
50 PROCEDURE Update_Row (
51     X_CRITERIA_ID                           IN     NUMBER,
52     X_RULE_DETAIL_ID		            IN     NUMBER,
53     X_CRITERIA_PARAM_ID		            IN     NUMBER,
54     X_CONDITION				    IN     VARCHAR2,
55     X_PARAM_VALUE			    IN     VARCHAR2,
56     X_CASE_SENSITIVE_FLAG		    IN     VARCHAR2,
57     X_CREATED_BY_MODULE                     IN     VARCHAR2
58 ) IS
59 
60 BEGIN
61 
62     UPDATE FUN_RULE_CRITERIA SET
63 	CRITERIA_PARAM_ID = DECODE( X_CRITERIA_PARAM_ID, FND_API.G_MISS_CHAR, NULL, NULL,CRITERIA_PARAM_ID,   X_CRITERIA_PARAM_ID ),
64 	CONDITION = X_CONDITION,
65 
66         --Param Value can be NULL, we should not overwrite the value with old value if its not null.
67 	PARAM_VALUE = DECODE( X_PARAM_VALUE, FND_API.G_MISS_CHAR, NULL,  X_PARAM_VALUE ),
68 
69 	CASE_SENSITIVE_FLAG = DECODE( X_CASE_SENSITIVE_FLAG, FND_API.G_MISS_CHAR, NULL, NULL,CASE_SENSITIVE_FLAG,   X_CASE_SENSITIVE_FLAG ),
70         CREATED_BY = FUN_RULE_UTILITY_PKG.CREATED_BY,
71         CREATION_DATE = FUN_RULE_UTILITY_PKG.CREATION_DATE,
72         LAST_UPDATE_LOGIN = FUN_RULE_UTILITY_PKG.LAST_UPDATE_LOGIN,
73         LAST_UPDATE_DATE = FUN_RULE_UTILITY_PKG.LAST_UPDATE_DATE,
74         LAST_UPDATED_BY = FUN_RULE_UTILITY_PKG.LAST_UPDATED_BY,
75         OBJECT_VERSION_NUMBER = OBJECT_VERSION_NUMBER + 1,
76         CREATED_BY_MODULE = DECODE( X_CREATED_BY_MODULE, FND_API.G_MISS_CHAR, NULL, NULL,CREATED_BY_MODULE,   X_CREATED_BY_MODULE )
77       WHERE CRITERIA_ID = X_CRITERIA_ID;
78 
79 
80 EXCEPTION
81     WHEN NO_DATA_FOUND THEN
82         RAISE NO_DATA_FOUND;
83 END Update_Row;
84 
85 PROCEDURE Lock_Row (
86     X_CRITERIA_ID                           IN     NUMBER,
87     X_OBJECT_VERSION_NUMBER                 IN     NUMBER
88 ) IS
89 
90     CURSOR C IS
91         SELECT OBJECT_VERSION_NUMBER FROM FUN_RULE_CRITERIA
92         WHERE  CRITERIA_ID = X_CRITERIA_ID
93         FOR UPDATE NOWAIT;
94     Recinfo C%ROWTYPE;
95 
96 BEGIN
97 
98     OPEN C;
99     FETCH C INTO Recinfo;
100     IF ( C%NOTFOUND ) THEN
101         CLOSE C;
102         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
103         APP_EXCEPTION.RAISE_EXCEPTION;
104     END IF;
105     CLOSE C;
106 
107     IF (
108        ( ( Recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER )
109         OR ( ( Recinfo.OBJECT_VERSION_NUMBER IS NULL )
110             AND (  X_OBJECT_VERSION_NUMBER IS NULL ) ) )
111     ) THEN
112         RETURN;
113     ELSE
114         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
115         APP_EXCEPTION.RAISE_EXCEPTION;
116     END IF;
117 
118 END Lock_Row;
119 
120 PROCEDURE Select_Row (
121     X_CRITERIA_ID         	            IN  OUT NOCOPY   NUMBER,
122     X_RULE_DETAIL_ID			    IN  OUT NOCOPY   NUMBER,
123     X_CRITERIA_PARAM_ID                     OUT NOCOPY     NUMBER,
124     X_CONDITION                             OUT NOCOPY     VARCHAR2,
125     X_PARAM_VALUE			    OUT NOCOPY     VARCHAR2,
126     X_CASE_SENSITIVE_FLAG		    OUT NOCOPY     VARCHAR2,
127     X_CREATED_BY_MODULE                     OUT NOCOPY     VARCHAR2
128 ) IS
129 
130 BEGIN
131 
132     SELECT
133         NVL( CRITERIA_PARAM_ID, FND_API.G_MISS_NUM ),
134         NVL( CRITERIA_ID, FND_API.G_MISS_NUM ),
135         NVL( RULE_DETAIL_ID, FND_API.G_MISS_NUM ),
136         NVL( CONDITION, FND_API.G_MISS_CHAR ),
137         NVL( PARAM_VALUE, FND_API.G_MISS_CHAR ),
138         NVL( CASE_SENSITIVE_FLAG, FND_API.G_MISS_CHAR ),
139         NVL( CREATED_BY_MODULE, FND_API.G_MISS_CHAR )
140     INTO
141 	X_CRITERIA_PARAM_ID,
142         X_CRITERIA_ID,
143         X_RULE_DETAIL_ID,
144         X_CONDITION,
145         X_PARAM_VALUE,
146         X_CASE_SENSITIVE_FLAG,
147         X_CREATED_BY_MODULE
148     FROM FUN_RULE_CRITERIA
149     WHERE CRITERIA_ID = X_CRITERIA_ID
150     AND ROWNUM = 1;
151 
152 
153 EXCEPTION
154     WHEN NO_DATA_FOUND THEN
155         FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_NO_RECORD' );
156         FND_MESSAGE.SET_TOKEN( 'RECORD', 'p_rule_criteria_rec');
157         FND_MESSAGE.SET_TOKEN( 'VALUE', X_CRITERIA_ID );
158         FND_MSG_PUB.ADD;
159         RAISE FND_API.G_EXC_ERROR;
160 
161 END Select_Row;
162 
163 PROCEDURE Delete_Row (
164     X_CRITERIA_ID 		     IN     NUMBER
165 ) IS
166 
167 BEGIN
168 
169     DELETE FUN_RULE_CRITERIA
170     WHERE CRITERIA_ID = X_CRITERIA_ID;
171 
172     IF ( SQL%NOTFOUND ) THEN
173         RAISE NO_DATA_FOUND;
174     END IF;
175 
176 END Delete_Row;
177 
178 END FUN_RULE_CRITERIA_PKG;