13: | Function
14: | Check_to_Process_SETL_WF
15: |
16: | Return
17: | FND_API.g_true / FND_API.g_false
18: |
19: | NOTES
20: | When settling by invoice creditmemo, settlement should be done by
21: | receivable role in the following cases:
62:
63: l_prev_source_object_id NUMBER ;
64:
65: BEGIN
66: x_return_status := FND_API.g_ret_sts_success;
67:
68:
69: IF OZF_DEBUG_LOW_ON THEN
70: OZF_Utility_PVT.debug_message(l_full_name || ': Start');
151: RETURN l_process_setl_wf;
152:
153: EXCEPTION
154: WHEN OTHERS THEN
155: x_return_status := FND_API.g_ret_sts_unexp_error ;
156: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
157: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
158: END IF;
159: END Check_to_Process_SETL_WF;
299: OZF_Utility_PVT.debug_message(l_full_name||' : start');
300: END IF;
301:
302: -- Initialize API return status to sucess
303: x_return_status := FND_API.g_ret_sts_success;
304:
305:
306: -- Proceed with validation only if settlement is not by receivable role
307:
312: l_process_setl_wf := Check_to_Process_SETL_WF(
313: p_claim_rec => p_claim_rec
314: ,x_return_status => x_return_status
315: );
316: IF x_return_status = FND_API.g_ret_sts_error THEN
317: RAISE FND_API.g_exc_error;
318: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
319: RAISE FND_API.g_exc_unexpected_error;
320: END IF;
313: p_claim_rec => p_claim_rec
314: ,x_return_status => x_return_status
315: );
316: IF x_return_status = FND_API.g_ret_sts_error THEN
317: RAISE FND_API.g_exc_error;
318: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
319: RAISE FND_API.g_exc_unexpected_error;
320: END IF;
321: IF l_process_setl_wf THEN
314: ,x_return_status => x_return_status
315: );
316: IF x_return_status = FND_API.g_ret_sts_error THEN
317: RAISE FND_API.g_exc_error;
318: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
319: RAISE FND_API.g_exc_unexpected_error;
320: END IF;
321: IF l_process_setl_wf THEN
322: RETURN;
315: );
316: IF x_return_status = FND_API.g_ret_sts_error THEN
317: RAISE FND_API.g_exc_error;
318: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
319: RAISE FND_API.g_exc_unexpected_error;
320: END IF;
321: IF l_process_setl_wf THEN
322: RETURN;
323: END IF;
333: p_customer_trx_id => l_invoice_id
334: ,p_claim_amount => l_sum_line_amt
335: ,p_claim_number => p_claim_rec.claim_number
336: ,x_return_status => x_return_status );
337: IF x_return_status <> FND_API.g_ret_sts_success THEN
338: RETURN;
339: END IF;
340: END LOOP;
341: CLOSE csr_get_inv_info;
352: , p_customer_trx_id => l_invoice_id
353: , p_line_type => l_credit_to_type
354: , p_claim_line_amount => l_sum_line_amt);
355: IF NOT l_error THEN
356: x_return_status := FND_API.g_ret_sts_error;
357: RETURN;
358: END IF;
359: END IF;
360: END LOOP;
376: FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_TRX_BAL_ERR');
377: FND_MESSAGE.set_token('TRX_NUMBER',l_trx_number);
378: FND_MSG_PUB.add;
379: END IF;
380: x_return_status := FND_API.g_ret_sts_error;
381: RETURN;
382: END IF;
383: END LOOP;
384: CLOSE csr_get_lineid_info;
391: WHEN OTHERS THEN
392: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
393: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
394: END IF;
395: x_return_status := FND_API.g_ret_sts_unexp_error;
396: END Validate_CreditTo_Information;
397:
398:
399:
410: | 21-JUL-2002 mchang Create.
411: *=======================================================================*/
412: PROCEDURE Complete_AR_Validation(
413: p_api_version IN NUMBER
414: ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
415: ,p_commit IN VARCHAR2 := FND_API.g_false
416: ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
417:
418: ,x_return_status OUT NOCOPY VARCHAR2
411: *=======================================================================*/
412: PROCEDURE Complete_AR_Validation(
413: p_api_version IN NUMBER
414: ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
415: ,p_commit IN VARCHAR2 := FND_API.g_false
416: ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
417:
418: ,x_return_status OUT NOCOPY VARCHAR2
419: ,x_msg_data OUT NOCOPY VARCHAR2
412: PROCEDURE Complete_AR_Validation(
413: p_api_version IN NUMBER
414: ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
415: ,p_commit IN VARCHAR2 := FND_API.g_false
416: ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
417:
418: ,x_return_status OUT NOCOPY VARCHAR2
419: ,x_msg_data OUT NOCOPY VARCHAR2
420: ,x_msg_count OUT NOCOPY NUMBER
513:
514: l_sum_line_amt NUMBER;
515: l_sum_util_amt NUMBER;
516: l_line_acctd_amt NUMBER;
517: l_line_util_err VARCHAR2(1) := FND_API.g_false;
518: l_return_status VARCHAR2(1);
519: l_complete_flag VARCHAR2(1);
520: l_complete_yet VARCHAR2(1) := FND_API.g_true;
521: l_line_currency VARCHAR2(3);
516: l_line_acctd_amt NUMBER;
517: l_line_util_err VARCHAR2(1) := FND_API.g_false;
518: l_return_status VARCHAR2(1);
519: l_complete_flag VARCHAR2(1);
520: l_complete_yet VARCHAR2(1) := FND_API.g_true;
521: l_line_currency VARCHAR2(3);
522: l_line_amount NUMBER;
523: l_line_claim_curr_amt NUMBER;
524: l_claim_line_id NUMBER;
521: l_line_currency VARCHAR2(3);
522: l_line_amount NUMBER;
523: l_line_claim_curr_amt NUMBER;
524: l_claim_line_id NUMBER;
525: l_line_amt_err_flag VARCHAR2(1) := FND_API.g_true;
526: l_asso_earning_exist VARCHAR2(1) := FND_API.g_false;
527: l_asso_earning VARCHAR2(1);
528: l_vendor_in_sys NUMBER := NULL;
529: l_rec_clr_in_sys NUMBER := NULL;
522: l_line_amount NUMBER;
523: l_line_claim_curr_amt NUMBER;
524: l_claim_line_id NUMBER;
525: l_line_amt_err_flag VARCHAR2(1) := FND_API.g_true;
526: l_asso_earning_exist VARCHAR2(1) := FND_API.g_false;
527: l_asso_earning VARCHAR2(1);
528: l_vendor_in_sys NUMBER := NULL;
529: l_rec_clr_in_sys NUMBER := NULL;
530: l_trx_type_id NUMBER := NULL;
578: OZF_Utility_PVT.debug_message(l_full_name||' : start');
579: END IF;
580:
581: -- Initialize API return status to sucess
582: x_return_status := FND_API.g_ret_sts_success;
583:
584: l_return_status := FND_API.g_ret_sts_success;
585:
586: OPEN csr_sum_line_amt(p_claim_rec.claim_id);
580:
581: -- Initialize API return status to sucess
582: x_return_status := FND_API.g_ret_sts_success;
583:
584: l_return_status := FND_API.g_ret_sts_success;
585:
586: OPEN csr_sum_line_amt(p_claim_rec.claim_id);
587: FETCH csr_sum_line_amt INTO l_sum_line_amt;
588: CLOSE csr_sum_line_amt;
609: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
610: FND_MESSAGE.set_name('OZF','OZF_BATCH_SRC_REQ_FOR_INTF');
611: FND_MSG_PUB.add;
612: END IF;
613: RAISE FND_API.G_EXC_ERROR;
614: END IF;
615:
616:
617: ------------------------------------------------------
630: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
631: FND_MESSAGE.set_name('OZF', 'OZF_SETL_MISS_SALESREP');
632: FND_MSG_PUB.add;
633: END IF;
634: RAISE FND_API.G_EXC_ERROR;
635: END IF;
636: END IF;
637:
638: /*------------------------------------------------------
802: END IF;
803: END IF;
804:
805: IF l_error THEN
806: RAISE FND_API.G_EXC_ERROR;
807: END IF;
808:
809: /*-----------------------------------------------------
810: | Related Customer and Site checking
809: /*-----------------------------------------------------
810: | Related Customer and Site checking
811: *-----------------------------------------------------*/
812: -- related customer and site check
813: IF p_claim_rec.pay_related_account_flag = FND_API.g_true THEN
814: -- related_cust_acct_id should exist if pay_related_customer_flag is 'T'
815: IF p_claim_rec.related_cust_account_id IS NULL THEN
816: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
817: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RELCUST_REQ');
816: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
817: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RELCUST_REQ');
818: FND_MSG_PUB.add;
819: END IF;
820: RAISE FND_API.G_EXC_ERROR;
821: END IF;
822: -- related_site_use_id should exist if pay_related_customer_flag is 'T'
823: IF p_claim_rec.related_site_use_id IS NULL THEN
824: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
824: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
825: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RELCUST_SITE_REQ');
826: FND_MSG_PUB.add;
827: END IF;
828: RAISE FND_API.G_EXC_ERROR;
829: END IF;
830: ELSE
831: /*-----------------------------------------------------
832: | Bill To Site is required
835: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
836: FND_MESSAGE.set_name('OZF', 'OZF_SETL_BILLTO_SITE_REQ');
837: FND_MSG_PUB.add;
838: END IF;
839: RAISE FND_API.G_EXC_ERROR;
840: END IF;
841: END IF;
842: /*-----------------------------------------------------
843: | Ship To Site is required for RMA settlement
847: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
848: FND_MESSAGE.set_name('OZF', 'OZF_SETL_SHIPTO_SITE_REQ');
849: FND_MSG_PUB.add;
850: END IF;
851: RAISE FND_API.G_EXC_ERROR;
852: END IF;
853:
854:
855: /*-----------------------------------------------------
855: /*-----------------------------------------------------
856: | Receivable Clearing Account
857: *-----------------------------------------------------*/
858: -- receivable clearning account must exist in system parameter
859: IF l_gl_acc_checking = FND_API.g_true AND
860: l_rec_clr_in_sys IS NULL AND
861: p_claim_rec.payment_method <> 'RMA' THEN
862: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
863: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RECCLRACC_REQ');
862: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
863: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RECCLRACC_REQ');
864: FND_MSG_PUB.add;
865: END IF;
866: RAISE FND_API.G_EXC_ERROR;
867: END IF;
868:
869: /*-----------------------------------------------------
870: | Prev Open Credit Memo/Debit Memo: open balance amount checking
874: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
875: FND_MESSAGE.set_name('OZF','OZF_PAY_REFERENCE_REQD');
876: FND_MSG_PUB.add;
877: END IF;
878: RAISE FND_API.G_EXC_ERROR;
879: ELSE
880: OPEN csr_trx_balance(p_claim_rec.payment_reference_id);
881: FETCH csr_trx_balance INTO l_trx_balance, l_trx_currency;
882: CLOSE csr_trx_balance;
886: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
887: FND_MESSAGE.set_name('OZF', 'OZF_SETL_CM_DM_OP_BAL_ERR');
888: FND_MSG_PUB.add;
889: END IF;
890: RAISE FND_API.G_EXC_ERROR;
891: END IF;
892: END IF;
893: END IF;
894:
906: EXIT WHEN csr_get_inv_info%NOTFOUND;
907: IF l_invoice_id IS NULL THEN
908: FND_MESSAGE.set_name('OZF', 'OZF_SETL_INV_CR_TRX_MISS');
909: FND_MSG_PUB.add;
910: RAISE FND_API.G_EXC_ERROR;
911: ELSIF l_object_class IS NULL OR l_object_class NOT IN ('INVOICE','DM', 'CB') THEN
912: FND_MESSAGE.set_name('OZF', 'OZF_SETL_INVALID_OBJ_CLASS');
913: FND_MSG_PUB.add;
914: RAISE FND_API.G_EXC_ERROR;
910: RAISE FND_API.G_EXC_ERROR;
911: ELSIF l_object_class IS NULL OR l_object_class NOT IN ('INVOICE','DM', 'CB') THEN
912: FND_MESSAGE.set_name('OZF', 'OZF_SETL_INVALID_OBJ_CLASS');
913: FND_MSG_PUB.add;
914: RAISE FND_API.G_EXC_ERROR;
915: END IF;
916: END LOOP;
917: CLOSE csr_get_inv_info;
918:
922: Validate_CreditTo_Information(
923: p_claim_rec => p_claim_rec
924: ,x_return_status => l_return_status
925: );
926: IF l_return_status = FND_API.g_ret_sts_error THEN
927: RAISE FND_API.g_exc_error;
928: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
929: RAISE FND_API.g_exc_unexpected_error;
930: END IF;
923: p_claim_rec => p_claim_rec
924: ,x_return_status => l_return_status
925: );
926: IF l_return_status = FND_API.g_ret_sts_error THEN
927: RAISE FND_API.g_exc_error;
928: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
929: RAISE FND_API.g_exc_unexpected_error;
930: END IF;
931: END IF;
924: ,x_return_status => l_return_status
925: );
926: IF l_return_status = FND_API.g_ret_sts_error THEN
927: RAISE FND_API.g_exc_error;
928: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
929: RAISE FND_API.g_exc_unexpected_error;
930: END IF;
931: END IF;
932:
925: );
926: IF l_return_status = FND_API.g_ret_sts_error THEN
927: RAISE FND_API.g_exc_error;
928: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
929: RAISE FND_API.g_exc_unexpected_error;
930: END IF;
931: END IF;
932:
933: END IF; -- REG_CREDIT_MEMO
980: CLOSE csr_chk_line_product;
981: END IF;
982:
983: IF l_error THEN
984: RAISE FND_API.G_EXC_ERROR;
985: END IF;
986:
987:
988: IF OZF_DEBUG_HIGH_ON THEN
989: OZF_Utility_PVT.debug_message(l_full_name||' : end');
990: END IF;
991:
992: EXCEPTION
993: WHEN FND_API.G_EXC_ERROR THEN
994: x_return_status := FND_API.G_RET_STS_ERROR;
995: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
996: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
997: WHEN OTHERS THEN
990: END IF;
991:
992: EXCEPTION
993: WHEN FND_API.G_EXC_ERROR THEN
994: x_return_status := FND_API.G_RET_STS_ERROR;
995: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
996: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
997: WHEN OTHERS THEN
998: x_return_status := FND_API.g_ret_sts_unexp_error ;
991:
992: EXCEPTION
993: WHEN FND_API.G_EXC_ERROR THEN
994: x_return_status := FND_API.G_RET_STS_ERROR;
995: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
996: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
997: WHEN OTHERS THEN
998: x_return_status := FND_API.g_ret_sts_unexp_error ;
999: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
992: EXCEPTION
993: WHEN FND_API.G_EXC_ERROR THEN
994: x_return_status := FND_API.G_RET_STS_ERROR;
995: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
996: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
997: WHEN OTHERS THEN
998: x_return_status := FND_API.g_ret_sts_unexp_error ;
999: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1000: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
994: x_return_status := FND_API.G_RET_STS_ERROR;
995: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
996: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
997: WHEN OTHERS THEN
998: x_return_status := FND_API.g_ret_sts_unexp_error ;
999: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1000: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1001: END IF;
1002: END Complete_AR_Validation;