DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ST_CODE_CONVERSIONS

Source


1 PACKAGE BODY Okl_St_Code_Conversions AS
2 /* $Header: OKLRSCCB.pls 120.14.12010000.2 2009/01/19 12:57:39 rgooty ship $ */
3 
4   PROCEDURE CONVERT_DATE(p_date            IN     DATE,
5                          p_date_format     IN     VARCHAR2,
6                          x_char_date       OUT NOCOPY   VARCHAR2)
7   IS
8   BEGIN
9     IF p_date_format IS NOT NULL THEN
10       x_char_date := TO_CHAR(p_date,p_date_format);
11     ELSE
12       x_char_date := TO_CHAR(p_date,G_DEFAULT_DATE_FORMAT);
13     END IF;
14   EXCEPTION
15     WHEN OTHERS THEN
16       x_char_date := TO_CHAR(p_date,G_DEFAULT_DATE_FORMAT);
17   END CONVERT_DATE;
18 
19   PROCEDURE TRANSLATE_COUNTRY(p_country IN VARCHAR2,
20                               x_country OUT NOCOPY VARCHAR2)
21   IS
22   l_amp VARCHAR2(1) := '&';
23   BEGIN
24       IF p_country = 'US' THEN
25        x_country := 'U.S.';
26       ELSIF p_country = 'AU' THEN
27        x_country := 'Australia';
28       ELSIF p_country = 'AU' THEN
29        x_country := 'Australia';
30       ELSIF p_country = 'BE' THEN
31        x_country := 'Belgium';
32       ELSIF p_country = 'CA' THEN
33        x_country := 'Canada';
34       ELSIF p_country = 'CN' THEN
35        x_country := 'China';
36       ELSIF p_country = 'GB' THEN
37        x_country := 'United Kingdom';
38       ELSIF p_country = 'FR' THEN
39        x_country := 'France';
40       ELSIF p_country = 'DE' THEN
41        x_country := 'Germany';
42       ELSIF p_country = 'HK' THEN
43        x_country := 'Hong Kong';
44       ELSIF p_country = 'IN' THEN
45        x_country := 'India';
46       ELSIF p_country = 'ID' THEN
47        x_country := 'Indonesia';
48 
49       ELSIF p_country = 'IE' THEN
50        x_country := 'Ireland';
51       ELSIF p_country = 'JP' THEN
52        x_country := 'Japan';
53       ELSIF p_country = 'MX' THEN
54        x_country := 'Mexico';
55       ELSIF p_country = 'NL' THEN
56        x_country := 'Netherlands';
57       ELSIF p_country = 'ES' THEN
58        x_country := 'Spain';
59       ELSIF p_country = 'SE' THEN
60        x_country := 'Sweden';
61       ELSIF p_country = 'CH' THEN
62        x_country := 'Switzerland';
63       ELSIF p_country = 'TH' THEN
64        x_country := 'Thailand';
65       ELSIF p_country = 'PR' THEN
66        x_country := 'Puerto Rico';
67       ELSIF p_country = 'AR' THEN
68        x_country := 'Argentina';
69       ELSIF p_country = 'SG' THEN
70        x_country := 'Singapore';
71       ELSIF p_country = 'BR' THEN
72        x_country := 'Brazil';
73       ELSIF p_country = 'DK' THEN
74        x_country := 'Denmark';
75       ELSIF p_country = 'AT' THEN
76        x_country := 'Austria';
77       ELSIF p_country = 'NO' THEN
78        x_country := 'Norway';
79       ELSIF p_country = 'FI' THEN
80        x_country := 'Finland';
81       ELSIF p_country = 'IT' THEN
82        x_country := 'Italy';
83       ELSE
84         x_country := l_amp || 'lt;none' || l_amp || 'gt;';
85       END IF;
86 
87   EXCEPTION
88     WHEN OTHERS THEN
89       x_country := p_country;
90   END TRANSLATE_COUNTRY;
91 
92   PROCEDURE TRANSLATE_IRS_TAX_TREATMENT(p_irs_tax_treatment IN VARCHAR2,
93                                         x_irs_tax_treatment OUT NOCOPY VARCHAR2)
94   IS
95   BEGIN
96 
97       IF p_irs_tax_treatment = 'LESSOR' THEN
98         x_irs_tax_treatment := 'Lease';
99       ELSIF p_irs_tax_treatment = 'LESSEE' THEN
100         x_irs_tax_treatment := 'CSA';
101       ELSE
102         x_irs_tax_treatment := 'Unknown';
103       END IF;
104 
105   EXCEPTION
106     WHEN OTHERS THEN
107       x_irs_tax_treatment := p_irs_tax_treatment;
108   END TRANSLATE_IRS_TAX_TREATMENT;
109  -- gboomina BUG#4508077 modified the signature to include RVI_YN
110   PROCEDURE TRANSLATE_FASB_TREATMENT(p_fasb_treatment IN VARCHAR2,
111                                         p_rvi_yn  IN VARCHAR2,
112                                         x_fasb_treatment OUT NOCOPY VARCHAR2)
113   IS
114   BEGIN
115  -- gboomina BUG#4508077 if RVI flag is set to yes then return blank
116       IF p_rvi_yn = G_FND_YES THEN
117 	x_fasb_treatment := ' ';
118       ELSIF p_fasb_treatment = 'LEASEOP' THEN
119         x_fasb_treatment := 'Operating lease';
120       ELSIF  p_fasb_treatment = 'LEASEDF' THEN
121          x_fasb_treatment := 'Capital: Single investor (DFL)';
122       ELSIF  p_fasb_treatment = 'LEASEST' THEN
123         x_fasb_treatment := 'Capital: Single investor (DFL)';
124       ELSIF  p_fasb_treatment = 'LOAN' THEN
125         x_fasb_treatment := 'Capital: Loan';
126       ELSE
127         x_fasb_treatment := 'not defined';
128       END IF;
129 
130   EXCEPTION
131     WHEN OTHERS THEN
132       x_fasb_treatment := p_fasb_treatment;
133   END TRANSLATE_FASB_TREATMENT;
134 
135   --Added by dkagrawa on 06-Oct-2005. Overloaded method added when p_rvi_yn is not passed
136   --Bug 4654549 - Start of Changes
137   PROCEDURE TRANSLATE_FASB_TREATMENT(p_fasb_treatment IN VARCHAR2,
138                                      x_fasb_treatment OUT NOCOPY VARCHAR2)
139   IS
140   BEGIN
141     IF p_fasb_treatment = 'LEASEOP' THEN
142       x_fasb_treatment := 'Operating lease';
143     ELSIF  p_fasb_treatment = 'LEASEDF' THEN
144       x_fasb_treatment := 'Capital: Single investor (DFL)';
145     ELSIF  p_fasb_treatment = 'LEASEST' THEN
146       x_fasb_treatment := 'Capital: Single investor (DFL)';
147     ELSIF  p_fasb_treatment = 'LOAN' THEN
148       x_fasb_treatment := 'Capital: Loan';
149     ELSE
150       x_fasb_treatment := 'not defined';
151     END IF;
152 
153   EXCEPTION
154     WHEN OTHERS THEN
155       x_fasb_treatment := p_fasb_treatment;
156   END TRANSLATE_FASB_TREATMENT;
157   --Bug 4654549 - End of Changes
158 
159   PROCEDURE TRANSLATE_PURCHASE_OPTION(p_purchase_option IN VARCHAR2,
160                                       x_purchase_option OUT NOCOPY VARCHAR2)
161   IS
162   BEGIN
163 
164       IF p_purchase_option = 'FMV' THEN
165         x_purchase_option := 'FMV';
166       ELSIF p_purchase_option = 'FPO' THEN
167         x_purchase_option := 'Fixed';
168       ELSIF p_purchase_option = 'NONE' THEN
169         x_purchase_option := 'None';
170       ELSIF p_purchase_option = '$1BO' THEN
171         x_purchase_option := 'Fixed';
172       ELSIF p_purchase_option = 'FRV' THEN
173         x_purchase_option := 'None';
174       ELSIF p_purchase_option = 'MONTHLY' THEN
175         x_purchase_option := 'None';
176       ELSE
177 
178               x_purchase_option := 'None';
179       END IF;
180 
181   EXCEPTION
182     WHEN OTHERS THEN
183       x_purchase_option := p_purchase_option;
184   END TRANSLATE_PURCHASE_OPTION;
185 
186   PROCEDURE TRANSLATE_DEPRECIATION_METHOD(p_depreciation_method IN VARCHAR2,
187                                           x_depreciation_method OUT NOCOPY VARCHAR2,
188 					  p_term IN NUMBER,
189 			                  x_term OUT NOCOPY VARCHAR2,
190 					  p_salvage IN NUMBER,
191 					  x_salvage OUT NOCOPY NUMBER,
192 					  p_adr_convention IN VARCHAR2,
193 					  x_adr_convention OUT NOCOPY VARCHAR2)
194   IS
195 
196     CURSOR l_okl_depre_method_csr(p_id VARCHAR2)
197 	IS
198 	SELECT VALUE
199 	FROM   OKL_SGN_TRANSLATIONS
200 	WHERE  JTOT_OBJECT1_CODE = 'FA_METHODS'
201 	AND object1_id1 = p_id;
202 
203 	l_id VARCHAR2(30);
204 
205 	l_method_strline  VARCHAR2(20)  := 'Str line, to end';
206 	l_method_acrs3yr  VARCHAR2(20)  := 'ACRS  3 yr';
207 	l_method_acrs5yr  VARCHAR2(20)  := 'ACRS  5 yr';
208 	l_method_acrs10yr VARCHAR2(20)  := 'ACRS 10 yr';
209 	l_method_acrs15yr VARCHAR2(20)  := 'ACRS 15 yr';
210 	l_adr_convention  VARCHAR2(100) := null;
211   BEGIN
212       IF p_depreciation_method IS NOT NULL THEN
213 	    l_id := p_depreciation_method;
214 	    OPEN l_okl_depre_method_csr(l_id);
215 		FETCH l_okl_depre_method_csr INTO x_depreciation_method;
216 		CLOSE l_okl_depre_method_csr;
217 
218 		IF x_depreciation_method IS NOT NULL THEN
219  		  -- Handle return value for Term
220 		  IF x_depreciation_method = l_method_strline  OR
221 		     x_depreciation_method = l_method_acrs3yr  OR
222 		     x_depreciation_method = l_method_acrs5yr  OR
223 		     x_depreciation_method = l_method_acrs10yr OR
224 		     x_depreciation_method = l_method_acrs15yr
225           THEN
226 		    x_term := null;
227 		  ELSE
228 		    x_term := p_term/12;
229 		  END IF;
230 
231 		  -- Handle return value for Salvage
232 		  IF  x_depreciation_method = l_method_acrs3yr  OR
233 		      x_depreciation_method = l_method_acrs5yr  OR
234 		      x_depreciation_method = l_method_acrs10yr OR
235 		      x_depreciation_method = l_method_acrs15yr
236 		  THEN
237 		    x_salvage := null;
238 		  ELSE
239 		    x_salvage := p_salvage;
240 		  END IF;
241 
242 		  -- Handle return value for ADR Convention
243 		  IF  x_depreciation_method = l_method_acrs3yr  OR
244 		      x_depreciation_method = l_method_acrs5yr  OR
245 		      x_depreciation_method = l_method_acrs10yr OR
246 	  	      x_depreciation_method = l_method_acrs15yr
247 		  THEN
248 		    x_adr_convention := null;
249 		  ELSE
250 		    IF p_adr_convention IS NOT NULL THEN
251 		      TRANSLATE_DEPRE_ADRCONVENTION(p_adr_convention, l_adr_convention);
252 			END IF;
253 		    x_adr_convention := l_adr_convention;
254 		  END IF;
255 		END IF;
256       END IF;
257   EXCEPTION
258     WHEN OTHERS THEN
259 	  IF l_okl_depre_method_csr%isopen THEN
260 	    CLOSE l_okl_depre_method_csr;
261 	  END IF;
262       x_depreciation_method := p_depreciation_method;
263       x_term := p_term/12;
264   END TRANSLATE_DEPRECIATION_METHOD;
265 
266   PROCEDURE TRANSLATE_DEPRE_ADRCONVENTION(p_depreciation_adrconvention IN VARCHAR2,
267                                           x_depreciation_adrconvention OUT NOCOPY VARCHAR2)
268   IS
269     CURSOR l_okl_depre_convention_csr(p_id VARCHAR2)
270 	IS
271 	SELECT VALUE
272 	FROM   OKL_SGN_TRANSLATIONS
273 	WHERE  JTOT_OBJECT1_CODE = 'FA_CONVENTION_TYPES'
274 	AND object1_id1 = p_id;
275 
276 	l_id VARCHAR2(30);
277 
278   BEGIN
279       IF p_depreciation_adrconvention IS NOT NULL THEN
280 	    l_id := p_depreciation_adrconvention;
281 	    OPEN l_okl_depre_convention_csr(l_id);
282 		FETCH l_okl_depre_convention_csr INTO x_depreciation_adrconvention;
283 		CLOSE l_okl_depre_convention_csr;
284       END IF;
285   EXCEPTION
286     WHEN OTHERS THEN
287 	  IF l_okl_depre_convention_csr%isopen THEN
288 	    CLOSE l_okl_depre_convention_csr;
289 	  END IF;
290       x_depreciation_adrconvention := p_depreciation_adrconvention;
291   END TRANSLATE_DEPRE_ADRCONVENTION;
292 
293 
294   PROCEDURE TRANSLATE_YN(p_yn IN VARCHAR2,
295                          x_yn OUT NOCOPY VARCHAR2)
296   IS
297   BEGIN
298     IF p_yn = G_FND_YES
299     THEN
300      x_yn  := G_CSM_TRUE;
301     ELSE
302       x_yn := G_CSM_FALSE;
303     END IF;
304 
305   EXCEPTION
306     WHEN OTHERS THEN
307       x_yn := p_yn;
308   END TRANSLATE_YN;
309 
310   PROCEDURE TRANSLATE_PERIODICITY(p_periodicity IN VARCHAR2,
311                                   x_periodicity OUT NOCOPY VARCHAR2)
312   IS
313   BEGIN
314       IF p_periodicity = 'A' THEN
315         x_periodicity := 'Annual';
316       ELSIF p_periodicity = 'S' THEN
317         x_periodicity := 'Semiannual';
318       ELSIF p_periodicity = 'Q' THEN
319         x_periodicity := 'Quarterly';
320       ELSIF p_periodicity = 'M' THEN
321         x_periodicity := 'Monthly';
322 	  ELSIF p_periodicity = 'T' THEN -- smahapat fee type soln
323 	    x_periodicity := 'Stub';
324       END IF;
325   EXCEPTION
326     WHEN OTHERS THEN
327       x_periodicity := p_periodicity;
328   END TRANSLATE_PERIODICITY;
329 
330   PROCEDURE TRANSLATE_STRUCTURE(p_structure IN VARCHAR2,
331                                   x_structure OUT NOCOPY VARCHAR2)
332   IS
333     l_amp VARCHAR2(1) := '&';
334 
335   BEGIN
336     IF p_structure = '1' THEN
337      x_structure := '1st ' || l_amp || ' last';
338     ELSIF p_structure = '2' THEN
339      x_structure := '1st ' || l_amp || ' last 2';
340     ELSIF p_structure = '3' THEN
341      x_structure := '1st ' || l_amp || ' last 3';
342     ELSE
343 -- by default strucutre would be null
344 -- added akjain 06-16-2002
345        x_structure := NULL ;
346     END IF;
347 
348   EXCEPTION
349     WHEN OTHERS THEN
350       x_structure := p_structure;
351 
352   END TRANSLATE_STRUCTURE;
353 
354   PROCEDURE TRANSLATE_STREAM_TYPE(p_stream_type_name IN VARCHAR2,
355                                   p_sfe_type IN VARCHAR2,
356                                   x_stream_type_name OUT NOCOPY VARCHAR2,
357 								  x_stream_type_desc OUT NOCOPY VARCHAR2)
358   IS
359   BEGIN
360     -- special cases
361     IF p_stream_type_name = 'AMORTIZED FEE INCOME' AND
362 	   p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_ONE_OFF THEN
363 	 x_stream_type_name := 'Single Fee Accrual';
364     ELSIF p_stream_type_name = 'FEE INCOME' AND
365 	      p_sfe_type = 'SFI' THEN
366      x_stream_type_name := 'Single Periodic Income Accrual';
367 	-- end special cases
368 	ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_ONE_OFF
369     OR p_stream_type_name = 'RATE PARTICIPATION'
370     OR p_stream_type_name = 'RESIDUAL VALUE INSURANCE PREMIUM' THEN
371      x_stream_type_name := 'Fee';
372 
373 	-- removed since no periodic expense stream is generated
374     --ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_PERIODIC_EXPENSE THEN
375      --x_stream_type_name := 'Periodic Expenses';
376     ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_PERIODIC_INCOME THEN
377      x_stream_type_name := 'Periodic Income';
378     ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_SUBSIDY THEN
379 	 x_stream_type_name := 'Single Subsidy Accrual';
380     ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_RENT THEN
381      x_stream_type_name := 'Rent';
382     ELSIF p_stream_type_name = 'RENT' THEN
383      x_stream_type_name := 'Rent';
384 
385    ELSIF p_stream_type_name = 'PRINCIPAL BALANCE' THEN
386      x_stream_type_name := 'Lending Loans Balance';
387 
388     ELSIF p_stream_type_name = 'INTEREST PAYMENT' THEN
389      x_stream_type_name := 'Lending Loans Interest';
390     ELSIF p_stream_type_name = 'PRINCIPAL PAYMENT' THEN
391      x_stream_type_name := 'Lending Loans Principal';
392     ELSIF p_stream_type_name = 'RENTAL ACCRUAL' THEN
393      --smahapat 02/12/03 bugfix# 2790764
394      --x_stream_type_name := 'GL Rent Receivable Credits';
395      x_stream_type_name := 'GL Book Rent';
396     ELSIF p_stream_type_name = 'FAS 91 FEE INCOME' THEN
397      x_stream_type_name := 'Initial Direct Costs';
398     ELSIF p_stream_type_name = 'PRE-TAX INCOME' THEN
399      --x_stream_type_name := 'GL Income Earned';
400     --smahapat fixed bug 2826926
401      x_stream_type_name := 'GL Income Recognized';
402     ELSIF p_stream_type_name = 'UNEARNED INCOME' THEN
403      x_stream_type_name := 'GL Income Unearned';
404      --x_stream_type_name := 'GL Income Recognized';
405     ELSIF p_stream_type_name = 'TERMINATION VALUE' THEN
406      x_stream_type_name := 'Termination Value';
407     ELSIF p_stream_type_name = 'STIP LOSS VALUE' THEN
408 -- modified to fix bug #  2440390
409      x_stream_type_name := 'StipLoss Value';
410     ELSIF p_stream_type_name = 'BOOK DEPRECIATION' THEN
411      x_stream_type_name := 'Book Depreciation';
412     ELSIF p_stream_type_name = 'FEDERAL DEPRECIATION' THEN
413      x_stream_type_name := 'Federal Depreciation';
414     ELSIF p_stream_type_name = 'STATE DEPRECIATION' THEN
415      x_stream_type_name := 'State Depreciation';
416 	-- mvasudev, 07/18/2002
417     ELSIF p_stream_type_name = 'LOAN PAYMENT' THEN
418      x_stream_type_name := 'Lending Loans Debt Service';
419 	 -- smahapat 02/14/2003 bugfix# 2790695
420     ELSIF p_stream_type_name = 'FEE INCOME' THEN
421 	 x_stream_type_name := 'Single Periodic Income Accrual';
422     --ELSIF p_stream_type_name = 'AMORTIZED FEE INCOME' THEN
423 	 --x_stream_type_name := 'Single Fee Accrual';
424     ELSIF p_stream_type_name = 'INTEREST INCOME' THEN
425 	 x_stream_type_name := 'Single Lending Loan Accrual';
426     ELSIF p_stream_type_name = 'PERIODIC EXPENSE PAYABLE' THEN
427 	 x_stream_type_name := 'Single Periodic Expense Accrual';
428 	 -- smahapat fee type solution
429     ELSIF p_stream_type_name = 'SECURITY DEPOSIT' THEN
430 	 x_stream_type_name := 'Security Deposits';
431      ELSE
432      x_stream_type_name := p_stream_type_name;
433     END IF;
434 
435 	IF p_stream_type_name = 'RESIDUAL VALUE INSURANCE PREMIUM' THEN
436 	 x_stream_type_desc := 'Residual Insurance Premium';
437 	ELSE
438 	 x_stream_type_desc := p_stream_type_name;
439 	END IF;
440 
441   EXCEPTION
442     WHEN OTHERS THEN
443       x_stream_type_name := p_stream_type_name;
444       x_stream_type_desc := p_stream_type_name;
445 
446   END TRANSLATE_STREAM_TYPE;
447 
448   PROCEDURE TRANSLATE_STREAM_TYPE(p_stream_type_name IN VARCHAR2,
449                                   p_sfe_type IN VARCHAR2,
450 								  p_sil_type IN VARCHAR2,
451                                   x_stream_type_name OUT NOCOPY VARCHAR2,
452 	                              x_stream_type_desc OUT NOCOPY VARCHAR2)
453   IS
454   BEGIN
455     -- special cases
456     IF p_stream_type_name = 'AMORTIZED FEE INCOME' AND
457 	   p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_ONE_OFF THEN
458 	 x_stream_type_name := 'Single Fee Accrual';
459     ELSIF p_stream_type_name = 'FEE INCOME' AND
460 	      p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_PERIODIC_INCOME THEN
461      x_stream_type_name := 'Single Periodic Income Accrual';
462 	ELSIF p_stream_type_name = 'PRE-TAX INCOME' AND
463 	      p_sil_type = OKL_SIL_PVT.G_SIL_TYPE_LEASE THEN
464 	 x_stream_type_name := 'Single Rent Accrual';
465 	ELSIF p_stream_type_name = 'PRE-TAX INCOME' THEN
466 	 x_stream_type_name := 'Single Lending Loan Accrual';
467 	-- end special cases
468 	ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_ONE_OFF
469     OR p_stream_type_name = 'RATE PARTICIPATION'
470     OR p_stream_type_name = 'RESIDUAL VALUE INSURANCE PREMIUM' THEN
471      x_stream_type_name := 'Fee';
472 
473 	-- removed since no periodic expense stream is generated
474     --ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_PERIODIC_EXPENSE THEN
475      --x_stream_type_name := 'Periodic Expenses';
476     ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_PERIODIC_INCOME THEN
477      x_stream_type_name := 'Periodic Income';
478     ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_SUBSIDY THEN
479 	 x_stream_type_name := 'Single Subsidy Accrual';
480     ELSIF p_sfe_type = OKL_SFE_PVT.G_SFE_TYPE_RENT THEN
481      x_stream_type_name := 'Rent';
482     ELSIF p_stream_type_name = 'RENT' THEN
483      x_stream_type_name := 'Rent';
484 
485    ELSIF p_stream_type_name = 'PRINCIPAL BALANCE' THEN
486      x_stream_type_name := 'Lending Loans Balance';
487 
488     ELSIF p_stream_type_name = 'INTEREST PAYMENT' THEN
489      x_stream_type_name := 'Lending Loans Interest';
490     ELSIF p_stream_type_name = 'PRINCIPAL PAYMENT' THEN
491      x_stream_type_name := 'Lending Loans Principal';
492     ELSIF p_stream_type_name = 'RENTAL ACCRUAL' THEN
493      --smahapat 02/12/03 bugfix# 2790764
494      --x_stream_type_name := 'GL Rent Receivable Credits';
495      x_stream_type_name := 'Single Rent Accrual';
496     ELSIF p_stream_type_name = 'FAS 91 FEE INCOME' THEN
497      x_stream_type_name := 'Initial Direct Costs';
498     ELSIF p_stream_type_name = 'UNEARNED INCOME' THEN
499      x_stream_type_name := 'GL Income Unearned';
500      --x_stream_type_name := 'GL Income Recognized';
501     ELSIF p_stream_type_name = 'TERMINATION VALUE' THEN
502      x_stream_type_name := 'Termination Value';
503     ELSIF p_stream_type_name = 'STIP LOSS VALUE' THEN
504 -- modified to fix bug #  2440390
505      x_stream_type_name := 'StipLoss Value';
506     ELSIF p_stream_type_name = 'BOOK DEPRECIATION' THEN
507      x_stream_type_name := 'Book Depreciation';
508     ELSIF p_stream_type_name = 'FEDERAL DEPRECIATION' THEN
509      x_stream_type_name := 'Federal Depreciation';
510     ELSIF p_stream_type_name = 'STATE DEPRECIATION' THEN
511      x_stream_type_name := 'State Depreciation';
512 	-- mvasudev, 07/18/2002
513     ELSIF p_stream_type_name = 'LOAN PAYMENT' THEN
514      x_stream_type_name := 'Lending Loans Debt Service';
515 	 -- smahapat 02/14/2003 bugfix# 2790695
516     ELSIF p_stream_type_name = 'FEE INCOME' THEN
517 	 x_stream_type_name := 'Single Periodic Income Accrual';
518     --ELSIF p_stream_type_name = 'AMORTIZED FEE INCOME' THEN
519 	 --x_stream_type_name := 'Single Fee Accrual';
520     ELSIF p_stream_type_name = 'INTEREST INCOME' THEN
521 	 x_stream_type_name := 'Single Lending Loan Accrual';
522     ELSIF p_stream_type_name = 'PERIODIC EXPENSE PAYABLE' THEN
523 	 x_stream_type_name := 'Single Periodic Expense Accrual';
524 	 -- smahapat fee type solution
525     ELSIF p_stream_type_name = 'SECURITY DEPOSIT' THEN
526 	 x_stream_type_name := 'Security Deposits';
527      ELSE
528      x_stream_type_name := p_stream_type_name;
529     END IF;
530 
531 	IF p_stream_type_name = 'RESIDUAL VALUE INSURANCE PREMIUM' THEN
532 	 x_stream_type_desc := 'Residual Insurance Premium';
533 	ELSE
534 	 x_stream_type_desc := p_stream_type_name;
535 	END IF;
536 
537   EXCEPTION
538     WHEN OTHERS THEN
539       x_stream_type_name := p_stream_type_name;
540       x_stream_type_desc := p_stream_type_name;
541 
542   END TRANSLATE_STREAM_TYPE;
543 
544   PROCEDURE REVERSE_TRANSLATE_STREAM_TYPE(p_stream_type_name IN VARCHAR2,
545                                   p_stream_type_desc IN VARCHAR2,
546                                   x_stream_type_name OUT NOCOPY VARCHAR2)
547   IS
548   BEGIN
549 
550     IF p_stream_type_name = 'Fee'
551     OR p_stream_type_name = 'Periodic Expenses'
552     OR p_stream_type_name = 'Periodic Income' THEN
553 	  x_stream_type_name := p_stream_type_desc;
554     ELSIF p_stream_type_name = 'RENT' THEN
555      x_stream_type_name := 'Rent';
556     ELSIF p_stream_type_name = 'Lending Loans Balance' THEN
557      x_stream_type_name := 'PRINCIPAL BALANCE';
558     ELSIF p_stream_type_name = 'Lending Loans Interest' THEN
559      x_stream_type_name := 'INTEREST PAYMENT';
560     ELSIF p_stream_type_name = 'Lending Loans Principal' THEN
561      x_stream_type_name := 'PRINCIPAL PAYMENT';
562     --ELSIF p_stream_type_name = 'GL Rent Receivable Credits' THEN
563     --smahapat 02/12/03 bugfix# 2790764
564     ELSIF p_stream_type_name = 'GL Book Rent' THEN
565      x_stream_type_name := 'RENTAL ACCRUAL';
566     ELSIF p_stream_type_name = 'Initial Direct Costs' THEN
567      x_stream_type_name := 'FAS 91 FEE INCOME';
568     --ELSIF p_stream_type_name = 'GL Income Earned' THEN
569     --smahapat fixed bug 2826926
570     ELSIF p_stream_type_name = 'GL Income Recognized' THEN
571      x_stream_type_name := 'PRE-TAX INCOME';
572     ELSIF p_stream_type_name = 'GL Income Unearned' THEN
573     -- modified to fix bug # 2449592
574     --ELSIF p_stream_type_name = 'GL Income Recognized' THEN
575          x_stream_type_name := 'UNEARNED INCOME';
576     ELSIF p_stream_type_name = 'Termination Value' THEN
577      x_stream_type_name := 'TERMINATION VALUE';
578     ELSIF p_stream_type_name = 'StipLoss Value' THEN
579     -- modified to fix bug # 2440390
580      x_stream_type_name := 'STIP LOSS VALUE';
581     ELSIF p_stream_type_name = 'Book Depreciation' THEN
582      x_stream_type_name := 'BOOK DEPRECIATION';
583     ELSIF p_stream_type_name = 'Federal Depreciation' THEN
584      x_stream_type_name := 'FEDERAL DEPRECIATION';
585 
586     ELSIF p_stream_type_name = 'State Depreciation' THEN
587      x_stream_type_name := 'STATE DEPRECIATION';
588 	 -- smahapat 02/14/2003 bugfix# 2790695
589     ELSIF p_stream_type_name = 'GL Book Periodic Income' THEN
590 	 x_stream_type_name := 'FEE INCOME';
591     ELSIF p_stream_type_name = 'GL Book Periodic Expenses' THEN
592 	 x_stream_type_name := 'PERIODIC EXPENSE PAYABLE';
593 	 -- smahapat fee type solution
594 	ELSIF p_stream_type_name = 'Security Deposits' THEN
595 	 x_stream_type_name := 'SECURITY DEPOSIT';
596     ELSE
597      x_stream_type_name := p_stream_type_name;
598     END IF;
599 
600   EXCEPTION
601     WHEN OTHERS THEN
602       x_stream_type_name := p_stream_type_name;
603 
604   END REVERSE_TRANSLATE_STREAM_TYPE;
605 
606   PROCEDURE TRANSLATE_ADVANCE_ARREARS(p_advance_arrears IN VARCHAR2,
607                                       x_advance_arrears OUT NOCOPY VARCHAR2)
608   IS
609   BEGIN
610 	IF p_advance_arrears = G_ADVANCE THEN
611 	  x_advance_arrears := G_CSM_TRUE;
612 	ELSIF p_advance_arrears = G_ARREARS THEN
613 	  x_advance_arrears := G_CSM_FALSE;
614 	ELSE
615 	  x_advance_arrears := G_CSM_FALSE;
616 	END IF;
617   EXCEPTION
618     WHEN OTHERS THEN
619       x_advance_arrears := p_advance_arrears;
620 
621   END TRANSLATE_ADVANCE_ARREARS;
622 
623   PROCEDURE TRANSLATE_INCOME_EXPENSE(p_income_expense IN VARCHAR2,
624                                      x_income_expense OUT NOCOPY VARCHAR2)
625   IS
626   BEGIN
627 	IF p_income_expense = G_EXPENSE THEN
628 	  x_income_expense := G_CSM_TRUE;
629 	ELSIF p_income_expense = G_INCOME THEN
630 	  x_income_expense := G_CSM_FALSE;
631 	ELSE
632 	  x_income_expense := G_CSM_FALSE;
633 	END IF;
634   EXCEPTION
635     WHEN OTHERS THEN
636       x_income_expense := p_income_expense;
637 
638   END TRANSLATE_INCOME_EXPENSE;
639 
640   PROCEDURE TRANSLATE_PERCENTAGE(p_percentage IN NUMBER,
641                                  x_ratio      OUT NOCOPY VARCHAR2)
642   IS
643   BEGIN
644     IF p_percentage IS NOT NULL THEN
645       x_ratio := TO_CHAR(p_percentage/100);
646     ELSE
647 	  x_ratio := TO_CHAR(p_percentage);
648 	END IF;
649   EXCEPTION
650     WHEN OTHERS THEN
651       x_ratio := TO_CHAR(p_percentage);
652   END TRANSLATE_PERCENTAGE;
653 
654   PROCEDURE TRANSLATE_LOCK_LEVEL_STEP(p_lock_level_step IN VARCHAR2,
655                                       x_lock_amount OUT NOCOPY VARCHAR2,
656                                       x_lock_rate OUT NOCOPY VARCHAR2)
657   IS
658   BEGIN
659      IF p_lock_level_step = G_LOCK_AMOUNT THEN
660        x_lock_amount := G_CSM_TRUE;
661        x_lock_rate := G_CSM_FALSE;
662      ELSIF p_lock_level_step = G_LOCK_RATE THEN
663        x_lock_rate := G_CSM_TRUE;
664        x_lock_amount := G_CSM_FALSE;
665      ELSIF p_lock_level_step = G_LOCK_BOTH THEN
666        x_lock_amount := G_CSM_TRUE;
667        x_lock_rate   := G_CSM_TRUE;
668      ELSE
669       x_lock_amount := p_lock_level_step;
670       x_lock_rate   := p_lock_level_step;
671      END IF;
672 
673   EXCEPTION
674     WHEN OTHERS THEN
675       x_lock_amount := p_lock_level_step;
676       x_lock_rate   := p_lock_level_step;
677 
678   END TRANSLATE_LOCK_LEVEL_STEP;
679 
680   PROCEDURE TRANSLATE_MODE(p_mode IN VARCHAR2,
681                            x_mode OUT NOCOPY VARCHAR2)
682   IS
683   BEGIN
684     IF p_mode = G_MODE_LESSOR THEN
685 
686       x_mode := 'Lessor';
687     ELSIF p_mode = G_MODE_LENDER THEN
688       x_mode := 'Lender';
689     ELSIF p_mode = G_MODE_BOTH THEN
690       x_mode := 'Both';
691     ELSE
692      x_mode := p_mode;
693     END IF;
694   EXCEPTION
695     WHEN OTHERS THEN
696       x_mode := p_mode;
697 
698   END TRANSLATE_MODE;
699 
700 PROCEDURE TRANSLATE_FEE_LEVEL_TYPE(p_fee_level_type IN VARCHAR2,
701                                      x_fee_level_type OUT NOCOPY VARCHAR2)
702 IS
703 BEGIN
704   IF p_fee_level_type = G_SFE_LEVEL_PAYMENT THEN
705     x_fee_level_type := 'Payment';
706   ELSIF p_fee_level_type = G_SFE_LEVEL_FUNDING THEN
707     x_fee_level_type := 'Funding';
708   ELSIF p_fee_level_type = G_SFE_LEVEL_INTEREST THEN
709     x_fee_level_type := 'Interest ONLY';
710   ELSIF p_fee_level_type = G_SFE_LEVEL_PRINCIPAL THEN
711     x_fee_level_type := 'Principal';
712   END IF;
713 EXCEPTION
714     WHEN OTHERS THEN
715       x_fee_level_type := p_fee_level_type;
716 END TRANSLATE_FEE_LEVEL_TYPE;
717 
718   PROCEDURE REVERSE_TRANSLATE_YN(p_yn IN VARCHAR2,
719                                  x_yn OUT NOCOPY VARCHAR2)
720   IS
721   BEGIN
722     IF p_yn = G_CSM_TRUE
723     THEN
724      x_yn  := G_FND_YES;
725     ELSIF p_yn = G_CSM_FALSE
726 	THEN
727       x_yn := G_FND_NO;
728     END IF;
729 
730   EXCEPTION
731     WHEN OTHERS THEN
732       x_yn := p_yn;
733   END REVERSE_TRANSLATE_YN;
734 
735   PROCEDURE REVERSE_TRANSLATE_PERIODICITY(p_periodicity IN VARCHAR2,
736                                   x_periodicity OUT NOCOPY VARCHAR2)
737   IS
738   BEGIN
739       IF p_periodicity = 'Annual' THEN
740         x_periodicity := 'A';
741       ELSIF p_periodicity = 'Semiannual' THEN
742         x_periodicity := 'S';
743       ELSIF p_periodicity = 'Quarterly' THEN
744         x_periodicity := 'Q';
745       ELSIF p_periodicity = 'Monthly' THEN
746         x_periodicity := 'M';
747 	  ELSIF p_periodicity = 'Stub' THEN   -- smahapat fee type soln
748 	    x_periodicity := 'T';
749       END IF;
750   EXCEPTION
751     WHEN OTHERS THEN
752       x_periodicity := p_periodicity;
753   END REVERSE_TRANSLATE_PERIODICITY;
754 
755 PROCEDURE TRANSLATE_NEPA(p_nominal_yn IN VARCHAR2,
756                          p_pre_tax_yn IN VARCHAR2,
757                          x_nepa OUT NOCOPY VARCHAR2)
758 IS
759 BEGIN
760   IF p_nominal_yn = G_FND_YES THEN
761     IF p_pre_tax_yn = G_FND_YES THEN
762       x_nepa := 'Pre-tax nominal';
763     ELSIF p_pre_tax_yn = G_FND_NO THEN
764       x_nepa := 'After-tax nominal';
765     ELSE
766       x_nepa := p_pre_tax_yn;
767     END IF;
768   ELSIF p_nominal_yn = G_FND_NO THEN
769     IF p_pre_tax_yn = G_FND_YES THEN
770       x_nepa := 'Pre-tax effective';
771     ELSIF p_pre_tax_yn = G_FND_NO THEN
772       x_nepa := 'After-tax effective';
773     ELSE
774       x_nepa := p_pre_tax_yn;
775     END IF;
776   ELSE
777     x_nepa := p_nominal_yn;
778   END IF;
779 EXCEPTION
780     WHEN OTHERS THEN
781     x_nepa := p_nominal_yn;
782 END TRANSLATE_NEPA;
783 
784 PROCEDURE TRANSLATE_LOCK_LEVEL_LNSTEP(p_level_type IN VARCHAR2,
785 
786                                          p_lock_level_step IN VARCHAR2,
787 					 x_lock_amount OUT NOCOPY VARCHAR2,
788                                          x_lock_rate OUT NOCOPY VARCHAR2)
789   IS
790     l_lock_amount VARCHAR2(10);
791     l_lock_rate VARCHAR2(10);
792   BEGIN
793      IF (p_level_type = G_SFE_LEVEL_FUNDING OR p_level_type = 'Funding' ) THEN
794        x_lock_amount := NULL;
795        x_lock_rate := NULL;
796      ELSE
797 	  TRANSLATE_LOCK_LEVEL_STEP(p_lock_level_step, l_lock_amount, l_lock_rate);
798       x_lock_amount := l_lock_amount;
799       x_lock_rate   := l_lock_rate;
800      END IF;
801 
802   EXCEPTION
803     WHEN OTHERS THEN
804       x_lock_amount := G_CSM_TRUE;
805       x_lock_rate   := G_CSM_FALSE;
806 
807 END TRANSLATE_LOCK_LEVEL_LNSTEP;
808 
809 PROCEDURE TRANSLATE_SIY_TYPE(p_siy_type IN VARCHAR2,
810                                      x_siy_type OUT NOCOPY VARCHAR2)
811 IS
812 BEGIN
813   IF p_siy_type = OKL_SIY_PVT.G_SIY_TYPE_YIELD THEN
814     x_siy_type := 'Yield';
815   ELSIF p_siy_type = OKL_SIY_PVT.G_SIY_TYPE_INTEREST_RATE THEN
816     x_siy_type := 'Rates full/base term';
817   END IF;
818 EXCEPTION
819     WHEN OTHERS THEN
820       x_siy_type := p_siy_type;
821 END TRANSLATE_SIY_TYPE;
822 
823   PROCEDURE TRANSLATE_GUARANTEE_TYPE(p_guarantee_type IN VARCHAR2,
824                                      x_guarantee_type OUT NOCOPY VARCHAR2)
825   IS
826   BEGIN
827     IF p_guarantee_type = 'Lessee' or p_guarantee_type = 'LESSEE' THEN
828       x_guarantee_type := 'Lessee';
829     ELSIF p_guarantee_type = 'Other' or p_guarantee_type = 'OTHER' THEN
830       x_guarantee_type := 'Third Party';
831     ELSIF p_guarantee_type = 'Vendor' or p_guarantee_type = 'VENDOR' THEN
832       x_guarantee_type := 'Third Party';
833     ELSIF p_guarantee_type = 'NONE' THEN
834       x_guarantee_type := 'Unguaranteed';
835     END IF;
836   EXCEPTION
837     WHEN OTHERS THEN
838 	  x_guarantee_type := p_guarantee_type;
839   END TRANSLATE_GUARANTEE_TYPE;
840 
841   PROCEDURE TRANSLATE_STATISTIC_INDEX(p_target_type IN VARCHAR2,
842 									  p_statistic_index IN VARCHAR2,
843                                       x_statistic_index OUT NOCOPY VARCHAR2)
844   IS
845     l_target_type VARCHAR2(3) := 'INT';
846   BEGIN
847    fnd_file.put_line(fnd_file.log, 'st code conversion tarfet type '||p_target_type);
848    fnd_file.put_line(fnd_file.log, 'st code conversion p_statistic_index '||p_statistic_index);
849     IF p_target_type = l_target_type THEN
850 	  fnd_file.put_line(fnd_file.log, 'st code conversion set stat to 1 ');
851 	  x_statistic_index := '1';
852 	ELSE
853 	  x_statistic_index := p_statistic_index;
854 	END IF;
855    fnd_file.put_line(fnd_file.log, 'st code conversion x_statistic_index '||x_statistic_index);
856   EXCEPTION
857     WHEN OTHERS THEN
858 	  x_statistic_index := p_statistic_index;
859   END TRANSLATE_STATISTIC_INDEX;
860 
861 --New Procedure Added to determine mode.
862 
863  PROCEDURE Get_mode (p_transaction_number In NUMBER,
864 	             x_mode out NOCOPY VARCHAR2)
865  IS
866   	CURSOR Get_mode_csr(cp_transaction_no NUMBER )
867         IS
868         SELECT
869               sfe.deal_type,sil.sil_type
870         FROM   okl_stream_interfaces_v sfe,
871                okl_sif_lines_v sil
872         WHERE  transaction_number = cp_transaction_no
873         AND    sil.sif_id = sfe.id;
874 
875  BEGIN
876   FOR l_get_mode_rec in Get_mode_csr(p_transaction_number)
877   LOOP
878 	IF l_get_mode_rec.deal_type = 'LSBO' THEN
879            IF l_get_mode_rec.sil_type = 'SGN'
880            THEN
881               x_mode := 'Both';
882            ELSE
883               x_mode := 'Lessor';
884            END IF;
885 
886         ELSIF l_get_mode_rec.deal_type = 'LNBO' THEN
887           x_mode := 'Lender';
888         END IF;
889   END LOOP;
890 END Get_mode;
891 
892 
893 --New Procedure Added to FundingAndRate.
894 
895  PROCEDURE SET_FUNDINGANDRATE (p_transaction_number In NUMBER,
896                                p_fee_index In NUMBER,
897   		               x_FundingAndRate out NOCOPY VARCHAR2)
898  IS
899   	CURSOR Set_FundingAndRate_csr(cp_transaction_no NUMBER,
900                                       cp_fee_index      NUMBER
901           )
902         IS
903 	 SELECT
904 	  AMOUNT
905 	FROM
906 	  OKL_SIF_FEES SFEB,
907 	  OKL_STREAM_INTERFACES SIFB
908 	WHERE
909 	  SFEB.SIF_ID = SIFB.ID AND
910           SFEB.SFE_TYPE = 'SFR' AND
911           SFEB.FEE_INDEX_NUMBER = cp_fee_index AND
912           SIFB.transaction_number = cp_transaction_no;
913 
914  BEGIN
915   FOR l_FundingAndRate_rec in Set_FundingAndRate_csr(p_transaction_number,p_fee_index)
916   LOOP
917 	IF l_FundingAndRate_rec.amount = 0 THEN
918           x_FundingAndRate := 'true';
919         END IF;
920   END LOOP;
921 END SET_FUNDINGANDRATE;
922 
923 --Added by kthriuva for the VR build
924 --This method fetches the balance method that needs to be used for the Balance Tag
925 PROCEDURE get_balance_method(p_transaction_number IN NUMBER,
926                              x_balance_method     OUT NOCOPY VARCHAR2)
927 IS
928 
929 CURSOR get_bal_meth_csr(p_trx_number IN NUMBER)
930 IS
931 SELECT FEES.BALANCE_TYPE_CODE
932 FROM OKL_SIF_FEES_V FEES,
933      OKL_STREAM_INTERFACES SIF
934 WHERE SIF.TRANSACTION_NUMBER = p_trx_number
935 AND   SIF.ID = FEES.SIF_ID
936 AND   FEES.BALANCE_TYPE_CODE IS NOT NULL;
937 
938 l_balance_method     okl_sif_fees.balance_type_code%TYPE;
939 
940 BEGIN
941 
942   OPEN get_bal_meth_csr(p_transaction_number);
943   FETCH get_bal_meth_csr INTO l_balance_method;
944   CLOSE get_bal_meth_csr;
945 
946   IF l_balance_method = G_BALANCE_TERM THEN
947      x_balance_method := 'Term';
948   ELSIF l_balance_method = G_BALANCE_PAYMENT THEN
949      x_balance_method := 'Payments';
950   ELSIF l_balance_method = G_BALANCE_FUNDING THEN
951      x_balance_method := 'Funding';
952   ELSIF l_balance_method = G_BALANCE_RATE THEN
953      x_balance_method := 'Rate';
954   ELSE x_balance_method := 'None';
955   END IF;
956 
957 END get_balance_method;
958 
959 --This method converts the date but returns the date only in the case of
960 --stubs and when the payment type is funding
961 --For periodic payments End Accrual date is not required
962 PROCEDURE CONVERT_DATE_RESTRUCT(p_date            IN    DATE,
963                          p_date_format     IN  VARCHAR2,
964                          p_type            IN  VARCHAR2,
965                          p_periodicity     IN  VARCHAR2,
966                          x_char_date       OUT NOCOPY   VARCHAR2)
967   IS
968   BEGIN
969     IF (p_periodicity = 'Stub') OR (p_type = 'Funding') THEN
970       IF p_date_format IS NOT NULL THEN
971         x_char_date := TO_CHAR(p_date,p_date_format);
972       ELSE
973         x_char_date := TO_CHAR(p_date,G_DEFAULT_DATE_FORMAT);
974       END IF;
975     ELSE
976         x_char_date := null ;
977     END IF;
978   EXCEPTION
979     WHEN OTHERS THEN
980       x_char_date := TO_CHAR(p_date,G_DEFAULT_DATE_FORMAT);
981   END CONVERT_DATE_RESTRUCT;
982   --kthriuva - End of Changes for VR build
983 
984  -- gboomina BUG#4508077 procedure to set the description
985     -- for fee with purpose code as RVI
986     PROCEDURE SET_RVI_FEE_DESCRIPTION(p_kle_id IN NUMBER,
987                                       p_description IN VARCHAR2,
988                                               x_description OUT NOCOPY VARCHAR2)
989     IS
990       -- cursor to fetch the fee purpose code
991       CURSOR get_fee_purpose_csr(p_fee_line_id IN NUMBER) IS
992       SELECT fee_purpose_code
993       FROM OKL_K_LINES
994       WHERE ID = p_fee_line_id;
995     BEGIN
996       -- assign the value passed
997       x_description := p_description;
998       IF(p_kle_id IS NOT NULL) THEN
999         -- fetch the purpose code for the fee line
1000         FOR l_fee_purpose_rec IN get_fee_purpose_csr(p_fee_line_id => p_kle_id)
1001         LOOP
1002           -- if purpose code is RVI then update the description as Residual Insurance Premium
1003           IF(l_fee_purpose_rec.fee_purpose_code = 'RVI') THEN
1004             x_description := 'Residual Insurance Premium';
1005           END IF;
1006         END LOOP;
1007       END IF;
1008     END SET_RVI_FEE_DESCRIPTION;
1009 
1010   --Added by kthiruva on 11-Nov-2005 for the VR build
1011   --Bug 4726209 - Start of Changes
1012   --The value of the <IsAdvance> tag is passed to this procedure
1013   --When IsAdvance is false, the payment is in Arrears and a value
1014   --'Y' needs to be returned. Else a value 'N' should be returned
1015   PROCEDURE REVERSE_TRANSLATE_ADV_OR_ARR (p_yn IN VARCHAR2,
1016                                           x_yn OUT NOCOPY VARCHAR2)
1017   IS
1018   BEGIN
1019     IF p_yn = G_CSM_TRUE
1020     THEN
1021      x_yn  := G_FND_NO;
1022     ELSIF p_yn = G_CSM_FALSE
1023 	THEN
1024       x_yn := G_FND_YES;
1025     END IF;
1026   END REVERSE_TRANSLATE_ADV_OR_ARR;
1027   --Bug 4726209 - End of Changes
1028 
1029   --Added by kthiruva on 19-Apr-2006 to determine if a Paydown has been made on a contract
1030   --Bug 5161075 - Start of Changes
1031   PROCEDURE IS_PPD_AVAILABLE(p_trx_number IN NUMBER,
1032                              x_yn OUT NOCOPY VARCHAR2)
1033   IS
1034    CURSOR get_contract_id_csr(p_trx_number NUMBER)
1035    IS
1036    SELECT KHR_ID
1037    FROM OKL_STREAM_INTERFACES
1038    WHERE TRANSACTION_NUMBER = p_trx_number;
1039 
1040    --This cursor determines whether there have been any Paydowns on this Contract
1041    CURSOR is_ppd_available_csr(chrId NUMBER)
1042    IS
1043    SELECT count(crl.id)
1044    FROM okc_rule_groups_b crg,
1045         okc_rules_b crl,
1046         okl_strm_type_v sty
1047    WHERE crl.rgp_id = crg.id
1048    AND crg.rgd_code = 'LALEVL'
1049    AND crl.rule_information_category = 'LASLH'
1050    AND crg.dnz_chr_id = chrId
1051    AND crl.object1_id1 = sty.id
1052    AND sty.stream_type_purpose = 'UNSCHEDULED_PRINCIPAL_PAYMENT'
1053    ORDER BY crl.rule_information1;
1054 
1055    l_ppd_count    NUMBER := 0;
1056    l_khr_id       NUMBER;
1057 
1058 
1059   BEGIN
1060     OPEN get_contract_id_csr(p_trx_number);
1061     FETCH get_contract_id_csr INTO l_khr_id;
1062     CLOSE get_contract_id_csr;
1063 
1064     IF l_khr_id is NOT NULL THEN
1065        OPEN is_ppd_available_csr(l_khr_id);
1066        FETCH is_ppd_available_csr INTO l_ppd_count;
1067        CLOSE is_ppd_available_csr;
1068     END IF;
1069 
1070     IF l_ppd_count > 0 THEN
1071        x_yn := 'false';
1072     ELSE
1073        x_yn := 'true';
1074     END IF;
1075   END  IS_PPD_AVAILABLE;
1076   --Bug 5161075 - End of Changes
1077 
1078   --Added by rbanerje on 03-Oct-2008 to return the decimal separator in the number format
1079   --Bug 6085025 - Start of Changes
1080   PROCEDURE get_decimal_separator  ( x_seperator OUT  NOCOPY VARCHAR2 )
1081   IS
1082   BEGIN
1083      x_seperator := SUBSTR(fnd_global.nls_numeric_characters, 1,1);
1084   END get_decimal_separator;
1085   --Bug 6085025 - End of Changes
1086 
1087 END  Okl_St_Code_Conversions;