DBA Data[Home] [Help]

APPS.LNS_FIN_UTILS dependencies on LNS_FIN_UTILS

Line 1: PACKAGE BODY LNS_FIN_UTILS AS

1: PACKAGE BODY LNS_FIN_UTILS AS
2: /* $Header: LNS_FIN_UTILS_B.pls 120.9.12010000.3 2008/11/21 12:23:52 mbolli ship $ */
3:
4: --------------------------------------------
5: -- declaration of global variables and types

Line 2: /* $Header: LNS_FIN_UTILS_B.pls 120.9.12010000.3 2008/11/21 12:23:52 mbolli ship $ */

1: PACKAGE BODY LNS_FIN_UTILS AS
2: /* $Header: LNS_FIN_UTILS_B.pls 120.9.12010000.3 2008/11/21 12:23:52 mbolli ship $ */
3:
4: --------------------------------------------
5: -- declaration of global variables and types
6: --------------------------------------------

Line 9: G_FILE_NAME CONSTANT VARCHAR2(30) := 'LNS_FIN_UTILS_B.pls';

5: -- declaration of global variables and types
6: --------------------------------------------
7: G_DEBUG_COUNT NUMBER := 0;
8: G_DEBUG BOOLEAN := FALSE;
9: G_FILE_NAME CONSTANT VARCHAR2(30) := 'LNS_FIN_UTILS_B.pls';
10:
11: G_PKG_NAME CONSTANT VARCHAR2(30) := 'LNS_FIN_UTILS';
12: G_DAYS_COUNT NUMBER;
13: G_DAYS_IN_YEAR NUMBER;

Line 11: G_PKG_NAME CONSTANT VARCHAR2(30) := 'LNS_FIN_UTILS';

7: G_DEBUG_COUNT NUMBER := 0;
8: G_DEBUG BOOLEAN := FALSE;
9: G_FILE_NAME CONSTANT VARCHAR2(30) := 'LNS_FIN_UTILS_B.pls';
10:
11: G_PKG_NAME CONSTANT VARCHAR2(30) := 'LNS_FIN_UTILS';
12: G_DAYS_COUNT NUMBER;
13: G_DAYS_IN_YEAR NUMBER;
14:
15: --------------------------------------------

Line 259: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);

255: l_year2 := to_number(to_char(p_end_date, 'YYYY'));
256:
257: if p_day_count_method = 'ACTUAL_ACTUAL' then
258: l_day_Count := to_number(TO_CHAR(p_end_date, 'J')) - to_number(TO_CHAR(p_start_date, 'J'));
259: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);
260:
261: elsif p_day_count_method = '30/360' then
262:
263: -- begin bug fix 6498179; scherkas; 10/12/2007;

Line 265: if not LNS_FIN_UTILS.isLeapYear(l_year1) then

261: elsif p_day_count_method = '30/360' then
262:
263: -- begin bug fix 6498179; scherkas; 10/12/2007;
264: if l_month1 = 2 then
265: if not LNS_FIN_UTILS.isLeapYear(l_year1) then
266: if l_day1 = 28 then
267: l_day1 := 30;
268: if l_day2 = 28 or l_day2 = 29 then
269: l_day2 := 30;

Line 287: if not LNS_FIN_UTILS.isLeapYear(l_year2) then

283: end if;
284: end if;
285:
286: if l_month2 = 2 then
287: if not LNS_FIN_UTILS.isLeapYear(l_year2) then
288: if l_day2 = 28 then
289: l_day2 := 30;
290: if l_day1 = 28 or l_day1 = 29 then
291: l_day1 := 30;

Line 336: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);

