DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_BPD_ADV_MON_RPT_PVT

Source


1 PACKAGE BODY OKL_BPD_ADV_MON_RPT_PVT AS
2 /* $Header: OKLRAVRB.pls 120.13 2007/08/02 07:10:30 dcshanmu noship $ */
3 
4 -- Procedure for Advance Monies Report Generation
5 PROCEDURE         DO_REPORT(p_errbuf       OUT NOCOPY VARCHAR2,
6                             p_retcode      OUT NOCOPY NUMBER,
7                             p_rcpt_applic_stat    IN   VARCHAR2,
8                             p_From_date          IN   VARCHAR2,
9                             p_To_date            IN   VARCHAR2)
10 
11 IS
12 
13 --Cursor for Applied Receipts
14 CURSOR C_Appld_Rcpts(lap_from_date DATE, lap_to_Date DATE) IS
15 /*SELECT DISTINCT okl_ext_csh_rcpts_b.check_number check_number,
16 				okl_ext_csh_rcpts_b.receipt_date receipt_date,
17 				okl_ext_csh_rcpts_b.remittance_amount remittance_amount,
18 				okx_customer_accounts_v.NAME NAME,
19  				okl_ext_csh_rcpts_b.customer_number customer_number,
20  				okl_ext_csh_rcpts_b.CURRENCY_CODE currency_code,
21         ( SELECT  NVL(Sum(amount_applied),0)
22   	  		FROM    AR_RECEIVABLE_APPLICATIONS_ALL
23   	  		WHERE   status = 'ACC'
24  	  			AND     cash_Receipt_id = okl_ext_csh_rcpts_b.icr_id) Amount,
25  	  	  okc_k_headers_b.Contract_Number Contract_number ,
26  				okl_xtl_csh_apps_b.invoice_number invoice_number,
27 				okl_xtl_csh_apps_b.TRX_DATE TRX_DATE,
28 				okl_xtl_csh_apps_b.amount_applied amount_applied
29 FROM    okl_ext_csh_rcpts_b,okl_xtl_csh_apps_b,okl_txl_rcpt_apps_b,
30         okx_customer_accounts_v,okc_k_headers_b, okl_trx_csh_receipt_b
31 WHERE   okl_ext_csh_rcpts_b.ID = okl_xtl_csh_apps_b.XCR_ID_DETAILS
32 AND     okl_trx_csh_receipt_b.id = okl_txl_rcpt_apps_b.RCT_ID_DETAILS
33 AND     okl_txl_rcpt_apps_b.ILE_ID = okx_customer_accounts_v.ID1
34 AND     okc_k_headers_b.id(+)         = okl_txl_rcpt_apps_b.khr_id
35 AND     okl_trx_csh_receipt_b.receipt_type = 'ADV'
36 AND     okl_ext_csh_rcpts_b.RCT_ID = okl_trx_csh_receipt_b.id
37 AND     okl_ext_csh_rcpts_b.Receipt_date  >= NVL(lap_from_date,okl_ext_csh_rcpts_b.Receipt_date)
38 AND     okl_ext_csh_rcpts_b.Receipt_date  <= NVL(lap_to_Date,okl_ext_csh_rcpts_b.Receipt_date)
39 ORDER BY Check_number;
40 */
41 
42 SELECT DISTINCT a.receipt_number check_number,
43 				b.receipt_date receipt_date,
44 				b.amount remittance_amount,
45 				f.NAME NAME,
46  				b.pay_from_customer customer_number,
47  				b.CURRENCY_CODE currency_code,
48         ( SELECT  NVL(Sum(amount_applied),0)
49   	  		FROM    AR_RECEIVABLE_APPLICATIONS_ALL
50   	  		WHERE   status = 'ACC'
51  	  			AND     cash_Receipt_id = a.cash_receipt_id) Amount,
52          	  	c.Contract_Number Contract_number ,
53  				a.invoice_number invoice_number,
54  				d.trx_date trx_date,
55 		( SELECT NVL(SUM(a.line_applied + a.tax_applied), 0)
56             FROM okl_receipt_applications_uv
57             WHERE cash_receipt_id = a.cash_receipt_id) amount_applied
58 FROM    okl_receipt_applications_uv a, ar_cash_receipts_all b, okc_k_headers_b c,
59         ar_payment_schedules_all d, okl_trx_csh_receipt_b e, okx_customer_accounts_v f,
60         ar_receivable_applications_all g
61 WHERE   a.cash_receipt_id = b.cash_receipt_id
62 AND     b.cash_receipt_id = e.cash_receipt_id
63 AND     b.cash_receipt_id = g.cash_receipt_id
64 AND     g.applied_payment_schedule_id = d.payment_schedule_id
65 AND     b.pay_from_customer = f.ID1
66 AND     a.contract_number(+) = c.contract_number
67 AND     e.receipt_type = 'ADV'
68 AND     b.Receipt_date  >= NVL(null,b.Receipt_date)
69 AND     b.Receipt_date  <= NVL(null,b.Receipt_date)
70 ORDER BY Check_number;
71 
72 --Cursor for Unapplied Receipts
73 CURSOR C_Unappld_Rcpts(lup_from_date DATE, lup_to_Date DATE) IS
74 /*SELECT  DISTINCT okl_ext_csh_rcpts_b.check_number check_number,
75         okl_ext_csh_rcpts_b.receipt_date receipt_date,
76 				okl_ext_csh_rcpts_b.remittance_amount remittance_amount,
77 				okx_customer_accounts_v.NAME NAME,
78  				okl_ext_csh_rcpts_b.customer_number customer_number,
79  				okl_ext_csh_rcpts_b.CURRENCY_CODE currency_code,
80  			  ( SELECT  NVL(Sum(amount_applied),0)
81   	  		FROM    AR_RECEIVABLE_APPLICATIONS_ALL
82   	 			WHERE   status = 'ACC'
83  	  			AND     cash_Receipt_id = okl_ext_csh_rcpts_b.icr_id)Amount,
84         okc_k_headers_b.Contract_Number Contract_number
85 FROM    okl_ext_csh_rcpts_b,okl_txl_rcpt_apps_b,okx_customer_accounts_v,okc_k_headers_b, okl_trx_csh_receipt_b
86 WHERE   okl_trx_csh_receipt_b.id = okl_txl_rcpt_apps_b.RCT_ID_DETAILS
87 AND     okl_txl_rcpt_apps_b.ILE_ID = okx_customer_accounts_v.ID1
88 AND     okc_k_headers_b.id (+)        = okl_txl_rcpt_apps_b.khr_id
89 AND     okl_trx_csh_receipt_b.receipt_type = 'ADV'
90 AND     okl_ext_csh_rcpts_b.RCT_ID = okl_trx_csh_receipt_b.id
91 AND     okl_ext_csh_rcpts_b.Receipt_date  >= NVL(lup_From_date,okl_ext_csh_rcpts_b.Receipt_date)
92 AND     okl_ext_csh_rcpts_b.Receipt_date  <= NVL(lup_To_date,okl_ext_csh_rcpts_b.Receipt_date)
93 AND     NOT EXISTS (select id from okl_xtl_csh_apps_b where xcr_id_details = okl_ext_csh_rcpts_b.id)
94 ORDER BY Check_number;
95 */
96 
97 SELECT DISTINCT a.receipt_number check_number,
98 				b.receipt_date receipt_date,
99 				b.amount remittance_amount,
100 				f.NAME NAME,
101  				b.pay_from_customer customer_number,
102  				b.CURRENCY_CODE currency_code,
103         ( SELECT  NVL(Sum(amount_applied),0)
104   	  		FROM    AR_RECEIVABLE_APPLICATIONS_ALL
105   	  		WHERE   status = 'ACC'
106  	  			AND     cash_Receipt_id = a.cash_receipt_id) Amount,
107          	  	c.Contract_Number Contract_number
108 FROM    okl_receipt_applications_uv a, ar_cash_receipts_all b, okc_k_headers_b c,
109         okl_trx_csh_receipt_b e, okx_customer_accounts_v f
110 WHERE   a.cash_receipt_id = b.cash_receipt_id
111 AND     b.cash_receipt_id = e.cash_receipt_id
112 AND     b.pay_from_customer = f.ID1
113 AND     a.contract_number(+) = c.contract_number
114 AND     e.receipt_type = 'ADV'
115 AND     b.Receipt_date  >= NVL(null,b.Receipt_date)
116 AND     b.Receipt_date  <= NVL(null,b.Receipt_date)
117 AND     NOT EXISTS (select id from okl_txl_rcpt_apps_b where rct_id_details = e.id)
118 ORDER BY Check_number;
119 
120 CURSOR org_csr (l_org_id IN NUMBER) IS
121    SELECT name
122    FROM   hr_operating_units
123    WHERE  organization_id = l_org_id;
124 
125 l_receipt_no		  OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%Type DEFAULT 0;
126 l_Cust_No             AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%Type DEFAULT 0;
127 l_Contract_No         okc_k_headers_b.Contract_Number%Type DEFAULT 0;
128 
129 l_from_date           DATE;
130 l_to_date             DATE;
131 l_org_id              NUMBER := MO_GLOBAL.GET_CURRENT_ORG_ID();
132 l_org_name              VARCHAR2(240);
133 i                     NUMBER DEFAULT 0;
134 j                     NUMBER DEFAULT 0;
135 
136 --length
137 l_Receipt#_len		    CONSTANT NUMBER DEFAULT 10;
138 l_Receipt_Date_len    CONSTANT NUMBER DEFAULT 12;
139 l_Receipt_Amount_len  CONSTANT NUMBER DEFAULT 15;
140 l_Customer_Name_len   CONSTANT NUMBER DEFAULT 33;
141 l_Customer#_len       CONSTANT NUMBER DEFAULT 10;
142 l_Account_Balance_len CONSTANT NUMBER DEFAULT 15;
143 l_Contract_Number_len CONSTANT NUMBER DEFAULT 20;
144 l_Invoice#_len       	CONSTANT NUMBER DEFAULT 10;
145 l_Invoice_Date_len   	CONSTANT NUMBER DEFAULT 12;
146 l_Amount_Applied_len 	CONSTANT NUMBER DEFAULT 15;
147 l_length_till_invc    CONSTANT NUMBER DEFAULT 116;
148 l_length_till_invc1    CONSTANT NUMBER DEFAULT 121;
149 l_total_length        CONSTANT NUMBER DEFAULT 152;
150 
151 BEGIN
152 
153 l_from_date:= FND_DATE.CANONICAL_TO_DATE(p_from_date);
154 l_to_date  := FND_DATE.CANONICAL_TO_DATE(p_to_date);
155 
156   FOR org_rec IN org_csr (l_org_id)
157   LOOP
158     l_org_name := org_rec.name;
159   END LOOP;
160 
161 
162   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', 52 , ' ' ) ||  fnd_message.get_string('OKL','OKLHOMENAVTITLE') ||
163   RPAD(' ', 53 , ' ' ));
164   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
165   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
166   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', 52 , ' ' ) ||  fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_TITLE') ||
167   RPAD(' ', 53 , ' ' ));
168   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ',50, ' ' ) || '-------------------------------' || RPAD(' ', 51, ' ' ));
169   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
170   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
171   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
172   Fnd_File.PUT_LINE(Fnd_File.OUTPUT, Okl_Accounting_Util.get_message_token('OKL_LP_ACCOUNTING_PROCESS','OKL_OPERUNIT')
173     ||' : '|| SUBSTR(l_org_name, 1, 30) || RPAD(' ', 50 , ' ' ) || fnd_message.get_string('OKL','OKL_REQUEST_ID')
174     ||' : ' ||  Fnd_Global.CONC_REQUEST_ID);
175   Fnd_File.PUT_LINE(Fnd_File.OUTPUT, fnd_message.get_string('OKL','OKL_AGN_RPT_CURRENCY')
176     ||' : '|| okl_accounting_util.get_func_curr_code || RPAD(' ', 70 , ' ' )
177 	|| Okl_Accounting_Util.get_message_token('OKL_LP_ACCOUNTING_PROCESS','OKL_RUN_DATE')  ||' : ' ||
178     SUBSTR(TO_CHAR(SYSDATE, 'DD-MON-YYYY'), 1, 27));
179   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
180   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
181   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 100 , '-' ));
182   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,fnd_message.get_string('OKL','OKL_RCPT_APP_STATUS') || ' : '
183       || fnd_message.get_string('OKL',p_rcpt_applic_stat));
184   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,fnd_message.get_string('OKL','OKL_FROM_DATE') || ' : ' || l_from_date);
185   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,fnd_message.get_string('OKL','OKL_TO_DATE') || ' : '   || l_to_date);
186   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 100 , '-' ));
187 
188   --Report Header for Applied Receipts
189   IF (p_rcpt_applic_stat = 'APPLIED') OR (p_rcpt_applic_stat = 'BOTH') THEN
190 
191       FND_FILE.PUT_LINE(FND_FILE.OUTPUT, RPAD(' ', l_total_length, ' ' ));
192       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_APPLD_RCPT'));
193       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 20 , '-' ));
194       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', l_total_length+8 , '-' ));
195       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(
196       fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_RCPT_NO'),l_Receipt#_len,'TITLE')||' '||
197       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_RCPT_DT'),l_Receipt_Date_len,'TITLE')||' '||
198       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_RCPT_AMNT'),l_Receipt_Amount_len,'TITLE')||' '||
199       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_CUST_NAME'),l_Customer_Name_len,'TITLE')||' '||
200       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_CUST_NO'),l_Customer#_len,'TITLE')||' '||
201       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_ACCNT_BLNC'),l_Account_Balance_len,'TITLE')||' '||
202       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_CNTRCT_NO'),l_Contract_Number_len,'TITLE')||' '||
203       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_INVC_NO'),l_Invoice#_len,'TITLE')||' '||
204       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_INVC_DT'),l_Invoice_Date_len,'TITLE')||' '||
205       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_AMNT_APPLD'),l_Amount_Applied_len,'TITLE'));
206       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('=', l_total_length+8 , '=' ));
207       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
208   -- start report Applied Receipts
209       FOR r_appld_rcpts IN C_appld_Rcpts(l_from_date,l_to_date) LOOP
210       	j:= j+1;
211       	IF i = 0 THEN
212       		l_receipt_no 	:= r_appld_rcpts.Check_number;
213       		l_cust_no     := r_appld_rcpts.customer_number;
214       		l_contract_no := r_appld_rcpts.contract_number;
215       	END IF;
216       	i:= i+1;
217 
218         IF (l_receipt_no =  r_appld_rcpts.Check_number)
219            AND (l_cust_no = r_appld_rcpts.customer_number)
220            AND (l_contract_no = r_appld_rcpts.contract_number) THEN
221 
222            IF i = 1 AND j = 1 THEN
223             FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(r_appld_rcpts.check_number,l_Receipt#_len,'DATA')||' '||
224             GET_PROPER_LENGTH(r_appld_rcpts.receipt_date,l_Receipt_Date_len,'DATA')||' '||
225             GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_appld_rcpts.remittance_amount,r_appld_rcpts.currency_code)
226             ,l_Receipt_Amount_len,'DATA')||' '||
227             GET_PROPER_LENGTH(r_appld_rcpts.NAME,l_Customer_Name_len,'DATA')||' '||
228             GET_PROPER_LENGTH(r_appld_rcpts.customer_number,l_Customer#_len,'DATA')||' '||
229             GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_appld_rcpts.amount,r_appld_rcpts.currency_code)
230           ,l_Receipt_Amount_len,'DATA')||' '||
231             GET_PROPER_LENGTH(r_appld_rcpts.contract_number,l_Contract_Number_len,'DATA')||' '||
232             GET_PROPER_LENGTH(r_appld_rcpts.invoice_number,l_Invoice#_len,'DATA')||' '||
233             GET_PROPER_LENGTH(r_appld_rcpts.Trx_Date,l_Invoice_Date_len,'DATA')||' '||
234             GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_appld_rcpts.amount_applied,r_appld_rcpts.currency_code),l_Amount_Applied_len,'DATA'));
235            ELSE
236             FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(' ',l_length_till_invc1,'DATA')|| ' '||
237             GET_PROPER_LENGTH(r_appld_rcpts.invoice_number,l_Invoice#_len,'DATA')||' '||
238             GET_PROPER_LENGTH(r_appld_rcpts.Trx_Date,l_Invoice_Date_len,'DATA')||' '||
239             GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_appld_rcpts.amount_applied,r_appld_rcpts.currency_code),l_Amount_Applied_len,'DATA'));
240            END IF;
241         ELSE
242           i := 0;
243           FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(r_appld_rcpts.check_number,l_Receipt#_len,'DATA')||' '||
244           GET_PROPER_LENGTH(r_appld_rcpts.receipt_date,l_Receipt_Date_len,'DATA')||' '||
245           GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_appld_rcpts.remittance_amount,r_appld_rcpts.currency_code)
246           ,l_Receipt_Amount_len,'DATA')||' '||
247           GET_PROPER_LENGTH(r_appld_rcpts.NAME,l_Customer_Name_len,'DATA')||' '||
248           GET_PROPER_LENGTH(r_appld_rcpts.customer_number,l_Customer#_len,'DATA')||' '||
249           GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_appld_rcpts.amount,r_appld_rcpts.currency_code)
250           ,l_Receipt_Amount_len,'DATA')||' '||
251           GET_PROPER_LENGTH(r_appld_rcpts.contract_number,l_Contract_Number_len,'DATA')||' '||
252           GET_PROPER_LENGTH(r_appld_rcpts.invoice_number,l_Invoice#_len,'DATA')||' '||
253           GET_PROPER_LENGTH(r_appld_rcpts.Trx_Date,l_Invoice_Date_len,'DATA')||' '||
254           GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_appld_rcpts.amount_applied,r_appld_rcpts.currency_code),l_Amount_Applied_len,'DATA'));
255         END IF;
256       END LOOP;
257   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ', l_total_length , ' ' ));
258   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', l_total_length+8 , '-' ));
259   END IF;
260 
261   IF (p_rcpt_applic_stat = 'UNAPPLIED') OR (p_rcpt_applic_stat = 'BOTH') THEN
262       --Report Header for Unapplied Receipts
263 
264       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
265       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_UNAPPLD'));
266       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 20 , '-' ));
267       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', l_length_till_invc , '-' ));
268       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(
269       fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_RCPT_NO'),l_Receipt#_len,'TITLE')||' '||
270       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_RCPT_DT'),l_Receipt_Date_len,'TITLE')||' '||
271       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_RCPT_AMNT'),l_Receipt_Amount_len,'TITLE')||' '||
272       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_CUST_NAME'),l_Customer_Name_len,'TITLE')||' '||
273       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_CUST_NO'),l_Customer#_len,'TITLE')||' '||
274       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_ACCNT_BLNC'),l_Account_Balance_len,'TITLE')||' '||
275       GET_PROPER_LENGTH(fnd_message.get_string('OKL','OKL_BPD_ADV_MNY_RPT_CNTRCT_NO'),l_Contract_Number_len,'TITLE'));
276       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('=', l_length_till_invc , '=' ));
277       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
278 
279      -- start report Unapplied Receipts
280       FOR r_unappld_rcpts IN C_unappld_Rcpts(l_from_date,l_to_date) LOOP
281         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(r_unappld_rcpts.check_number,l_Receipt#_len,'DATA')||' '||
282         GET_PROPER_LENGTH(r_unappld_rcpts.receipt_date,l_Receipt_Date_len,'DATA')||' '||
283         GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_unappld_rcpts.remittance_amount,r_unappld_rcpts.currency_code)
284         ,l_Receipt_Amount_len,'DATA')||' '||
285         GET_PROPER_LENGTH(r_unappld_rcpts.NAME,l_Customer_Name_len,'DATA')||' '||
286         GET_PROPER_LENGTH(r_unappld_rcpts.customer_number,l_Customer#_len,'DATA')||' '||
287         GET_PROPER_LENGTH(okl_accounting_util.format_amount(r_unappld_rcpts.amount,r_unappld_rcpts.currency_code)
288         ,l_Receipt_Amount_len,'DATA')||' '||
289         GET_PROPER_LENGTH(r_unappld_rcpts.contract_number,l_Contract_Number_len,'DATA'));
290       END LOOP;
291   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ', l_total_length , ' ' ));
292   FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', l_length_till_invc , '-' ));
293   END IF;
294 
295 EXCEPTION
296     WHEN OTHERS THEN
297        p_errbuf := SQLERRM;
298        p_retcode := 2;
299 
300        FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLERRM);
301 
302        IF (SQLCODE <> -20001) THEN
303           FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLCODE||SQLERRM);
304          --APP_EXCEPTION.RAISE_EXCEPTION;
305           RAISE;
306         ELSE
307           FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLCODE||SQLERRM);
308           --g_error_message := Sqlerrm;
309           APP_EXCEPTION.RAISE_EXCEPTION;
310        END IF;
311 
312 END do_report;
313 
314 -- Function for length formatting
315 
316 FUNCTION  GET_PROPER_LENGTH(p_input_data          IN   VARCHAR2,
317                             p_input_length        IN   NUMBER,
318 				    p_input_type          IN   VARCHAR2)
319 RETURN VARCHAR2
320 
321 IS
322 
323 x_return_data VARCHAR2(1000);
324 
325 BEGIN
326 
327 IF (p_input_type = 'TITLE') THEN
328     IF (p_input_data IS NOT NULL) THEN
329      x_return_data := RPAD(SUBSTR(ltrim(rtrim(p_input_data)),1,p_input_length),p_input_length,' ');
330     ELSE
331      x_return_data := RPAD(' ',p_input_length,' ');
332     END IF;
333 ELSE
334     IF (p_input_data IS NOT NULL) THEN
335          IF (length(p_input_data) > p_input_length) THEN
336              x_return_data := SUBSTR(p_input_data,1,p_input_length);
337          ELSE
338              x_return_data := RPAD(p_input_data,p_input_length,' ');
339          END IF;
340     ELSE
341          x_return_data := RPAD(' ',p_input_length,' ');
342     END IF;
343 END IF;
344 
345 RETURN x_return_data;
346 
347 END GET_PROPER_LENGTH;
348 
349 END okl_bpd_adv_mon_rpt_pvt;