117: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - BEGIN');
118:
119: -- Initialize message list IF p_init_msg_list is set to TRUE.
120: IF FND_API.to_Boolean( p_init_msg_list ) THEN
121: FND_MSG_PUB.initialize;
122: END IF;
123:
124: -- Initialize API return status to SUCCESS
125: x_return_status := FND_API.G_RET_STS_SUCCESS;
140: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
141: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
142: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
143: FND_MESSAGE.SET_TOKEN('VALUE', p_loan_ID);
144: FND_MSG_PUB.ADD;
145: RAISE FND_API.G_EXC_ERROR;
146: end if;
147:
148: -- check to see if the loan is customized
154: if l_customized = 'N' then
155: l_skip_update := true;
156: /* dont raise this error as per karamach conversation 12-1-2004
157: FND_MESSAGE.Set_Name('LNS', 'LNS_NOT_CUSTOMIZED');
158: FND_MSG_PUB.Add;
159: RAISE FND_API.G_EXC_ERROR;
160: */
161: else
162: -- loan is customized
167: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - last installment ' || l_last_installment_billed);
168:
169: if l_last_installment_billed > 0 then
170: FND_MESSAGE.Set_Name('LNS', 'LNS_LOAN_ALREADY_BILLED');
171: FND_MSG_PUB.Add;
172: RAISE FND_API.G_EXC_ERROR;
173: end if;
174:
175: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - deleting custom rows');
204: IF FND_API.to_Boolean(p_commit) THEN
205: COMMIT WORK;
206: END IF;
207:
208: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
209:
210: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
211:
212: EXCEPTION
210: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
211:
212: EXCEPTION
213: WHEN FND_API.G_EXC_ERROR THEN
214: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
215: x_return_status := FND_API.G_RET_STS_ERROR;
216: x_msg_count := l_msg_count;
217: x_msg_data := l_msg_data;
218: ROLLBACK TO resetCustomSchedule;
218: ROLLBACK TO resetCustomSchedule;
219: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
220:
221: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
222: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
223: x_return_status := FND_API.G_RET_STS_ERROR;
224: x_msg_count := l_msg_count;
225: x_msg_data := l_msg_data;
226: ROLLBACK TO resetCustomSchedule;
226: ROLLBACK TO resetCustomSchedule;
227: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
228:
229: WHEN OTHERS THEN
230: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
231: x_return_status := FND_API.G_RET_STS_ERROR;
232: x_msg_count := l_msg_count;
233: x_msg_data := l_msg_data;
234: ROLLBACK TO resetCustomSchedule;
320: SAVEPOINT createCustomSchedule;
321:
322: -- Initialize message list IF p_init_msg_list is set to TRUE.
323: IF FND_API.to_Boolean( p_init_msg_list ) THEN
324: FND_MSG_PUB.initialize;
325: END IF;
326:
327: -- Initialize API return status to SUCCESS
328: x_return_status := FND_API.G_RET_STS_SUCCESS;
354: X_INVALID_INSTALLMENT_NUM := l_installment;
355: FND_MESSAGE.Set_Name('LNS', 'LNS_INVALID_INSTALLMENT');
356: FND_MESSAGE.SET_TOKEN('PARAMETER', 'INSTALLMENT');
357: FND_MESSAGE.SET_TOKEN('VALUE', l_installment);
358: FND_MSG_PUB.Add;
359: RAISE FND_API.G_EXC_ERROR;
360: end if;
361: FND_MESSAGE.Set_Name('LNS', 'LNS_VALIDATE_CUSTOM_ERROR');
362: FND_MSG_PUB.Add;
358: FND_MSG_PUB.Add;
359: RAISE FND_API.G_EXC_ERROR;
360: end if;
361: FND_MESSAGE.Set_Name('LNS', 'LNS_VALIDATE_CUSTOM_ERROR');
362: FND_MSG_PUB.Add;
363: RAISE FND_API.G_EXC_ERROR;
364: end if;
365:
366: open c_loan_details(p_loan_id);
518:
519: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
520: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - header update ERROR');
521: FND_MESSAGE.Set_Name('LNS', 'LNS_HEADER_UPDATE_ERROR');
522: FND_MSG_PUB.Add;
523: RAISE FND_API.G_EXC_ERROR;
524: end if;
525:
526: IF FND_API.to_Boolean(p_commit)
527: THEN
528: COMMIT WORK;
529: END IF;
530:
531: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
532: p_data => x_msg_data);
533:
534: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
535:
535:
536: EXCEPTION
537: WHEN FND_API.G_EXC_ERROR THEN
538: FND_MESSAGE.Set_Name('LNS', 'LNS_CREATE_CUSTOM_ERROR');
539: FND_MSG_PUB.Add;
540: x_return_status := FND_API.G_RET_STS_ERROR;
541: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
542: ROLLBACK TO createCustomSchedule;
543:
542: ROLLBACK TO createCustomSchedule;
543:
544: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
545: FND_MESSAGE.Set_Name('LNS', 'LNS_CREATE_CUSTOM_ERROR');
546: FND_MSG_PUB.Add;
547: x_return_status := FND_API.G_RET_STS_ERROR;
548: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
549: ROLLBACK TO createCustomSchedule;
550:
549: ROLLBACK TO createCustomSchedule;
550:
551: WHEN OTHERS THEN
552: FND_MESSAGE.Set_Name('LNS', 'LNS_CREATE_CUSTOM_ERROR');
553: FND_MSG_PUB.Add;
554: x_return_status := FND_API.G_RET_STS_ERROR;
555: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
556: ROLLBACK TO createCustomSchedule;
557:
636: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - BEGIN');
637:
638: -- Initialize message list IF p_init_msg_list is set to TRUE.
639: IF FND_API.to_Boolean( p_init_msg_list ) THEN
640: FND_MSG_PUB.initialize;
641: END IF;
642:
643: -- Initialize API return status to SUCCESS
644: x_return_status := FND_API.G_RET_STS_SUCCESS;
681: X_INVALID_INSTALLMENT_NUM := l_installment;
682: FND_MESSAGE.Set_Name('LNS', 'LNS_INVALID_INSTALLMENT');
683: FND_MESSAGE.SET_TOKEN('PARAMETER', 'INSTALLMENT');
684: FND_MESSAGE.SET_TOKEN('VALUE', l_installment);
685: FND_MSG_PUB.Add;
686: RAISE FND_API.G_EXC_ERROR;
687: end if;
688: FND_MESSAGE.Set_Name('LNS', 'LNS_VALIDATE_CUSTOM_ERROR');
689: FND_MSG_PUB.Add;
685: FND_MSG_PUB.Add;
686: RAISE FND_API.G_EXC_ERROR;
687: end if;
688: FND_MESSAGE.Set_Name('LNS', 'LNS_VALIDATE_CUSTOM_ERROR');
689: FND_MSG_PUB.Add;
690: RAISE FND_API.G_EXC_ERROR;
691: end if;
692:
693: -- now we've passed validation initialize loan_begin_balance to calculate balances
739: THEN
740: COMMIT WORK;
741: END IF;
742:
743: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
744: p_data => x_msg_data);
745: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
746:
747: EXCEPTION
746:
747: EXCEPTION
748: WHEN FND_API.G_EXC_ERROR THEN
749: --FND_MESSAGE.Set_Name('LNS', 'LNS_UPDATE_CUSTOM_ERROR');
750: --FND_MSG_PUB.Add;
751: --RAISE FND_API.G_EXC_ERROR;
752: x_return_status := FND_API.G_RET_STS_ERROR;
753: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
754: ROLLBACK TO updateCustomSchedule;
754: ROLLBACK TO updateCustomSchedule;
755:
756: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
757: --FND_MESSAGE.Set_Name('LNS', 'LNS_UPDATE_CUSTOM_ERROR');
758: --FND_MSG_PUB.Add;
759: --RAISE FND_API.G_EXC_ERROR;
760: x_return_status := FND_API.G_RET_STS_ERROR;
761: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
762: ROLLBACK TO updateCustomSchedule;
762: ROLLBACK TO updateCustomSchedule;
763:
764: WHEN OTHERS THEN
765: --FND_MESSAGE.Set_Name('LNS', 'LNS_UPDATE_CUSTOM_ERROR');
766: --FND_MSG_PUB.Add;
767: --RAISE FND_API.G_EXC_ERROR;
768: x_return_status := FND_API.G_RET_STS_ERROR;
769: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
770: ROLLBACK TO updateCustomSchedule;
833: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'billed installments (without 0) is ' || l_count);
834:
835: if l_loan_details.number_installments - l_count <> l_cust_tbl.count then
836: FND_MESSAGE.Set_Name('LNS', 'LNS_INVALID_NUM_ROWS');
837: FND_MSG_PUB.Add;
838: RAISE FND_API.G_EXC_ERROR;
839: end if;
840: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'passed update validation');
841: end if;
851: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'check balance');
852: if l_cust_tbl(1).installment_begin_balance <> lns_financials.getRemainingBalance(p_loan_id) then
853: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'balance incorrect');
854: FND_MESSAGE.Set_Name('LNS', 'LNS_BEGIN_BALANCE_INCORRECT');
855: FND_MSG_PUB.Add;
856: RAISE FND_API.G_EXC_ERROR;
857: end if;
858: end if;
859: */
868: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'invalid installment found #' || i);
869: FND_MESSAGE.Set_Name('LNS', 'LNS_INVALID_INSTALLMENT');
870: FND_MESSAGE.SET_TOKEN('PARAMETER', 'INSTALLMENT');
871: FND_MESSAGE.SET_TOKEN('VALUE', i);
872: FND_MSG_PUB.Add;
873: RAISE FND_API.G_EXC_ERROR;
874: end if;
875:
876: -- check for consecutive installments
877: if l_cust_tbl.exists(i+1) then
878: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'checking consecutive installments' || l_cust_tbl(i).payment_number || ' ' || l_cust_tbl(i+1).payment_number );
879: if l_cust_tbl(i).payment_number + 1 <> l_cust_tbl(i+1).payment_number then
880: FND_MESSAGE.Set_Name('LNS', 'LNS_NONSEQUENTIAL_INSTALLMENTS');
881: FND_MSG_PUB.Add;
882: RAISE FND_API.G_EXC_ERROR;
883: end if;
884: end if;
885:
893: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'PASS: ' || i || 'p_cust_tbl(i).due_date is : ' || l_cust_tbl(i).due_date);
894: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'l_date is: ' || l_date);
895: if p_cust_tbl(i).due_date <= l_date then
896: FND_MESSAGE.Set_Name('LNS', 'LNS_NONSEQUENTIAL_DATES');
897: FND_MSG_PUB.Add;
898: RAISE FND_API.G_EXC_ERROR;
899: end if;
900: l_date := l_cust_tbl(i).due_date;
901:
912: --if l_amount <> l_loan_details.unbilled_principal then
913: if l_amount <> l_loan_details.remaining_balance then
914: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'balance check incorrect');
915: FND_MESSAGE.Set_Name('LNS', 'LNS_BALANCE_INCORRECT');
916: FND_MSG_PUB.Add;
917: RAISE FND_API.G_EXC_ERROR;
918: end if;
919:
920: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'after final balance check');
917: RAISE FND_API.G_EXC_ERROR;
918: end if;
919:
920: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'after final balance check');
921: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
922:
923: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
924:
925: EXCEPTION
925: EXCEPTION
926:
927: WHEN FND_API.G_EXC_ERROR THEN
928: --FND_MESSAGE.Set_Name('LNS', 'LNS_VALIDATE_CUSTOM_ERROR');
929: --FND_MSG_PUB.Add;
930: x_return_status := FND_API.G_RET_STS_ERROR;
931: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
932:
933: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
931: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
932:
933: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
934: --FND_MESSAGE.Set_Name('LNS', 'LNS_VALIDATE_CUSTOM_ERROR');
935: --FND_MSG_PUB.Add;
936: x_return_status := FND_API.G_RET_STS_ERROR;
937: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
938:
939: WHEN OTHERS THEN
937: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
938:
939: WHEN OTHERS THEN
940: --FND_MESSAGE.Set_Name('LNS', 'LNS_VALIDATE_CUSTOM_ERROR');
941: --FND_MSG_PUB.Add;
942: x_return_status := FND_API.G_RET_STS_ERROR;
943: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
944: End;
945:
970: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' ' || p_custom_rec.INTEREST_AMOUNT );
971:
972: if p_custom_rec.due_Date is null then
973: FND_MESSAGE.Set_Name('LNS', 'LNS_NO_DUE_DATE');
974: FND_MSG_PUB.Add;
975: RAISE FND_API.G_EXC_ERROR;
976:
977: elsif p_custom_rec.payment_number is null or p_custom_rec.payment_number < 1 then
978: FND_MESSAGE.Set_Name('LNS', 'LNS_INVALID_PAYMENT_NUMBER');
975: RAISE FND_API.G_EXC_ERROR;
976:
977: elsif p_custom_rec.payment_number is null or p_custom_rec.payment_number < 1 then
978: FND_MESSAGE.Set_Name('LNS', 'LNS_INVALID_PAYMENT_NUMBER');
979: FND_MSG_PUB.Add;
980: RAISE FND_API.G_EXC_ERROR;
981:
982: elsif p_custom_rec.PRINCIPAL_AMOUNT is not null and p_custom_rec.PRINCIPAL_AMOUNT < 0 then
983: FND_MESSAGE.Set_Name('LNS', 'LNS_PRINICIPAL_AMOUNT_ERROR');
980: RAISE FND_API.G_EXC_ERROR;
981:
982: elsif p_custom_rec.PRINCIPAL_AMOUNT is not null and p_custom_rec.PRINCIPAL_AMOUNT < 0 then
983: FND_MESSAGE.Set_Name('LNS', 'LNS_PRINICIPAL_AMOUNT_ERROR');
984: FND_MSG_PUB.Add;
985: RAISE FND_API.G_EXC_ERROR;
986:
987: elsif p_custom_rec.INTEREST_AMOUNT is not null and p_custom_rec.INTEREST_AMOUNT < 0 then
988: FND_MESSAGE.Set_Name('LNS', 'LNS_INTEREST_AMOUNT_ERROR');
985: RAISE FND_API.G_EXC_ERROR;
986:
987: elsif p_custom_rec.INTEREST_AMOUNT is not null and p_custom_rec.INTEREST_AMOUNT < 0 then
988: FND_MESSAGE.Set_Name('LNS', 'LNS_INTEREST_AMOUNT_ERROR');
989: FND_MSG_PUB.Add;
990: RAISE FND_API.G_EXC_ERROR;
991:
992: elsif p_custom_rec.FEE_AMOUNT is not null and p_custom_rec.FEE_AMOUNT < 0 then
993: FND_MESSAGE.Set_Name('LNS', 'LNS_OTHER_AMOUNT_ERROR');
990: RAISE FND_API.G_EXC_ERROR;
991:
992: elsif p_custom_rec.FEE_AMOUNT is not null and p_custom_rec.FEE_AMOUNT < 0 then
993: FND_MESSAGE.Set_Name('LNS', 'LNS_OTHER_AMOUNT_ERROR');
994: FND_MSG_PUB.Add;
995: RAISE FND_API.G_EXC_ERROR;
996:
997: elsif p_custom_rec.OTHER_AMOUNT is not null and p_custom_rec.OTHER_AMOUNT < 0 then
998: FND_MESSAGE.Set_Name('LNS', 'LNS_OTHER_AMOUNT_ERROR');
995: RAISE FND_API.G_EXC_ERROR;
996:
997: elsif p_custom_rec.OTHER_AMOUNT is not null and p_custom_rec.OTHER_AMOUNT < 0 then
998: FND_MESSAGE.Set_Name('LNS', 'LNS_OTHER_AMOUNT_ERROR');
999: FND_MSG_PUB.Add;
1000: RAISE FND_API.G_EXC_ERROR;
1001:
1002: end if;
1003:
1174: l_custom_tbl(j+1) := l_temp;
1175: elsif l_custom_tbl(j).DUE_DATE = l_custom_tbl(j+1).DUE_DATE then
1176: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Several installments have the same due date.');
1177: FND_MESSAGE.SET_NAME('LNS', 'LNS_DUE_DATE_DUPL');
1178: FND_MSG_PUB.Add;
1179: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
1180: RAISE FND_API.G_EXC_ERROR;
1181: end if;
1182: end loop;
1175: elsif l_custom_tbl(j).DUE_DATE = l_custom_tbl(j+1).DUE_DATE then
1176: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Several installments have the same due date.');
1177: FND_MESSAGE.SET_NAME('LNS', 'LNS_DUE_DATE_DUPL');
1178: FND_MSG_PUB.Add;
1179: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
1180: RAISE FND_API.G_EXC_ERROR;
1181: end if;
1182: end loop;
1183: end loop;
1611: Exception
1612: When No_Data_Found then
1613: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'LOAN ID: ' || p_loan_id || ' not found');
1614: FND_MESSAGE.Set_Name('LNS', 'LNS_INVALID_LOAN_ID');
1615: FND_MSG_PUB.Add;
1616: RAISE FND_API.G_EXC_ERROR;
1617:
1618: When Others then
1619: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Err: ' || sqlerrm);
1692: END IF;
1693:
1694: -- Initialize message list if p_init_msg_list is set to TRUE
1695: IF FND_API.To_Boolean(p_init_msg_list) THEN
1696: FND_MSG_PUB.initialize;
1697: END IF;
1698:
1699: -- Initialize API return status to success
1700: l_return_status := FND_API.G_RET_STS_SUCCESS;
1708: if P_LOAN_ID is null then
1709: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
1710: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
1711: FND_MESSAGE.SET_TOKEN('VALUE', P_LOAN_ID);
1712: FND_MSG_PUB.ADD;
1713: RAISE FND_API.G_EXC_ERROR;
1714: end if;
1715:
1716: if P_BASED_ON_TERMS is null then
1716: if P_BASED_ON_TERMS is null then
1717: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
1718: FND_MESSAGE.SET_TOKEN('PARAMETER', 'BASED_ON_TERMS');
1719: FND_MESSAGE.SET_TOKEN('VALUE', P_BASED_ON_TERMS);
1720: FND_MSG_PUB.ADD;
1721: RAISE FND_API.G_EXC_ERROR;
1722: end if;
1723:
1724: l_loan_details := getLoanDetails(p_loan_Id => p_loan_id
1851: -- END OF BODY OF API
1852: x_return_status := FND_API.G_RET_STS_SUCCESS;
1853:
1854: -- Standard call to get message count and if count is 1, get message info
1855: FND_MSG_PUB.Count_And_Get(
1856: p_encoded => FND_API.G_FALSE,
1857: p_count => x_msg_count,
1858: p_data => x_msg_data);
1859:
1862: EXCEPTION
1863: WHEN FND_API.G_EXC_ERROR THEN
1864: ROLLBACK TO loadCustomSchedule;
1865: x_return_status := FND_API.G_RET_STS_ERROR;
1866: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1867: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
1868: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1869: ROLLBACK TO loadCustomSchedule;
1870: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1867: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
1868: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1869: ROLLBACK TO loadCustomSchedule;
1870: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1871: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1872: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
1873: WHEN OTHERS THEN
1874: ROLLBACK TO loadCustomSchedule;
1875: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1872: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
1873: WHEN OTHERS THEN
1874: ROLLBACK TO loadCustomSchedule;
1875: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1876: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
1877: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
1878: END IF;
1879: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1880: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
1873: WHEN OTHERS THEN
1874: ROLLBACK TO loadCustomSchedule;
1875: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1876: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
1877: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
1878: END IF;
1879: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1880: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
1881: END;
1875: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1876: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
1877: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
1878: END IF;
1879: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
1880: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
1881: END;
1882:
1883:
2014: END IF;
2015:
2016: -- Initialize message list if p_init_msg_list is set to TRUE
2017: IF FND_API.To_Boolean(p_init_msg_list) THEN
2018: FND_MSG_PUB.initialize;
2019: END IF;
2020:
2021: -- Initialize API return status to success
2022: l_return_status := FND_API.G_RET_STS_SUCCESS;
2031: if P_LOAN_ID is null then
2032: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
2033: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
2034: FND_MESSAGE.SET_TOKEN('VALUE', P_LOAN_ID);
2035: FND_MSG_PUB.ADD;
2036: RAISE FND_API.G_EXC_ERROR;
2037: end if;
2038:
2039: if P_BASED_ON_TERMS is null then
2039: if P_BASED_ON_TERMS is null then
2040: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
2041: FND_MESSAGE.SET_TOKEN('PARAMETER', 'BASED_ON_TERMS');
2042: FND_MESSAGE.SET_TOKEN('VALUE', P_BASED_ON_TERMS);
2043: FND_MSG_PUB.ADD;
2044: RAISE FND_API.G_EXC_ERROR;
2045: end if;
2046:
2047: if P_AMORT_METHOD is null then
2047: if P_AMORT_METHOD is null then
2048: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
2049: FND_MESSAGE.SET_TOKEN('PARAMETER', 'AMORT_METHOD');
2050: FND_MESSAGE.SET_TOKEN('VALUE', P_AMORT_METHOD);
2051: FND_MSG_PUB.ADD;
2052: RAISE FND_API.G_EXC_ERROR;
2053: end if;
2054:
2055: l_CUSTOM_TBL := P_CUSTOM_TBL;
2083: return;
2084: /*
2085: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Custom amortization is empty.');
2086: FND_MESSAGE.SET_NAME('LNS', 'LNS_CUST_AMORT_EMPTY');
2087: FND_MSG_PUB.Add;
2088: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2089: RAISE FND_API.G_EXC_ERROR;
2090: */
2091: end if;
2084: /*
2085: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Custom amortization is empty.');
2086: FND_MESSAGE.SET_NAME('LNS', 'LNS_CUST_AMORT_EMPTY');
2087: FND_MSG_PUB.Add;
2088: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2089: RAISE FND_API.G_EXC_ERROR;
2090: */
2091: end if;
2092:
2133:
2134: if l_custom_tbl(i).DUE_DATE < l_loan_details.loan_start_date then
2135: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Installment due date cannot be earlier then loan start date.');
2136: FND_MESSAGE.SET_NAME('LNS', 'LNS_EARLIER_LN_START_DATE');
2137: FND_MSG_PUB.Add;
2138: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2139: RAISE FND_API.G_EXC_ERROR;
2140: end if;
2141:
2134: if l_custom_tbl(i).DUE_DATE < l_loan_details.loan_start_date then
2135: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Installment due date cannot be earlier then loan start date.');
2136: FND_MESSAGE.SET_NAME('LNS', 'LNS_EARLIER_LN_START_DATE');
2137: FND_MSG_PUB.Add;
2138: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2139: RAISE FND_API.G_EXC_ERROR;
2140: end if;
2141:
2142: if l_loan_details.LAST_DUE_DATE is not null then
2142: if l_loan_details.LAST_DUE_DATE is not null then
2143: if l_custom_tbl(i).DUE_DATE <= l_loan_details.LAST_DUE_DATE then
2144: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Installment due date cannot be earlier or equal to due date of the last billed installment.');
2145: FND_MESSAGE.SET_NAME('LNS', 'LNS_EARLIER_LAST_BILLED_DD');
2146: FND_MSG_PUB.Add;
2147: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2148: RAISE FND_API.G_EXC_ERROR;
2149: end if;
2150: end if;
2143: if l_custom_tbl(i).DUE_DATE <= l_loan_details.LAST_DUE_DATE then
2144: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Installment due date cannot be earlier or equal to due date of the last billed installment.');
2145: FND_MESSAGE.SET_NAME('LNS', 'LNS_EARLIER_LAST_BILLED_DD');
2146: FND_MSG_PUB.Add;
2147: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2148: RAISE FND_API.G_EXC_ERROR;
2149: end if;
2150: end if;
2151:
2155: l_custom_tbl(i).DUE_DATE := l_loan_details.maturity_Date;
2156: else
2157: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Installment due date cannot be later then loan maturity date.');
2158: FND_MESSAGE.SET_NAME('LNS', 'LNS_LATER_LN_MATUR_DATE');
2159: FND_MSG_PUB.Add;
2160: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2161: RAISE FND_API.G_EXC_ERROR;
2162: end if;
2163:
2156: else
2157: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Installment due date cannot be later then loan maturity date.');
2158: FND_MESSAGE.SET_NAME('LNS', 'LNS_LATER_LN_MATUR_DATE');
2159: FND_MSG_PUB.Add;
2160: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
2161: RAISE FND_API.G_EXC_ERROR;
2162: end if;
2163:
2164: end if;
2306:
2307: -- raise error as rates does not exist
2308: if l_rate_details.ANNUAL_RATE is null then
2309: FND_MESSAGE.SET_NAME('LNS', 'LNS_RATES_ERROR');
2310: FND_MSG_PUB.ADD;
2311: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': rates missing for INDEX_ID ' || l_loan_details.TERM_INDEX_RATE_ID);
2312: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': rates missing for DATE ' || l_loan_details.NEXT_RATE_CHANGE_DATE);
2313: RAISE FND_API.G_EXC_ERROR;
2314: end if;
2771: -- END OF BODY OF API
2772: x_return_status := FND_API.G_RET_STS_SUCCESS;
2773:
2774: -- Standard call to get message count and if count is 1, get message info
2775: FND_MSG_PUB.Count_And_Get(
2776: p_encoded => FND_API.G_FALSE,
2777: p_count => x_msg_count,
2778: p_data => x_msg_data);
2779:
2782: EXCEPTION
2783: WHEN FND_API.G_EXC_ERROR THEN
2784: ROLLBACK TO recalcCustomSchedule;
2785: x_return_status := FND_API.G_RET_STS_ERROR;
2786: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
2787: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
2788: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2789: ROLLBACK TO recalcCustomSchedule;
2790: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2787: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
2788: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2789: ROLLBACK TO recalcCustomSchedule;
2790: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2791: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
2792: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
2793: WHEN OTHERS THEN
2794: ROLLBACK TO recalcCustomSchedule;
2795: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2792: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
2793: WHEN OTHERS THEN
2794: ROLLBACK TO recalcCustomSchedule;
2795: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2796: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
2797: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
2798: END IF;
2799: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
2800: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
2793: WHEN OTHERS THEN
2794: ROLLBACK TO recalcCustomSchedule;
2795: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2796: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
2797: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
2798: END IF;
2799: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
2800: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
2801: END;
2795: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2796: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
2797: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
2798: END IF;
2799: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
2800: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
2801: END;
2802:
2803:
2857: END IF;
2858:
2859: -- Initialize message list if p_init_msg_list is set to TRUE
2860: IF FND_API.To_Boolean(p_init_msg_list) THEN
2861: FND_MSG_PUB.initialize;
2862: END IF;
2863:
2864: -- Initialize API return status to success
2865: l_return_status := FND_API.G_RET_STS_SUCCESS;
2874: if P_LOAN_ID is null then
2875: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
2876: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
2877: FND_MESSAGE.SET_TOKEN('VALUE', P_LOAN_ID);
2878: FND_MSG_PUB.ADD;
2879: RAISE FND_API.G_EXC_ERROR;
2880: end if;
2881:
2882: if P_BASED_ON_TERMS is null then
2882: if P_BASED_ON_TERMS is null then
2883: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
2884: FND_MESSAGE.SET_TOKEN('PARAMETER', 'BASED_ON_TERMS');
2885: FND_MESSAGE.SET_TOKEN('VALUE', P_BASED_ON_TERMS);
2886: FND_MSG_PUB.ADD;
2887: RAISE FND_API.G_EXC_ERROR;
2888: end if;
2889:
2890: if P_AMORT_METHOD is null then
2890: if P_AMORT_METHOD is null then
2891: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
2892: FND_MESSAGE.SET_TOKEN('PARAMETER', 'AMORT_METHOD');
2893: FND_MESSAGE.SET_TOKEN('VALUE', P_AMORT_METHOD);
2894: FND_MSG_PUB.ADD;
2895: RAISE FND_API.G_EXC_ERROR;
2896: end if;
2897:
2898: l_CUSTOM_TBL := P_CUSTOM_TBL;
3005: IF l_return_status = 'S' THEN
3006: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Successfully updated lns_loan_headers_all');
3007: ELSE
3008: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
3009: FND_MSG_PUB.Add;
3010: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3011: RAISE FND_API.G_EXC_ERROR;
3012: end if;
3013: end if;
3006: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Successfully updated lns_loan_headers_all');
3007: ELSE
3008: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
3009: FND_MSG_PUB.Add;
3010: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3011: RAISE FND_API.G_EXC_ERROR;
3012: end if;
3013: end if;
3014:
3046: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Successfully update LNS_TERMS');
3047: ELSE
3048: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_TERMS_PUB.update_term returned error: ' || substr(l_msg_data,1,225));
3049: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_TERM_FAIL');
3050: FND_MSG_PUB.Add;
3051: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3052: RAISE FND_API.G_EXC_ERROR;
3053: END IF;
3054:
3047: ELSE
3048: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_TERMS_PUB.update_term returned error: ' || substr(l_msg_data,1,225));
3049: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_TERM_FAIL');
3050: FND_MSG_PUB.Add;
3051: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3052: RAISE FND_API.G_EXC_ERROR;
3053: END IF;
3054:
3055: -- getting number of installments and synching rate schedule
3066: -- END OF BODY OF API
3067: x_return_status := FND_API.G_RET_STS_SUCCESS;
3068:
3069: -- Standard call to get message count and if count is 1, get message info
3070: FND_MSG_PUB.Count_And_Get(
3071: p_encoded => FND_API.G_FALSE,
3072: p_count => x_msg_count,
3073: p_data => x_msg_data);
3074:
3077: EXCEPTION
3078: WHEN FND_API.G_EXC_ERROR THEN
3079: ROLLBACK TO saveCustomSchedule;
3080: x_return_status := FND_API.G_RET_STS_ERROR;
3081: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3082: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3083: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3084: ROLLBACK TO saveCustomSchedule;
3085: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3082: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3083: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3084: ROLLBACK TO saveCustomSchedule;
3085: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3086: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3087: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3088: WHEN OTHERS THEN
3089: ROLLBACK TO saveCustomSchedule;
3090: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3087: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3088: WHEN OTHERS THEN
3089: ROLLBACK TO saveCustomSchedule;
3090: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3091: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3092: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3093: END IF;
3094: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3095: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3088: WHEN OTHERS THEN
3089: ROLLBACK TO saveCustomSchedule;
3090: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3091: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3092: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3093: END IF;
3094: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3095: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3096: END;
3090: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3091: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3092: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3093: END IF;
3094: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3095: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3096: END;
3097:
3098:
3148: END IF;
3149:
3150: -- Initialize message list if p_init_msg_list is set to TRUE
3151: IF FND_API.To_Boolean(p_init_msg_list) THEN
3152: FND_MSG_PUB.initialize;
3153: END IF;
3154:
3155: -- Initialize API return status to success
3156: l_return_status := FND_API.G_RET_STS_SUCCESS;
3164: if P_LOAN_ID is null then
3165: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
3166: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
3167: FND_MESSAGE.SET_TOKEN('VALUE', P_LOAN_ID);
3168: FND_MSG_PUB.ADD;
3169: RAISE FND_API.G_EXC_ERROR;
3170: end if;
3171:
3172: l_BASED_ON_TERMS := 'ORIGINATION';
3203: IF l_return_status = 'S' THEN
3204: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Successfully updated lns_loan_headers_all');
3205: ELSE
3206: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
3207: FND_MSG_PUB.Add;
3208: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3209: RAISE FND_API.G_EXC_ERROR;
3210: end if;
3211:
3204: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Successfully updated lns_loan_headers_all');
3205: ELSE
3206: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
3207: FND_MSG_PUB.Add;
3208: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3209: RAISE FND_API.G_EXC_ERROR;
3210: end if;
3211:
3212: -- getting terms version for future update
3236: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Successfully update LNS_TERMS');
3237: ELSE
3238: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_TERMS_PUB.update_term returned error: ' || substr(l_msg_data,1,225));
3239: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_TERM_FAIL');
3240: FND_MSG_PUB.Add;
3241: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3242: RAISE FND_API.G_EXC_ERROR;
3243: END IF;
3244:
3237: ELSE
3238: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_TERMS_PUB.update_term returned error: ' || substr(l_msg_data,1,225));
3239: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_TERM_FAIL');
3240: FND_MSG_PUB.Add;
3241: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3242: RAISE FND_API.G_EXC_ERROR;
3243: END IF;
3244:
3245: -- synching rate schedule
3258: -- END OF BODY OF API
3259: x_return_status := FND_API.G_RET_STS_SUCCESS;
3260:
3261: -- Standard call to get message count and if count is 1, get message info
3262: FND_MSG_PUB.Count_And_Get(
3263: p_encoded => FND_API.G_FALSE,
3264: p_count => x_msg_count,
3265: p_data => x_msg_data);
3266:
3269: EXCEPTION
3270: WHEN FND_API.G_EXC_ERROR THEN
3271: ROLLBACK TO uncustomizeSchedule;
3272: x_return_status := FND_API.G_RET_STS_ERROR;
3273: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3274: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3275: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3276: ROLLBACK TO uncustomizeSchedule;
3277: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3274: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3275: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3276: ROLLBACK TO uncustomizeSchedule;
3277: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3278: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3279: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3280: WHEN OTHERS THEN
3281: ROLLBACK TO uncustomizeSchedule;
3282: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3279: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3280: WHEN OTHERS THEN
3281: ROLLBACK TO uncustomizeSchedule;
3282: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3283: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3284: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3285: END IF;
3286: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3287: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3280: WHEN OTHERS THEN
3281: ROLLBACK TO uncustomizeSchedule;
3282: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3283: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3284: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3285: END IF;
3286: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3287: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3288: END;
3282: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3283: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3284: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3285: END IF;
3286: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3287: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3288: END;
3289:
3290:
3335: END IF;
3336:
3337: -- Initialize message list if p_init_msg_list is set to TRUE
3338: IF FND_API.To_Boolean(p_init_msg_list) THEN
3339: FND_MSG_PUB.initialize;
3340: END IF;
3341:
3342: -- Initialize API return status to success
3343: l_return_status := FND_API.G_RET_STS_SUCCESS;
3350: if P_LOAN_ID is null then
3351: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
3352: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
3353: FND_MESSAGE.SET_TOKEN('VALUE', P_LOAN_ID);
3354: FND_MSG_PUB.ADD;
3355: RAISE FND_API.G_EXC_ERROR;
3356: end if;
3357:
3358: l_BASED_ON_TERMS := 'ORIGINATION';
3408: -- END OF BODY OF API
3409: x_return_status := FND_API.G_RET_STS_SUCCESS;
3410:
3411: -- Standard call to get message count and if count is 1, get message info
3412: FND_MSG_PUB.Count_And_Get(
3413: p_encoded => FND_API.G_FALSE,
3414: p_count => x_msg_count,
3415: p_data => x_msg_data);
3416:
3419: EXCEPTION
3420: WHEN FND_API.G_EXC_ERROR THEN
3421: ROLLBACK TO customizeSchedule;
3422: x_return_status := FND_API.G_RET_STS_ERROR;
3423: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3424: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3425: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3426: ROLLBACK TO customizeSchedule;
3427: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3424: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3425: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3426: ROLLBACK TO customizeSchedule;
3427: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3428: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3429: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3430: WHEN OTHERS THEN
3431: ROLLBACK TO customizeSchedule;
3432: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3429: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3430: WHEN OTHERS THEN
3431: ROLLBACK TO customizeSchedule;
3432: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3433: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3434: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3435: END IF;
3436: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3437: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3430: WHEN OTHERS THEN
3431: ROLLBACK TO customizeSchedule;
3432: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3433: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3434: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3435: END IF;
3436: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3437: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3438: END;
3432: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3433: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3434: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3435: END IF;
3436: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3437: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3438: END;
3439:
3440:
3570: END IF;
3571:
3572: -- Initialize message list if p_init_msg_list is set to TRUE
3573: IF FND_API.To_Boolean(p_init_msg_list) THEN
3574: FND_MSG_PUB.initialize;
3575: END IF;
3576:
3577: -- Initialize API return status to success
3578: l_return_status := FND_API.G_RET_STS_SUCCESS;
3589: if P_LOAN_ID is null then
3590: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
3591: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
3592: FND_MESSAGE.SET_TOKEN('VALUE', P_LOAN_ID);
3593: FND_MSG_PUB.ADD;
3594: RAISE FND_API.G_EXC_ERROR;
3595: end if;
3596:
3597: if P_BASED_ON_TERMS is null then
3597: if P_BASED_ON_TERMS is null then
3598: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
3599: FND_MESSAGE.SET_TOKEN('PARAMETER', 'BASED_ON_TERMS');
3600: FND_MESSAGE.SET_TOKEN('VALUE', P_BASED_ON_TERMS);
3601: FND_MSG_PUB.ADD;
3602: RAISE FND_API.G_EXC_ERROR;
3603: end if;
3604:
3605: if P_AMORT_METHOD is null then
3605: if P_AMORT_METHOD is null then
3606: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
3607: FND_MESSAGE.SET_TOKEN('PARAMETER', 'AMORT_METHOD');
3608: FND_MESSAGE.SET_TOKEN('VALUE', P_AMORT_METHOD);
3609: FND_MSG_PUB.ADD;
3610: RAISE FND_API.G_EXC_ERROR;
3611: end if;
3612:
3613: if P_NEW_DUE_DATE is null then
3613: if P_NEW_DUE_DATE is null then
3614: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
3615: FND_MESSAGE.SET_TOKEN('PARAMETER', 'NEW_DUE_DATE');
3616: FND_MESSAGE.SET_TOKEN('VALUE', P_NEW_DUE_DATE);
3617: FND_MSG_PUB.ADD;
3618: RAISE FND_API.G_EXC_ERROR;
3619: end if;
3620:
3621: l_CUSTOM_TBL := P_CUSTOM_TBL;
3623: filterCustSchedule(l_custom_tbl);
3624: if l_custom_tbl.count = 0 then
3625: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Custom amortization is empty.');
3626: FND_MESSAGE.SET_NAME('LNS', 'LNS_CUST_AMORT_EMPTY');
3627: FND_MSG_PUB.Add;
3628: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3629: RAISE FND_API.G_EXC_ERROR;
3630: end if;
3631:
3624: if l_custom_tbl.count = 0 then
3625: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Custom amortization is empty.');
3626: FND_MESSAGE.SET_NAME('LNS', 'LNS_CUST_AMORT_EMPTY');
3627: FND_MSG_PUB.Add;
3628: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
3629: RAISE FND_API.G_EXC_ERROR;
3630: end if;
3631:
3632: l_return := shiftRowsByDate(P_OLD_DUE_DATE => P_OLD_DUE_DATE,
3664: -- END OF BODY OF API
3665: x_return_status := FND_API.G_RET_STS_SUCCESS;
3666:
3667: -- Standard call to get message count and if count is 1, get message info
3668: FND_MSG_PUB.Count_And_Get(
3669: p_encoded => FND_API.G_FALSE,
3670: p_count => x_msg_count,
3671: p_data => x_msg_data);
3672:
3675: EXCEPTION
3676: WHEN FND_API.G_EXC_ERROR THEN
3677: ROLLBACK TO shiftCustomSchedule;
3678: x_return_status := FND_API.G_RET_STS_ERROR;
3679: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3680: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3681: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3682: ROLLBACK TO shiftCustomSchedule;
3683: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3680: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3681: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3682: ROLLBACK TO shiftCustomSchedule;
3683: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3684: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3685: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3686: WHEN OTHERS THEN
3687: ROLLBACK TO shiftCustomSchedule;
3688: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3685: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3686: WHEN OTHERS THEN
3687: ROLLBACK TO shiftCustomSchedule;
3688: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3689: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3690: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3691: END IF;
3692: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3693: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3686: WHEN OTHERS THEN
3687: ROLLBACK TO shiftCustomSchedule;
3688: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3689: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3690: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3691: END IF;
3692: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3693: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3694: END;
3688: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3689: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3690: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3691: END IF;
3692: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3693: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3694: END;
3695:
3696:
3743: END IF;
3744:
3745: -- Initialize message list if p_init_msg_list is set to TRUE
3746: IF FND_API.To_Boolean(p_init_msg_list) THEN
3747: FND_MSG_PUB.initialize;
3748: END IF;
3749:
3750: -- Initialize API return status to success
3751: l_return_status := FND_API.G_RET_STS_SUCCESS;
3758: if P_LOAN_ID is null then
3759: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
3760: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
3761: FND_MESSAGE.SET_TOKEN('VALUE', P_LOAN_ID);
3762: FND_MSG_PUB.ADD;
3763: RAISE FND_API.G_EXC_ERROR;
3764: end if;
3765:
3766: l_BASED_ON_TERMS := 'ORIGINATION';
3791: -- END OF BODY OF API
3792: x_return_status := FND_API.G_RET_STS_SUCCESS;
3793:
3794: -- Standard call to get message count and if count is 1, get message info
3795: FND_MSG_PUB.Count_And_Get(
3796: p_encoded => FND_API.G_FALSE,
3797: p_count => x_msg_count,
3798: p_data => x_msg_data);
3799:
3802: EXCEPTION
3803: WHEN FND_API.G_EXC_ERROR THEN
3804: ROLLBACK TO reBuildCustomdSchedule;
3805: x_return_status := FND_API.G_RET_STS_ERROR;
3806: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3807: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3808: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3809: ROLLBACK TO reBuildCustomdSchedule;
3810: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3807: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3808: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3809: ROLLBACK TO reBuildCustomdSchedule;
3810: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3811: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3812: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3813: WHEN OTHERS THEN
3814: ROLLBACK TO reBuildCustomdSchedule;
3815: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3812: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3813: WHEN OTHERS THEN
3814: ROLLBACK TO reBuildCustomdSchedule;
3815: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3816: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3817: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3818: END IF;
3819: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3820: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3813: WHEN OTHERS THEN
3814: ROLLBACK TO reBuildCustomdSchedule;
3815: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3816: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3817: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3818: END IF;
3819: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3820: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3821: END;
3815: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3816: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
3817: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3818: END IF;
3819: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3820: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
3821: END;
3822:
3823:
3985: END IF;
3986:
3987: -- Initialize message list if p_init_msg_list is set to TRUE
3988: IF FND_API.To_Boolean(p_init_msg_list) THEN
3989: FND_MSG_PUB.initialize;
3990: END IF;
3991:
3992: -- Initialize API return status to success
3993: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
4009: if l_INSTALLMENT_REC.LOAN_ID is null then
4010: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
4011: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
4012: FND_MESSAGE.SET_TOKEN('VALUE', l_INSTALLMENT_REC.LOAN_ID);
4013: FND_MSG_PUB.ADD;
4014: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
4015: RAISE FND_API.G_EXC_ERROR;
4016: end if;
4017:
4010: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
4011: FND_MESSAGE.SET_TOKEN('PARAMETER', 'LOAN_ID');
4012: FND_MESSAGE.SET_TOKEN('VALUE', l_INSTALLMENT_REC.LOAN_ID);
4013: FND_MSG_PUB.ADD;
4014: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
4015: RAISE FND_API.G_EXC_ERROR;
4016: end if;
4017:
4018: if l_INSTALLMENT_REC.PAYMENT_NUMBER is null then
4018: if l_INSTALLMENT_REC.PAYMENT_NUMBER is null then
4019: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
4020: FND_MESSAGE.SET_TOKEN('PARAMETER', 'PAYMENT_NUMBER');
4021: FND_MESSAGE.SET_TOKEN('VALUE', l_INSTALLMENT_REC.PAYMENT_NUMBER);
4022: FND_MSG_PUB.ADD;
4023: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
4024: RAISE FND_API.G_EXC_ERROR;
4025: end if;
4026:
4019: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
4020: FND_MESSAGE.SET_TOKEN('PARAMETER', 'PAYMENT_NUMBER');
4021: FND_MESSAGE.SET_TOKEN('VALUE', l_INSTALLMENT_REC.PAYMENT_NUMBER);
4022: FND_MSG_PUB.ADD;
4023: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
4024: RAISE FND_API.G_EXC_ERROR;
4025: end if;
4026:
4027: if l_INSTALLMENT_REC.DUE_DATE is null then
4027: if l_INSTALLMENT_REC.DUE_DATE is null then
4028: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
4029: FND_MESSAGE.SET_TOKEN('PARAMETER', 'DUE_DATE');
4030: FND_MESSAGE.SET_TOKEN('VALUE', l_INSTALLMENT_REC.DUE_DATE);
4031: FND_MSG_PUB.ADD;
4032: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
4033: RAISE FND_API.G_EXC_ERROR;
4034: end if;
4035:
4028: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
4029: FND_MESSAGE.SET_TOKEN('PARAMETER', 'DUE_DATE');
4030: FND_MESSAGE.SET_TOKEN('VALUE', l_INSTALLMENT_REC.DUE_DATE);
4031: FND_MSG_PUB.ADD;
4032: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, FND_MSG_PUB.Get(p_encoded => 'F'));
4033: RAISE FND_API.G_EXC_ERROR;
4034: end if;
4035:
4036: open c_exist_installment(l_INSTALLMENT_REC.LOAN_ID, l_INSTALLMENT_REC.PAYMENT_NUMBER);
4096: -- END OF BODY OF API
4097: x_return_status := FND_API.G_RET_STS_SUCCESS;
4098:
4099: -- Standard call to get message count and if count is 1, get message info
4100: FND_MSG_PUB.Count_And_Get(
4101: p_encoded => FND_API.G_FALSE,
4102: p_count => x_msg_count,
4103: p_data => x_msg_data);
4104:
4107: EXCEPTION
4108: WHEN FND_API.G_EXC_ERROR THEN
4109: ROLLBACK TO addMissingInstallment;
4110: x_return_status := FND_API.G_RET_STS_ERROR;
4111: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4112: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
4113: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4114: ROLLBACK TO addMissingInstallment;
4115: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4112: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
4113: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4114: ROLLBACK TO addMissingInstallment;
4115: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4116: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4117: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
4118: WHEN OTHERS THEN
4119: ROLLBACK TO addMissingInstallment;
4120: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4117: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
4118: WHEN OTHERS THEN
4119: ROLLBACK TO addMissingInstallment;
4120: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4121: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
4122: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
4123: END IF;
4124: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4125: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
4118: WHEN OTHERS THEN
4119: ROLLBACK TO addMissingInstallment;
4120: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4121: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
4122: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
4123: END IF;
4124: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4125: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
4126: END;
4120: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4121: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
4122: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
4123: END IF;
4124: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4125: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, 'Rollbacked');
4126: END;
4127:
4128: