DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGW_INSTALLMENTS_PVT

Source


1 PACKAGE BODY Igw_Installments_Pvt AS
2 --$Header: igwvinsb.pls 115.3 2002/11/19 23:46:21 ashkumar noship $
3 
4    ---------------------------------------------------------------------------
5 
6    G_PKG_NAME  VARCHAR2(30) := 'IGW_INSTALLMENTS_PVT';
7 
8    ---------------------------------------------------------------------------
9 
10    PROCEDURE Check_Lock
11    (
12       p_rowid                  IN VARCHAR2,
13       p_record_version_number  IN NUMBER
14    ) IS
15 
16       l_api_name      CONSTANT VARCHAR2(30) := 'Check_Lock';
17 
18       l_locked                 VARCHAR2(1);
19 
20    BEGIN
21 
22       /*
23       **   Initialize
24       */
25 
26       IF p_rowid IS NOT NULL AND p_record_version_number IS NOT NULL THEN
27 
28          SELECT 'N'
29          INTO   l_locked
30          FROM   igw_installments
31          WHERE  rowid = p_rowid;
32          --AND    record_version_number  = p_record_version_number;
33 
34       END IF;
35 
36    EXCEPTION
37 
38       WHEN no_data_found THEN
39 
40          Fnd_Message.Set_Name('IGW','IGW_SS_RECORD_CHANGED');
41          Fnd_Msg_Pub.Add;
42 
43       WHEN others THEN
44 
45          Fnd_Msg_Pub.Add_Exc_Msg
46          (
47             p_pkg_name       => G_PKG_NAME,
48             p_procedure_name => l_api_name
49          );
50 
51          RAISE Fnd_Api.G_Exc_Unexpected_Error;
52 
53    END Check_Lock;
54 
55    ---------------------------------------------------------------------------
56 
57    FUNCTION Get_Gms_Lookup_Code( p_lookup_type VARCHAR2, p_meaning VARCHAR2 )
58    RETURN varchar2 IS
59 
60       l_api_name      CONSTANT VARCHAR2(30) := 'Get_Gms_Lookup_Code';
61 
62       l_lookup_code   VARCHAR2(30);
63 
64    BEGIN
65 
66       IF p_meaning IS NOT NULL THEN
67 
68          SELECT lookup_code
69          INTO   l_lookup_code
70          FROM   gms_lookups
71          WHERE  lookup_type = p_lookup_type
72          AND    meaning = p_meaning;
73 
74       END IF;
75 
76       RETURN l_lookup_code;
77 
78    EXCEPTION
79 
80       WHEN no_data_found THEN
81 
82          IF p_lookup_type = 'INSTALLMENT_TYPE' THEN
83 
84             Fnd_Message.Set_Name('IGW','IGW_SS_INSTALL_TYPE_INVALID');
85 
86          END IF;
87 
88          Fnd_Msg_Pub.Add;
89 
90          RETURN null;
91 
92       WHEN others THEN
93 
94          Fnd_Msg_Pub.Add_Exc_Msg
95          (
96             p_pkg_name       => G_PKG_NAME,
97             p_procedure_name => l_api_name||' : '||p_lookup_type
98          );
99 
100          RAISE Fnd_Api.G_Exc_Unexpected_Error;
101 
102    END Get_Gms_Lookup_Code;
103 
104    ---------------------------------------------------------------------------
105 
106    PROCEDURE Create_Installment
107    (
108       p_init_msg_list           IN VARCHAR2   := Fnd_Api.G_False,
109       p_validate_only           IN VARCHAR2   := Fnd_Api.G_False,
110       p_commit                  IN VARCHAR2   := Fnd_Api.G_False,
111       x_rowid                   OUT NOCOPY VARCHAR2,
112       x_proposal_installment_id OUT NOCOPY NUMBER,
113       p_proposal_award_id       IN NUMBER,
114       p_installment_id          IN NUMBER,
115       p_installment_number      IN VARCHAR2,
116       p_installment_type_desc   IN VARCHAR2,
117       p_installment_type_code   IN VARCHAR2,
118       p_issue_date              IN DATE,
119       p_close_date              IN DATE,
120       p_start_date              IN DATE,
121       p_end_date                IN DATE,
122       p_direct_cost             IN NUMBER,
123       p_indirect_cost           IN NUMBER,
124       p_billable_flag           IN VARCHAR2,
125       p_description             IN VARCHAR2,
126       x_return_status           OUT NOCOPY VARCHAR2,
127       x_msg_count               OUT NOCOPY NUMBER,
128       x_msg_data                OUT NOCOPY VARCHAR2
129    ) IS
130 
131       l_api_name      CONSTANT VARCHAR2(30) := 'Create_Installment';
132 
133       l_installment_type_code  VARCHAR2(30);
134 
135       l_count                  NUMBER;
136       l_return_status          VARCHAR2(1);
137 
138    BEGIN
139 
140       /*
141       **   Establish Savepoint for Rollback
142       */
143 
144       SAVEPOINT Create_Installment_Pvt;
145 
146 
147       /*
148       **   Initialize
149       */
150 
151       x_return_status := Fnd_Api.G_Ret_Sts_Success;
152 
153       IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
154 
155          Fnd_Msg_Pub.Initialize;
156 
157       END IF;
158 
159 
160       l_installment_type_code := Get_Gms_Lookup_Code('INSTALLMENT_TYPE',p_installment_type_desc);
161 
162       IF p_start_date > p_end_date THEN
163 
164          Fnd_Message.Set_Name('GMS','GMS_INST_ENDATE_BEF_INS_STDATE');
165          Fnd_Msg_Pub.Add;
166 
167       END IF;
168 
169       IF p_end_date > p_close_date THEN
170 
171          Fnd_Message.Set_Name('GMS','GMS_INS_CLOSEDATE_BEF_ENDDATE') ;
172          Fnd_Msg_Pub.Add;
173 
174       END IF;
175 
176 
177       IF Fnd_Msg_Pub.Count_Msg > 0 THEN
178 
179          RAISE Fnd_Api.G_Exc_Error;
180 
181       END IF;
182 
183 
184       /*
185       **   Discontinue processing if API invoked in validation mode
186       */
187 
188       IF Fnd_Api.To_Boolean(p_validate_only) THEN
189 
190          RETURN;
191 
192       END IF;
193 
194       /*
195       **   Invoke Table Handler to insert data
196       */
197 
198       Igw_Installments_Tbh.Insert_Row
199       (
200          x_rowid                   => x_rowid,
201          x_proposal_installment_id => x_proposal_installment_id,
202          p_proposal_award_id       => p_proposal_award_id,
203          p_installment_id          => p_installment_id,
204          p_installment_number      => p_installment_number,
205          p_installment_type_code   => l_installment_type_code,
206          p_issue_date              => p_issue_date,
207          p_close_date              => p_close_date,
208          p_start_date              => p_start_date,
209          p_end_date                => p_end_date,
210          p_direct_cost             => p_direct_cost,
211          p_indirect_cost           => p_indirect_cost,
212          p_billable_flag           => p_billable_flag,
213          p_description             => p_description,
214          x_return_status           => l_return_status
215       );
216 
217       /*
218       **   Commit data if API invoked in commit mode
219       */
220 
221       IF Fnd_Api.To_Boolean(p_commit) THEN
222 
223          COMMIT;
224 
225       END IF;
226 
227 
228    EXCEPTION
229 
230       WHEN Fnd_Api.G_Exc_Error THEN
231 
232          ROLLBACK TO Create_Installment_Pvt;
233 
234          x_return_status := Fnd_Api.G_Ret_Sts_Error;
235 
236          Fnd_Msg_Pub.Count_And_Get
237          (
238             p_count   => x_msg_count,
239             p_data    => x_msg_data
240          );
241 
242       WHEN Fnd_Api.G_Exc_Unexpected_Error THEN
243 
244          ROLLBACK TO Create_Installment_Pvt;
245 
246          x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
247 
248          Fnd_Msg_Pub.Count_And_Get
249          (
250             p_count   => x_msg_count,
251             p_data    => x_msg_data
252          );
253 
254       WHEN others THEN
255 
256          ROLLBACK TO Create_Installment_Pvt;
257 
258          x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
259 
260          Fnd_Msg_Pub.Add_Exc_Msg
261          (
262             p_pkg_name       => G_PKG_NAME,
263             p_procedure_name => l_api_name
264          );
265 
266          Fnd_Msg_Pub.Count_And_Get
267          (
268             p_count   => x_msg_count,
269             p_data    => x_msg_data
270          );
271 
272    END Create_Installment;
273 
274    ---------------------------------------------------------------------------
275 
276    PROCEDURE Update_Installment
277    (
278       p_init_msg_list           IN VARCHAR2   := Fnd_Api.G_False,
279       p_validate_only           IN VARCHAR2   := Fnd_Api.G_False,
280       p_commit                  IN VARCHAR2   := Fnd_Api.G_False,
281       p_rowid                   IN VARCHAR2,
282       p_proposal_installment_id IN NUMBER,
283       p_record_version_number   IN NUMBER,
284       p_proposal_award_id       IN NUMBER,
285       p_installment_id          IN NUMBER,
286       p_installment_number      IN VARCHAR2,
287       p_installment_type_desc   IN VARCHAR2,
288       p_installment_type_code   IN VARCHAR2,
289       p_issue_date              IN DATE,
290       p_close_date              IN DATE,
291       p_start_date              IN DATE,
292       p_end_date                IN DATE,
293       p_direct_cost             IN NUMBER,
294       p_indirect_cost           IN NUMBER,
295       p_billable_flag           IN VARCHAR2,
296       p_description             IN VARCHAR2,
297       x_return_status           OUT NOCOPY VARCHAR2,
298       x_msg_count               OUT NOCOPY NUMBER,
299       x_msg_data                OUT NOCOPY VARCHAR2
300    ) IS
301 
302       l_api_name      CONSTANT VARCHAR2(30) := 'Update_Installment';
303 
304       l_installment_type_code  VARCHAR2(30);
305 
306       l_count                  NUMBER;
307       l_return_status          VARCHAR2(1);
308 
309    BEGIN
310 
311       /*
312       **   Establish Savepoint for Rollback
313       */
314 
315       SAVEPOINT Update_Installment_Pvt;
316 
317 
318       /*
319       **   Initialize
320       */
321 
322       x_return_status := Fnd_Api.G_Ret_Sts_Success;
323 
324       IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
325 
326          Fnd_Msg_Pub.Initialize;
327 
328       END IF;
329 
330 
331       /*
332       **   Check Lock before proceeding
333       */
334 
335       Check_Lock
336       (
337          p_rowid                  => p_rowid,
338          p_record_version_number  => p_record_version_number
339       );
340 
341 
342       /*
343       **   Discontinue processing if any error has been encountered during
344       **   the earlier stages
345       */
346 
347 
348       IF Fnd_Msg_Pub.Count_Msg > 0 THEN
349 
350          RAISE Fnd_Api.G_Exc_Error;
351 
352       END IF;
353 
354       l_installment_type_code := Get_Gms_Lookup_Code('INSTALLMENT_TYPE',p_installment_type_desc);
355 
356       IF p_start_date > p_end_date THEN
357 
358          Fnd_Message.Set_Name('GMS','GMS_INST_ENDATE_BEF_INS_STDATE');
359          Fnd_Msg_Pub.Add;
360 
361       END IF;
362 
363       IF p_end_date > p_close_date THEN
364 
365          Fnd_Message.Set_Name('GMS','GMS_INS_CLOSEDATE_BEF_ENDDATE') ;
366          Fnd_Msg_Pub.Add;
367 
368       END IF;
369 
370 
371       IF Fnd_Msg_Pub.Count_Msg > 0 THEN
372 
373          RAISE Fnd_Api.G_Exc_Error;
374 
375       END IF;
376 
377       /*
378       **   Discontinue processing if API invoked in validation mode
379       */
380 
381       IF Fnd_Api.To_Boolean(p_validate_only) THEN
382 
383          RETURN;
384 
385       END IF;
386 
387 
388       /*
389       **   Invoke Table Handler to Update data
390       */
391 
392       Igw_Installments_Tbh.Update_Row
393       (
394          p_rowid                   => p_rowid,
395          p_proposal_installment_id => p_proposal_installment_id,
396          p_proposal_award_id       => p_proposal_award_id,
397          p_installment_id          => p_installment_id,
398          p_installment_number      => p_installment_number,
399          p_installment_type_code   => l_installment_type_code,
400          p_issue_date              => p_issue_date,
401          p_close_date              => p_close_date,
402          p_start_date              => p_start_date,
403          p_end_date                => p_end_date,
404          p_direct_cost             => p_direct_cost,
405          p_indirect_cost           => p_indirect_cost,
406          p_billable_flag           => p_billable_flag,
407          p_description             => p_description,
408          x_return_status           => x_return_status
409       );
410 
411 
412       /*
413       **   Commit data if API invoked in commit mode
414       */
415 
416       IF Fnd_Api.To_Boolean(p_commit) THEN
417 
418          COMMIT;
419 
420       END IF;
421 
422 
423    EXCEPTION
424 
425       WHEN Fnd_Api.G_Exc_Error THEN
426 
427          ROLLBACK TO Update_Installment_Pvt;
428 
429          x_return_status := Fnd_Api.G_Ret_Sts_Error;
430 
431          Fnd_Msg_Pub.Count_And_Get
432          (
433             p_count   => x_msg_count,
434             p_data    => x_msg_data
435          );
436 
437       WHEN Fnd_Api.G_Exc_Unexpected_Error THEN
438 
439          ROLLBACK TO Update_Installment_Pvt;
440 
441          x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
442 
443          Fnd_Msg_Pub.Count_And_Get
444          (
445             p_count   => x_msg_count,
446             p_data    => x_msg_data
447          );
448 
449       WHEN others THEN
450 
451          ROLLBACK TO Update_Installment_Pvt;
452 
453          x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
454 
455          Fnd_Msg_Pub.Add_Exc_Msg
456          (
457             p_pkg_name       => G_PKG_NAME,
458             p_procedure_name => l_api_name
459          );
460 
461          Fnd_Msg_Pub.Count_And_Get
462          (
463             p_count   => x_msg_count,
464             p_data    => x_msg_data
465          );
466 
467    END Update_Installment;
468 
469    ---------------------------------------------------------------------------
470 
471    PROCEDURE Delete_Installment
472    (
473       p_init_msg_list         IN VARCHAR2   := Fnd_Api.G_False,
474       p_validate_only         IN VARCHAR2   := Fnd_Api.G_False,
475       p_commit                IN VARCHAR2   := Fnd_Api.G_False,
476       p_rowid                 IN VARCHAR2,
477       p_record_version_number IN NUMBER,
478       x_return_status         OUT NOCOPY VARCHAR2,
479       x_msg_count             OUT NOCOPY NUMBER,
480       x_msg_data              OUT NOCOPY VARCHAR2
481    ) IS
482 
483       l_api_name      CONSTANT VARCHAR2(30) := 'Delete_Installment';
484 
485       l_return_status          VARCHAR2(1);
486 
487    BEGIN
488 
489       /*
490       **   Establish Savepoint for Rollback
491       */
492 
493       SAVEPOINT Delete_Installment_Pvt;
494 
495 
496       /*
497       **   Initialize
498       */
499 
500       x_return_status := Fnd_Api.G_Ret_Sts_Success;
501 
502       IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
503 
504          Fnd_Msg_Pub.Initialize;
505 
506       END IF;
507 
508 
509       /*
510       **   Check Lock before proceeding
511       */
512 
513       Check_Lock
514       (
515          p_rowid                  => p_rowid,
516          p_record_version_number  => p_record_version_number
517       );
518 
519       /*
520       **   Discontinue processing if any error has been encountered during
521       **   the earlier stages
522       */
523 
524       IF Fnd_Msg_Pub.Count_Msg > 0 THEN
525 
526          RAISE Fnd_Api.G_Exc_Error;
527 
528       END IF;
529 
530 
531       /*
532       **   Discontinue processing if API invoked in validation mode
533       */
534 
535       IF Fnd_Api.To_Boolean(p_validate_only) THEN
536 
537          RETURN;
538 
539       END IF;
540 
541 
542       /*
543       **   Invoke Table Handler to Delete data
544       */
545 
546       Igw_Installments_Tbh.Delete_Row
547       (
548          p_rowid                  => p_rowid,
549          x_return_status          => x_return_status
550       );
551 
552 
553       /*
554       **   Commit data if API invoked in commit mode
555       */
556 
557       IF Fnd_Api.To_Boolean(p_commit) THEN
558 
559          COMMIT;
560 
561       END IF;
562 
563 
564    EXCEPTION
565 
566       WHEN Fnd_Api.G_Exc_Error THEN
567 
568          ROLLBACK TO Delete_Installment_Pvt;
569 
570          x_return_status := Fnd_Api.G_Ret_Sts_Error;
571 
572          Fnd_Msg_Pub.Count_And_Get
573          (
574             p_count   => x_msg_count,
575             p_data    => x_msg_data
576          );
577 
578       WHEN Fnd_Api.G_Exc_Unexpected_Error THEN
579 
580          ROLLBACK TO Delete_Installment_Pvt;
581 
582          x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
583 
584          Fnd_Msg_Pub.Count_And_Get
585          (
586             p_count   => x_msg_count,
587             p_data    => x_msg_data
588          );
589 
590       WHEN others THEN
591 
592          ROLLBACK TO Delete_Installment_Pvt;
593 
594          x_return_status := Fnd_Api.G_Ret_Sts_Unexp_Error;
595 
596          Fnd_Msg_Pub.Add_Exc_Msg
597          (
598             p_pkg_name       => G_PKG_NAME,
599             p_procedure_name => l_api_name
600          );
601 
602          Fnd_Msg_Pub.Count_And_Get
603          (
604             p_count   => x_msg_count,
605             p_data    => x_msg_data
606          );
607 
608    END Delete_Installment;
609 
610    ---------------------------------------------------------------------------
611 
612 END Igw_Installments_Pvt;