14: PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
15:
16: PROCEDURE apply_on_account(
17: p_api_version IN NUMBER,
18: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
19: p_commit IN VARCHAR2 := FND_API.G_FALSE,
20: p_cm_app_rec IN cm_app_rec_type,
21: x_return_status OUT NOCOPY VARCHAR2,
22: x_msg_count OUT NOCOPY NUMBER,
15:
16: PROCEDURE apply_on_account(
17: p_api_version IN NUMBER,
18: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
19: p_commit IN VARCHAR2 := FND_API.G_FALSE,
20: p_cm_app_rec IN cm_app_rec_type,
21: x_return_status OUT NOCOPY VARCHAR2,
22: x_msg_count OUT NOCOPY NUMBER,
23: x_msg_data OUT NOCOPY VARCHAR2,
85: /*--------------------------------------------------+
86: | Standard call to check for call compatibility |
87: +--------------------------------------------------*/
88:
89: IF NOT FND_API.Compatible_API_Call(
90: l_api_version,
91: p_api_version,
92: l_api_name,
93: G_PKG_NAME
92: l_api_name,
93: G_PKG_NAME
94: )
95: THEN
96: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
97: END IF;
98:
99: /*--------------------------------------------------------------+
100: | Initialize message list if p_init_msg_list is set to TRUE |
99: /*--------------------------------------------------------------+
100: | Initialize message list if p_init_msg_list is set to TRUE |
101: +--------------------------------------------------------------*/
102:
103: IF FND_API.to_Boolean( p_init_msg_list )
104: THEN
105: FND_MSG_PUB.initialize;
106: END IF;
107:
110: +-------------------------------------------------*/
111: /* bug7641800, Added parameter to accept org_id from customer and added
112: code to set ORG accordingly. */
113: l_org_id := p_org_id;
114: l_org_return_status := FND_API.G_RET_STS_SUCCESS;
115: ar_mo_cache_utils.set_org_context_in_api
116: (
117: p_org_id =>l_org_id,
118: p_return_status =>l_org_return_status
117: p_org_id =>l_org_id,
118: p_return_status =>l_org_return_status
119: );
120:
121: IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
122: x_return_status := FND_API.G_RET_STS_ERROR;
123: ELSE
124: -- arp_global.init_global;
125: -- arp_standard.init_standard;
118: p_return_status =>l_org_return_status
119: );
120:
121: IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
122: x_return_status := FND_API.G_RET_STS_ERROR;
123: ELSE
124: -- arp_global.init_global;
125: -- arp_standard.init_standard;
126:
127: /*-----------------------------------------+
128: | Initialize return status to SUCCESS |
129: +-----------------------------------------*/
130:
131: x_return_status := FND_API.G_RET_STS_SUCCESS;
132:
133: /*---------------------------------------------+
134: | ========== Start of API Body ========== |
135: +---------------------------------------------*/
210: | VALIDATION |
211: | |
212: +---------------------*/
213: -- Call new PVT API for validation
214: IF l_def_return_status = FND_API.G_RET_STS_SUCCESS AND
215: l_def_ids_return_status = FND_API.G_RET_STS_SUCCESS
216: THEN
217: ar_cm_val_pvt.validate_app_info(
218: l_apply_date,
211: | |
212: +---------------------*/
213: -- Call new PVT API for validation
214: IF l_def_return_status = FND_API.G_RET_STS_SUCCESS AND
215: l_def_ids_return_status = FND_API.G_RET_STS_SUCCESS
216: THEN
217: ar_cm_val_pvt.validate_app_info(
218: l_apply_date,
219: l_cm_trx_date,
266: 'AR_RECEIVABLE_APPLICATIONS',
267: l_dflex_val_return_status
268: );
269:
270: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
271: l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
272: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
273: l_dflex_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
274: x_return_status := FND_API.G_RET_STS_ERROR;
267: l_dflex_val_return_status
268: );
269:
270: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
271: l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
272: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
273: l_dflex_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
274: x_return_status := FND_API.G_RET_STS_ERROR;
275: END IF;
268: );
269:
270: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
271: l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
272: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
273: l_dflex_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
274: x_return_status := FND_API.G_RET_STS_ERROR;
275: END IF;
276:
269:
270: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
271: l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
272: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
273: l_dflex_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
274: x_return_status := FND_API.G_RET_STS_ERROR;
275: END IF;
276:
277:
270: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
271: l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
272: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
273: l_dflex_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
274: x_return_status := FND_API.G_RET_STS_ERROR;
275: END IF;
276:
277:
278: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
274: x_return_status := FND_API.G_RET_STS_ERROR;
275: END IF;
276:
277:
278: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
279: p_count => x_msg_count,
280: p_data => x_msg_data
281: );
282:
281: );
282:
283: END IF; -- Closing IF for ORG_RET_STATUS
284:
285: IF x_return_status <> FND_API.G_RET_STS_SUCCESS
286: THEN
287:
288: ROLLBACK TO Apply_CM;
289:
286: THEN
287:
288: ROLLBACK TO Apply_CM;
289:
290: x_return_status := FND_API.G_RET_STS_ERROR ;
291:
292:
293: IF PG_DEBUG in ('Y', 'C') THEN
294: arp_util.debug( 'Error(s) occurred. Rolling back and setting status to ERROR');
317:
318: -- Lock the PS of the transaction to be applied
319: arp_ps_pkg.nowaitlock_p (p_ps_id => l_applied_payment_schedule_id);
320:
321: l_return_status := FND_API.G_RET_STS_SUCCESS;
322:
323:
324: BEGIN
325: --call the entity handler
393: THEN
394: ROLLBACK TO Apply_CM;
395:
396: -- Display_Parameters;
397: x_return_status := FND_API.G_RET_STS_ERROR ;
398: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
399: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','ARP_PROCESS_APPLICATION.CM_APPLICATION'||SQLERRM);
400: FND_MSG_PUB.Add;
401:
398: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
399: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','ARP_PROCESS_APPLICATION.CM_APPLICATION'||SQLERRM);
400: FND_MSG_PUB.Add;
401:
402: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
403: p_count => x_msg_count,
404: p_data => x_msg_data
405: );
406: RETURN;
408: RAISE;
409: END IF;
410: END;
411:
412: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
413: RAISE FND_API.G_EXC_ERROR;
414: END IF;
415: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
416: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
409: END IF;
410: END;
411:
412: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
413: RAISE FND_API.G_EXC_ERROR;
414: END IF;
415: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
416: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
417: END IF;
411:
412: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
413: RAISE FND_API.G_EXC_ERROR;
414: END IF;
415: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
416: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
417: END IF;
418:
419:
412: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
413: RAISE FND_API.G_EXC_ERROR;
414: END IF;
415: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
416: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
417: END IF;
418:
419:
420: /*--------------------------------+
420: /*--------------------------------+
421: | Standard check of p_commit |
422: +--------------------------------*/
423:
424: IF FND_API.To_Boolean( p_commit )
425: THEN
426: IF PG_DEBUG in ('Y', 'C') THEN
427: arp_util.debug( 'committing');
428: END IF;
431: IF PG_DEBUG in ('Y', 'C') THEN
432: arp_util.debug('Apply ()- ');
433: END IF;
434: EXCEPTION
435: WHEN FND_API.G_EXC_ERROR THEN
436:
437: IF PG_DEBUG in ('Y', 'C') THEN
438: arp_util.debug( SQLCODE, G_MSG_ERROR);
439: arp_util.debug( SQLERRM, G_MSG_ERROR);
439: arp_util.debug( SQLERRM, G_MSG_ERROR);
440: END IF;
441:
442: ROLLBACK TO Apply_CM;
443: x_return_status := FND_API.G_RET_STS_ERROR ;
444:
445: -- Display_Parameters;
446:
447: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
443: x_return_status := FND_API.G_RET_STS_ERROR ;
444:
445: -- Display_Parameters;
446:
447: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
448: p_count => x_msg_count,
449: p_data => x_msg_data
450: );
451:
448: p_count => x_msg_count,
449: p_data => x_msg_data
450: );
451:
452: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
453:
454: IF PG_DEBUG in ('Y', 'C') THEN
455: arp_util.debug( SQLERRM, G_MSG_ERROR);
456: END IF;
454: IF PG_DEBUG in ('Y', 'C') THEN
455: arp_util.debug( SQLERRM, G_MSG_ERROR);
456: END IF;
457: ROLLBACK TO Apply_CM;
458: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
459:
460: -- Display_Parameters;
461:
462: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
458: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
459:
460: -- Display_Parameters;
461:
462: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
463: p_count => x_msg_count,
464: p_data => x_msg_data
465: );
466:
478:
479: --If only one error message on the stack,
480: --retrive it
481:
482: x_return_status := FND_API.G_RET_STS_ERROR ;
483: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
484: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','APPLY : '||SQLERRM);
485: FND_MSG_PUB.Add;
486:
483: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
484: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','APPLY : '||SQLERRM);
485: FND_MSG_PUB.Add;
486:
487: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
488: p_count => x_msg_count,
489: p_data => x_msg_data
490: );
491:
491:
492: RETURN;
493:
494: ELSE
495: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
496: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
497: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','APPLY : '||SQLERRM);
498: FND_MSG_PUB.Add;
499: END IF;
513: END IF;
514:
515: -- Display_Parameters;
516:
517: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
518: p_count => x_msg_count,
519: p_data => x_msg_data
520: );
521:
523: END apply_on_account;
524:
525: PROCEDURE unapply_on_account(
526: p_api_version IN NUMBER,
527: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
528: p_commit IN VARCHAR2 := FND_API.G_FALSE,
529: p_cm_unapp_rec IN cm_unapp_rec_type,
530: x_return_status OUT NOCOPY VARCHAR2,
531: x_msg_count OUT NOCOPY NUMBER,
524:
525: PROCEDURE unapply_on_account(
526: p_api_version IN NUMBER,
527: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
528: p_commit IN VARCHAR2 := FND_API.G_FALSE,
529: p_cm_unapp_rec IN cm_unapp_rec_type,
530: x_return_status OUT NOCOPY VARCHAR2,
531: x_msg_count OUT NOCOPY NUMBER,
532: x_msg_data OUT NOCOPY VARCHAR2,
545: l_reversal_gl_date DATE;
546: l_apply_gl_date DATE;
547: l_cm_gl_date DATE;
548:
549: l_def_ids_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
550: l_val_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
551:
552: l_org_return_status VARCHAR2(1); --bug7641800
553: l_org_id NUMBER;
546: l_apply_gl_date DATE;
547: l_cm_gl_date DATE;
548:
549: l_def_ids_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
550: l_val_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
551:
552: l_org_return_status VARCHAR2(1); --bug7641800
553: l_org_id NUMBER;
554:
579: /*--------------------------------------------------+
580: | Standard call to check for call compatibility |
581: +--------------------------------------------------*/
582:
583: IF NOT FND_API.Compatible_API_Call(
584: l_api_version,
585: p_api_version,
586: l_api_name,
587: G_PKG_NAME
586: l_api_name,
587: G_PKG_NAME
588: )
589: THEN
590: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
591: END IF;
592:
593:
594: /*--------------------------------------------------------------+
594: /*--------------------------------------------------------------+
595: | Initialize message list if p_init_msg_list is set to TRUE |
596: +--------------------------------------------------------------*/
597:
598: IF FND_API.to_Boolean( p_init_msg_list )
599: THEN
600: FND_MSG_PUB.initialize;
601: END IF;
602:
614: +-------------------------------------------------*/
615: /* bug7641800, Added parameter to accept org_id from customer and added
616: code to set ORG accordingly. */
617: l_org_id := p_org_id;
618: l_org_return_status := FND_API.G_RET_STS_SUCCESS;
619: ar_mo_cache_utils.set_org_context_in_api
620: (
621: p_org_id =>l_org_id,
622: p_return_status =>l_org_return_status
621: p_org_id =>l_org_id,
622: p_return_status =>l_org_return_status
623: );
624:
625: IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
626: x_return_status := FND_API.G_RET_STS_ERROR;
627: ELSE
628: -- arp_global.init_global;
629: -- arp_standard.init_standard;
622: p_return_status =>l_org_return_status
623: );
624:
625: IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
626: x_return_status := FND_API.G_RET_STS_ERROR;
627: ELSE
628: -- arp_global.init_global;
629: -- arp_standard.init_standard;
630:
631: /*-----------------------------------------+
632: | Initialize return status to SUCCESS |
633: +-----------------------------------------*/
634:
635: x_return_status := FND_API.G_RET_STS_SUCCESS;
636: /*---------------------------------------------+
637: | ========== Start of API Body ========== |
638: +---------------------------------------------*/
639:
688: IF PG_DEBUG in ('Y', 'C') THEN
689: arp_util.debug( 'validation return status :'||l_val_return_status);
690: END IF;
691:
692: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
693: l_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
694: x_return_status := FND_API.G_RET_STS_ERROR ;
695: END IF;
696:
689: arp_util.debug( 'validation return status :'||l_val_return_status);
690: END IF;
691:
692: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
693: l_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
694: x_return_status := FND_API.G_RET_STS_ERROR ;
695: END IF;
696:
697: END IF; -- Closing IF for ORG_RET_STATUS
690: END IF;
691:
692: IF l_def_ids_return_status <> FND_API.G_RET_STS_SUCCESS OR
693: l_val_return_status <> FND_API.G_RET_STS_SUCCESS THEN
694: x_return_status := FND_API.G_RET_STS_ERROR ;
695: END IF;
696:
697: END IF; -- Closing IF for ORG_RET_STATUS
698:
695: END IF;
696:
697: END IF; -- Closing IF for ORG_RET_STATUS
698:
699: IF x_return_status <> FND_API.G_RET_STS_SUCCESS
700: THEN
701:
702: ROLLBACK TO Unapply_CM;
703:
700: THEN
701:
702: ROLLBACK TO Unapply_CM;
703:
704: x_return_status := FND_API.G_RET_STS_ERROR ;
705:
706: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
707: p_count => x_msg_count,
708: p_data => x_msg_data
702: ROLLBACK TO Unapply_CM;
703:
704: x_return_status := FND_API.G_RET_STS_ERROR ;
705:
706: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
707: p_count => x_msg_count,
708: p_data => x_msg_data
709: );
710:
759: THEN
760: ROLLBACK TO Unapply_CM;
761:
762: -- Display_Parameters;
763: x_return_status := FND_API.G_RET_STS_ERROR ;
764: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
765: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','ARP_PROCESS_APPLICATION.REVERSE_CM_APP : '||SQLERRM);
766: FND_MSG_PUB.Add;
767:
764: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
765: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','ARP_PROCESS_APPLICATION.REVERSE_CM_APP : '||SQLERRM);
766: FND_MSG_PUB.Add;
767:
768: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
769: p_count => x_msg_count,
770: p_data => x_msg_data
771: );
772: RETURN;
779: /*--------------------------------+
780: | Standard check of p_commit |
781: +--------------------------------*/
782:
783: IF FND_API.To_Boolean( p_commit )
784: THEN
785: IF PG_DEBUG in ('Y', 'C') THEN
786: arp_util.debug( 'committing');
787: END IF;
791: IF PG_DEBUG in ('Y', 'C') THEN
792: arp_util.debug('ar_cm_api.Unapply_on_account ()- ');
793: END IF;
794: EXCEPTION
795: WHEN FND_API.G_EXC_ERROR THEN
796:
797: IF PG_DEBUG in ('Y', 'C') THEN
798: arp_util.debug( SQLCODE, G_MSG_ERROR);
799: arp_util.debug( SQLERRM, G_MSG_ERROR);
799: arp_util.debug( SQLERRM, G_MSG_ERROR);
800: END IF;
801:
802: ROLLBACK TO Unapply_CM;
803: x_return_status := FND_API.G_RET_STS_ERROR ;
804:
805: -- Display_Parameters;
806:
807: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
803: x_return_status := FND_API.G_RET_STS_ERROR ;
804:
805: -- Display_Parameters;
806:
807: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
808: p_count => x_msg_count,
809: p_data => x_msg_data
810: );
811:
808: p_count => x_msg_count,
809: p_data => x_msg_data
810: );
811:
812: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
813:
814: IF PG_DEBUG in ('Y', 'C') THEN
815: arp_util.debug( SQLERRM, G_MSG_ERROR);
816: END IF;
814: IF PG_DEBUG in ('Y', 'C') THEN
815: arp_util.debug( SQLERRM, G_MSG_ERROR);
816: END IF;
817: ROLLBACK TO Unapply_CM;
818: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
819:
820: -- Display_Parameters;
821:
822: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
818: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
819:
820: -- Display_Parameters;
821:
822: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
823: p_count => x_msg_count,
824: p_data => x_msg_data
825: );
826:
836: THEN
837:
838: ROLLBACK TO Unapply_CM;
839:
840: x_return_status := FND_API.G_RET_STS_ERROR ;
841: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
842: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','UNAPPLY : '||SQLERRM);
843: FND_MSG_PUB.Add;
844:
844:
845: --If only one error message on the stack,
846: --retrive it
847:
848: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
849: p_count => x_msg_count,
850: p_data => x_msg_data
851: );
852:
852:
853: RETURN;
854:
855: ELSE
856: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
857: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
858: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','UNAPPLY : '||SQLERRM);
859: FND_MSG_PUB.Add;
860: END IF;
874: END IF;
875:
876: -- Display_Parameters;
877:
878: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
879: p_count => x_msg_count,
880: p_data => x_msg_data
881: );
882: