DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_DEPT_APPROVERS_PVT

Source


1 PACKAGE BODY EAM_DEPT_APPROVERS_PVT as
2 /* $Header: EAMVDAPB.pls 115.8 2003/08/19 06:51:40 yjhabak ship $ */
3 -- Start of comments
4 -- API name    : EAM_DEPT_APPROVERS_PVT
5 -- Type     : Private
6 -- Function :
7 -- Pre-reqs : None.
8 -- Parameters  :
9 -- IN        P_API_VERSION                 IN NUMBER       REQUIRED
10 --           P_INIT_MSG_LIST               IN VARCHAR2     OPTIONAL
11 --             DEFAULT = FND_API.G_FALSE
12 --           P_COMMIT                      IN VARCHAR2     OPTIONAL
13 --             DEFAULT = FND_API.G_FALSE
14 --           P_VALIDATION_LEVEL            IN NUMBER       OPTIONAL
15 --             DEFAULT = FND_API.G_VALID_LEVEL_FULL
16 --	     P_DEPT_ID			   IN  NUMBER 	   REQUIRED
17 -- 	     P_LAST_UPDATE_DATE            IN  DATE	   REQUIRED
18 -- 	     P_LAST_UPDATED_BY             IN  NUMBER	   REQUIRED
19 -- 	     P_CREATION_DATE               IN  DATE	   REQUIRED
20 -- 	     P_CREATED_BY                  IN  NUMBER      REQUIRED
21 -- 	     P_LAST_UPDATE_LOGIN           IN  NUMBER	   OPTIONAL
22 -- 	     P_RESPONSIBILITY_ID           IN  NUMBER	   REQUIRED
23 -- 	     P_RESPONSIBILITY_APPLICATN_ID IN  NUMBER	   REQUIRED
24 -- OUT       X_RETURN_STATUS               OUT VARCHAR2(1)
25 --           X_MSG_COUNT                   OUT NUMBER
26 --           X_MSG_DATA                    OUT VARCHAR2(2000)
27 --
28 -- Version  Current version 115.0
29 --
30 -- Notes    : Note text
31 --
32 -- End of comments
33   g_pkg_name    CONSTANT VARCHAR2(30):= 'EAM_DEPT_APPROVERS_PVT';
34 
35 PROCEDURE INSERT_ROW(
36   P_API_VERSION IN NUMBER,
37   P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
38   P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
39   P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
40   P_ROWID			    IN OUT NOCOPY VARCHAR2,
41   P_DEPT_ID                         NUMBER,
42   P_ORGANIZATION_ID		    NUMBER,
43   P_LAST_UPDATE_DATE                DATE,
44   P_LAST_UPDATED_BY                 NUMBER,
45   P_CREATION_DATE                   DATE,
46   P_CREATED_BY                      NUMBER,
47   P_LAST_UPDATE_LOGIN               NUMBER,
48   P_RESPONSIBILITY_ID               NUMBER,
49   P_RESPONSIBILITY_APPLICATN_ID     NUMBER,
50   P_PRIMARY_APPROVER                NUMBER,
51   X_RETURN_STATUS               OUT NOCOPY VARCHAR2,
52   X_MSG_COUNT                   OUT NOCOPY NUMBER,
53   X_MSG_DATA                    OUT NOCOPY VARCHAR2)
54 IS
55     l_api_name       CONSTANT VARCHAR2(30) := 'insert_row';
56     l_api_version    CONSTANT NUMBER       := 1.0;
57     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
58 
59     CURSOR C IS SELECT rowid FROM BOM_EAM_DEPT_APPROVERS
60                  WHERE DEPT_ID = P_DEPT_ID AND RESPONSIBILITY_ID=P_RESPONSIBILITY_ID;
61 
62    BEGIN
63 
64    -- Standard Start of API savepoint
65       SAVEPOINT apiname_apitype;
66 
67    -- Standard call to check for call compatibility.
68       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
69          RAISE fnd_api.g_exc_unexpected_error;
70       END IF;
71 
72    -- Initialize message list if p_init_msg_list is set to TRUE.
73       IF fnd_api.to_boolean(p_init_msg_list) THEN
74          fnd_msg_pub.initialize;
75       END IF;
76 
77    -- Initialize API return status to success
78       x_return_status := fnd_api.g_ret_sts_success;
79 
80    -- API body
81        INSERT INTO BOM_EAM_DEPT_APPROVERS(
82 	DEPT_ID,
83 	ORGANIZATION_ID,
84 	LAST_UPDATE_DATE,
85 	LAST_UPDATED_BY,
86 	CREATION_DATE,
87 	CREATED_BY,
88 	LAST_UPDATE_LOGIN,
89 	RESPONSIBILITY_ID,
90 	RESPONSIBILITY_APPLICATION_ID,
91         PRIMARY_APPROVER_ID
92        ) SELECT
93        		P_DEPT_ID,
94 		P_ORGANIZATION_ID,
95   		P_LAST_UPDATE_DATE,
96   		P_LAST_UPDATED_BY,
97   		P_CREATION_DATE,
98   		P_CREATED_BY,
99   		P_LAST_UPDATE_LOGIN,
100   		P_RESPONSIBILITY_ID,
101   		P_RESPONSIBILITY_APPLICATN_ID,
102  	        P_PRIMARY_APPROVER
103        	FROM 	DUAL
104 	WHERE P_DEPT_ID = P_DEPT_ID
105 		AND
106 		NOT EXISTS (
107 		SELECT null
108 		FROM	BOM_EAM_DEPT_APPROVERS	BDA
109 		WHERE	BDA.DEPT_ID = P_DEPT_ID And
110 			BDA.RESPONSIBILITY_ID = P_RESPONSIBILITY_ID
111 	);
112 
113 	OPEN C;
114 	FETCH C INTO P_ROWID;
115 	if (C%NOTFOUND) then
116 		CLOSE C;
117 		Raise NO_DATA_FOUND;
118 	end if;
119 	CLOSE C;
120 
121     -- End of API body.
122    -- Standard check of p_commit.
123       IF fnd_api.to_boolean(p_commit) THEN
124          COMMIT WORK;
125       END IF;
126 
127    -- Standard call to get message count and if count is 1, get message info.
128       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
129    EXCEPTION
130       WHEN fnd_api.g_exc_error THEN
131          ROLLBACK TO apiname_apitype;
132          x_return_status := fnd_api.g_ret_sts_error;
133          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
134       WHEN fnd_api.g_exc_unexpected_error THEN
135          ROLLBACK TO apiname_apitype;
136          x_return_status := fnd_api.g_ret_sts_unexp_error;
137          fnd_msg_pub.count_and_get(
138             p_count => x_msg_count
139            ,p_data => x_msg_data);
140       WHEN OTHERS THEN
141          ROLLBACK TO apiname_apitype;
142          x_return_status := fnd_api.g_ret_sts_unexp_error;
143 
144          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
145             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
146          END IF;
147 
148          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
149   END Insert_Row;
150 
151 
152 PROCEDURE LOCK_ROW(
153   P_API_VERSION IN NUMBER,
154   P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
155   P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
156   P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
157   P_ROWID			    IN OUT NOCOPY VARCHAR2,
158   P_DEPT_ID                         NUMBER,
159   P_ORGANIZATION_ID		    NUMBER,
160   P_LAST_UPDATE_DATE                DATE,
161   P_LAST_UPDATED_BY                 NUMBER,
162   P_CREATION_DATE                   DATE,
163   P_CREATED_BY                      NUMBER,
164   P_LAST_UPDATE_LOGIN               NUMBER,
165   P_RESPONSIBILITY_ID               NUMBER,
166   P_RESPONSIBILITY_APPLICATN_ID     NUMBER,
167   X_RETURN_STATUS               OUT NOCOPY VARCHAR2,
168   X_MSG_COUNT                   OUT NOCOPY NUMBER,
169   X_MSG_DATA                    OUT NOCOPY VARCHAR2)
170 IS
171     l_api_name       CONSTANT VARCHAR2(30) := 'lock_row';
172     l_api_version    CONSTANT NUMBER       := 1.0;
173     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
174 
175     CURSOR C IS
176 	SELECT * FROM BOM_EAM_DEPT_APPROVERS
177 	WHERE rowid = P_ROWID
178 	FOR UPDATE Of RESPONSIBILITY_ID NOWAIT;
179     Recinfo C%ROWTYPE;
180 
181     BEGIN
182 
183    -- Standard Start of API savepoint
184       SAVEPOINT apiname_apitype;
185 
186    -- Standard call to check for call compatibility.
187       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
188          RAISE fnd_api.g_exc_unexpected_error;
189       END IF;
190 
191    -- Initialize message list if p_init_msg_list is set to TRUE.
192       IF fnd_api.to_boolean(p_init_msg_list) THEN
193          fnd_msg_pub.initialize;
194       END IF;
195 
196    -- Initialize API return status to success
197       x_return_status := fnd_api.g_ret_sts_success;
198 
199    -- API body
200 
201     OPEN C;
202     FETCH C INTO Recinfo;
203     if (C%NOTFOUND) then
204       CLOSE C;
205       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
206       APP_EXCEPTION.Raise_Exception;
207     end if;
208     CLOSE C;
209     if (
210        (Recinfo.DEPT_ID =  P_DEPT_ID)
211        AND (Recinfo.ORGANIZATION_ID =  P_ORGANIZATION_ID)
212        AND (Recinfo.RESPONSIBILITY_ID =  P_RESPONSIBILITY_ID)
213        AND (Recinfo.RESPONSIBILITY_APPLICATION_ID =  P_RESPONSIBILITY_APPLICATN_ID)
214       ) then
215       return;
216     else
217       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
218       APP_EXCEPTION.Raise_Exception;
219     end if;
220 
221    -- End of API body.
222    -- Standard check of p_commit.
223       IF fnd_api.to_boolean(p_commit) THEN
224          COMMIT WORK;
225       END IF;
226 
227    -- Standard call to get message count and if count is 1, get message info.
228       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
229    EXCEPTION
230       WHEN fnd_api.g_exc_error THEN
231          ROLLBACK TO apiname_apitype;
232          x_return_status := fnd_api.g_ret_sts_error;
233          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
234       WHEN fnd_api.g_exc_unexpected_error THEN
235          ROLLBACK TO apiname_apitype;
236          x_return_status := fnd_api.g_ret_sts_unexp_error;
237          fnd_msg_pub.count_and_get(
238             p_count => x_msg_count
239            ,p_data => x_msg_data);
240       WHEN OTHERS THEN
241          ROLLBACK TO apiname_apitype;
242          x_return_status := fnd_api.g_ret_sts_unexp_error;
243 
244          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
245             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
246          END IF;
247 
248          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
249 
250   END Lock_Row;
251 
252 
253   PROCEDURE UPDATE_ROW
254   (
255   P_API_VERSION IN NUMBER,
256   P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
257   P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
258   P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
259   P_ROWID			    IN OUT NOCOPY VARCHAR2,
260   P_DEPT_ID                         NUMBER,
261   P_ORGANIZATION_ID		    NUMBER,
262   P_LAST_UPDATE_DATE                DATE,
263   P_LAST_UPDATED_BY                 NUMBER,
264   P_CREATION_DATE                   DATE,
265   P_CREATED_BY                      NUMBER,
266   P_LAST_UPDATE_LOGIN               NUMBER,
267   P_RESPONSIBILITY_ID               NUMBER,
268   P_RESPONSIBILITY_APPLICATN_ID     NUMBER,
269   P_PRIMARY_APPROVER                NUMBER,
270   X_RETURN_STATUS               OUT NOCOPY VARCHAR2,
271   X_MSG_COUNT                   OUT NOCOPY NUMBER,
272   X_MSG_DATA                    OUT NOCOPY VARCHAR2)
273   IS
274     l_api_name       CONSTANT VARCHAR2(30) := 'update_row';
275     l_api_version    CONSTANT NUMBER       := 1.0;
276     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
277 
278   BEGIN
279    -- Standard Start of API savepoint
280       SAVEPOINT apiname_apitype;
281 
282    -- Standard call to check for call compatibility.
283       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
284          RAISE fnd_api.g_exc_unexpected_error;
285       END IF;
286 
287    -- Initialize message list if p_init_msg_list is set to TRUE.
288       IF fnd_api.to_boolean(p_init_msg_list) THEN
289          fnd_msg_pub.initialize;
290       END IF;
291 
292    -- Initialize API return status to success
293       x_return_status := fnd_api.g_ret_sts_success;
294 
295    -- API body
296 
297     UPDATE BOM_EAM_DEPT_APPROVERS
298     SET
299      DEPT_ID               	     =     P_DEPT_ID,
300      ORGANIZATION_ID                 =     P_ORGANIZATION_ID,
301      LAST_UPDATE_DATE                =     P_LAST_UPDATE_DATE,
302      LAST_UPDATED_BY                 =     P_LAST_UPDATED_BY,
303      CREATION_DATE		     =     P_CREATION_DATE,
304      CREATED_BY			     =     P_CREATED_BY,
305      LAST_UPDATE_LOGIN               =     P_LAST_UPDATE_LOGIN,
306      RESPONSIBILITY_ID               =     P_RESPONSIBILITY_ID,
307      RESPONSIBILITY_APPLICATION_ID   =     P_RESPONSIBILITY_APPLICATN_ID,
308      PRIMARY_APPROVER_ID             =     P_PRIMARY_APPROVER
309     WHERE ROWID = P_ROWID;
310 
311     if (SQL%NOTFOUND) then
312       Raise NO_DATA_FOUND;
313     end if;
314 
315    -- End of API body.
316    -- Standard check of p_commit.
317       IF fnd_api.to_boolean(p_commit) THEN
318          COMMIT WORK;
319       END IF;
320 
321    -- Standard call to get message count and if count is 1, get message info.
322       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
323    EXCEPTION
324       WHEN fnd_api.g_exc_error THEN
325          ROLLBACK TO apiname_apitype;
326          x_return_status := fnd_api.g_ret_sts_error;
327          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
328       WHEN fnd_api.g_exc_unexpected_error THEN
329          ROLLBACK TO apiname_apitype;
330          x_return_status := fnd_api.g_ret_sts_unexp_error;
331          fnd_msg_pub.count_and_get(
332             p_count => x_msg_count
333            ,p_data => x_msg_data);
334       WHEN OTHERS THEN
335          ROLLBACK TO apiname_apitype;
336          x_return_status := fnd_api.g_ret_sts_unexp_error;
337 
338          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
339             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
340          END IF;
341 
342          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
343 
344   END Update_Row;
345 
346 
347 
348 PROCEDURE DELETE_ROW (
349   P_DEPT_ID                         NUMBER,
350   P_ORGANIZATION_ID                 NUMBER,
351   P_RESPONSIBILITY_ID               NUMBER,
352   P_RESPONSIBILITY_APPLICATN_ID     NUMBER)
353 is
354 begin
355 
356   delete from BOM_EAM_DEPT_APPROVERS
357   where DEPT_ID = P_DEPT_ID
358   and ORGANIZATION_ID = P_ORGANIZATION_ID
359   and RESPONSIBILITY_ID = P_RESPONSIBILITY_ID
360   and RESPONSIBILITY_APPLICATION_ID = P_RESPONSIBILITY_APPLICATN_ID;
361 
362   if (sql%notfound) then
363     raise no_data_found;
364   end if;
365 
366 end DELETE_ROW;
367 
368 END EAM_DEPT_APPROVERS_PVT;
369