DBA Data[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;