DBA Data[Home] [Help]

PACKAGE BODY: APPS.IBC_GRANTS_PKG

Source


1 PACKAGE BODY Ibc_Grants_Pkg AS
2 /* $Header: ibctgntb.pls 115.1 2002/11/13 23:46:40 vicho ship $ */
3 
4 -- MODIFICATION HISTORY
5 -- Person            Date        Comments
6 -- ---------         ------      ------------------------------------------
7 -- vicho	     11/05/2002     Remove G_MISS defaulting on UPDATE_ROW
8 
9 
10 PROCEDURE INSERT_ROW (
11   PX_ROWID IN OUT NOCOPY VARCHAR2,
12   P_GRANT_ID IN NUMBER,
13   P_PERMISSION_CODE IN VARCHAR2,
14   P_GRANTEE_RESOURCE_ID IN NUMBER,
15   P_GRANTEE_USER_ID IN NUMBER,
16   P_GRANTEE_RESOURCE_TYPE IN VARCHAR2,
17   P_GRANT_GROUP_ID IN NUMBER,
18   P_ACTION IN VARCHAR2,
19   P_GRANT_LEVEL IN NUMBER,
20   P_CASCADE_FLAG IN VARCHAR2,
21   P_OBJECT_VERSION_NUMBER IN NUMBER,
22   P_OBJECT_ID IN NUMBER,
23   p_CREATION_DATE IN DATE,
24   p_CREATED_BY IN NUMBER,
25   p_LAST_UPDATE_DATE IN DATE,
26   p_LAST_UPDATED_BY IN NUMBER,
27   p_LAST_UPDATE_LOGIN IN NUMBER
28 ) IS
29   CURSOR C IS SELECT ROWID FROM IBC_GRANTS
30     WHERE GRANT_ID = P_GRANT_ID
31     ;
32 BEGIN
33   INSERT INTO IBC_GRANTS (
34     PERMISSION_CODE,
35     GRANTEE_RESOURCE_ID,
36 	GRANTEE_USER_ID,
37     GRANTEE_RESOURCE_TYPE,
38     GRANT_GROUP_ID,
39     ACTION,
40     GRANT_LEVEL,
41     CASCADE_FLAG,
42     OBJECT_VERSION_NUMBER,
43     GRANT_ID,
44     OBJECT_ID,
45     CREATION_DATE,
46     CREATED_BY,
47     LAST_UPDATE_DATE,
48     LAST_UPDATED_BY,
49     LAST_UPDATE_LOGIN
50   ) VALUES (
51     P_PERMISSION_CODE,
52     P_GRANTEE_RESOURCE_ID,
53 	P_GRANTEE_USER_ID,
54     P_GRANTEE_RESOURCE_TYPE,
55     P_GRANT_GROUP_ID,
56     P_ACTION,
57     P_GRANT_LEVEL,
58     P_CASCADE_FLAG,
59     P_OBJECT_VERSION_NUMBER,
60     P_GRANT_ID,
61     P_OBJECT_ID,
62 	DECODE(p_creation_date, FND_API.G_MISS_DATE, SYSDATE, NULL, SYSDATE,p_creation_date),
63     DECODE(p_created_by, FND_API.G_MISS_NUM, FND_GLOBAL.user_id,NULL, FND_GLOBAL.user_id, p_created_by),
64     DECODE(p_last_update_date, FND_API.G_MISS_DATE, SYSDATE, NULL, SYSDATE,p_last_update_date),
65     DECODE(p_last_updated_by, FND_API.G_MISS_NUM, FND_GLOBAL.user_id,NULL, FND_GLOBAL.user_id, p_last_updated_by),
66     DECODE(p_last_update_login, FND_API.G_MISS_NUM, FND_GLOBAL.login_id,NULL, FND_GLOBAL.login_id, p_last_update_login)
67     );
68 
69   OPEN c;
70   FETCH c INTO PX_ROWID;
71   IF (c%NOTFOUND) THEN
72     CLOSE c;
73     RAISE NO_DATA_FOUND;
74   END IF;
75   CLOSE c;
76 
77 END INSERT_ROW;
78 
79 PROCEDURE LOCK_ROW (
80   P_GRANT_ID IN NUMBER,
81   P_PERMISSION_CODE IN VARCHAR2,
82   P_GRANTEE_RESOURCE_ID IN NUMBER,
83   P_GRANTEE_USER_ID IN NUMBER,
84   P_GRANTEE_RESOURCE_TYPE IN VARCHAR2,
85   P_GRANT_GROUP_ID IN NUMBER,
86   P_ACTION IN VARCHAR2,
87   P_GRANT_LEVEL IN NUMBER,
88   P_CASCADE_FLAG IN VARCHAR2,
89   P_OBJECT_VERSION_NUMBER IN NUMBER,
90   P_OBJECT_ID IN NUMBER
91 ) IS
92   CURSOR c IS SELECT
93       PERMISSION_CODE,
94       GRANTEE_RESOURCE_ID,
95 	  GRANTEE_USER_ID,
96       GRANTEE_RESOURCE_TYPE,
97       GRANT_GROUP_ID,
98       ACTION,
99       GRANT_LEVEL,
100       CASCADE_FLAG,
101       OBJECT_VERSION_NUMBER,
102       OBJECT_ID
103     FROM IBC_GRANTS
104     WHERE GRANT_ID = P_GRANT_ID
105     FOR UPDATE OF GRANT_ID NOWAIT;
106   recinfo c%ROWTYPE;
107 
108 BEGIN
109   OPEN c;
110   FETCH c INTO recinfo;
111   IF (c%NOTFOUND) THEN
112     CLOSE c;
113     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
114     app_exception.raise_exception;
115   END IF;
116   CLOSE c;
117   IF (    (recinfo.PERMISSION_CODE = P_PERMISSION_CODE)
118       AND (recinfo.GRANTEE_RESOURCE_ID = P_GRANTEE_RESOURCE_ID)
119      AND (recinfo.GRANTEE_USER_ID = P_GRANTEE_USER_ID)
120       AND (recinfo.GRANTEE_RESOURCE_TYPE = P_GRANTEE_RESOURCE_TYPE)
121       AND (recinfo.GRANT_GROUP_ID = P_GRANT_GROUP_ID)
122       AND (recinfo.ACTION = P_ACTION)
123       AND (recinfo.GRANT_LEVEL = P_GRANT_LEVEL)
124       AND (recinfo.CASCADE_FLAG = P_CASCADE_FLAG)
125       AND (recinfo.OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER)
126       AND (recinfo.OBJECT_ID = P_OBJECT_ID)
127   ) THEN
128     NULL;
129   ELSE
130     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
131     app_exception.raise_exception;
132   END IF;
133   RETURN;
134 END LOCK_ROW;
135 
136 PROCEDURE UPDATE_ROW (
137   P_GRANT_ID IN NUMBER,
138   P_PERMISSION_CODE IN VARCHAR2,
139   P_GRANTEE_RESOURCE_ID IN NUMBER,
140   P_GRANTEE_USER_ID IN NUMBER,
141   P_GRANTEE_RESOURCE_TYPE IN VARCHAR2,
142   P_GRANT_GROUP_ID IN NUMBER,
143   P_ACTION IN VARCHAR2,
144   P_GRANT_LEVEL IN NUMBER,
145   P_CASCADE_FLAG IN VARCHAR2,
146   p_OBJECT_VERSION_NUMBER    IN  NUMBER,
147   P_OBJECT_ID IN NUMBER,
148   p_LAST_UPDATED_BY    IN  NUMBER,
149   p_LAST_UPDATE_DATE    IN  DATE,
150   p_LAST_UPDATE_LOGIN    IN  NUMBER
151 ) IS
152 BEGIN
153   UPDATE IBC_GRANTS SET
154     PERMISSION_CODE = P_PERMISSION_CODE,
155     GRANTEE_RESOURCE_ID = P_GRANTEE_RESOURCE_ID,
156 	GRANTEE_USER_ID = P_GRANTEE_USER_ID,
157     GRANTEE_RESOURCE_TYPE = P_GRANTEE_RESOURCE_TYPE,
158     GRANT_GROUP_ID = P_GRANT_GROUP_ID,
159     ACTION = P_ACTION,
160     GRANT_LEVEL = P_GRANT_LEVEL,
161     CASCADE_FLAG = P_CASCADE_FLAG,
162     OBJECT_VERSION_NUMBER = OBJECT_VERSION_NUMBER + 1,
163     OBJECT_ID = P_OBJECT_ID,
164     last_update_date = DECODE(p_last_update_date, FND_API.G_MISS_DATE, SYSDATE,
165                               NULL, SYSDATE, p_last_update_date),
166     last_updated_by = DECODE(p_last_updated_by, FND_API.G_MISS_NUM,
167                              FND_GLOBAL.user_id, NULL, FND_GLOBAL.user_id,
168                              p_last_updated_by),
169     last_update_login = DECODE(p_last_update_login, FND_API.G_MISS_NUM,
170                              FND_GLOBAL.login_id, NULL, FND_GLOBAL.login_id,
171                              p_last_update_login)
172   WHERE GRANT_ID = P_GRANT_ID
173   AND object_version_number = DECODE(p_object_version_number,
174                                      FND_API.G_MISS_NUM,object_version_number,
175                                      NULL,object_version_number,
176                                      p_object_version_number);
177 
178   IF (SQL%NOTFOUND) THEN
179     RAISE NO_DATA_FOUND;
180   END IF;
181 
182 END UPDATE_ROW;
183 
184 PROCEDURE DELETE_ROW (
185   P_GRANT_ID IN NUMBER
186 ) IS
187 BEGIN
188 
189   DELETE FROM IBC_GRANTS
190   WHERE GRANT_ID = P_GRANT_ID;
191 
192   IF (SQL%NOTFOUND) THEN
193     RAISE NO_DATA_FOUND;
194   END IF;
195 END DELETE_ROW;
196 
197 END Ibc_Grants_Pkg;