DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_PROPERTY_TAX_STATEMENT_PVT

Source


1 PACKAGE BODY okl_property_tax_statement_pvt AS
2 /* $Header: OKLRPTSB.pls 120.9.12010000.2 2008/12/12 20:29:01 cklee ship $ */
3 
4   -- Function for length formatting
5   -------------------------------------------------------------------------------
6   -- FUNCTION get_proper_length
7   -------------------------------------------------------------------------------
8   -- Start of comments
9   --
10   -- Function Name   : get_proper_length
11   -- Description     : This function formats the columns in the report
12   --                 :
13   -- Business Rules  :
14   -- Parameters      : p_input_data, p_input_length, p_input_type
15   -- Version         : 1.0
16   -- History         : 20-OCT-2004 GIRAO created
17   -- End of comments
18 
19   FUNCTION get_proper_length(p_input_data          IN   VARCHAR2,
20                              p_input_length        IN   NUMBER,
21                              p_input_type          IN   VARCHAR2)
22     RETURN VARCHAR2 IS
23     x_return_data VARCHAR2(1000);
24   BEGIN
25     IF(p_input_type = 'TITLE') THEN
26       IF(p_input_data IS NOT NULL) THEN
27         x_return_data := RPAD(SUBSTR(ltrim(rtrim(p_input_data)),1,p_input_length),p_input_length,' ');
28       ELSE
29         x_return_data := RPAD(' ',p_input_length,' ');
30       END IF;
31     ELSE
32       IF(p_input_data IS NOT NULL) THEN
33         IF(length(p_input_data) > p_input_length) THEN
34           x_return_data := RPAD(SUBSTR(p_input_data,1,p_input_length-3),3,'.');
35         ELSE
36           x_return_data := RPAD(p_input_data,p_input_length,' ');
37         END IF;
38       ELSE
39         x_return_data := RPAD(' ',p_input_length,' ');
40       END IF;
41     END IF;
42     RETURN x_return_data;
43   END GET_PROPER_LENGTH;
44 
45 
46   -------------------------------------------------------------------------------
47   -- PROCEDURE do_report
48   -------------------------------------------------------------------------------
49   -- Start of comments
50   --
51   -- Procedure Name  : do_report
52   -- Description     : This procedure generates the report for estimated property tax
53   --                 :
54   -- Business Rules  :
55   -- Parameters      : p_errbuf, p_retcode, p_cont_num_from, p_cont_num_to, p_asset_name_from, p_asset_name_to
56   -- Version         : 1.0
57   -- History         : 20-OCT-2004 GIRAO created
58   -- End of comments
59 
60   PROCEDURE do_report(p_errbuf            OUT  NOCOPY VARCHAR2,
61                       p_retcode           OUT  NOCOPY NUMBER,
62                       p_cont_num_from     IN   VARCHAR2,
63                       p_cont_num_to       IN   VARCHAR2,
64                       p_asset_name_from   IN   VARCHAR2,
65                       p_asset_name_to     IN   VARCHAR2)
66     IS
67     --Cursor to get the Contract id and Asset id from the given contract number and asset number range
68     CURSOR c_cntrct_asst_id_csr(cp_cont_num_from okc_k_headers_b.contract_number%TYPE,
69                            cp_cont_num_to okc_k_headers_b.contract_number%TYPE,
70                            cp_asset_name_from okx_asset_lines_v.name%TYPE,
71                            cp_asset_name_to okx_asset_lines_v.name%TYPE) IS
72      SELECT asset.chr_id CHR_ID,
73             asset.id KLE_ID
74        FROM okc_k_headers_b chr,
75             okl_k_lines_full_v asset ,
76             okc_line_styles_b ls
77       WHERE chr.contract_number BETWEEN NVL(cp_cont_num_from,chr.contract_number) AND NVL(cp_cont_num_to,chr.contract_number)
78         AND asset.chr_id = chr.id
79         AND asset.name BETWEEN NVL(cp_asset_name_from,asset.name) AND NVL(cp_asset_name_to,asset.name)
80         AND ls.id = asset.lse_id
81         AND ls.lty_code = 'FREE_FORM1';
82 
83 
84     -- Cursor to get the actual property tax.
85 --fix for bug 4003861
86     CURSOR c_act_ppt_tax(cp_khr_id OKC_K_HEADERS_B.ID%TYPE,cp_kle_id OKX_ASSET_LINES_V.ID1%TYPE) IS
87     SELECT  khr.contract_number,
88            asset.name,
89            ptv.JURSDCTN_NAME  ,
90            trunc(stream_element_date) lien_date ,
91            sty.STREAM_TYPE_PURPOSE ,
92            sty.name STREAM_TYPE,
93            trunc(ste.stream_element_date) stream_element_date,
94            ste.amount amount_imp ,
95            decode(date_billed,NULL,0,ste.amount) amount_billed,
96            decode(date_billed,NULL,0,ste.amount) amount
97      FROM  okl_strm_elements    ste,
98            okl_streams    stm,
99            okl_strm_type_v    sty,
100            okc_k_headers_b    khr,
101            okl_k_headers    khl,
102            okl_k_lines_full_v asset,
103            okc_line_styles_b ls,
104            okl_property_tax_v ptv,
105            okc_k_lines_b    kle,
106            okc_statuses_b    khs,
107            okc_statuses_b    kls
108      WHERE ste.amount             <> 0
109        AND    stm.id    = ste.stm_id
110 --       AND    stm.active_yn    = 'Y'
111 --       AND    stm.say_code    = 'CURR'
112        AND    sty.id    = stm.sty_id
113        AND    sty.billable_yn        = 'Y'
114        AND sty.STREAM_TYPE_PURPOSE = 'ACTUAL_PROPERTY_TAX'
115        AND    khr.id    = stm.khr_id
116        AND    khr.scs_code    IN ('LEASE', 'LOAN')
117        AND khr.id = cp_khr_id
118        AND asset.chr_id = khr.id
119 -- Add
120        AND asset.id = stm.kle_id
121 -- Add
122        AND asset.id = cp_kle_id
123        AND ls.id = asset.lse_id
124        AND ls.lty_code = 'FREE_FORM1'
125        AND ptv.id = ste.source_id
126        AND ste.source_table = 'OKL_PROPERTY_TAX_V'
127        AND    khl.id    = stm.khr_id
128        AND    khl.deal_type        IS NOT NULL
129        AND    khs.code    = khr.sts_code
130 --       AND    khs.ste_code    = 'ACTIVE'
131        AND    kle.id(+)    = stm.kle_id
132        AND    kls.code(+)    = kle.sts_code
133        AND    NVL (kls.ste_code, 'ACTIVE') IN ('ACTIVE', 'TERMINATED');
134 
135    -- Cursor to get the estimated property tax.
136    CURSOR c_estm_ppt_tax(cp_khr_id OKC_K_HEADERS_B.ID%TYPE,cp_kle_id OKX_ASSET_LINES_V.ID1%TYPE) IS
137      SELECT khr.contract_number,
138             asset.name,
139             sty.STREAM_TYPE_PURPOSE ,
140             sty.name STREAM_TYPE,
141             trunc(ste.stream_element_date) stream_element_date,
142             ste.amount  amount
143        FROM	okl_strm_elements	ste,
144             okl_streams			    stm,
145             okl_strm_type_v			sty,
146             okc_k_headers_all_b			khr,
147             okl_k_lines_full_v    asset,
148             okc_line_styles_b        ls,
149             okl_k_headers			khl,
150             okc_k_lines_b			kle,
151             okc_statuses_b			khs,
152             okc_statuses_b			kls
153       WHERE ste.amount 			<> 0
154             AND	stm.id				= ste.stm_id
155             AND	ste.date_billed		IS NOT NULL
156 --            AND	stm.active_yn		= 'Y'
157           --AND stm.kle_id          = cp_kle_id
158 --            AND	stm.say_code		= 'CURR'
159             AND	sty.id				= stm.sty_id
160             AND	sty.billable_yn		= 'Y'
161             AND sty.STREAM_TYPE_PURPOSE = 'ESTIMATED_PROPERTY_TAX'
162             AND	khr.id				= stm.khr_id
163             AND	khr.scs_code		IN ('LEASE', 'LOAN')
164           --AND khr.sts_code        IN ( 'TERMINATED')
165             AND khr.id              = cp_khr_id
166             AND asset.chr_id = khr.id
167 -- Add
168             AND asset.id = stm.kle_id
169 -- Add
170             AND asset.id = cp_kle_id
171             AND ls.id = asset.lse_id
172             AND ls.lty_code = 'FREE_FORM1'
173             AND	khl.id				= stm.khr_id
174             AND	khl.deal_type		IS NOT NULL
175             AND	khs.code			= khr.sts_code
176 --            AND	khs.ste_code		= 'ACTIVE'
177             AND	kle.id			(+)	= stm.kle_id
178             AND	kls.code		(+)	= kle.sts_code
179             AND	NVL (kls.ste_code, 'ACTIVE') IN ('ACTIVE', 'TERMINATED')
180        UNION
181      SELECT khr.contract_number,
182             asset.name,
183             sty.STREAM_TYPE_PURPOSE ,
184             sty.name STREAM_TYPE,
185             tai.date_invoiced,
186             til.amount amount
187        FROM okc_k_headers_all_b khr,
188             okl_trx_ar_invoices_b tai,
189             okl_txl_ar_inv_lns_b til,
190             okl_strm_type_v sty,
191             okl_k_lines_full_v asset,
192             okc_line_styles_b ls
193       WHERE khr.id = cp_khr_id
194         AND asset.chr_id = khr.id
195         AND asset.id = til.kle_id
196         AND ls.id = asset.lse_id
197         AND ls.lty_code = 'FREE_FORM1'
198      -- AND khr.sts_code        IN ( 'TERMINATED')
199         AND tai.khr_id = khr.id
200         AND tai.id = til.tai_id
201         AND tai.qte_id IS NOT NULL
202         AND til.sty_id = sty.id
203         AND til.kle_id = cp_kle_id
204         AND sty.STREAM_TYPE_PURPOSE = 'AMPRTX';
205 
206    -- Cursor to get the adjusted property tax.
207 --fix for bug 4003861
208    CURSOR c_adjst_ppt_tax(cp_khr_id OKC_K_HEADERS_B.ID%TYPE,cp_kle_id OKX_ASSET_LINES_V.ID1%TYPE) IS
209      SELECT khr.contract_number,
210             asset.name,
211             sty.STREAM_TYPE_PURPOSE ,
212             sty.name STREAM_TYPE,
213             trunc(ste.stream_element_date) stream_element_date,
214             ste.amount amount
215       FROM	 okl_strm_elements	ste,
216             okl_streams stm,
217             okl_strm_type_v	sty,
218             okc_k_headers_b	khr,
219             okl_k_headers	khl,
220             okl_k_lines_full_v asset,
221             okc_line_styles_b ls,
222             okc_k_lines_b	kle,
223             okc_statuses_b	khs,
224             okc_statuses_b	kls
225       WHERE ste.amount 			<> 0
226         AND	ste.date_billed		IS NOT NULL
227         AND	stm.id				= ste.stm_id
228         AND	stm.active_yn		= 'Y'
229      -- AND stm.kle_id          = cp_kle_id
230         AND	stm.say_code		= 'CURR'
231         AND	sty.id				= stm.sty_id
232         AND	sty.billable_yn		= 'Y'
233         AND sty.STREAM_TYPE_PURPOSE = 'ADJUSTED_PROPERTY_TAX'
234         AND	khr.id				= stm.khr_id
235         AND	khr.scs_code		IN ('LEASE', 'LOAN')
236     --  AND khr.sts_code        IN ( 'TERMINATED')
237         AND khr.id = cp_khr_id
238         AND asset.chr_id = khr.id
239 -- Add
240         AND asset.id = stm.kle_id
241 -- Add
242         AND asset.id = cp_kle_id
243         AND ls.id = asset.lse_id
244         AND ls.lty_code = 'FREE_FORM1'
245         AND	khl.id	= stm.khr_id
246         AND	khl.deal_type		IS NOT NULL
247         AND	khs.code	= khr.sts_code
248         AND	khs.ste_code		= 'ACTIVE'
249         AND	kle.id	(+)	= stm.kle_id
250         AND	kls.code(+)	= kle.sts_code
251         AND	NVL (kls.ste_code, 'ACTIVE') IN ('ACTIVE', 'TERMINATED');
252 
253     CURSOR get_operating_unit_csr IS
254       SELECT name
255         FROM hr_operating_units
256        WHERE organization_id = mo_global.get_current_org_id() ;
257     --local variables
258     l_op_unit             HR_OPERATING_UNITS.name%type;
259     l_curr_code           VARCHAR2(30) DEFAULT NULL;
260     l_request_id          NUMBER DEFAULT 0;
261     l_cont_id             OKC_K_HEADERS_B.id%TYPE DEFAULT NULL;
262     l_asset_id            OKX_ASSET_LINES_V.id1%TYPE DEFAULT NULL;
263     l_act_amt             NUMBER DEFAULT 0;
264     -- added by stmathew
265     l_imp_amt             NUMBER DEFAULT 0;
266 
267     l_est_amt             NUMBER DEFAULT 0;
268     l_adjst_amt           NUMBER DEFAULT 0;
269     l_excs_amt            NUMBER DEFAULT 0;
270 
271     --length
272     l_Contract#_len		     CONSTANT NUMBER DEFAULT 30;
273     l_asset_name_len      CONSTANT NUMBER DEFAULT 18;
274     l_jurisd_name_len     CONSTANT NUMBER DEFAULT 18;
275     l_lien_date_len       CONSTANT NUMBER DEFAULT 10;
276     l_apt_amount_len      CONSTANT NUMBER DEFAULT 16;
277     l_amt_billable_len    CONSTANT NUMBER DEFAULT 13;
278     l_strm_purpose_len    CONSTANT NUMBER DEFAULT 25;
279     l_strm_type_len       CONSTANT NUMBER DEFAULT 40;
280     l_date_len            CONSTANT NUMBER DEFAULT 12;
281     l_bill_amount_len     CONSTANT NUMBER DEFAULT 10;
282     l_lim_length_len      CONSTANT NUMBER DEFAULT 116;
283     l_total_length_len    CONSTANT NUMBER DEFAULT 193;
284 
285     -- added by Stmathew
286     -- to decide whether or print the trailing line
287     some_data             VARCHAR2(1);
288 
289   BEGIN
290     -- one time initializations
291     l_curr_code := okl_accounting_util.get_func_curr_code;
292     l_request_id := Fnd_Global.CONC_REQUEST_ID;
293 
294     --Product Title for the report: Oracle Leasing and Finance Management
295     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ', 63 , ' ' ) ||  fnd_message.get_string('OKL','OKL_TITLE') || RPAD(' ', 63 , ' ' ));
296     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
297 
298     --Title of the report: Property Tax Statement
299     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ', 64 , ' ' ) || fnd_message.get_string('OKL','OKL_BPD_PTAX_RPT_TITLE') || RPAD(' ', 53 , ' ' ));
300     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', l_total_length_len, '-' ));
301     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
302     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
303 
304     --Fetch Operating unit from the profile
305     OPEN get_operating_unit_csr;
306     FETCH get_operating_unit_csr INTO l_op_unit;
307     CLOSE get_operating_unit_csr;
308 
309     --Display Operating unit, Request Id and input parameters. Display the input parameters only if they have been passed
310     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(fnd_message.get_string( 'OKL', 'OKL_OPERATING_UNIT')|| ':',l_Contract#_len,' ')
311                       || RPAD(l_op_unit,30,' ') || RPAD( ' ', 72 , ' ') || RPAD(fnd_message.get_string('FND', 'REQUEST ID'),25,' ') ||':'|| l_request_id);
312     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,fnd_message.get_string( 'AR', 'AR_NLS_AAP_REPORT_PARAMETERS')||':' );
313 
314     IF(p_cont_num_from IS NOT NULL) THEN
315       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ',l_Contract#_len, ' ')  || RPAD(fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_CNTRCT_FRM'),22,' ') ||':'|| p_cont_num_from );
316     END IF;
317     IF(p_cont_num_to IS NOT NULL) THEN
318       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ',l_Contract#_len, ' ')  || RPAD(fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_CNTRCT_TO'),22,' ') ||':'|| p_cont_num_to);
319     END IF;
320     IF(p_asset_name_from IS NOT NULL) THEN
321       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ',l_Contract#_len, ' ')  || RPAD(fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_ASSET_FRM'),22,' ')||':' ||p_asset_name_from);
322     END IF;
323     IF(p_asset_name_to IS NOT NULL) THEN
324       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ',l_Contract#_len, ' ')  || RPAD(fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_ASSET_TO'),22,' ')||':'||p_asset_name_to );
325     END IF;
326 
327     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
328 
329     --Display the Titles Actual Property Tax and Billing Details
330     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ',l_Contract#_len, ' ')  || fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_ACT_TITLE') || RPAD(' ',58, ' ') || fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_BILL_TITLE') );
331     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 105, '-')||'  '||RPAD('-',86,'-'));
332 
333     --Display all the column headers in the table
334     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_CTR_NUM'),l_Contract#_len,'TITLE')||
335                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_ASSET_NUMBER' ),l_asset_name_len,'TITLE')||
336                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_JURISDCTN') ,l_jurisd_name_len,'TITLE')||
337                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_LIEN_DATE') ,l_lien_date_len,'TITLE')||
338                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_AMT_IMP' ) ,l_apt_amount_len,'TITLE')||
339                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_AMT_BILL') ,l_amt_billable_len,'TITLE')||
340                                       RPAD( ' ', 2, ' ') ||
341                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_STRM_PURP' ) ,l_strm_purpose_len,'TITLE')||
342                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL', 'OKL_BPD_PTAX_RPT_STRM_TYPE') ,l_strm_type_len,'TITLE')||
343                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL','OKL_BPD_PTAX_RPT_DATE'),l_date_len,'TITLE')||
344                                       GET_PROPER_LENGTH( fnd_message.get_string('OKL','OKL_BPD_PTAX_RPT_AMT' ) ,l_bill_amount_len,'TITLE'));
345     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 105, '-' )||'  '||RPAD('-',86,'-' ));
346     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 105, '-' )||'  '||RPAD('-',86,'-' ));
347 
348     --Open the cursor and fetch all contracts and assets in the specified range
349     FOR r_cntrct_asst_id_csr IN c_cntrct_asst_id_csr(p_cont_num_from,p_cont_num_to,p_asset_name_from,p_asset_name_to) LOOP
350       --get  single contract and its asset from cursor
351       l_cont_id  := r_cntrct_asst_id_csr.chr_id;
352       l_asset_id := r_cntrct_asst_id_csr.kle_id;
353       --initialise the amounts to zero
354       l_act_amt  := 0;
355       l_imp_amt  := 0;
356       l_est_amt  := 0;
357       l_adjst_amt:= 0;
358       l_excs_amt := 0;
359 
360       -- added by stmathew
361       some_data := 'N';
362       --Fetch Actual property tax for the asset
363       FOR p_act_ppt_tax IN c_act_ppt_tax(l_cont_id,l_asset_id) LOOP
364         some_data := 'Y';
365         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(p_act_ppt_tax.contract_number,l_Contract#_len,'DATA')||
366                                           GET_PROPER_LENGTH(p_act_ppt_tax.name,l_asset_name_len,'DATA')||
367                                           GET_PROPER_LENGTH(p_act_ppt_tax.JURSDCTN_NAME ,l_jurisd_name_len,'DATA')||
368                                           GET_PROPER_LENGTH(p_act_ppt_tax.lien_date ,l_lien_date_len,'DATA')||
369                                           GET_PROPER_LENGTH(okl_accounting_util.format_amount(p_act_ppt_tax.amount_imp,l_curr_code) ,l_apt_amount_len,'DATA')||
370                                           GET_PROPER_LENGTH(okl_accounting_util.format_amount(p_act_ppt_tax.amount_billed,l_curr_code),l_amt_billable_len,'DATA')||
371                                           RPAD( ' ', 2, ' ') ||
372                                           GET_PROPER_LENGTH(p_act_ppt_tax.STREAM_TYPE_PURPOSE,l_strm_purpose_len,'DATA')||
373                                           GET_PROPER_LENGTH(p_act_ppt_tax.STREAM_TYPE,l_strm_type_len,'DATA')||
374                                           GET_PROPER_LENGTH(p_act_ppt_tax.stream_element_date,l_date_len,'DATA')||
375                                           GET_PROPER_LENGTH(okl_accounting_util.format_amount(p_act_ppt_tax.amount,l_curr_code) ,l_bill_amount_len,'DATA'));
376         l_act_amt :=  l_act_amt +  p_act_ppt_tax.amount;
377         l_imp_amt := l_imp_amt  +  p_act_ppt_tax.amount_imp;
378       END LOOP;
379       --Fetch Estimated property tax for the asset
380       FOR p_estm_ppt_tax IN c_estm_ppt_tax(l_cont_id,l_asset_id) LOOP
381         some_data := 'Y';
382         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(p_estm_ppt_tax.contract_number,l_Contract#_len,'DATA')||
383                                           GET_PROPER_LENGTH(p_estm_ppt_tax.name,l_asset_name_len,'DATA')||
384                                           GET_PROPER_LENGTH(NULL ,l_jurisd_name_len,'DATA')||
385                                           GET_PROPER_LENGTH(NULL ,l_lien_date_len,'DATA')||
386                                           GET_PROPER_LENGTH(NULL,l_apt_amount_len,'DATA')||
387                                           GET_PROPER_LENGTH(NULL ,l_amt_billable_len,'DATA')||
388                                           RPAD( ' ', 2, ' ') ||
389                                           GET_PROPER_LENGTH(p_estm_ppt_tax.STREAM_TYPE_PURPOSE ,l_strm_purpose_len,'DATA')||
390                                           GET_PROPER_LENGTH(p_estm_ppt_tax.STREAM_TYPE ,l_strm_type_len,'DATA')||
391                                           GET_PROPER_LENGTH(p_estm_ppt_tax.stream_element_date,l_date_len,'DATA')||
392                                           GET_PROPER_LENGTH(okl_accounting_util.format_amount(p_estm_ppt_tax.amount,l_curr_code) ,l_bill_amount_len,'DATA'));
393         l_est_amt :=  l_est_amt +  p_estm_ppt_tax.amount;
394       END LOOP;
395       --Fetch Adjusted property tax for the asset
396       FOR p_adjst_ppt_tax IN c_adjst_ppt_tax(l_cont_id,l_asset_id) LOOP
397         some_data := 'Y';
398         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,GET_PROPER_LENGTH(p_adjst_ppt_tax.contract_number,l_Contract#_len,'DATA')||
399                                           GET_PROPER_LENGTH(p_adjst_ppt_tax.name,l_asset_name_len,'DATA')||
400                                           GET_PROPER_LENGTH(NULL ,l_jurisd_name_len,'DATA')||
401                                           GET_PROPER_LENGTH(NULL ,l_lien_date_len,'DATA')||
402                                           GET_PROPER_LENGTH(NULL,l_apt_amount_len,'DATA')||
403                                           GET_PROPER_LENGTH(NULL ,l_amt_billable_len,'DATA')||
404                                           RPAD( ' ', 2, ' ') ||
405                                           GET_PROPER_LENGTH(p_adjst_ppt_tax.STREAM_TYPE_PURPOSE ,l_strm_purpose_len,'DATA')||
406                                           GET_PROPER_LENGTH(p_adjst_ppt_tax.STREAM_TYPE ,l_strm_type_len,'DATA')||
407                                           GET_PROPER_LENGTH(p_adjst_ppt_tax.stream_element_date,l_date_len,'DATA')||
408                                           GET_PROPER_LENGTH(okl_accounting_util.format_amount(p_adjst_ppt_tax.amount,l_curr_code) ,l_bill_amount_len,'DATA'));
409         l_adjst_amt :=  l_adjst_amt +  p_adjst_ppt_tax.amount;
410       END LOOP;
411 
412       -- To avoid unnecessary printing of lines
413       IF some_data = 'Y' THEN
414         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 105, '-' )||'  '||RPAD('-',86,'-' ));
415 
416 
417 --      IF(l_act_amt <> 0 OR l_est_amt <>0 OR l_adjst_amt <> 0) THEN
418 --        FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 105, '-' )||'  '||RPAD('-',86,'-' ));
419         --l_excs_amt := l_act_amt - l_est_amt - l_adjst_amt;
420         l_excs_amt :=  (l_act_amt + l_est_amt)- l_imp_amt; -- l_act_amt - l_est_amt - l_adjst_amt;
421         IF( l_excs_amt < 0) THEN
422           FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ',132, ' ')  || RPAD(fnd_message.get_string('OKL','OKL_BPD_PTAX_RPT_SHORT'),l_strm_type_len,' ') ||RPAD(' ',l_date_len,' ')||okl_accounting_util.format_amount(l_excs_amt,l_curr_code));
423         ELSE
424           FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD(' ',132, ' ')  || RPAD(fnd_message.get_string('OKL','OKL_BPD_PTAX_RPT_EXCESS'),l_strm_type_len,' ') ||RPAD(' ',l_date_len,' ')||okl_accounting_util.format_amount(l_excs_amt,l_curr_code));
425         END IF;
426         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,RPAD('-', 105, '-' )||'  '||RPAD('-',86,'-' ));
427 --      END IF;
428       END IF;
429     END LOOP;
430   EXCEPTION
431     WHEN OTHERS THEN
432       p_errbuf := SQLERRM;
433       p_retcode := 2;
434       FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLERRM);
435       IF(SQLCODE <> -20001) THEN
436         FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLCODE||SQLERRM);
437         RAISE;
438       ELSE
439         FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLCODE||SQLERRM);
440         APP_EXCEPTION.RAISE_EXCEPTION;
441       END IF;
442   END do_report;
443 
444 END okl_property_tax_statement_pvt;