170:
171: PROCEDURE Process_Prepayments(
172: -- Standard API parameters.
173: p_api_version IN NUMBER,
174: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
175: p_commit IN VARCHAR2 := FND_API.G_FALSE,
176: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
177: p_receipt_number IN ar_cash_receipts.receipt_number%TYPE DEFAULT NULL,
178: p_cash_receipt_id IN ar_cash_receipts.cash_receipt_id%TYPE DEFAULT NULL,
171: PROCEDURE Process_Prepayments(
172: -- Standard API parameters.
173: p_api_version IN NUMBER,
174: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
175: p_commit IN VARCHAR2 := FND_API.G_FALSE,
176: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
177: p_receipt_number IN ar_cash_receipts.receipt_number%TYPE DEFAULT NULL,
178: p_cash_receipt_id IN ar_cash_receipts.cash_receipt_id%TYPE DEFAULT NULL,
179: p_receivable_application_id IN ar_receivable_applications.
172: -- Standard API parameters.
173: p_api_version IN NUMBER,
174: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
175: p_commit IN VARCHAR2 := FND_API.G_FALSE,
176: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
177: p_receipt_number IN ar_cash_receipts.receipt_number%TYPE DEFAULT NULL,
178: p_cash_receipt_id IN ar_cash_receipts.cash_receipt_id%TYPE DEFAULT NULL,
179: p_receivable_application_id IN ar_receivable_applications.
180: receivable_application_id%TYPE DEFAULT NULL,
241: arp_util.debug('process_prepayments: ' ||
242: 'ar_prepayments.process prepayment (+)');
243: END IF;
244:
245: x_return_status := FND_API.G_RET_STS_SUCCESS;
246: l_cash_receipt_id := p_cash_receipt_id;
247: l_receivable_application_id := p_receivable_application_id;
248: l_refund_amount := p_refund_amount;
249: l_receivables_trx_id := p_receivables_trx_id;
329: END IF;
330:
331:
332:
333: IF l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
334: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
335: l_def_activity_return_status <> FND_API.G_RET_STS_SUCCESS THEN
336:
337: IF PG_DEBUG in ('Y', 'C') THEN
330:
331:
332:
333: IF l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
334: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
335: l_def_activity_return_status <> FND_API.G_RET_STS_SUCCESS THEN
336:
337: IF PG_DEBUG in ('Y', 'C') THEN
338: arp_util.debug('process_prepayments: ' ||
331:
332:
333: IF l_val_return_status <> FND_API.G_RET_STS_SUCCESS OR
334: l_def_return_status <> FND_API.G_RET_STS_SUCCESS OR
335: l_def_activity_return_status <> FND_API.G_RET_STS_SUCCESS THEN
336:
337: IF PG_DEBUG in ('Y', 'C') THEN
338: arp_util.debug('process_prepayments: ' ||
339: 'Validation or Defaulting Failed' );
337: IF PG_DEBUG in ('Y', 'C') THEN
338: arp_util.debug('process_prepayments: ' ||
339: 'Validation or Defaulting Failed' );
340: END IF;
341: x_return_status := FND_API.G_RET_STS_ERROR ;
342:
343: END IF;
344:
345:
349: /*----------------------------------------------------
350: If the validations passed then
351: Unapply prepayment
352: -----------------------------------------------------*/
353: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
354:
355: IF PG_DEBUG in ('Y', 'C') THEN
356: arp_util.debug('process_prepayments: ' ||
357: ' Calling ar_receipt_api_pub.Unapply_other_account' );
378: 'Unapply Other Account Return status :'||
379: x_return_status);
380: END IF;
381:
382: END IF; ---x_return_status = FND_API.G_RET_STS_SUCCESS
383:
384:
385: /*----------------------------------------------------
386: Make sure there are no errors in unapplication.
386: Make sure there are no errors in unapplication.
387: if there is any error,do not perform refund or
388: reapplication
389: -----------------------------------------------------*/
390: IF x_return_status = FND_API.G_RET_STS_SUCCESS AND
391: l_refund_type = 'CREDIT_CARD' THEN
392:
393: IF PG_DEBUG in ('Y', 'C') THEN
394: arp_util.debug('process_prepayments: ' ||
442: Bug 3628401
443: Fetch the amount_applied for credit card refund
444: application
445: -----------------------------------------------------*/
446: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
447: arp_app_pkg.fetch_p(l_receivable_application_id,
448: l_ra_refund_rec);
449: l_actual_refund_amount := NVL(l_ra_refund_rec.amount_applied,0);
450: END IF;
451:
452: /*----------------------------------------------------
453: On Account refund Application
454: -----------------------------------------------------*/
455: ELSIF x_return_status = FND_API.G_RET_STS_SUCCESS AND
456: l_refund_type = 'ON_ACCOUNT' THEN
457:
458: /*----------------------------------------------------
459: populate the message if the receipt was supposed
496: /*----------------------------------------------------
497: Bug 3628401
498: Fetch the amount_applied on On Account refund record
499: -----------------------------------------------------*/
500: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
501:
502: l_on_acc_rec_app_id :=
503: ar_receipt_api_pub.g_apply_on_account_out_rec.receivable_application_id;
504: arp_app_pkg.fetch_p(l_on_acc_rec_app_id, l_ra_refund_rec );
512: Bug 3628401
513: If the refund application was successful then evaluate
514: whether any amount needs to be applied back on Prepayment
515: -----------------------------------------------------*/
516: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
517:
518: l_reapply_amount := NVL(l_ra_rec.amount_applied,0)
519: - NVL(l_actual_refund_amount,0);
520:
645:
646: /*----------------------------------------------------
647: Error Handling Finally
648: -----------------------------------------------------*/
649: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
650:
651: ---Bug 3628401 removed unexpected_error;
652: x_return_status := FND_API.G_RET_STS_ERROR;
653: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
648: -----------------------------------------------------*/
649: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
650:
651: ---Bug 3628401 removed unexpected_error;
652: x_return_status := FND_API.G_RET_STS_ERROR;
653: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
654: p_count => x_msg_count,
655: p_data => x_msg_data
656: );
649: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
650:
651: ---Bug 3628401 removed unexpected_error;
652: x_return_status := FND_API.G_RET_STS_ERROR;
653: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
654: p_count => x_msg_count,
655: p_data => x_msg_data
656: );
657: RETURN;
663:
664: EXCEPTION
665:
666: WHEN OTHERS THEN
667: x_return_status := FND_API.G_RET_STS_ERROR;
668: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
669: p_count => x_msg_count,
670: p_data => x_msg_data);
671:
664: EXCEPTION
665:
666: WHEN OTHERS THEN
667: x_return_status := FND_API.G_RET_STS_ERROR;
668: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
669: p_count => x_msg_count,
670: p_data => x_msg_data);
671:
672: IF PG_DEBUG in ('Y', 'C') THEN
709: *=======================================================================*/
710: PROCEDURE Create_Prepayment(
711: -- Standard API parameters.
712: p_api_version IN NUMBER,
713: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
714: p_commit IN VARCHAR2 := FND_API.G_FALSE,
715: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
716: x_return_status OUT NOCOPY VARCHAR2,
717: x_msg_count OUT NOCOPY NUMBER,
710: PROCEDURE Create_Prepayment(
711: -- Standard API parameters.
712: p_api_version IN NUMBER,
713: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
714: p_commit IN VARCHAR2 := FND_API.G_FALSE,
715: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
716: x_return_status OUT NOCOPY VARCHAR2,
717: x_msg_count OUT NOCOPY NUMBER,
718: x_msg_data OUT NOCOPY VARCHAR2,
711: -- Standard API parameters.
712: p_api_version IN NUMBER,
713: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
714: p_commit IN VARCHAR2 := FND_API.G_FALSE,
715: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
716: x_return_status OUT NOCOPY VARCHAR2,
717: x_msg_count OUT NOCOPY NUMBER,
718: x_msg_data OUT NOCOPY VARCHAR2,
719: -- Receipt info. parameters
788: -- processor such as iPayments
789: p_payment_server_order_num IN OUT NOCOPY ar_cash_receipts.payment_server_order_num%TYPE,
790: p_approval_code IN OUT NOCOPY ar_cash_receipts.approval_code%TYPE,
791: --- Bug: 3220078 Change the p_call_payment_processor to TRUE ---
792: p_call_payment_processor IN VARCHAR2 DEFAULT FND_API.G_TRUE,
793:
794: p_payment_response_error_code OUT NOCOPY VARCHAR2,
795: -- OUT NOCOPY parameter for the Application
796: p_receivable_application_id OUT NOCOPY ar_receivable_applications.receivable_application_id%TYPE,
812:
813: /*--------------------------------------------------------------+
814: | Initialize message list if p_init_msg_list is set to TRUE |
815: +--------------------------------------------------------------*/
816: IF FND_API.to_Boolean( p_init_msg_list )
817: THEN
818: FND_MSG_PUB.initialize;
819: END IF;
820: /* SSA change */
818: FND_MSG_PUB.initialize;
819: END IF;
820: /* SSA change */
821: l_org_id := p_org_id;
822: l_org_return_status := FND_API.G_RET_STS_SUCCESS;
823: ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
824: p_return_status =>l_org_return_status);
825: IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
826: x_return_status := FND_API.G_RET_STS_ERROR;
821: l_org_id := p_org_id;
822: l_org_return_status := FND_API.G_RET_STS_SUCCESS;
823: ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
824: p_return_status =>l_org_return_status);
825: IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
826: x_return_status := FND_API.G_RET_STS_ERROR;
827: ELSE
828:
829:
822: l_org_return_status := FND_API.G_RET_STS_SUCCESS;
823: ar_mo_cache_utils.set_org_context_in_api(p_org_id =>l_org_id,
824: p_return_status =>l_org_return_status);
825: IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
826: x_return_status := FND_API.G_RET_STS_ERROR;
827: ELSE
828:
829:
830: --Initialize the return status
827: ELSE
828:
829:
830: --Initialize the return status
831: x_return_status := FND_API.G_RET_STS_SUCCESS;
832:
833: --get the value of receipt_number into local variable
834: l_receipt_number := p_receipt_number;
835:
927: p_org_id,
928: p_payment_trxn_extension_id);
929:
930:
931: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
932: p_count => x_msg_count,
933: p_data => x_msg_data);
934:
935: IF PG_DEBUG in ('Y', 'C') THEN
943: WHEN others THEN
944: IF PG_DEBUG in ('Y', 'C') THEN
945: arp_util.debug('EXCEPTION : ar_prepayment.create_prepayment ||SQLERRM');
946: END IF;
947: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
948:
949: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
950: p_count => x_msg_count,
951: p_data => x_msg_data);
945: arp_util.debug('EXCEPTION : ar_prepayment.create_prepayment ||SQLERRM');
946: END IF;
947: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
948:
949: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
950: p_count => x_msg_count,
951: p_data => x_msg_data);
952:
953: END Create_Prepayment;
954:
955: PROCEDURE Refund_Prepayments(
956: -- Standard API parameters.
957: p_api_version IN NUMBER,
958: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
959: p_commit IN VARCHAR2 := FND_API.G_FALSE,
960: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
961: x_return_status OUT NOCOPY VARCHAR2,
962: x_msg_count OUT NOCOPY NUMBER,
955: PROCEDURE Refund_Prepayments(
956: -- Standard API parameters.
957: p_api_version IN NUMBER,
958: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
959: p_commit IN VARCHAR2 := FND_API.G_FALSE,
960: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
961: x_return_status OUT NOCOPY VARCHAR2,
962: x_msg_count OUT NOCOPY NUMBER,
963: x_msg_data OUT NOCOPY VARCHAR2,
956: -- Standard API parameters.
957: p_api_version IN NUMBER,
958: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
959: p_commit IN VARCHAR2 := FND_API.G_FALSE,
960: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
961: x_return_status OUT NOCOPY VARCHAR2,
962: x_msg_count OUT NOCOPY NUMBER,
963: x_msg_data OUT NOCOPY VARCHAR2,
964: p_prepay_application_id OUT NOCOPY ar_receivable_applications.receivable_application_id%TYPE,
1043: /*-----------------------------------------+
1044: | Initialize return status to SUCCESS |
1045: +-----------------------------------------*/
1046:
1047: x_return_status := FND_API.G_RET_STS_SUCCESS;
1048:
1049: /*--------------------------------------------------+
1050: | Standard call to check for call compatibility |
1051: +--------------------------------------------------*/
1049: /*--------------------------------------------------+
1050: | Standard call to check for call compatibility |
1051: +--------------------------------------------------*/
1052:
1053: IF NOT FND_API.Compatible_API_Call(
1054: l_api_version,
1055: p_api_version,
1056: l_api_name,
1057: G_PKG_NAME
1056: l_api_name,
1057: G_PKG_NAME
1058: )
1059: THEN
1060: x_return_status := FND_API.G_RET_STS_ERROR;
1061: RAISE FND_API.G_EXC_ERROR;
1062: END IF;
1063:
1064: /*--------------------------------------------------------------+
1057: G_PKG_NAME
1058: )
1059: THEN
1060: x_return_status := FND_API.G_RET_STS_ERROR;
1061: RAISE FND_API.G_EXC_ERROR;
1062: END IF;
1063:
1064: /*--------------------------------------------------------------+
1065: | Initialize message list if p_init_msg_list is set to TRUE |
1064: /*--------------------------------------------------------------+
1065: | Initialize message list if p_init_msg_list is set to TRUE |
1066: +--------------------------------------------------------------*/
1067:
1068: IF FND_API.to_Boolean( p_init_msg_list )
1069: THEN
1070: FND_MSG_PUB.initialize;
1071: END IF;
1072:
1089: l_receivable_application_id := p_receivable_application_id;
1090: l_refund_amount := p_refund_amount;
1091: l_payment_set_id := p_payment_set_id;
1092: l_receivables_trx_id := p_receivables_trx_id;
1093: l_receipt_id_def_status := FND_API.G_RET_STS_SUCCESS;
1094:
1095: IF (l_payment_set_id IS NULl AND p_receipt_number IS NULL
1096: AND l_cash_receipt_id IS NULL AND l_receivable_application_id IS NULL)
1097: THEN
1096: AND l_cash_receipt_id IS NULL AND l_receivable_application_id IS NULL)
1097: THEN
1098: FND_MESSAGE.SET_NAME('AR','AR_RAPI_CASH_RCPT_ID_NULL');
1099: FND_MSG_PUB.Add;
1100: x_return_status := FND_API.G_RET_STS_ERROR;
1101: RETURN;
1102: END IF;
1103:
1104:
1110: p_receipt_number ,
1111: l_receipt_id_def_status);
1112:
1113:
1114: IF l_receipt_id_def_status <> FND_API.G_RET_STS_SUCCESS OR
1115: l_cash_receipt_id is NULL THEN
1116:
1117: IF PG_DEBUG in ('Y', 'C') THEN
1118: arp_util.debug('refund_prepayments: ' || 'Validation or Defaulting Failed' ) ;
1117: IF PG_DEBUG in ('Y', 'C') THEN
1118: arp_util.debug('refund_prepayments: ' || 'Validation or Defaulting Failed' ) ;
1119: END IF;
1120:
1121: x_return_status := FND_API.G_RET_STS_ERROR;
1122: RAISE FND_API.G_EXC_ERROR;
1123: END IF;
1124: END IF;
1125:
1118: arp_util.debug('refund_prepayments: ' || 'Validation or Defaulting Failed' ) ;
1119: END IF;
1120:
1121: x_return_status := FND_API.G_RET_STS_ERROR;
1122: RAISE FND_API.G_EXC_ERROR;
1123: END IF;
1124: END IF;
1125:
1126:
1155: if nvl(l_refund_amount,0) > nvl(l_max_refund_amt,0) then
1156: --raise error X validation failed
1157: FND_MESSAGE.SET_NAME('AR','AR_RW_CCR_REFUND_AMOUNT');
1158: FND_MSG_PUB.Add;
1159: x_return_status := FND_API.G_RET_STS_ERROR ;
1160: RETURN;
1161: end if;
1162:
1163:
1176: EXCEPTION
1177: when no_data_found then
1178: FND_MESSAGE.SET_NAME('AR','AR_RAPI_CASH_RCPT_ID_INVALID');
1179: FND_MSG_PUB.Add;
1180: x_return_status := FND_API.G_RET_STS_ERROR;
1181: RETURN ;
1182:
1183: when others then
1184: x_return_status := FND_API.G_RET_STS_ERROR;
1180: x_return_status := FND_API.G_RET_STS_ERROR;
1181: RETURN ;
1182:
1183: when others then
1184: x_return_status := FND_API.G_RET_STS_ERROR;
1185: RAISE;
1186: END;
1187:
1188: IF PG_DEBUG in ('Y', 'C') THEN
1244: FND_MESSAGE.SET_NAME('AR','AR_CUST_INVALID_PARAMETER');
1245: FND_MESSAGE.SET_TOKEN('PARAMETER','P_PAYMENT_SET_ID');
1246: FND_MESSAGE.SET_TOKEN('VALUE',l_payment_set_id);
1247: FND_MSG_PUB.Add;
1248: x_return_status := FND_API.G_RET_STS_ERROR;
1249: RETURN;
1250: end if;
1251:
1252:
1272: FND_MESSAGE.SET_NAME('AR','AR_CUST_INVALID_PARAMETER');
1273: FND_MESSAGE.SET_TOKEN('PARAMETER','P_BANK_ACCOUNT_ID');
1274: FND_MESSAGE.SET_TOKEN('VALUE',t_bank_account_id);
1275: FND_MSG_PUB.Add;
1276: x_return_status := FND_API.G_RET_STS_ERROR;
1277: RETURN;
1278: end if;
1279:
1280: end if;
1301: FND_MESSAGE.SET_NAME('AR','AR_CUST_INVALID_PARAMETER');
1302: FND_MESSAGE.SET_TOKEN('PARAMETER','P_RECEIPT_METHOD_ID');
1303: FND_MESSAGE.SET_TOKEN('VALUE',t_receipt_method_id);
1304: FND_MSG_PUB.Add;
1305: x_return_status := FND_API.G_RET_STS_ERROR;
1306: RETURN;
1307: end if;
1308:
1309:
1327: if nvl(l_refund_amount,0) > nvl(l_max_refund_amt,0) then
1328: --raise error X validation failed
1329: FND_MESSAGE.SET_NAME('AR','AR_RW_CCR_REFUND_AMOUNT');
1330: FND_MSG_PUB.Add;
1331: x_return_status := FND_API.G_RET_STS_ERROR ;
1332: RETURN;
1333: end if;
1334:
1335: if PG_DEBUG in ('Y', 'C') THEN
1361:
1362: IF PG_DEBUG in ('Y', 'C') THEN
1363: arp_util.debug('Refund_Prepayments: ' || 'Could not find payment type()+ ');
1364: END IF;
1365: x_return_status := FND_API.G_RET_STS_ERROR;
1366: RETURN;
1367:
1368:
1369: -----if there is one payment type --------
1441: arp_util.debug('Refund_Prepayments: ' || 'Receivable App ID : '||p_prepay_application_id);
1442: arp_util.debug('Refund_Prepayments: ' || 'Process Payments status : '||x_return_status);
1443: END IF;
1444:
1445: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1446: x_return_status := FND_API.G_RET_STS_ERROR;
1447: EXIT;
1448: END IF;
1449:
1442: arp_util.debug('Refund_Prepayments: ' || 'Process Payments status : '||x_return_status);
1443: END IF;
1444:
1445: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1446: x_return_status := FND_API.G_RET_STS_ERROR;
1447: EXIT;
1448: END IF;
1449:
1450: l_refund_amount := l_refund_amount - l_rcpt_refund_amount;
1469: /*-------------------------------------------------
1470: Finally error Handling
1471: Moved it down fron before the end if
1472: --------------------------------------------------*/
1473: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1474:
1475: ---Bug 3628401 raising expected error
1476: x_return_status := FND_API.G_RET_STS_ERROR;
1477: RAISE FND_API.G_EXC_ERROR;
1472: --------------------------------------------------*/
1473: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1474:
1475: ---Bug 3628401 raising expected error
1476: x_return_status := FND_API.G_RET_STS_ERROR;
1477: RAISE FND_API.G_EXC_ERROR;
1478:
1479: END IF;
1480:
1473: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1474:
1475: ---Bug 3628401 raising expected error
1476: x_return_status := FND_API.G_RET_STS_ERROR;
1477: RAISE FND_API.G_EXC_ERROR;
1478:
1479: END IF;
1480:
1481:
1484: /*--------------------------------+
1485: | Standard check of p_commit |
1486: +--------------------------------*/
1487:
1488: IF FND_API.To_Boolean( p_commit )
1489: THEN
1490: IF PG_DEBUG in ('Y', 'C') THEN
1491: arp_util.debug('Refund_Prepayments: ' || 'committing');
1492: END IF;
1492: END IF;
1493: Commit;
1494: END IF;
1495:
1496: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1497: p_count => x_msg_count,
1498: p_data => x_msg_data);
1499:
1500: IF PG_DEBUG in ('Y', 'C') THEN
1503:
1504:
1505: EXCEPTION
1506:
1507: WHEN FND_API.G_EXC_ERROR THEN
1508:
1509: IF PG_DEBUG in ('Y', 'C') THEN
1510: arp_util.debug( SQLCODE, G_MSG_ERROR);
1511: arp_util.debug( SQLERRM, G_MSG_ERROR);
1511: arp_util.debug( SQLERRM, G_MSG_ERROR);
1512: END IF;
1513:
1514: ROLLBACK TO refund_prepay_PVT;
1515: x_return_status := FND_API.G_RET_STS_ERROR ;
1516:
1517: -- Display_Parameters;
1518: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1519: p_count => x_msg_count,
1514: ROLLBACK TO refund_prepay_PVT;
1515: x_return_status := FND_API.G_RET_STS_ERROR ;
1516:
1517: -- Display_Parameters;
1518: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1519: p_count => x_msg_count,
1520: p_data => x_msg_data
1521: );
1522:
1531: IF (SQLCODE = -20001) THEN
1532: ROLLBACK TO refund_prepay_PVT;
1533:
1534: -- Display_Parameters;
1535: x_return_status := FND_API.G_RET_STS_ERROR ;
1536: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
1537: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','AR_PREPAYMENTS_PUB.refund : '||SQLERRM);
1538: FND_MSG_PUB.Add;
1539: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
1535: x_return_status := FND_API.G_RET_STS_ERROR ;
1536: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
1537: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','AR_PREPAYMENTS_PUB.refund : '||SQLERRM);
1538: FND_MSG_PUB.Add;
1539: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
1540: p_count => x_msg_count,
1541: p_data => x_msg_data);
1542: RETURN;
1543: ELSE
1540: p_count => x_msg_count,
1541: p_data => x_msg_data);
1542: RETURN;
1543: ELSE
1544: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1545: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
1546: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','REFUND_PREPAYMENT : '||SQLERRM);
1547: FND_MSG_PUB.Add;
1548: END IF;
1560: );
1561: END IF;
1562:
1563: -- Display_Parameters;
1564: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1565: p_count => x_msg_count,
1566: p_data => x_msg_data);
1567:
1568:
1613:
1614: IF PG_DEBUG in ('Y', 'C') THEN
1615: arp_util.debug('ar_prepayments.match_prepayment (+)');
1616: END IF;
1617: x_return_status := FND_API.G_RET_STS_SUCCESS;
1618: l_payment_schedule_id := p_payment_schedule_id;
1619:
1620: BEGIN
1621: SELECT 'Y'
1630: WHEN no_data_found THEN
1631: IF PG_DEBUG in ('Y', 'C') THEN
1632: arp_util.debug('ar_prepayments.match_prepayment No prepayment exists');
1633: END IF;
1634: x_return_status := FND_API.G_RET_STS_SUCCESS;
1635: RETURN;
1636: WHEN others THEN
1637: IF PG_DEBUG in ('Y', 'C') THEN
1638: arp_util.debug('EXCEPTION :ar_prepayments.match_prepayment Check ');
1636: WHEN others THEN
1637: IF PG_DEBUG in ('Y', 'C') THEN
1638: arp_util.debug('EXCEPTION :ar_prepayments.match_prepayment Check ');
1639: END IF;
1640: x_return_status := FND_API.G_RET_STS_ERROR;
1641: RETURN;
1642: END;
1643:
1644: --fetch invoice payment schedule
1665:
1666: IF PG_DEBUG in ('Y', 'C') THEN
1667: arp_util.debug('match_prepayment: ' || 'unapply_other_account retun status : '||l_return_status);
1668: END IF;
1669: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1670: x_return_status := FND_API.G_RET_STS_ERROR;
1671: EXIT;
1672: END IF;
1673:
1666: IF PG_DEBUG in ('Y', 'C') THEN
1667: arp_util.debug('match_prepayment: ' || 'unapply_other_account retun status : '||l_return_status);
1668: END IF;
1669: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1670: x_return_status := FND_API.G_RET_STS_ERROR;
1671: EXIT;
1672: END IF;
1673:
1674: IF NVL(l_ps_rec.amount_due_remaining,0) < NVL(prepayapp_rec.amount_applied,0)
1701: IF PG_DEBUG in ('Y', 'C') THEN
1702: arp_util.debug('match_prepayment: ' || 'Apply retun status : '||l_return_status);
1703: END IF;
1704:
1705: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1706: x_return_status := FND_API.G_RET_STS_ERROR;
1707: END IF;
1708:
1709: --Apply rest of the amount back to prepayment
1702: arp_util.debug('match_prepayment: ' || 'Apply retun status : '||l_return_status);
1703: END IF;
1704:
1705: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1706: x_return_status := FND_API.G_RET_STS_ERROR;
1707: END IF;
1708:
1709: --Apply rest of the amount back to prepayment
1710: IF (l_prepay_amount_reapplied > 0) AND (x_return_status <> FND_API.G_RET_STS_ERROR) THEN
1706: x_return_status := FND_API.G_RET_STS_ERROR;
1707: END IF;
1708:
1709: --Apply rest of the amount back to prepayment
1710: IF (l_prepay_amount_reapplied > 0) AND (x_return_status <> FND_API.G_RET_STS_ERROR) THEN
1711: --Assign atributes
1712: l_attribute_rec.attribute_category := prepayapp_rec.attribute_category;
1713: l_attribute_rec.attribute1 := prepayapp_rec.attribute1;
1714: l_attribute_rec.attribute2 := prepayapp_rec.attribute2;
1776: IF PG_DEBUG in ('Y', 'C') THEN
1777: arp_util.debug('match_prepayment: ' || 'apply_other_account retun status : '||l_return_status);
1778: END IF;
1779:
1780: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1781: x_return_status := FND_API.G_RET_STS_ERROR;
1782: END IF;
1783:
1784: END IF;
1777: arp_util.debug('match_prepayment: ' || 'apply_other_account retun status : '||l_return_status);
1778: END IF;
1779:
1780: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1781: x_return_status := FND_API.G_RET_STS_ERROR;
1782: END IF;
1783:
1784: END IF;
1785:
1789: l_complete_applied_flag := TRUE;
1790: EXIT;
1791: END IF;
1792:
1793: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1794: EXIT;
1795: END IF;
1796:
1797:
1800: IF (l_complete_applied_flag) THEN
1801: EXIT;
1802: END IF;
1803:
1804: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1805: EXIT;
1806: END IF;
1807:
1808: END LOOP;
1806: END IF;
1807:
1808: END LOOP;
1809:
1810: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1811: ROLLBACK to match_prepayment_PVT;
1812: IF NVL(l_msg_count,0) > 0 Then
1813: IF l_msg_count = 1 Then
1814: IF PG_DEBUG in ('Y', 'C') THEN
1817:
1818: ELSIF l_msg_count > 1 Then
1819: FOR l_count IN 1..l_msg_count LOOP
1820:
1821: l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
1822: IF PG_DEBUG in ('Y', 'C') THEN
1823: arp_util.debug('match_prepayment: ' || to_char(l_count)||' : '||l_msg_data);
1824: END IF;
1825: END LOOP;
1826:
1827: END IF; -- l_msg_count
1828: END IF; -- NVL(l_msg_count,0)
1829: ELSE
1830: x_return_status := FND_API.G_RET_STS_SUCCESS;
1831: END IF;
1832:
1833: IF PG_DEBUG in ('Y', 'C') THEN
1834: arp_util.debug('ar_prepayments.match_prepayment (-)');
1838: WHEN others THEN
1839: IF PG_DEBUG in ('Y', 'C') THEN
1840: arp_util.debug('EXCEPTION : ar_prepayments.match_prepayment ||SQLERRM');
1841: END IF;
1842: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1843: END match_prepayment;
1844:
1845: /*=======================================================================
1846: | PUBLIC Procedure get_installment
1913:
1914: /*----------------------------------------+
1915: | Initialize return status to SUCCESS |
1916: +-----------------------------------------*/
1917: x_return_status := FND_API.G_RET_STS_SUCCESS;
1918:
1919: /*-------Validate the p_term_id---------------*/
1920: IF p_term_id IS NULL THEN
1921: FND_MESSAGE.SET_NAME('AR','AR_PPAY_PAY_TERM_INVALID');
1919: /*-------Validate the p_term_id---------------*/
1920: IF p_term_id IS NULL THEN
1921: FND_MESSAGE.SET_NAME('AR','AR_PPAY_PAY_TERM_INVALID');
1922: FND_MSG_PUB.Add;
1923: RAISE FND_API.G_EXC_ERROR;
1924: ELSE
1925: BEGIN
1926: SELECT 1 into l_dummy
1927: FROM RA_TERMS_B
1929: EXCEPTION
1930: WHEN NO_DATA_FOUND THEN
1931: FND_MESSAGE.SET_NAME('AR','AR_PPAY_PAY_TERM_INVALID');
1932: FND_MSG_PUB.Add;
1933: RAISE FND_API.G_EXC_ERROR;
1934: END;
1935: END IF;
1936:
1937: -----Input amount should not be null or 0 -------
1937: -----Input amount should not be null or 0 -------
1938: IF ( (p_amount is null) or (p_amount <= 0) ) THEN
1939: FND_MESSAGE.SET_NAME('AR','AR_PPAY_BASE_AMOUNT_INVALID');
1940: FND_MSG_PUB.Add;
1941: RAISE FND_API.G_EXC_ERROR;
1942: END IF;
1943:
1944: -----Input currency code should not be invalid -------
1945: IF p_currency_code IS NULL THEN
1944: -----Input currency code should not be invalid -------
1945: IF p_currency_code IS NULL THEN
1946: FND_MESSAGE.SET_NAME('AR','AR_RAPI_CURR_CODE_INVALID');
1947: FND_MSG_PUB.Add;
1948: RAISE FND_API.G_EXC_ERROR;
1949: ELSE
1950: BEGIN
1951: SELECT 1 into l_dummy
1952: FROM fnd_currencies
1954: EXCEPTION
1955: WHEN NO_DATA_FOUND THEN
1956: FND_MESSAGE.SET_NAME('AR','AR_RAPI_CURR_CODE_INVALID');
1957: FND_MSG_PUB.Add;
1958: RAISE FND_API.G_EXC_ERROR;
1959: END;
1960: END IF;
1961:
1962:
1977: arp_util.debug('ar_prepayment.get_installment (-)');
1978: END IF;
1979:
1980: EXCEPTION
1981: WHEN fnd_api.g_exc_error THEN
1982:
1983:
1984: x_return_status := FND_API.G_RET_STS_ERROR;
1985: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
1980: EXCEPTION
1981: WHEN fnd_api.g_exc_error THEN
1982:
1983:
1984: x_return_status := FND_API.G_RET_STS_ERROR;
1985: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
1986: p_count => x_msg_count,
1987: p_data => x_msg_data);
1988:
1981: WHEN fnd_api.g_exc_error THEN
1982:
1983:
1984: x_return_status := FND_API.G_RET_STS_ERROR;
1985: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
1986: p_count => x_msg_count,
1987: p_data => x_msg_data);
1988:
1989:
1987: p_data => x_msg_data);
1988:
1989:
1990: WHEN others THEN
1991: x_return_status := FND_API.G_RET_STS_ERROR;
1992:
1993: --Bug 3107679 removed to_char call
1994: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
1995: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','GET_INSTALLMENT : '||SQLERRM);
1993: --Bug 3107679 removed to_char call
1994: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
1995: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','GET_INSTALLMENT : '||SQLERRM);
1996: FND_MSG_PUB.Add;
1997: FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,
1998: p_count => x_msg_count,
1999: p_data => x_msg_data);
2000:
2001: ROLLBACK to get_installment_PVT;
2066:
2067: IF l_conc_request_id = 0 THEN
2068: FND_MESSAGE.SET_NAME('AR', 'AR_CUST_CONC_ERROR');
2069: FND_MSG_PUB.ADD;
2070: RAISE FND_API.G_EXC_ERROR;
2071: END IF;
2072: END IF;
2073:
2074: RETURN 'SUCCESS';
2178: IF( l_request_id IS NULL OR l_request_id = 0 )THEN
2179: FND_MESSAGE.SET_NAME('AR','AR_PPAY_INVALID_REQ_ID');
2180: FND_MSG_PUB.Add;
2181: l_retcode := 10;
2182: RAISE FND_API.G_EXC_ERROR;
2183: END IF;
2184: end if;
2185:
2186: SAVEPOINT prepay_start;
2221: p_cash_receipt_id => l_cash_receipt_id,
2222: ps_amt_due_remain => l_ps_amt_due_remain,
2223: x_return_status => l_return_status);
2224:
2225: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2226: l_retcode := 10;
2227: END IF;
2228:
2229: IF PG_DEBUG in ('Y', 'C') then
2255: arp_util.debug('End ar_prepayments.match_prepayment Routine (-)');
2256: END IF;
2257:
2258: if (l_retcode <> 0) then
2259: RAISE FND_API.G_EXC_ERROR;
2260: end if;
2261:
2262:
2263: EXCEPTION
2260: end if;
2261:
2262:
2263: EXCEPTION
2264: WHEN fnd_api.g_exc_error THEN
2265: FND_MESSAGE.SET_NAME ('AR','AR_PREPAY_ERROR');
2266: FND_MSG_PUB.Add;
2267:
2268: FOR I IN 1..FND_MSG_PUB.Count_Msg LOOP
2267:
2268: FOR I IN 1..FND_MSG_PUB.Count_Msg LOOP
2269: l_msg_data :=
2270: substr(l_msg_data || ' ' || FND_MSG_PUB.Get(p_encoded =>
2271: FND_API.G_FALSE ), 1,255);
2272: END LOOP;
2273: fnd_file.put_line(fnd_file.log, l_msg_data);
2274: FND_MSG_PUB.Delete_Msg;
2275: retcode := l_retcode;