332: l_day_count := ( ( l_day2 - l_day1 ) + 30 * ( l_month2 - l_month1 ) + 360 * ( l_year2 - l_year1 ) );
333:
334: elsif p_day_count_method = 'ACTUAL_360' then
335: l_day_Count := to_number(TO_CHAR(p_end_date, 'J')) - to_number(TO_CHAR(p_start_date, 'J'));
336: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);
337:
338: elsif p_day_count_method = 'ACTUAL_365' then
339: l_day_Count := to_number(TO_CHAR(p_end_date, 'J')) - to_number(TO_CHAR(p_start_date, 'J'));
340: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);

Line 340: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);

336: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);
337:
338: elsif p_day_count_method = 'ACTUAL_365' then
339: l_day_Count := to_number(TO_CHAR(p_end_date, 'J')) - to_number(TO_CHAR(p_start_date, 'J'));
340: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);
341:
342: elsif p_day_count_method = 'ACTUAL_365L' then
343: l_day_Count := to_number(TO_CHAR(p_end_date, 'J')) - to_number(TO_CHAR(p_start_date, 'J'));
344: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);

Line 344: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);

340: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);
341:
342: elsif p_day_count_method = 'ACTUAL_365L' then
343: l_day_Count := to_number(TO_CHAR(p_end_date, 'J')) - to_number(TO_CHAR(p_start_date, 'J'));
344: --l_day_count := LNS_FIN_UTILS.Julian_date(p_end_date) - LNS_FIN_UTILS.Julian_date(p_start_date);
345:
346: end if;
347:
348: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': day count is: ' || l_day_count || ' by method ' || p_day_count_method);

Line 373: if LNS_FIN_UTILS.isLeapYear(p_year) then

369:
370: -- if the year is actual number of days then we need to determine if
371: -- it's a leap year or not
372: elsif p_year_count_method = 'ACTUAL_ACTUAL' or p_year_count_method = 'ACTUAL_365L' then
373: if LNS_FIN_UTILS.isLeapYear(p_year) then
374: l_days_in_year := 366;
375: else
376: l_days_in_year := 365;
377: end if;

Line 893: --l_pay_dates lns_fin_utils.DATE_TBL;

889: ,p_term_period in varchar2
890: ,p_frequency in varchar2
891: ,p_start_date in date) return date
892: is
893: --l_pay_dates lns_fin_utils.DATE_TBL;
894: l_intervals NUMBER;
895: l_date date;
896: l_next_date date;
897: l_api_name varchar2(30);

Line 935: l_intervals := lns_fin_utils.intervalsInPeriod(l_term

931:
932: ELSE
933:
934: -- first get number of intervals in loan
935: l_intervals := lns_fin_utils.intervalsInPeriod(l_term
936: ,l_term_period
937: ,'MONTHLY');
938:
939: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - intervals ' || l_intervals);

Line 950: --l_next_date := lns_fin_utils.getNextDate(l_date, p_frequency, 1);

946: -- Bug#6634845 - Commented out this.
947: /*
948: WHILE i <= l_intervals LOOP
949: -- bug 5842639; scherkas 1/16/2007: changed calculation method for payment dates
950: --l_next_date := lns_fin_utils.getNextDate(l_date, p_frequency, 1);
951: l_next_date := lns_fin_utils.getNextDate(p_start_date, p_frequency, i); -- new way
952: l_date := l_next_date;
953: i := i + 1;
954: END LOOP;

Line 951: l_next_date := lns_fin_utils.getNextDate(p_start_date, p_frequency, i); -- new way

947: /*
948: WHILE i <= l_intervals LOOP
949: -- bug 5842639; scherkas 1/16/2007: changed calculation method for payment dates
950: --l_next_date := lns_fin_utils.getNextDate(l_date, p_frequency, 1);
951: l_next_date := lns_fin_utils.getNextDate(p_start_date, p_frequency, i); -- new way
952: l_date := l_next_date;
953: i := i + 1;
954: END LOOP;
955: */

Line 999: ,p_interval_type in varchar2) return lns_fin_utils.DATE_TBL

