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:
65:
66: l_prev_source_object_id NUMBER ;
67:
68: BEGIN
69: x_return_status := FND_API.g_ret_sts_success;
70:
71:
72: IF OZF_DEBUG_LOW_ON THEN
73: OZF_Utility_PVT.debug_message(l_full_name || ': Start');
156: RETURN l_process_setl_wf;
157:
158: EXCEPTION
159: WHEN OTHERS THEN
160: x_return_status := FND_API.g_ret_sts_unexp_error ;
161: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
162: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
163: END IF;
164: END Check_to_Process_SETL_WF;
314: OZF_Utility_PVT.debug_message(l_full_name||' : start');
315: END IF;
316:
317: -- Initialize API return status to sucess
318: x_return_status := FND_API.g_ret_sts_success;
319:
320:
321: -- Proceed with validation only if settlement is not by receivable role
322:
327: l_process_setl_wf := Check_to_Process_SETL_WF(
328: p_claim_rec => p_claim_rec
329: ,x_return_status => x_return_status
330: );
331: IF x_return_status = FND_API.g_ret_sts_error THEN
332: RAISE FND_API.g_exc_error;
333: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
334: RAISE FND_API.g_exc_unexpected_error;
335: END IF;
328: p_claim_rec => p_claim_rec
329: ,x_return_status => x_return_status
330: );
331: IF x_return_status = FND_API.g_ret_sts_error THEN
332: RAISE FND_API.g_exc_error;
333: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
334: RAISE FND_API.g_exc_unexpected_error;
335: END IF;
336: IF l_process_setl_wf THEN
329: ,x_return_status => x_return_status
330: );
331: IF x_return_status = FND_API.g_ret_sts_error THEN
332: RAISE FND_API.g_exc_error;
333: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
334: RAISE FND_API.g_exc_unexpected_error;
335: END IF;
336: IF l_process_setl_wf THEN
337: RETURN;
330: );
331: IF x_return_status = FND_API.g_ret_sts_error THEN
332: RAISE FND_API.g_exc_error;
333: ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
334: RAISE FND_API.g_exc_unexpected_error;
335: END IF;
336: IF l_process_setl_wf THEN
337: RETURN;
338: END IF;
348: p_customer_trx_id => l_invoice_id
349: ,p_claim_amount => l_sum_line_amt
350: ,p_claim_number => p_claim_rec.claim_number
351: ,x_return_status => x_return_status );
352: IF x_return_status <> FND_API.g_ret_sts_success THEN
353: RETURN;
354: END IF;
355: END LOOP;
356: CLOSE csr_get_inv_info;
367: , p_customer_trx_id => l_invoice_id
368: , p_line_type => l_credit_to_type
369: , p_claim_line_amount => l_sum_line_amt);
370: IF NOT l_error THEN
371: x_return_status := FND_API.g_ret_sts_error;
372: RETURN;
373: END IF;
374: END IF;
375: END LOOP;
391: FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_TRX_BAL_ERR');
392: FND_MESSAGE.set_token('TRX_NUMBER',l_trx_number);
393: FND_MSG_PUB.add;
394: END IF;
395: x_return_status := FND_API.g_ret_sts_error;
396: RETURN;
397: END IF;
398: END LOOP;
399: CLOSE csr_get_lineid_info;
406: WHEN OTHERS THEN
407: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
408: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
409: END IF;
410: x_return_status := FND_API.g_ret_sts_unexp_error;
411: END Validate_CreditTo_Information;
412:
413:
414:
425: | 21-JUL-2002 mchang Create.
426: *=======================================================================*/
427: PROCEDURE Complete_AR_Validation(
428: p_api_version IN NUMBER
429: ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
430: ,p_commit IN VARCHAR2 := FND_API.g_false
431: ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
432:
433: ,x_return_status OUT NOCOPY VARCHAR2
426: *=======================================================================*/
427: PROCEDURE Complete_AR_Validation(
428: p_api_version IN NUMBER
429: ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
430: ,p_commit IN VARCHAR2 := FND_API.g_false
431: ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
432:
433: ,x_return_status OUT NOCOPY VARCHAR2
434: ,x_msg_data OUT NOCOPY VARCHAR2
427: PROCEDURE Complete_AR_Validation(
428: p_api_version IN NUMBER
429: ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
430: ,p_commit IN VARCHAR2 := FND_API.g_false
431: ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
432:
433: ,x_return_status OUT NOCOPY VARCHAR2
434: ,x_msg_data OUT NOCOPY VARCHAR2
435: ,x_msg_count OUT NOCOPY NUMBER
528:
529: l_sum_line_amt NUMBER;
530: l_sum_util_amt NUMBER;
531: l_line_acctd_amt NUMBER;
532: l_line_util_err VARCHAR2(1) := FND_API.g_false;
533: l_return_status VARCHAR2(1);
534: l_complete_flag VARCHAR2(1);
535: l_complete_yet VARCHAR2(1) := FND_API.g_true;
536: l_line_currency VARCHAR2(3);
531: l_line_acctd_amt NUMBER;
532: l_line_util_err VARCHAR2(1) := FND_API.g_false;
533: l_return_status VARCHAR2(1);
534: l_complete_flag VARCHAR2(1);
535: l_complete_yet VARCHAR2(1) := FND_API.g_true;
536: l_line_currency VARCHAR2(3);
537: l_line_amount NUMBER;
538: l_line_claim_curr_amt NUMBER;
539: l_claim_line_id NUMBER;
536: l_line_currency VARCHAR2(3);
537: l_line_amount NUMBER;
538: l_line_claim_curr_amt NUMBER;
539: l_claim_line_id NUMBER;
540: l_line_amt_err_flag VARCHAR2(1) := FND_API.g_true;
541: l_asso_earning_exist VARCHAR2(1) := FND_API.g_false;
542: l_asso_earning VARCHAR2(1);
543: l_vendor_in_sys NUMBER := NULL;
544: l_rec_clr_in_sys NUMBER := NULL;
537: l_line_amount NUMBER;
538: l_line_claim_curr_amt NUMBER;
539: l_claim_line_id NUMBER;
540: l_line_amt_err_flag VARCHAR2(1) := FND_API.g_true;
541: l_asso_earning_exist VARCHAR2(1) := FND_API.g_false;
542: l_asso_earning VARCHAR2(1);
543: l_vendor_in_sys NUMBER := NULL;
544: l_rec_clr_in_sys NUMBER := NULL;
545: l_trx_type_id NUMBER := NULL;
594: OZF_Utility_PVT.debug_message(l_full_name||' : start');
595: END IF;
596:
597: -- Initialize API return status to sucess
598: x_return_status := FND_API.g_ret_sts_success;
599:
600: l_return_status := FND_API.g_ret_sts_success;
601:
602: OPEN csr_sum_line_amt(p_claim_rec.claim_id);
596:
597: -- Initialize API return status to sucess
598: x_return_status := FND_API.g_ret_sts_success;
599:
600: l_return_status := FND_API.g_ret_sts_success;
601:
602: OPEN csr_sum_line_amt(p_claim_rec.claim_id);
603: FETCH csr_sum_line_amt INTO l_sum_line_amt;
604: CLOSE csr_sum_line_amt;
625: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
626: FND_MESSAGE.set_name('OZF','OZF_BATCH_SRC_REQ_FOR_INTF');
627: FND_MSG_PUB.add;
628: END IF;
629: RAISE FND_API.G_EXC_ERROR;
630: END IF;
631:
632:
633: ------------------------------------------------------
646: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
647: FND_MESSAGE.set_name('OZF', 'OZF_SETL_MISS_SALESREP');
648: FND_MSG_PUB.add;
649: END IF;
650: RAISE FND_API.G_EXC_ERROR;
651: END IF;
652: END IF;
653:
654: /*------------------------------------------------------
818: END IF;
819: END IF;
820:
821: IF l_error THEN
822: RAISE FND_API.G_EXC_ERROR;
823: END IF;
824:
825: /*-----------------------------------------------------
826: | Related Customer and Site checking
825: /*-----------------------------------------------------
826: | Related Customer and Site checking
827: *-----------------------------------------------------*/
828: -- related customer and site check
829: IF p_claim_rec.pay_related_account_flag = FND_API.g_true THEN
830: -- related_cust_acct_id should exist if pay_related_customer_flag is 'T'
831: IF p_claim_rec.related_cust_account_id IS NULL THEN
832: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
833: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RELCUST_REQ');
832: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
833: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RELCUST_REQ');
834: FND_MSG_PUB.add;
835: END IF;
836: RAISE FND_API.G_EXC_ERROR;
837: END IF;
838: -- related_site_use_id should exist if pay_related_customer_flag is 'T'
839: IF p_claim_rec.related_site_use_id IS NULL THEN
840: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
840: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
841: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RELCUST_SITE_REQ');
842: FND_MSG_PUB.add;
843: END IF;
844: RAISE FND_API.G_EXC_ERROR;
845: END IF;
846: ELSE
847: /*-----------------------------------------------------
848: | Bill To Site is required
851: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
852: FND_MESSAGE.set_name('OZF', 'OZF_SETL_BILLTO_SITE_REQ');
853: FND_MSG_PUB.add;
854: END IF;
855: RAISE FND_API.G_EXC_ERROR;
856: END IF;
857: END IF;
858: /*-----------------------------------------------------
859: | Ship To Site is required for RMA settlement
863: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
864: FND_MESSAGE.set_name('OZF', 'OZF_SETL_SHIPTO_SITE_REQ');
865: FND_MSG_PUB.add;
866: END IF;
867: RAISE FND_API.G_EXC_ERROR;
868: END IF;
869:
870:
871: /*-----------------------------------------------------
871: /*-----------------------------------------------------
872: | Receivable Clearing Account
873: *-----------------------------------------------------*/
874: -- receivable clearning account must exist in system parameter
875: IF l_gl_acc_checking = FND_API.g_true AND
876: l_rec_clr_in_sys IS NULL AND
877: p_claim_rec.payment_method <> 'RMA' THEN
878: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
879: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RECCLRACC_REQ');
878: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
879: FND_MESSAGE.set_name('OZF', 'OZF_SETL_RECCLRACC_REQ');
880: FND_MSG_PUB.add;
881: END IF;
882: RAISE FND_API.G_EXC_ERROR;
883: END IF;
884:
885: /*-----------------------------------------------------
886: | Prev Open Credit Memo/Debit Memo: open balance amount checking
890: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
891: FND_MESSAGE.set_name('OZF','OZF_PAY_REFERENCE_REQD');
892: FND_MSG_PUB.add;
893: END IF;
894: RAISE FND_API.G_EXC_ERROR;
895: ELSE
896: OPEN csr_trx_balance(p_claim_rec.payment_reference_id);
897: FETCH csr_trx_balance INTO l_trx_balance, l_trx_currency;
898: CLOSE csr_trx_balance;
902: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
903: FND_MESSAGE.set_name('OZF', 'OZF_SETL_CM_DM_OP_BAL_ERR');
904: FND_MSG_PUB.add;
905: END IF;
906: RAISE FND_API.G_EXC_ERROR;
907: END IF;
908: END IF;
909: END IF;
910:
922: EXIT WHEN csr_get_inv_info%NOTFOUND;
923: IF l_invoice_id IS NULL THEN
924: FND_MESSAGE.set_name('OZF', 'OZF_SETL_INV_CR_TRX_MISS');
925: FND_MSG_PUB.add;
926: RAISE FND_API.G_EXC_ERROR;
927: ELSIF l_object_class IS NULL OR l_object_class NOT IN ('INVOICE','DM', 'CB') THEN
928: FND_MESSAGE.set_name('OZF', 'OZF_SETL_INVALID_OBJ_CLASS');
929: FND_MSG_PUB.add;
930: RAISE FND_API.G_EXC_ERROR;
926: RAISE FND_API.G_EXC_ERROR;
927: ELSIF l_object_class IS NULL OR l_object_class NOT IN ('INVOICE','DM', 'CB') THEN
928: FND_MESSAGE.set_name('OZF', 'OZF_SETL_INVALID_OBJ_CLASS');
929: FND_MSG_PUB.add;
930: RAISE FND_API.G_EXC_ERROR;
931: END IF;
932: END LOOP;
933: CLOSE csr_get_inv_info;
934:
938: Validate_CreditTo_Information(
939: p_claim_rec => p_claim_rec
940: ,x_return_status => l_return_status
941: );
942: IF l_return_status = FND_API.g_ret_sts_error THEN
943: RAISE FND_API.g_exc_error;
944: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
945: RAISE FND_API.g_exc_unexpected_error;
946: END IF;
939: p_claim_rec => p_claim_rec
940: ,x_return_status => l_return_status
941: );
942: IF l_return_status = FND_API.g_ret_sts_error THEN
943: RAISE FND_API.g_exc_error;
944: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
945: RAISE FND_API.g_exc_unexpected_error;
946: END IF;
947: END IF;
940: ,x_return_status => l_return_status
941: );
942: IF l_return_status = FND_API.g_ret_sts_error THEN
943: RAISE FND_API.g_exc_error;
944: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
945: RAISE FND_API.g_exc_unexpected_error;
946: END IF;
947: END IF;
948:
941: );
942: IF l_return_status = FND_API.g_ret_sts_error THEN
943: RAISE FND_API.g_exc_error;
944: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
945: RAISE FND_API.g_exc_unexpected_error;
946: END IF;
947: END IF;
948:
949: END IF; -- REG_CREDIT_MEMO
996: CLOSE csr_chk_line_product;
997: END IF;
998:
999: IF l_error THEN
1000: RAISE FND_API.G_EXC_ERROR;
1001: END IF;
1002:
1003:
1004: IF OZF_DEBUG_HIGH_ON THEN
1005: OZF_Utility_PVT.debug_message(l_full_name||' : end');
1006: END IF;
1007:
1008: EXCEPTION
1009: WHEN FND_API.G_EXC_ERROR THEN
1010: x_return_status := FND_API.G_RET_STS_ERROR;
1011: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1012: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1013: WHEN OTHERS THEN
1006: END IF;
1007:
1008: EXCEPTION
1009: WHEN FND_API.G_EXC_ERROR THEN
1010: x_return_status := FND_API.G_RET_STS_ERROR;
1011: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1012: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1013: WHEN OTHERS THEN
1014: x_return_status := FND_API.g_ret_sts_unexp_error ;
1007:
1008: EXCEPTION
1009: WHEN FND_API.G_EXC_ERROR THEN
1010: x_return_status := FND_API.G_RET_STS_ERROR;
1011: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1012: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1013: WHEN OTHERS THEN
1014: x_return_status := FND_API.g_ret_sts_unexp_error ;
1015: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1008: EXCEPTION
1009: WHEN FND_API.G_EXC_ERROR THEN
1010: x_return_status := FND_API.G_RET_STS_ERROR;
1011: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1012: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1013: WHEN OTHERS THEN
1014: x_return_status := FND_API.g_ret_sts_unexp_error ;
1015: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1016: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1010: x_return_status := FND_API.G_RET_STS_ERROR;
1011: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1012: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1013: WHEN OTHERS THEN
1014: x_return_status := FND_API.g_ret_sts_unexp_error ;
1015: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1016: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1017: END IF;
1018: END Complete_AR_Validation;