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