995: ,p_first_pay_date in date
996: ,p_maturity_date in date
997: ,p_pay_in_arrears in boolean
998: ,p_num_intervals in number
999: ,p_interval_type in varchar2) return lns_fin_utils.DATE_TBL
1000: is
1001: l_payment_dates lns_fin_utils.DATE_TBL;
1002: i number;
1003: l_date date;

Line 1001: l_payment_dates lns_fin_utils.DATE_TBL;

997: ,p_pay_in_arrears in boolean
998: ,p_num_intervals in number
999: ,p_interval_type in varchar2) return lns_fin_utils.DATE_TBL
1000: is
1001: l_payment_dates lns_fin_utils.DATE_TBL;
1002: i number;
1003: l_date date;
1004: l_next_date date;
1005: l_multiplier number;

Line 1027: l_default_first_pay_date := lns_fin_utils.getNextDate(p_loan_start_date, p_interval_type, 1);

1023: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - p_pay_in_arrears FALSE');
1024: end if;
1025:
1026: l_skip := false;
1027: l_default_first_pay_date := lns_fin_utils.getNextDate(p_loan_start_date, p_interval_type, 1);
1028: if l_default_first_pay_date = p_first_pay_date then
1029:
1030: i := 0;
1031: l_start_date := p_loan_start_date;

Line 1064: --l_next_date := lns_fin_utils.getNextDate(l_payment_dates(i), p_interval_type, 1); -- old way

1060: -- for paying in advance we will go thru the entire schedule
1061: for k in 1..l_intervals loop
1062:
1063: -- bug 5842639; scherkas 1/16/2007: changed calculation method for payment dates
1064: --l_next_date := lns_fin_utils.getNextDate(l_payment_dates(i), p_interval_type, 1); -- old way
1065: l_next_date := lns_fin_utils.getNextDate(l_start_date, p_interval_type, k); -- new way
1066:
1067: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' ' || i || ' - next_date ' || l_next_date);
1068: -- we should never get beyond the maturity date

Line 1065: l_next_date := lns_fin_utils.getNextDate(l_start_date, p_interval_type, k); -- new way

1061: for k in 1..l_intervals loop
1062:
1063: -- bug 5842639; scherkas 1/16/2007: changed calculation method for payment dates
1064: --l_next_date := lns_fin_utils.getNextDate(l_payment_dates(i), p_interval_type, 1); -- old way
1065: l_next_date := lns_fin_utils.getNextDate(l_start_date, p_interval_type, k); -- new way
1066:
1067: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' ' || i || ' - next_date ' || l_next_date);
1068: -- we should never get beyond the maturity date
1069:

