25: *
26: * OUT:
27: * x_return_status Return status after the call. The
28: * status can be
29: * FND_API.G_RET_STS_SUCCESS - for success
30: * FND_API.G_RET_STS_ERR - for expected error
31: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
32: * x_msg_count To return the number of error messages
33: * in stack
26: * OUT:
27: * x_return_status Return status after the call. The
28: * status can be
29: * FND_API.G_RET_STS_SUCCESS - for success
30: * FND_API.G_RET_STS_ERR - for expected error
31: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
32: * x_msg_count To return the number of error messages
33: * in stack
34: * x_msg_data To return the error message if
27: * x_return_status Return status after the call. The
28: * status can be
29: * FND_API.G_RET_STS_SUCCESS - for success
30: * FND_API.G_RET_STS_ERR - for expected error
31: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
32: * x_msg_count To return the number of error messages
33: * in stack
34: * x_msg_data To return the error message if
35: * x_msg_count = 1.
63:
64: x_msg_count := NULL;
65: FND_MSG_PUB.Initialize; -- Initializes the message list that stores the errors
66:
67: x_return_status := FND_API.G_RET_STS_SUCCESS;
68: --
69: -- Verifies if the party_code in xtr_party_info is not same as the bank_code in xtr_bank_accounts
70: IF ((NOT XTR_REPLICATE_BANK_BRANCHES_P.CHK_BANK_BRANCH(p_xtr_bank_account_rec.bank_branch_id))
71: ) THEN -- The Bank does not exist or not authorized in XTR
72:
73: OPEN c_branch_name;
74: FETCH c_branch_name INTO l_bank_branch_name;
75: CLOSE c_branch_name;
76: x_return_status := FND_API.G_RET_STS_ERROR;
77: XTR_REPLICATE_BANK_ACCOUNTS_P.LOG_ERR_MSG('XTR_INV_BANK_BRANCH',l_bank_branch_name);
78:
79: END IF;
80:
77: XTR_REPLICATE_BANK_ACCOUNTS_P.LOG_ERR_MSG('XTR_INV_BANK_BRANCH',l_bank_branch_name);
78:
79: END IF;
80:
81: IF(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
82: IF(p_action_flag = 'I') THEN -- If user has created a new bank account in CE
83:
84:
85:
93:
94:
95: ELSE
96:
97: x_return_status := FND_API.G_RET_STS_ERROR;
98: LOG_ERR_MSG('XTR_INV_PARAM','ACTION_FLAG');
99:
100:
101: END IF;
119: );
120: --
121: EXCEPTION
122: WHEN others THEN
123: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
124: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
125: FND_MSG_PUB.Count_And_Get -- Returns the error message if there is only 1 error
126: ( p_count => x_msg_count ,
127: p_data => x_msg_data
222: x_return_status,x_msg_count,x_msg_data);
223:
224: EXCEPTION
225: WHEN others THEN
226: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
227: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
228: FND_MSG_PUB.Count_And_Get -- Returns the error message if there is only 1 error
229: ( p_count => x_msg_count ,
230: p_data => x_msg_data
252: *
253: * OUT:
254: * x_return_status Return status after the call. The
255: * status can be
256: * FND_API.G_RET_STS_SUCCESS - for success
257: * FND_API.G_RET_STS_ERR - for expected error
258: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
259: * NOTES
260: *
253: * OUT:
254: * x_return_status Return status after the call. The
255: * status can be
256: * FND_API.G_RET_STS_SUCCESS - for success
257: * FND_API.G_RET_STS_ERR - for expected error
258: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
259: * NOTES
260: *
261: * MODIFICATION HISTORY
254: * x_return_status Return status after the call. The
255: * status can be
256: * FND_API.G_RET_STS_SUCCESS - for success
257: * FND_API.G_RET_STS_ERR - for expected error
258: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
259: * NOTES
260: *
261: * MODIFICATION HISTORY
262: *
277:
278: --
279: VALIDATE_BANK_ACCOUNTS(p_xtr_bank_account_rec,x_return_status);
280:
281: IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
282: /* All validations for bank account are true */
283: MODIFY_BANK_ACCOUNTS(p_xtr_bank_account_rec,'I'
284: ,x_return_status);
285:
296:
297:
298: EXCEPTION
299: WHEN others THEN
300: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
301: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
302: END INSERT_BANK_ACCOUNTS;
303:
304: /**
321: *
322: * OUT:
323: * x_return_status Return status after the call. The
324: * status can be
325: * FND_API.G_RET_STS_SUCCESS - for success
326: * FND_API.G_RET_STS_ERR - for expected error
327: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
328: * NOTES
329: *
322: * OUT:
323: * x_return_status Return status after the call. The
324: * status can be
325: * FND_API.G_RET_STS_SUCCESS - for success
326: * FND_API.G_RET_STS_ERR - for expected error
327: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
328: * NOTES
329: *
330: * MODIFICATION HISTORY
323: * x_return_status Return status after the call. The
324: * status can be
325: * FND_API.G_RET_STS_SUCCESS - for success
326: * FND_API.G_RET_STS_ERR - for expected error
327: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
328: * NOTES
329: *
330: * MODIFICATION HISTORY
331: *
344: -- This account already exists in XTR and it is being updated in CE
345: VALIDATE_BANK_ACCOUNTS(p_xtr_bank_account_rec
346: ,x_return_status);
347:
348: IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
349: /* All validations for bank account are true */
350: MODIFY_BANK_ACCOUNTS(p_xtr_bank_account_rec,'U'
351: ,x_return_status);
352:
359: END IF;
360:
361: EXCEPTION
362: WHEN others THEN
363: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
364: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
365: END UPDATE_BANK_ACCOUNTS;
366:
367:
384: *
385: * OUT:
386: * x_return_status Return status after the call. The
387: * status can be
388: * FND_API.G_RET_STS_SUCCESS - for success
389: * FND_API.G_RET_STS_ERR - for expected error
390: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
391: * NOTES
392: *
385: * OUT:
386: * x_return_status Return status after the call. The
387: * status can be
388: * FND_API.G_RET_STS_SUCCESS - for success
389: * FND_API.G_RET_STS_ERR - for expected error
390: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
391: * NOTES
392: *
393: * MODIFICATION HISTORY
386: * x_return_status Return status after the call. The
387: * status can be
388: * FND_API.G_RET_STS_SUCCESS - for success
389: * FND_API.G_RET_STS_ERR - for expected error
390: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
391: * NOTES
392: *
393: * MODIFICATION HISTORY
394: *
439:
440: -- Enter the procedure variables here. As shown below
441: --variable_name datatype NOT NULL DEFAULT default_value;
442: BEGIN
443: x_return_status := FND_API.G_RET_STS_SUCCESS;
444:
445: -- Verifies if the ce_bank_account_id in XTR_BANK_ACCOUNTS is passed as null
446: IF(p_xtr_bank_account_rec.ce_bank_account_id is null) THEN
447: x_return_status := FND_API.G_RET_STS_ERROR;
443: x_return_status := FND_API.G_RET_STS_SUCCESS;
444:
445: -- Verifies if the ce_bank_account_id in XTR_BANK_ACCOUNTS is passed as null
446: IF(p_xtr_bank_account_rec.ce_bank_account_id is null) THEN
447: x_return_status := FND_API.G_RET_STS_ERROR;
448: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.ce_bank_account_id');
449: END IF;
450: -- Verifies if the bank_branch_id in XTR_BANK_ACCOUNTS is passed as null
451: IF(p_xtr_bank_account_rec.bank_branch_id is null) THEN
448: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.ce_bank_account_id');
449: END IF;
450: -- Verifies if the bank_branch_id in XTR_BANK_ACCOUNTS is passed as null
451: IF(p_xtr_bank_account_rec.bank_branch_id is null) THEN
452: x_return_status := FND_API.G_RET_STS_ERROR;
453: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.BANK_BRANCH_ID');
454: END IF;
455: /* Removed the validation Bug 4582759
456: -- Verifies if the bank_acct_use_id in XTR_BANK_ACCOUNTS is passed as null
454: END IF;
455: /* Removed the validation Bug 4582759
456: -- Verifies if the bank_acct_use_id in XTR_BANK_ACCOUNTS is passed as null
457: IF(p_xtr_bank_account_rec.bank_acct_use_id is null) THEN
458: x_return_status := FND_API.G_RET_STS_ERROR;
459: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.BANK_ACCT_USE_ID');
460: END IF;
461: */
462: -- Verifies if bank_short_code in XTR_BANK_ACCOUNTS is passed as null
460: END IF;
461: */
462: -- Verifies if bank_short_code in XTR_BANK_ACCOUNTS is passed as null
463: IF(p_xtr_bank_account_rec.bank_short_code is null) THEN
464: x_return_status := FND_API.G_RET_STS_ERROR;
465: LOG_ERR_MSG('XTR_ACCT_NAME_MANDATORY');
466: END IF;
467: -- Verifies if currency in XTR_BANK_ACCOUNTS is passed as null
468: IF(p_xtr_bank_account_rec.currency is null ) THEN
465: LOG_ERR_MSG('XTR_ACCT_NAME_MANDATORY');
466: END IF;
467: -- Verifies if currency in XTR_BANK_ACCOUNTS is passed as null
468: IF(p_xtr_bank_account_rec.currency is null ) THEN
469: x_return_status := FND_API.G_RET_STS_ERROR;
470: LOG_ERR_MSG('XTR_CURRENCY_MANDATORY');
471: END IF;
472: -- Verifies if location in XTR_BANK_ACCOUNTS is passed as null
473: IF(p_xtr_bank_account_rec.location is null) THEN
470: LOG_ERR_MSG('XTR_CURRENCY_MANDATORY');
471: END IF;
472: -- Verifies if location in XTR_BANK_ACCOUNTS is passed as null
473: IF(p_xtr_bank_account_rec.location is null) THEN
474: x_return_status := FND_API.G_RET_STS_ERROR;
475: LOG_ERR_MSG('XTR_LOCATION_MANDATORY');
476: END IF;
477: -- Verifies if street in XTR_BANK_ACCOUNTS is passed as null
478: IF(p_xtr_bank_account_rec.street is null) THEN
475: LOG_ERR_MSG('XTR_LOCATION_MANDATORY');
476: END IF;
477: -- Verifies if street in XTR_BANK_ACCOUNTS is passed as null
478: IF(p_xtr_bank_account_rec.street is null) THEN
479: x_return_status := FND_API.G_RET_STS_ERROR;
480: LOG_ERR_MSG('XTR_STREET_MANDATORY');
481: END IF;
482: -- Verifies if party_code in XTR_BANK_ACCOUNTS is passed as null
483: IF(p_xtr_bank_account_rec.party_code is null ) THEN
480: LOG_ERR_MSG('XTR_STREET_MANDATORY');
481: END IF;
482: -- Verifies if party_code in XTR_BANK_ACCOUNTS is passed as null
483: IF(p_xtr_bank_account_rec.party_code is null ) THEN
484: x_return_status := FND_API.G_RET_STS_ERROR;
485: LOG_ERR_MSG('XTR_ACCT_OWNER_MANDATORY');
486: END IF;
487: -- Verifies if account_number in XTR_BANK_ACCOUNTS is passed as null
488: IF(p_xtr_bank_account_rec.account_number is null ) THEN
485: LOG_ERR_MSG('XTR_ACCT_OWNER_MANDATORY');
486: END IF;
487: -- Verifies if account_number in XTR_BANK_ACCOUNTS is passed as null
488: IF(p_xtr_bank_account_rec.account_number is null ) THEN
489: x_return_status := FND_API.G_RET_STS_ERROR;
490: LOG_ERR_MSG('XTR_ACCOUNT_MANDATORY_FIELD');
491: END IF;
492:
493:
495: FETCH c_pm_authorized INTO l_pm_authorized;
496: CLOSE c_pm_authorized;
497: -- Verifies if pricing model in XTR_BANK_ACCOUNTS is authorized or not
498: IF(nvl(l_pm_authorized,'N') = 'N' AND p_xtr_bank_account_rec.pricing_model IS NOT NULL ) THEN
499: x_return_status := FND_API.G_RET_STS_ERROR;
500: LOG_ERR_MSG('XTR_INV_TRS_PRICING_MODEL');
501: END IF;
502:
503: OPEN c_cc_id;
505: CLOSE c_cc_id;
506: -- Verifies if code combination id in XTR_BANK_ACCOUNTS is authorized or not
507: IF(nvl(l_cc_id,'N') = 'N' AND p_xtr_bank_account_rec.code_combination_id IS NOT NULL
508: AND p_xtr_bank_account_rec.party_code IS NOT NULL) THEN
509: x_return_status := FND_API.G_RET_STS_ERROR;
510: LOG_ERR_MSG('XTR_INV_CC_ID');
511: END IF;
512:
513: OPEN C_valid_company;
514: FETCH C_valid_company INTO l_valid_company,l_le_id;
515: CLOSE C_valid_company;
516: -- Verifies if company exists in XTR_PARTIES_V
517: IF(nvl(l_valid_company,'N') = 'N' and p_xtr_bank_account_rec.party_code IS NOT NULL) THEN
518: x_return_status := FND_API.G_RET_STS_ERROR;
519: LOG_ERR_MSG('XTR_INV_LE_COMP_CODE',l_le_id);
520: END IF;
521: OPEN C_default_acct;
522: FETCH C_default_acct INTO l_default_acct,l_chk_default;
523: CLOSE C_default_acct;
524: -- Verfies if A default account already exists for this company/currency combination.
525: IF((nvl(l_default_acct,'N') = 'Y') AND p_xtr_bank_account_rec.default_acct = 'Y'
526: AND (nvl(l_chk_default,-1) <> p_xtr_bank_account_rec.ce_bank_account_id) ) THEN -- Modified Bug 4764437
527: x_return_status := FND_API.G_RET_STS_ERROR;
528: LOG_ERR_MSG('XTR_DEFAULT_ACCT');
529: END IF;
530: -- Verifies if year calculated basis is '30/' and a day count basis type of Both Days for the same deal.
531: IF(substr(p_xtr_bank_account_rec.year_calc_type,1,2) = '30'
529: END IF;
530: -- Verifies if year calculated basis is '30/' and a day count basis type of Both Days for the same deal.
531: IF(substr(p_xtr_bank_account_rec.year_calc_type,1,2) = '30'
532: and p_xtr_bank_account_rec.day_count_type = 'B') THEN
533: x_return_status := FND_API.G_RET_STS_ERROR;
534: LOG_ERR_MSG('XTR_CHK_30_BOTH');
535: END IF;
536:
537: IF xtr_risk_debug_pkg.g_Debug THEN
552: END IF;
553:
554: EXCEPTION
555: WHEN others THEN
556: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
557: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
558: END VALIDATE_BANK_ACCOUNTS;
559:
560:
579: *
580: * OUT:
581: * x_return_status Return status after the call. The
582: * status can be
583: * FND_API.G_RET_STS_SUCCESS - for success
584: * FND_API.G_RET_STS_ERR - for expected error
585: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
586: * NOTES
587: *
580: * OUT:
581: * x_return_status Return status after the call. The
582: * status can be
583: * FND_API.G_RET_STS_SUCCESS - for success
584: * FND_API.G_RET_STS_ERR - for expected error
585: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
586: * NOTES
587: *
588: * MODIFICATION HISTORY
581: * x_return_status Return status after the call. The
582: * status can be
583: * FND_API.G_RET_STS_SUCCESS - for success
584: * FND_API.G_RET_STS_ERR - for expected error
585: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
586: * NOTES
587: *
588: * MODIFICATION HISTORY
589: *
760: if C_CHK_LOCK%ISOPEN then
761: close c_CHK_LOCK;
762: end if;
763: LOG_ERR_MSG('CHK_LOCK');
764: x_return_status := FND_API.G_RET_STS_ERROR;
765: --app_exceptions.RECORD_LOCK_EXCEPTION;
766: WHEN DUP_VAL_ON_INDEX then -- bug 4870353
767: x_return_status := FND_API.G_RET_STS_ERROR;
768: LOG_ERR_MSG('XTR_UNIQUE_ACCOUNT');
763: LOG_ERR_MSG('CHK_LOCK');
764: x_return_status := FND_API.G_RET_STS_ERROR;
765: --app_exceptions.RECORD_LOCK_EXCEPTION;
766: WHEN DUP_VAL_ON_INDEX then -- bug 4870353
767: x_return_status := FND_API.G_RET_STS_ERROR;
768: LOG_ERR_MSG('XTR_UNIQUE_ACCOUNT');
769: WHEN others THEN
770: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
771: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
766: WHEN DUP_VAL_ON_INDEX then -- bug 4870353
767: x_return_status := FND_API.G_RET_STS_ERROR;
768: LOG_ERR_MSG('XTR_UNIQUE_ACCOUNT');
769: WHEN others THEN
770: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
771: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
772: END MODIFY_BANK_ACCOUNTS;
773:
774: /**
960: *
961: * OUT:
962: * x_return_status Return status after the call. The
963: * status can be
964: * FND_API.G_RET_STS_SUCCESS - for success
965: * FND_API.G_RET_STS_ERR - for expected error
966: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
967: * x_msg_count To return the number of error messages
968: * in stack
961: * OUT:
962: * x_return_status Return status after the call. The
963: * status can be
964: * FND_API.G_RET_STS_SUCCESS - for success
965: * FND_API.G_RET_STS_ERR - for expected error
966: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
967: * x_msg_count To return the number of error messages
968: * in stack
969: * x_msg_data To return the error message if
962: * x_return_status Return status after the call. The
963: * status can be
964: * FND_API.G_RET_STS_SUCCESS - for success
965: * FND_API.G_RET_STS_ERR - for expected error
966: * FND_API.G_RET_STS_UNEXP_ERR - for unexpected error
967: * x_msg_count To return the number of error messages
968: * in stack
969: * x_msg_data To return the error message if
970: * x_msg_count = 1.
999: BEGIN
1000: x_msg_count := NULL;
1001: FND_MSG_PUB.Initialize; -- Initializes the message list that stores the errors
1002:
1003: x_return_status := FND_API.G_RET_STS_SUCCESS;
1004: -- Verifies if the ce_bank_account_id in XTR_BANK_ACCOUNTS is passed as null
1005: IF(p_ce_bank_account_id is null) THEN
1006: x_return_status := FND_API.G_RET_STS_ERROR;
1007: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.ce_bank_account_id');
1002:
1003: x_return_status := FND_API.G_RET_STS_SUCCESS;
1004: -- Verifies if the ce_bank_account_id in XTR_BANK_ACCOUNTS is passed as null
1005: IF(p_ce_bank_account_id is null) THEN
1006: x_return_status := FND_API.G_RET_STS_ERROR;
1007: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.ce_bank_account_id');
1008: END IF;
1009: -- Verifies if year calculated basis is '30/' and a day count basis type of Both Days for the same deal.
1010: IF(substr(p_day_count_basis,1,2) = '30' and p_interest_includes = 'B') THEN
1007: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.ce_bank_account_id');
1008: END IF;
1009: -- Verifies if year calculated basis is '30/' and a day count basis type of Both Days for the same deal.
1010: IF(substr(p_day_count_basis,1,2) = '30' and p_interest_includes = 'B') THEN
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012: LOG_ERR_MSG('XTR_CHK_30_BOTH');
1013: END IF;
1014: IF(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1015: OPEN c_chk_lock_interest;
1010: IF(substr(p_day_count_basis,1,2) = '30' and p_interest_includes = 'B') THEN
1011: x_return_status := FND_API.G_RET_STS_ERROR;
1012: LOG_ERR_MSG('XTR_CHK_30_BOTH');
1013: END IF;
1014: IF(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1015: OPEN c_chk_lock_interest;
1016: FETCH c_chk_lock_interest INTO l_ce_bank_account_id;
1017: IF c_chk_lock_interest%FOUND THEN
1018: CLOSE c_chk_lock_interest;
1031: END IF;
1032: ELSE
1033:
1034: CLOSE c_chk_lock_interest;
1035: x_return_status := FND_API.G_RET_STS_ERROR;
1036: LOG_ERR_MSG('XTR_INV_PARAM','XTR_BANK_ACCOUNTS.ce_bank_account_id');
1037:
1038: END IF;
1039:
1047: if C_CHK_LOCK_INTEREST%ISOPEN then
1048: close c_CHK_LOCK_INTEREST;
1049: end if;
1050: LOG_ERR_MSG('CHK_LOCK');
1051: x_return_status := FND_API.G_RET_STS_ERROR;
1052: FND_MSG_PUB.Count_And_Get -- Returns the error message if there is only 1 error
1053: ( p_count => x_msg_count ,
1054: p_data => x_msg_data
1055: );
1054: p_data => x_msg_data
1055: );
1056: --app_exceptions.RECORD_LOCK_EXCEPTION;
1057: WHEN others THEN
1058: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1059: LOG_ERR_MSG('XTR_UNEXP_ERROR',SQLERRM(SQLCODE));
1060: FND_MSG_PUB.Count_And_Get -- Returns the error message if there is only 1 error
1061: ( p_count => x_msg_count ,
1062: p_data => x_msg_data