[Home] [Help]
PACKAGE BODY: APPS.IGW_PROP_ABSTRACTS_PVT
Source
1 PACKAGE BODY Igw_Prop_Abstracts_Pvt AS
2 --$Header: igwvabsb.pls 115.6 2002/11/14 18:50:52 vmedikon ship $
3
4 ---------------------------------------------------------------------------
5
6 G_PKG_NAME VARCHAR2(30) := 'IGW_PROP_ABSTRACTS_PVT';
7
8 ---------------------------------------------------------------------------
9
10 PROCEDURE Check_Lock
11 (
12 p_rowid IN VARCHAR2,
13 p_record_version_number IN NUMBER,
14 x_return_status OUT NOCOPY VARCHAR2
15 ) IS
16
17 l_api_name CONSTANT VARCHAR2(30) := 'Check_Lock';
18
19 l_locked VARCHAR2(1);
20
21 BEGIN
22
23 /*
24 ** Initialize
25 */
26
27 x_return_status := Fnd_Api.G_Ret_Sts_Success;
28
29 IF p_rowid IS NOT NULL AND p_record_version_number IS NOT NULL THEN
30
31 SELECT 'N'
32 INTO l_locked
33 FROM igw_prop_abstracts
34 WHERE rowid = p_rowid
35 AND record_version_number = p_record_version_number;
36
37 END IF;
38
39 EXCEPTION
40
41 WHEN no_data_found THEN
42
43 x_return_status := Fnd_Api.G_Ret_Sts_Error;
44 Fnd_Message.Set_Name('IGW','IGW_SS_RECORD_CHANGED');
45 Fnd_Msg_Pub.Add;
46
47 WHEN others THEN
48
49 x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
50
51 Fnd_Msg_Pub.Add_Exc_Msg
52 (
53 p_pkg_name => G_PKG_NAME,
54 p_procedure_name => l_api_name
55 );
56
57 RAISE Fnd_Api.G_Exc_Unexpected_Error;
58
59 END Check_Lock;
60
61 ---------------------------------------------------------------------------
62
63 PROCEDURE Populate_Prop_Abstracts( p_proposal_id IN NUMBER ) IS
64 BEGIN
65
66 INSERT INTO igw_prop_abstracts
67 (
68 proposal_id,
69 abstract_type,
70 abstract_type_code,
71 last_update_date,
72 last_updated_by,
73 creation_date,
74 created_by,
75 last_update_login,
76 record_version_number
77 )
78 SELECT
79 p_proposal_id,
80 lookup_type,
81 lookup_code,
82 null,
83 null,
84 SYSDATE,
85 Fnd_Global.User_Id,
86 Fnd_Global.Login_Id,
87 1
88 FROM
89 fnd_lookups
90 WHERE
91 lookup_type in ('IGW_ABSTRACT_TYPES','IGW_RESOURCE_TYPES') AND
92 (lookup_type,lookup_code) NOT IN
93 ( SELECT abstract_type,
94 abstract_type_code
95 FROM igw_prop_abstracts
96 WHERE proposal_id = p_proposal_id );
97
98 COMMIT;
99
100 END Populate_Prop_Abstracts;
101
102 ---------------------------------------------------------------------------
103
104 PROCEDURE Update_Prop_Abstract
105 (
106 p_init_msg_list IN VARCHAR2,
107 p_validate_only IN VARCHAR2,
108 p_commit IN VARCHAR2,
109 p_rowid IN VARCHAR2,
110 p_proposal_id IN NUMBER,
111 p_proposal_number IN VARCHAR2,
112 p_abstract_type IN VARCHAR2,
113 p_abstract_type_code IN VARCHAR2,
114 p_abstract_type_desc IN VARCHAR2,
115 p_abstract IN VARCHAR2,
116 p_attribute_category IN VARCHAR2,
117 p_attribute1 IN VARCHAR2,
118 p_attribute2 IN VARCHAR2,
119 p_attribute3 IN VARCHAR2,
120 p_attribute4 IN VARCHAR2,
121 p_attribute5 IN VARCHAR2,
122 p_attribute6 IN VARCHAR2,
123 p_attribute7 IN VARCHAR2,
124 p_attribute8 IN VARCHAR2,
125 p_attribute9 IN VARCHAR2,
126 p_attribute10 IN VARCHAR2,
127 p_attribute11 IN VARCHAR2,
128 p_attribute12 IN VARCHAR2,
129 p_attribute13 IN VARCHAR2,
130 p_attribute14 IN VARCHAR2,
131 p_attribute15 IN VARCHAR2,
132 p_record_version_number IN NUMBER,
133 x_return_status OUT NOCOPY VARCHAR2,
134 x_msg_count OUT NOCOPY NUMBER,
135 x_msg_data OUT NOCOPY VARCHAR2
136 ) IS
137
138 l_api_name CONSTANT VARCHAR2(30) := 'Update_Prop_Abstract';
139
140 l_proposal_id NUMBER := p_proposal_id;
141 l_abstract_type_code VARCHAR2(30) := p_abstract_type_code;
142
143 l_return_status VARCHAR2(1);
144
145 BEGIN
146
147 /*
148 ** Establish Savepoint for Rollback
149 */
150
151 SAVEPOINT Update_Prop_Abstract_Pvt;
152
153
154 /*
155 ** Initialize
156 */
157
158 x_return_status := Fnd_Api.G_Ret_Sts_Success;
159
160 IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
161
162 Fnd_Msg_Pub.Initialize;
163
164 END IF;
165
166
167 /*
168 ** Get Ids from Values if Ids not passed
169 */
170
171 IF p_proposal_id IS NULL THEN
172
173 Igw_Utils.Get_Proposal_Id
174 (
175 p_context_field => 'PROPOSAL_ID',
176 p_check_id_flag => 'Y',
177 p_proposal_number => p_proposal_number,
178 p_proposal_id => p_proposal_id,
179 x_proposal_id => l_proposal_id,
180 x_return_status => l_return_status
181 );
182
183 END IF;
184
185 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
186
187 RAISE Fnd_Api.G_Exc_Error;
188
189 END IF;
190
191
192 /*
193 ** Check Modify Rights
194 */
195 /*
196
197 IF Igw_Security.Allow_Modify
198 (
199 p_function_name => 'PROPOSAL',
200 p_proposal_id => l_proposal_id,
201 p_user_id => Fnd_Global.User_Id
202 )
203 = 'N' THEN
204
205 x_return_status := Fnd_Api.G_Ret_Sts_Error;
206 Fnd_Message.Set_Name('IGW','IGW_SS_SEC_NO_MODIFY_RIGHTS');
207 Fnd_Msg_Pub.Add;
208 RAISE Fnd_Api.G_Exc_Error;
209
210 END IF;
211
212 */
213 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
214
215 RAISE Fnd_Api.G_Exc_Error;
216
217 END IF;
218
219
220 /*
221 ** Check Lock before proceeding
222 */
223
224 Check_Lock
225 (
226 p_rowid => p_rowid,
227 p_record_version_number => p_record_version_number,
228 x_return_status => l_return_status
229 );
230
231
232 /*
233 ** Discontinue processing if any error has been encountered during
234 ** the earlier stages
235 */
236
237
238 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
239
240 RAISE Fnd_Api.G_Exc_Error;
241
242 END IF;
243
244
245 IF p_abstract_type_desc IS NULL THEN
246
247 l_abstract_type_code := NULL;
248
249 ELSE
250
251 Igw_Utils.Get_Lookup_Code
252 (
253 p_context_field => 'ABSTRACT_TYPE_CODE',
254 p_check_id_flag => 'Y',
255 p_lookup_type => p_abstract_type,
256 p_lookup_meaning => p_abstract_type_desc,
257 p_lookup_code => p_abstract_type_code,
258 x_lookup_code => l_abstract_type_code,
259 x_return_status => l_return_status
260 );
261
262 END IF;
263
264
265 /*
266 ** Discontinue processing if any error has been encountered during
267 ** the earlier stages
268 */
269
270 IF Fnd_Msg_Pub.Count_Msg > 0 THEN
271
272 RAISE Fnd_Api.G_Exc_Error;
273
274 END IF;
275
276
277 /*
278 ** Discontinue processing if API invoked in validation mode
279 */
280
281 IF Fnd_Api.To_Boolean(p_validate_only) THEN
282
283 RETURN;
284
285 END IF;
286
287
288 /*
289 ** Invoke Table Handler to Update data
290 */
291
292 Igw_Prop_Abstracts_Tbh.Update_Row
293 (
294 p_rowid => p_rowid,
295 p_proposal_id => l_proposal_id,
296 p_abstract_type => p_abstract_type,
297 p_abstract_type_code => l_abstract_type_code,
298 p_abstract => p_abstract,
299 p_attribute_category => p_attribute_category,
300 p_attribute1 => p_attribute1,
301 p_attribute2 => p_attribute2,
302 p_attribute3 => p_attribute3,
303 p_attribute4 => p_attribute4,
304 p_attribute5 => p_attribute5,
305 p_attribute6 => p_attribute6,
306 p_attribute7 => p_attribute7,
307 p_attribute8 => p_attribute8,
308 p_attribute9 => p_attribute9,
309 p_attribute10 => p_attribute10,
310 p_attribute11 => p_attribute11,
311 p_attribute12 => p_attribute12,
312 p_attribute13 => p_attribute13,
313 p_attribute14 => p_attribute14,
314 p_attribute15 => p_attribute15,
315 p_record_version_number => p_record_version_number,
316 x_return_status => l_return_status
317 );
318
319
320 /*
321 ** Commit data if API invoked in commit mode
322 */
323
324 IF Fnd_Api.To_Boolean(p_commit) THEN
325
326 COMMIT;
327
328 END IF;
329
330
331 EXCEPTION
332
333 WHEN Fnd_Api.G_Exc_Error THEN
334
335 ROLLBACK TO Update_Prop_Abstract_Pvt;
336
337 x_return_status := Fnd_Api.G_Ret_Sts_Error;
338
339 Fnd_Msg_Pub.Count_And_Get
340 (
341 p_count => x_msg_count,
342 p_data => x_msg_data
343 );
344
345 WHEN Fnd_Api.G_Exc_Unexpected_Error THEN
346
347 ROLLBACK TO Update_Prop_Abstract_Pvt;
348
349 x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
350
351 Fnd_Msg_Pub.Count_And_Get
352 (
353 p_count => x_msg_count,
354 p_data => x_msg_data
355 );
356
357 WHEN others THEN
358
359 ROLLBACK TO Update_Prop_Abstract_Pvt;
360
361 x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
362
363 Fnd_Msg_Pub.Add_Exc_Msg
364 (
365 p_pkg_name => G_PKG_NAME,
366 p_procedure_name => l_api_name
367 );
368
369 Fnd_Msg_Pub.Count_And_Get
370 (
371 p_count => x_msg_count,
372 p_data => x_msg_data
373 );
374
375 END Update_Prop_Abstract;
376
377 ---------------------------------------------------------------------------
378
379 END Igw_Prop_Abstracts_Pvt;