Line 1142: l_installment_date := lns_fin_utils.getNextDate(p_date => l_first_payment_date

1138: into l_payment_frequency
1139: ,l_first_payment_date;
1140: close c_payment_info;
1141:
1142: l_installment_date := lns_fin_utils.getNextDate(p_date => l_first_payment_date
1143: ,p_interval_type => l_payment_frequency
1144: ,p_direction => p_installment_number);
1145: return l_installment_date;
1146:

Line 1218: l_installments := lns_fin_utils.intervalsInPeriod(l_term

1214: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_amortized_term_period: ' || l_amortized_term_period);
1215: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_amortization_frequency: ' || l_amortization_frequency);
1216: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_payment_frequency: ' || l_payment_frequency);
1217:
1218: l_installments := lns_fin_utils.intervalsInPeriod(l_term
1219: ,l_term_period
1220: ,l_payment_frequency);
1221:
1222: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_installments: ' || l_installments);

Line 1273: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

1269: l_prin_pay_in_arrears varchar2(1);
1270: l_prin_pay_in_arrears_bool boolean;
1271: l_pay_calc_method varchar2(30);
1272:
1273: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1274: l_custom_schedule varchar2(1);
1275:
1276: cursor c_details (p_loan_id NUMBER, p_phase varchar2)
1277: is

Line 1341: l_installments := lns_fin_utils.intervalsInPeriod(l_term

1337: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_prin_pay_in_arrears: ' || l_prin_pay_in_arrears);
1338: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_custom_schedule: ' || l_custom_schedule);
1339:
1340: if p_phase = 'OPEN' then
1341: l_installments := lns_fin_utils.intervalsInPeriod(l_term
1342: ,l_term_period
1343: ,l_payment_frequency);
1344: else
1345:

Line 1362: l_intervals := lns_fin_utils.intervalsInPeriod(l_term

1358: else
1359: l_prin_pay_in_arrears_bool := false;
1360: end if;
1361:
1362: l_intervals := lns_fin_utils.intervalsInPeriod(l_term
1363: ,l_term_period
1364: ,l_payment_frequency);
1365:
1366: l_prin_intervals := lns_fin_utils.intervalsInPeriod(l_term

Line 1366: l_prin_intervals := lns_fin_utils.intervalsInPeriod(l_term

1362: l_intervals := lns_fin_utils.intervalsInPeriod(l_term
1363: ,l_term_period
1364: ,l_payment_frequency);
1365:
1366: l_prin_intervals := lns_fin_utils.intervalsInPeriod(l_term
1367: ,l_term_period
1368: ,l_prin_payment_frequency);
1369:
1370: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_intervals: ' || l_intervals);

Line 1373: l_payment_tbl := LNS_FIN_UTILS.buildSIPPaymentSchedule(

1369:
1370: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_intervals: ' || l_intervals);
1371: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_prin_intervals: ' || l_prin_intervals);
1372:
1373: l_payment_tbl := LNS_FIN_UTILS.buildSIPPaymentSchedule(
1374: p_loan_start_date => l_loan_start_date
1375: ,p_loan_maturity_date => l_maturity_date
1376: ,p_int_first_pay_date => l_first_payment_date
1377: ,p_int_num_intervals => l_intervals

Line 1389: l_installments := lns_fin_utils.intervalsInPeriod(l_term

1385: l_installments := l_payment_tbl.count;
1386:
1387: else
1388:
1389: l_installments := lns_fin_utils.intervalsInPeriod(l_term
1390: ,l_term_period
1391: ,l_payment_frequency);
1392: end if;
1393:

Line 1443: ,p_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL

1439: ,p_loan_maturity_date in date
1440: ,p_first_pay_date in date
1441: ,p_num_intervals in number
1442: ,p_interval_type in varchar2
1443: ,p_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL
1444:
1445: is
1446: l_pay_dates LNS_FIN_UTILS.DATE_TBL;
1447: l_payment_schedule LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

Line 1446: l_pay_dates LNS_FIN_UTILS.DATE_TBL;

1442: ,p_interval_type in varchar2
1443: ,p_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL
1444:
1445: is
1446: l_pay_dates LNS_FIN_UTILS.DATE_TBL;
1447: l_payment_schedule LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1448: l_num_installments number;
1449: l_multiplier number;
1450: l_api_name varchar2(25);

Line 1447: l_payment_schedule LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

1443: ,p_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL
1444:
1445: is
1446: l_pay_dates LNS_FIN_UTILS.DATE_TBL;
1447: l_payment_schedule LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1448: l_num_installments number;
1449: l_multiplier number;
1450: l_api_name varchar2(25);
1451:

Line 1464: -- fix for bug 5842639: added p_loan_start_date parameter to LNS_FIN_UTILS.getPaymentSchedule

1460: if p_pay_in_arrears then
1461: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - p_pay_in_arrears TRUE');
1462: end if;
1463:
1464: -- fix for bug 5842639: added p_loan_start_date parameter to LNS_FIN_UTILS.getPaymentSchedule
1465: l_pay_dates := LNS_FIN_UTILS.getPaymentSchedule(p_loan_start_date => p_loan_start_date
1466: ,p_first_pay_date => p_first_pay_date
1467: ,p_maturity_Date => p_loan_maturity_date
1468: ,p_pay_in_arrears => p_pay_in_arrears

Line 1465: l_pay_dates := LNS_FIN_UTILS.getPaymentSchedule(p_loan_start_date => p_loan_start_date

1461: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - p_pay_in_arrears TRUE');
1462: end if;
1463:
1464: -- fix for bug 5842639: added p_loan_start_date parameter to LNS_FIN_UTILS.getPaymentSchedule
1465: l_pay_dates := LNS_FIN_UTILS.getPaymentSchedule(p_loan_start_date => p_loan_start_date
1466: ,p_first_pay_date => p_first_pay_date
1467: ,p_maturity_Date => p_loan_maturity_date
1468: ,p_pay_in_arrears => p_pay_in_arrears
1469: ,p_num_intervals => p_num_intervals

Line 1536: ,p_prin_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL

1532: ,p_int_pay_in_arrears in boolean
1533: ,p_prin_first_pay_date in date
1534: ,p_prin_num_intervals in number
1535: ,p_prin_interval_type in varchar2
1536: ,p_prin_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL
1537: is
1538: l_api_name varchar2(25);
1539: l_merged_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1540: l_int_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

Line 1539: l_merged_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

1535: ,p_prin_interval_type in varchar2
1536: ,p_prin_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL
1537: is
1538: l_api_name varchar2(25);
1539: l_merged_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1540: l_int_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1541: l_prin_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1542: int_count number;
1543: prin_count number;

Line 1540: l_int_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

1536: ,p_prin_pay_in_arrears in boolean) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL
1537: is
1538: l_api_name varchar2(25);
1539: l_merged_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1540: l_int_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1541: l_prin_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1542: int_count number;
1543: prin_count number;
1544: merged_count number;

Line 1541: l_prin_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

1537: is
1538: l_api_name varchar2(25);
1539: l_merged_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1540: l_int_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1541: l_prin_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
1542: int_count number;
1543: prin_count number;
1544: merged_count number;
1545: l_int_due_date date;

Line 1547: l_int_pay LNS_FIN_UTILS.PAYMENT_SCHEDULE;

1543: prin_count number;
1544: merged_count number;
1545: l_int_due_date date;
1546: l_prin_due_date date;
1547: l_int_pay LNS_FIN_UTILS.PAYMENT_SCHEDULE;
1548: l_prin_pay LNS_FIN_UTILS.PAYMENT_SCHEDULE;
1549: l_size number;
1550: i number;
1551: j number;

Line 1548: l_prin_pay LNS_FIN_UTILS.PAYMENT_SCHEDULE;

1544: merged_count number;
1545: l_int_due_date date;
1546: l_prin_due_date date;
1547: l_int_pay LNS_FIN_UTILS.PAYMENT_SCHEDULE;
1548: l_prin_pay LNS_FIN_UTILS.PAYMENT_SCHEDULE;
1549: l_size number;
1550: i number;
1551: j number;
1552:

Line 1580: l_int_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(

1576: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - PRIN pay_in_arrears FALSE');
1577: end if;
1578:
1579: -- get interest payment schedule
1580: l_int_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(
1581: p_loan_start_date => p_loan_start_date
1582: ,p_loan_maturity_date => p_loan_maturity_date
1583: ,p_first_pay_date => p_int_first_pay_date
1584: ,p_num_intervals => p_int_num_intervals

Line 1594: l_prin_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(

1590: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, j || ': ' || l_int_payment_tbl(j).PERIOD_DUE_DATE);
1591: end loop;
1592:
1593: -- get principal payment schedule
1594: l_prin_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(
1595: p_loan_start_date => p_loan_start_date
1596: ,p_loan_maturity_date => p_loan_maturity_date
1597: ,p_first_pay_date => p_prin_first_pay_date
1598: ,p_num_intervals => p_prin_num_intervals

Line 1849: END LNS_FIN_UTILS;

1845: -- FND_MSG_PUB.ADD;
1846: end;
1847:
1848:
1849: END LNS_FIN_UTILS;