111: AND representation_type = 'PRIMARY';
112:
113: BEGIN
114:
115: /* retrieve the residual amount */
116: OPEN rsrv_amt_csr(p_cntrct_id);
117: FETCH rsrv_amt_csr INTO l_tot_rsrv_amt;
118: CLOSE rsrv_amt_csr;
119:
522: AND con.jtot_object1_code = cso.jtot_object_code;
523:
524: CURSOR l_fin_sys_parms_csr IS
525: SELECT mo_global.get_current_org_id()
526: FROM dual;
527:
528: -- Get Receivables Transaction Type
529: CURSOR l_cust_trx_type_csr IS
530: SELECT ctt.cust_trx_type_id
1225: AND pol.id = poc.pol_id
1226: AND poc.status_code = 'ACTIVE'
1227: AND poc.sty_id = sty.id
1228: --Bug 6740000 ssdeshpa Impact for Loan Contracts added into the pool start
1229: AND sty.stream_type_subclass IN ('RENT', 'RESIDUAL', 'LOAN_PAYMENT')
1230: --Bug 6740000 ssdeshpa End
1231: AND poc.khr_id = chr.id
1232: AND chr.id = khr.id;
1233:
1245: AND revenue_rec_basis <> 'CASH_RECEIPT'
1246: AND due_date <= l_entry_date
1247: AND stream_type_id = p_sty_id;
1248:
1249: -- cursor to select residual value amount
1250: CURSOR residual_value_csr (p_khr_id NUMBER, p_sty_id NUMBER) IS
1251: SELECT ste.amount
1252: FROM OKL_STRM_TYPE_B sty,
1253: OKL_STREAMS stm,
1246: AND due_date <= l_entry_date
1247: AND stream_type_id = p_sty_id;
1248:
1249: -- cursor to select residual value amount
1250: CURSOR residual_value_csr (p_khr_id NUMBER, p_sty_id NUMBER) IS
1251: SELECT ste.amount
1252: FROM OKL_STRM_TYPE_B sty,
1253: OKL_STREAMS stm,
1254: OKL_STRM_ELEMENTS ste
1514: l_principal_balance NUMBER;
1515: l_nbv_loss_amt NUMBER := 0;
1516: l_niv_loss_amt NUMBER := 0;
1517: l_pb_loss_amt NUMBER := 0;
1518: l_residual_loss_amt NUMBER := 0;
1519: l_residual_amt NUMBER := 0;
1520: l_total_residual_amt NUMBER := 0;
1521: l_line_count NUMBER := 1;
1522: l_due_date DATE;
1515: l_nbv_loss_amt NUMBER := 0;
1516: l_niv_loss_amt NUMBER := 0;
1517: l_pb_loss_amt NUMBER := 0;
1518: l_residual_loss_amt NUMBER := 0;
1519: l_residual_amt NUMBER := 0;
1520: l_total_residual_amt NUMBER := 0;
1521: l_line_count NUMBER := 1;
1522: l_due_date DATE;
1523: l_sp_loss_fnd VARCHAR2(1) := 'N';
1516: l_niv_loss_amt NUMBER := 0;
1517: l_pb_loss_amt NUMBER := 0;
1518: l_residual_loss_amt NUMBER := 0;
1519: l_residual_amt NUMBER := 0;
1520: l_total_residual_amt NUMBER := 0;
1521: l_line_count NUMBER := 1;
1522: l_due_date DATE;
1523: l_sp_loss_fnd VARCHAR2(1) := 'N';
1524: l_gen_loss_fnd VARCHAR2(1) := 'N';
1878: END LOOP; -- FOR l_count IN l_bktv_tbl.FIRST..l_bktv_tbl.LAST
1879:
1880: END LOOP; -- FOR j IN open_items_csr(pool_contents_tbl(i).lease_contract_id, pool_contents_tbl(i).stream_type_id)
1881:
1882: ELSIF pool_contents_tbl(i).sty_subclass = 'RESIDUAL' THEN
1883: IF (pool_contents_tbl(i).streams_to_date IS NULL OR pool_contents_tbl(i).streams_to_date >= l_entry_date) THEN
1884:
1885: FOR x IN residual_value_csr (pool_contents_tbl(i).lease_contract_id, pool_contents_tbl(i).sty_id)
1886: LOOP
1881:
1882: ELSIF pool_contents_tbl(i).sty_subclass = 'RESIDUAL' THEN
1883: IF (pool_contents_tbl(i).streams_to_date IS NULL OR pool_contents_tbl(i).streams_to_date >= l_entry_date) THEN
1884:
1885: FOR x IN residual_value_csr (pool_contents_tbl(i).lease_contract_id, pool_contents_tbl(i).sty_id)
1886: LOOP
1887: l_residual_amt := x.amount;
1888: l_total_residual_amt := l_total_residual_amt + l_residual_amt;
1889: END LOOP;
1883: IF (pool_contents_tbl(i).streams_to_date IS NULL OR pool_contents_tbl(i).streams_to_date >= l_entry_date) THEN
1884:
1885: FOR x IN residual_value_csr (pool_contents_tbl(i).lease_contract_id, pool_contents_tbl(i).sty_id)
1886: LOOP
1887: l_residual_amt := x.amount;
1888: l_total_residual_amt := l_total_residual_amt + l_residual_amt;
1889: END LOOP;
1890:
1891: l_residual_loss_amt := l_total_residual_amt * l_least_bucket_rate/100;
1884:
1885: FOR x IN residual_value_csr (pool_contents_tbl(i).lease_contract_id, pool_contents_tbl(i).sty_id)
1886: LOOP
1887: l_residual_amt := x.amount;
1888: l_total_residual_amt := l_total_residual_amt + l_residual_amt;
1889: END LOOP;
1890:
1891: l_residual_loss_amt := l_total_residual_amt * l_least_bucket_rate/100;
1892: l_trx_header_total := l_trx_header_total + l_residual_loss_amt;
1887: l_residual_amt := x.amount;
1888: l_total_residual_amt := l_total_residual_amt + l_residual_amt;
1889: END LOOP;
1890:
1891: l_residual_loss_amt := l_total_residual_amt * l_least_bucket_rate/100;
1892: l_trx_header_total := l_trx_header_total + l_residual_loss_amt;
1893:
1894: END IF;
1895: END IF; -- IF pool_contents_tbl(i).sty_subclass = 'RENT' THEN
1888: l_total_residual_amt := l_total_residual_amt + l_residual_amt;
1889: END LOOP;
1890:
1891: l_residual_loss_amt := l_total_residual_amt * l_least_bucket_rate/100;
1892: l_trx_header_total := l_trx_header_total + l_residual_loss_amt;
1893:
1894: END IF;
1895: END IF; -- IF pool_contents_tbl(i).sty_subclass = 'RENT' THEN
1896:
2031: END IF;
2032: END IF;
2033:
2034: ELSIF l_product_subclass = 'INVESTOR' THEN
2035: IF l_residual_loss_amt IS NOT NULL AND l_residual_loss_amt > 0 THEN
2036: l_tclv_tbl(l_line_count).amount := ROUND(l_residual_loss_amt,l_precision);
2037: l_tclv_tbl(l_line_count).line_number := l_line_count;
2038: l_tclv_tbl(l_line_count).khr_id := l_cntrct_id;
2039: l_tclv_tbl(l_line_count).description := p_description;
2032: END IF;
2033:
2034: ELSIF l_product_subclass = 'INVESTOR' THEN
2035: IF l_residual_loss_amt IS NOT NULL AND l_residual_loss_amt > 0 THEN
2036: l_tclv_tbl(l_line_count).amount := ROUND(l_residual_loss_amt,l_precision);
2037: l_tclv_tbl(l_line_count).line_number := l_line_count;
2038: l_tclv_tbl(l_line_count).khr_id := l_cntrct_id;
2039: l_tclv_tbl(l_line_count).description := p_description;
2040: l_tclv_tbl(l_line_count).currency_code := l_khr_currency_code;