DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMW_RISK_TYPE_PVT

Source


1 PACKAGE BODY AMW_risk_type_PVT AS
2 /* $Header: amwvmrtb.pls 120.0 2005/05/31 21:25:10 appldev noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          AMW_RISK_TYPE_PVT
7 -- End of Comments
8 -- ===============================================================
9    g_pkg_name    CONSTANT VARCHAR2 (30) := 'AMW_RISK_TYPE_PVT';
10    g_file_name   CONSTANT VARCHAR2 (12) := 'amwvrtpb.pls';
11    g_user_id              NUMBER        := fnd_global.user_id;
12    g_login_id             NUMBER        := fnd_global.conc_login_id;
13    --------------------- BEGIN: Declaring internal Procedures ----------------------
14    --   ==============================================================================
15 --    Start of Comments
16 --   ==============================================================================
17 --   API Name
18 --           Insert_Delete_Risk_Type
19 --   Type
20 --           Public
21 --   Pre-Req
22 --
23 --   Parameters
24 --
25 --   IN
26 --       p_riskrev_id              IN   NUMBER     Optional  Default = null
27 --       p_risk_type_code          IN   VARCHAR2   Required
28 --       p_select_flag             IN   VARCHAR2   Required
29 --       p_commit                  IN   VARCHAR2   Required  Default = FND_API_G_FALSE
30 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
31 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
32 --
33 --   OUT
34 --       x_return_status           OUT  VARCHAR2
35 --       x_msg_count               OUT  NUMBER
36 --       x_msg_data                OUT  VARCHAR2
37 --   Version : Current version 1.0
38 --   Note:
39 --
40 --   End of Comments
41 --   ==============================================================================
42 --
43    PROCEDURE insert_delete_risk_type (
44       p_risk_rev_id               IN              NUMBER := NULL,
45 	  p_risk_type_code            IN              VARCHAR2 := NULL,
46 	  p_select_flag               IN			  VARCHAR2 := NULL,
47       p_commit                    IN              VARCHAR2 := fnd_api.g_false,
48       p_validation_level          IN              NUMBER := fnd_api.g_valid_level_full,
49       p_init_msg_list             IN              VARCHAR2 := fnd_api.g_false,
50 	  p_api_version_number        IN              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 
56       l_api_name             CONSTANT VARCHAR2 (30) := 'increase_delete_risk_type';
57       l_api_version_number   CONSTANT NUMBER        := 1.0;
58 	  l_risk_type_id   NUMBER := 0;
59 	  l_risk_type_row_count NUMBER := 0;
60 	  l_creation_date         date;
61       l_created_by            number;
62       l_last_update_date      date;
63       l_last_updated_by       number;
64       l_last_update_login     number;
65 
66       --- for risk association to a process, we are passed risk_id and process_id
67       --- foll. cursor traverses the process hierarchy tree to get all parent processes
68       --- for this process_id
69      CURSOR C1 is
70 	     (select count(*) from amw_risk_type
71 		 where risk_rev_id = p_risk_rev_id
72 		 and risk_type_code = p_risk_type_code);
73 
74    BEGIN
75 
76       SAVEPOINT amw_risk_type_pvt;
77       x_return_status            := fnd_api.g_ret_sts_success;
78       -- Standard call to check for call compatibility.
79       IF NOT fnd_api.compatible_api_call (l_api_version_number,
80                                           p_api_version_number,
81                                           l_api_name,
82                                           g_pkg_name
83                                          ) THEN
84          RAISE fnd_api.g_exc_unexpected_error;
85       END IF;
86       -- Initialize message list if p_init_msg_list is set to TRUE.
87       IF fnd_api.to_boolean (p_init_msg_list) THEN
88          fnd_msg_pub.initialize;
89       END IF;
90       -- Debug Message
91       amw_utility_pvt.debug_message ('Private API: ' || l_api_name || 'start');
92       -- Initialize API return status to SUCCESS
93       x_return_status            := fnd_api.g_ret_sts_success;
94 /* Temporarily commenting out the validata session code ..... */
95 -- =========================================================================
96 -- Validate Environment
97 -- =========================================================================
98       IF fnd_global.user_id IS NULL THEN
99          amw_utility_pvt.error_message
100                                       (p_message_name      => 'USER_PROFILE_MISSING');
101          RAISE fnd_api.g_exc_error;
102       END IF;
103 
104 
105 	  IF (p_select_flag = 'N') then
106 	    OPEN C1;
107 		FETCH C1 into l_risk_type_row_count;
108 		  IF (l_risk_type_row_count  = 1) then
109 			  delete from amw_risk_type
110 			      where risk_rev_id = p_risk_rev_id
111 		          and risk_type_code = p_risk_type_code;
112 		  END IF;
113 		CLOSE C1;
114 	  END IF;
115 
116 
117 	  IF (p_select_flag = 'Y') then
118 	     OPEN C1;
119 	     FETCH C1 into l_risk_type_row_count;
120 
121 		  IF (l_risk_type_row_count  = 0) then
122 				select amw_risk_type_s.nextval into l_risk_type_id from dual;
123 				l_creation_date := SYSDATE;
124                 l_created_by := FND_GLOBAL.USER_ID;
125                 l_last_update_date := SYSDATE;
126                 l_last_updated_by := FND_GLOBAL.USER_ID;
127                 l_last_update_login := FND_GLOBAL.USER_ID;
128 
129 	            insert into amw_risk_type    (risk_type_id,
130                                               risk_rev_id,
131                                               risk_type_code,
132                                               creation_date,
133                                               created_by,
134                                               last_update_date,
135                                               last_updated_by,
136                                               last_update_login,
137 											  object_version_number)
138 
139                                    values     (l_risk_type_id,
140                                                p_risk_rev_id,
141                                                p_risk_type_code,
142                                                l_creation_date,
143                                                l_created_by,
144                                                l_last_update_date,
145                                                l_last_updated_by,
146                                                l_last_update_login,
147 											   1);
148               END IF;
149 	 END IF;
150 
151 
152 -- =========================================================================
153 -- End Validate Environment
154 -- =========================================================================
155 -- End commenting the session validation code ....
156       IF x_return_status <> fnd_api.g_ret_sts_success THEN
157          RAISE fnd_api.g_exc_error;
158       END IF;
159       -- Standard check for p_commit
160       IF fnd_api.to_boolean (p_commit) THEN
161          COMMIT WORK;
162       END IF;
163       --Debug Message
164       amw_utility_pvt.debug_message ('Private API: ' || l_api_name || 'end');
165       -- Standard call to get message count and if count is 1, get message info.
166       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
167    EXCEPTION
168       WHEN fnd_api.g_exc_error THEN
169          ROLLBACK TO amw_risk_type_pvt;
170          x_return_status            := fnd_api.g_ret_sts_error;
171          -- Standard call to get message count and if count=1, get the message
172          fnd_msg_pub.count_and_get (p_encoded      => fnd_api.g_false,
173                                     p_count        => x_msg_count,
174                                     p_data         => x_msg_data
175                                    );
176       WHEN fnd_api.g_exc_unexpected_error THEN
177          ROLLBACK TO amw_risk_type_pvt;
178          x_return_status            := fnd_api.g_ret_sts_unexp_error;
179          -- Standard call to get message count and if count=1, get the message
180          fnd_msg_pub.count_and_get (p_encoded      => fnd_api.g_false,
181                                     p_count        => x_msg_count,
182                                     p_data         => x_msg_data
183                                    );
184       WHEN OTHERS THEN
185          ROLLBACK TO amw_risk_type_pvt;
186          x_return_status            := fnd_api.g_ret_sts_unexp_error;
187          IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error) THEN
188             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
189          END IF;
190          -- Standard call to get message count and if count=1, get the message
191          fnd_msg_pub.count_and_get (p_encoded      => fnd_api.g_false,
192                                     p_count        => x_msg_count,
193                                     p_data         => x_msg_data
194                                    );
195    END insert_delete_risk_type;
196 
197 
198 -- ===============================================================
199 -- Procedure name
200 --          Revise_Risk_Type
201 -- Purpose
202 -- 		  	revise risk type from old RiskRevId to new RiskRevId
203 -- ===============================================================
204 PROCEDURE Revise_Risk_Type(
205     p_old_risk_rev_id           IN   NUMBER,
206     p_risk_rev_id               IN   NUMBER,
207     p_commit                    IN              VARCHAR2 := fnd_api.g_false,
208     p_validation_level          IN              NUMBER := fnd_api.g_valid_level_full,
209     p_init_msg_list             IN              VARCHAR2 := fnd_api.g_false,
210     p_api_version_number        IN              NUMBER,
211     x_return_status             OUT NOCOPY      VARCHAR2,
212     x_msg_count                 OUT NOCOPY      NUMBER,
213     x_msg_data                  OUT NOCOPY      VARCHAR2
214 ) IS
215       l_api_name             CONSTANT VARCHAR2 (30) := 'Revise_Risk_Type';
216       l_api_version_number   CONSTANT NUMBER        := 1.0;
217 BEGIN
218       SAVEPOINT amw_risk_type_revise;
219       -- Standard call to check for call compatibility.
220       IF NOT fnd_api.compatible_api_call (l_api_version_number,
221                                           p_api_version_number,
222                                           l_api_name,
223                                           g_pkg_name
224                                          ) THEN
225          RAISE fnd_api.g_exc_unexpected_error;
226       END IF;
227       -- Initialize message list if p_init_msg_list is set to TRUE.
228       IF fnd_api.to_boolean (p_init_msg_list) THEN
229          fnd_msg_pub.initialize;
230       END IF;
231       -- Debug Message
232       amw_utility_pvt.debug_message ('Private API: ' || l_api_name || 'start');
233       -- Initialize API return status to SUCCESS
234       x_return_status            := fnd_api.g_ret_sts_success;
235       IF fnd_global.user_id IS NULL THEN
236          amw_utility_pvt.error_message
237                                       (p_message_name      => 'USER_PROFILE_MISSING');
238          RAISE fnd_api.g_exc_error;
239       END IF;
240 
241       -- carry over Risk Type Associations when Revising the Risk
242       IF p_old_risk_rev_id is not null AND p_risk_rev_id is not null THEN
243         insert into AMW_RISK_TYPE (
244             risk_type_id
245            ,risk_rev_id
246            ,risk_type_code
247            ,creation_date
248            ,created_by
249            ,last_update_date
250            ,last_updated_by
251            ,last_update_login
252            ,object_version_number
253         )
254         select
255             amw_risk_type_s.nextval
256            ,p_risk_rev_id
257            ,old.RISK_TYPE_CODE
258            ,sysdate
259            ,FND_GLOBAL.USER_ID
260            ,sysdate
261            ,FND_GLOBAL.USER_ID
262            ,FND_GLOBAL.USER_ID
263            ,1
264           from AMW_RISK_TYPE old
265          where old.RISK_REV_ID = p_old_risk_rev_id;
266       END IF;
267 
268       IF x_return_status <> fnd_api.g_ret_sts_success THEN
269          RAISE fnd_api.g_exc_error;
270       END IF;
271       -- Standard check for p_commit
272       IF fnd_api.to_boolean (p_commit) THEN
273          COMMIT WORK;
274       END IF;
275       --Debug Message
276       amw_utility_pvt.debug_message ('API: ' || l_api_name || 'end');
277       -- Standard call to get message count and if count is 1, get message info.
278       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
279 EXCEPTION
280       WHEN fnd_api.g_exc_error THEN
281          ROLLBACK TO amw_risk_type_revise;
282          x_return_status            := fnd_api.g_ret_sts_error;
283          -- Standard call to get message count and if count=1, get the message
284          fnd_msg_pub.count_and_get (p_encoded      => fnd_api.g_false,
285                                     p_count        => x_msg_count,
286                                     p_data         => x_msg_data
287                                    );
288       WHEN fnd_api.g_exc_unexpected_error THEN
289          ROLLBACK TO amw_risk_type_revise;
290          x_return_status            := fnd_api.g_ret_sts_unexp_error;
291          -- Standard call to get message count and if count=1, get the message
292          fnd_msg_pub.count_and_get (p_encoded      => fnd_api.g_false,
293                                     p_count        => x_msg_count,
294                                     p_data         => x_msg_data
295                                    );
296       WHEN OTHERS THEN
297          ROLLBACK TO amw_risk_type_revise;
298          x_return_status            := fnd_api.g_ret_sts_unexp_error;
299          IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error) THEN
300             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
301          END IF;
302          -- Standard call to get message count and if count=1, get the message
303          fnd_msg_pub.count_and_get (p_encoded      => fnd_api.g_false,
304                                     p_count        => x_msg_count,
305                                     p_data         => x_msg_data
306                                    );
307 
308 END Revise_Risk_Type;
309 
310 
311 END amw_risk_type_pvt;