DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_JL_EXTRACT_PKG

Source


1 PACKAGE BODY ZX_JL_EXTRACT_PKG AS
2 /* $Header: zxriextrajlppvtb.pls 120.38.12010000.2 2008/11/12 12:44:55 spasala ship $ */
3 
4 
5 -----------------------------------------
6 --Private Type
7 
8 -----------------------------------------
9 --
10 
11 TYPE GDF_RA_CUST_TRX_ATT19_TBL IS TABLE OF
12   ZX_REP_TRX_JX_EXT_T.GDF_RA_CUST_TRX_ATT19%TYPE INDEX BY BINARY_INTEGER;
13 
14 TYPE DOCUMENT_SUB_TYPE_MNG_TBL IS TABLE OF
15   ZX_REP_TRX_JX_EXT_T.DOCUMENT_SUB_TYPE_MNG%TYPE INDEX BY BINARY_INTEGER;
16 
17 TYPE NUMERIC1_TBL IS TABLE OF
18   ZX_REP_TRX_JX_EXT_T.NUMERIC1%TYPE INDEX BY BINARY_INTEGER;
19 
20 TYPE NUMERIC2_TBL IS TABLE OF
21   ZX_REP_TRX_JX_EXT_T.NUMERIC2%TYPE INDEX BY BINARY_INTEGER;
22 
23 TYPE NUMERIC3_TBL IS TABLE OF
24   ZX_REP_TRX_JX_EXT_T.NUMERIC3%TYPE INDEX BY BINARY_INTEGER;
25 
26 TYPE NUMERIC4_TBL IS TABLE OF
27   ZX_REP_TRX_JX_EXT_T.NUMERIC4%TYPE INDEX BY BINARY_INTEGER;
28 
29 TYPE NUMERIC5_TBL IS TABLE OF
30   ZX_REP_TRX_JX_EXT_T.NUMERIC5%TYPE INDEX BY BINARY_INTEGER;
31 
32 TYPE NUMERIC6_TBL IS TABLE OF
33   ZX_REP_TRX_JX_EXT_T.NUMERIC6%TYPE INDEX BY BINARY_INTEGER;
34 
35 TYPE NUMERIC7_TBL IS TABLE OF
36   ZX_REP_TRX_JX_EXT_T.NUMERIC7%TYPE INDEX BY BINARY_INTEGER;
37 
38 TYPE NUMERIC8_TBL IS TABLE OF
39   ZX_REP_TRX_JX_EXT_T.NUMERIC8%TYPE INDEX BY BINARY_INTEGER;
40 
41 TYPE NUMERIC9_TBL IS TABLE OF
42   ZX_REP_TRX_JX_EXT_T.NUMERIC9%TYPE INDEX BY BINARY_INTEGER;
43 
44 TYPE NUMERIC10_TBL IS TABLE OF
45   ZX_REP_TRX_JX_EXT_T.NUMERIC10%TYPE INDEX BY BINARY_INTEGER;
46 
47 TYPE NUMERIC11_TBL IS TABLE OF
48   ZX_REP_TRX_JX_EXT_T.NUMERIC11%TYPE INDEX BY BINARY_INTEGER;
49 
50 TYPE NUMERIC12_TBL IS TABLE OF
51   ZX_REP_TRX_JX_EXT_T.NUMERIC12%TYPE INDEX BY BINARY_INTEGER;
52 
53 TYPE NUMERIC13_TBL IS TABLE OF
54   ZX_REP_TRX_JX_EXT_T.NUMERIC13%TYPE INDEX BY BINARY_INTEGER;
55 
56 TYPE NUMERIC14_TBL IS TABLE OF
57   ZX_REP_TRX_JX_EXT_T.NUMERIC14%TYPE INDEX BY BINARY_INTEGER;
58 
59 TYPE NUMERIC15_TBL IS TABLE OF
60   ZX_REP_TRX_JX_EXT_T.NUMERIC15%TYPE INDEX BY BINARY_INTEGER;
61 
62 TYPE NUMERIC16_TBL IS TABLE OF
63   ZX_REP_TRX_JX_EXT_T.NUMERIC1%TYPE INDEX BY BINARY_INTEGER;
64 
65 TYPE ATTRIBUTE1_TBL IS TABLE OF
66   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE1%TYPE INDEX BY BINARY_INTEGER;
67 
68 TYPE ATTRIBUTE2_TBL IS TABLE OF
69   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE2%TYPE INDEX BY BINARY_INTEGER;
70 
71 TYPE ATTRIBUTE3_TBL IS TABLE OF
72   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE3%TYPE INDEX BY BINARY_INTEGER;
73 
74 TYPE ATTRIBUTE4_TBL IS TABLE OF
75   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE4%TYPE INDEX BY BINARY_INTEGER;
76 
77 TYPE ATTRIBUTE5_TBL IS TABLE OF
78   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE5%TYPE INDEX BY BINARY_INTEGER;
79 
80 TYPE ATTRIBUTE6_TBL IS TABLE OF
81   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE6%TYPE INDEX BY BINARY_INTEGER;
82 
83 TYPE ATTRIBUTE7_TBL IS TABLE OF
84   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE7%TYPE INDEX BY BINARY_INTEGER;
85 
86 TYPE ATTRIBUTE8_TBL IS TABLE OF
87   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE8%TYPE INDEX BY BINARY_INTEGER;
88 
89 TYPE ATTRIBUTE9_TBL IS TABLE OF
90   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE9%TYPE INDEX BY BINARY_INTEGER;
91 
92 TYPE ATTRIBUTE10_TBL IS TABLE OF
93   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE10%TYPE INDEX BY BINARY_INTEGER;
94 
95 TYPE ATTRIBUTE11_TBL IS TABLE OF
96   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE11%TYPE INDEX BY BINARY_INTEGER;
97 
98 TYPE ATTRIBUTE12_TBL IS TABLE OF
99   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE12%TYPE INDEX BY BINARY_INTEGER;
100 
101 TYPE ATTRIBUTE13_TBL IS TABLE OF
102   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE13%TYPE INDEX BY BINARY_INTEGER;
103 
104 TYPE ATTRIBUTE14_TBL IS TABLE OF
105   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE14%TYPE INDEX BY BINARY_INTEGER;
106 
107 TYPE ATTRIBUTE15_TBL IS TABLE OF
108   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE15%TYPE INDEX BY BINARY_INTEGER;
109 
110 TYPE ATTRIBUTE16_TBL IS TABLE OF
111   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE16%TYPE INDEX BY BINARY_INTEGER;
112 
113 TYPE ATTRIBUTE17_TBL IS TABLE OF
114   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE17%TYPE INDEX BY BINARY_INTEGER;
115 
116 TYPE ATTRIBUTE18_TBL IS TABLE OF
117   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE18%TYPE INDEX BY BINARY_INTEGER;
118 
119 TYPE ATTRIBUTE19_TBL IS TABLE OF
120   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE19%TYPE INDEX BY BINARY_INTEGER;
121 
122 TYPE ATTRIBUTE20_TBL IS TABLE OF
123   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE20%TYPE INDEX BY BINARY_INTEGER;
124 
125 TYPE ATTRIBUTE21_TBL IS TABLE OF
126   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE21%TYPE INDEX BY BINARY_INTEGER;
127 
128 TYPE ATTRIBUTE22_TBL IS TABLE OF
129   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE22%TYPE INDEX BY BINARY_INTEGER;
130 
131 TYPE ATTRIBUTE23_TBL IS TABLE OF
132   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE23%TYPE INDEX BY BINARY_INTEGER;
133 
134 TYPE ATTRIBUTE25_TBL IS TABLE OF
135   ZX_REP_TRX_JX_EXT_T.ATTRIBUTE23%TYPE INDEX BY BINARY_INTEGER;
136 
137 TYPE GDF_RA_BATCH_SOURCES_ATT7_TBL IS TABLE OF
138   ZX_REP_TRX_JX_EXT_T.GDF_RA_BATCH_SOURCES_ATT7%TYPE INDEX BY BINARY_INTEGER;
139 
140 TYPE GDF_AP_INV_ATT11_TBL IS TABLE OF
141   ZX_REP_TRX_JX_EXT_T.GDF_AP_INVOICES_ATT11%TYPE INDEX BY BINARY_INTEGER;
142 
143 TYPE GDF_AP_INV_ATT12_TBL IS TABLE OF
144   ZX_REP_TRX_JX_EXT_T.GDF_AP_INVOICES_ATT12%TYPE INDEX BY BINARY_INTEGER;
145 -----------------------------------------
146 --Private Methods Declarations
147 -----------------------------------------
148 l_err_msg               VARCHAR2(120);
149 
150 PROCEDURE initialize_variables (
151           p_count   IN         NUMBER);
152 
153 PROCEDURE GET_VAT_AMOUNT
154 (
155 P_VAT_TAX                      IN            VARCHAR2 DEFAULT NULL,
156 P_TAX_REGIME                   IN            VARCHAR2 DEFAULT NULL,
157 P_REPORT_NAME                  IN            VARCHAR2,
158 P_REQUEST_ID                   IN            NUMBER,
159 P_TRX_ID_TBL                   IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
160 P_DETAIL_TAX_LINE_ID           IN            ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL,
161 P_TAX_RATE_TBL                 IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
162 P_DOCUMENT_SUB_TYPE_TBL        IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
163 X_VAT_AMT_TBL                  OUT  NOCOPY   NUMERIC9_TBL
164 );
165 
166 PROCEDURE GET_TAXABLE_AMOUNT
167 (
168 P_VAT_TAX                    IN            VARCHAR2 DEFAULT NULL,
169 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
170 P_REPORT_NAME                IN            VARCHAR2,
171 P_REQUEST_ID                 IN            NUMBER,
172 P_DETAIL_TAX_LINE_ID           IN            ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL,
173 P_TRX_LINE_ID           IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
174 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
175 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
176 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
177 X_TAXABLE_AMT_TBL            OUT  NOCOPY   NUMERIC10_TBL
178 );
179 
180 PROCEDURE GET_NON_TAXABLE_AMOUNT
181 (
182 P_NON_TAXAB_TAX              IN            VARCHAR2 DEFAULT NULL,
183 P_VAT_TAX                    IN            VARCHAR2 DEFAULT NULL,
184 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
185 P_VAT_PERCEP_TAX             IN            VARCHAR2 DEFAULT NULL,
186 P_REPORT_NAME                IN            VARCHAR2,
187 p_REQUEST_ID                 IN            NUMBER,
188 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
189 P_DETAIL_TAX_LINE_ID           IN            ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL,
190 P_TRX_LINE_ID           IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
191 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
192 X_NON_TAXABLE_AMT_TBL        OUT  NOCOPY   NUMERIC8_TBL
193 );
194 
195 PROCEDURE GET_VAT_EXEMPT_AMOUNT
196 (
197 P_VAT_TAX                    IN            VARCHAR2 DEFAULT NULL,
198 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
199 P_VAT_PERCEP_TAX             IN            VARCHAR2 DEFAULT NULL,
200 P_REPORT_NAME                IN            VARCHAR2,
201 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
202 P_REQUEST_ID                 IN            NUMBER,
203 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
204 P_TRX_LINE_ID_TBL            IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
205 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
206 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
207 X_VAT_EXEMPT_AMT_TBL         OUT  NOCOPY   NUMERIC2_TBL
208 );
209 
210 PROCEDURE GET_VAT_ADDITIONAL_AMOUNT
211 (
212 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
213 P_REPORT_NAME                IN            VARCHAR2,
214 p_REQUEST_ID                 IN            NUMBER,
215 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
216 P_TAX_RATE_ID_TBL            IN            ZX_EXTRACT_PKG.TAX_RATE_ID_TBL,
217 X_VAT_ADDITIONAL_AMT_TBL     OUT  NOCOPY   NUMERIC7_TBL
218 );
219 
220 PROCEDURE GET_NOT_REGISTERED_TAX_AMOUNT
221 (
222 P_REPORT_NAME                IN            VARCHAR2 DEFAULT NULL,
223 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
224 P_VAT_NOT_CATEG_TAX          IN            VARCHAR2 DEFAULT NULL,
225 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
226 P_REQUEST_ID                 IN            NUMBER,
227 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
228 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
229 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
230 X_NOT_REG_TAX_AMT_TBL        OUT  NOCOPY   NUMERIC1_TBL
231 );
232 
233 PROCEDURE GET_VAT_PERCEPTION_AMOUNT
234 (
235 P_VAT_PERC_TAX_TYPE_FROM     IN            VARCHAR2 DEFAULT NULL,
236 P_VAT_PERC_TAX_TYPE_TO       IN            VARCHAR2 DEFAULT NULL,
237 P_VAT_PERC_TAX               IN            VARCHAR2 DEFAULT NULL,
238 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
239 P_REPORT_NAME                IN            VARCHAR2,
240 p_REQUEST_ID                 IN            NUMBER,
241 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
242 P_TRX_LINE_ID_TBL            IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
243 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
244 X_VAT_PERCEPTION_AMT_TBL     OUT  NOCOPY   NUMERIC3_TBL
245 );
246 
247 PROCEDURE GET_OTHER_FED_PERC_AMOUNT
248 (
249 P_FED_PERC_TAX_TYPE_FROM     IN            VARCHAR2 DEFAULT NULL,
250 P_FED_PERC_TAX_TYPE_TO       IN            VARCHAR2 DEFAULT NULL,
251 P_VAT_PERC_TAX               IN            VARCHAR2 DEFAULT NULL,
252 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
253 P_REPORT_NAME                IN            VARCHAR2,
254 p_REQUEST_ID                 IN            NUMBER,
255 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
256 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
257 X_OTHER_FED_PERC_AMT_TBL     OUT  NOCOPY   NUMERIC7_TBL
258 );
259 
260 
261 PROCEDURE GET_PROVINCIAL_PERC_AMOUNT
262 (
263 P_PROV_TAX_TYPE_FROM         IN            VARCHAR2 DEFAULT NULL,
264 P_PROV_TAX_TYPE_TO           IN            VARCHAR2 DEFAULT NULL,
265 P_PROV_TAX_REGIME            IN            VARCHAR2 DEFAULT NULL,
266 P_REPORT_NAME                IN            VARCHAR2,
267 p_REQUEST_ID                 IN            NUMBER,
268 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
269 P_TAX_RATE_ID_TBL            IN            ZX_EXTRACT_PKG.TAX_RATE_ID_TBL,
270 X_PROVINCIAL_PERC_AMT_TBL    OUT  NOCOPY   NUMERIC4_TBL
271 );
272 
273 PROCEDURE GET_MUNICIPAL_PERC_AMOUNT
274 (
275 P_MUN_TAX_TYPE_FROM          IN            VARCHAR2 DEFAULT NULL,
276 P_MUN_TAX_TYPE_TO            IN            VARCHAR2 DEFAULT NULL,
277 P_MUN_TAX_REGIME             IN            VARCHAR2 DEFAULT NULL,
278 P_REPORT_NAME                IN            VARCHAR2,
279 p_REQUEST_ID                 IN            NUMBER,
280 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
281 P_TAX_RATE_ID_TBL            IN            ZX_EXTRACT_PKG.TAX_RATE_ID_TBL,
282 X_MUNICIPAL_PERC_AMT_TBL     OUT  NOCOPY   NUMERIC5_TBL
283 );
284 
285 PROCEDURE GET_EXCISE_TAX_AMOUNT
286 (
287 P_EXC_TAX_TYPE_FROM          IN            VARCHAR2 DEFAULT NULL,
288 P_EXC_TAX_TYPE_TO            IN            VARCHAR2 DEFAULT NULL,
289 P_EXC_TAX_REGIME             IN            VARCHAR2 DEFAULT NULL,
290 P_REPORT_NAME                IN            VARCHAR2,
291 p_REQUEST_ID                 IN            NUMBER,
292 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
293 X_EXCISE_AMT_TBL             OUT NOCOPY    NUMERIC6_TBL
294 );
295 
296 PROCEDURE GET_OTHER_TAX_AMOUNT
297 (
298 P_REPORT_NAME                IN            VARCHAR2,
299 p_REQUEST_ID                 IN            NUMBER,
300 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
301 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
302 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
303 X_OTHER_TAX_AMT_TBL          OUT  NOCOPY   NUMERIC7_TBL
304 );
305 
306 PROCEDURE GET_COUNTED_SUM_DOC
307 (
308 P_REPORT_NAME             IN          VARCHAR2,
309 P_REQUEST_ID              IN          NUMBER,
310 P_DOCUMENT_SUB_TYPE_TBL   IN          ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
311 X_CL_NUM_OF_DOC_TBL       OUT NOCOPY  NUMERIC3_TBL,
312 X_CL_TOTAL_EXEMPT_TBL     OUT NOCOPY  NUMERIC4_TBL,
313 X_CL_TOTAL_EFFECTIVE_TBL  OUT NOCOPY  NUMERIC5_TBL,
314 X_CL_TOTAL_VAT_TAX_TBL    OUT NOCOPY  NUMERIC6_TBL,
315 X_CL_TOTAL_OTHER_TAX_TBL  OUT NOCOPY  NUMERIC11_TBL
316 );
317 
318 PROCEDURE GET_CUSTOMER_CONDITION_CODE
319 (
320 P_VAT_PERCEP_TAX              IN         VARCHAR2,
321 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
322 P_INTERNAL_ORG_ID_TBL	      IN         ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
323 P_REQUEST_ID                  IN         NUMBER,
324 X_CUST_CONDITION_CODE_TBL     OUT NOCOPY ATTRIBUTE7_TBL
325 );
326 
327 PROCEDURE GET_VAT_REG_STAT_CODE
328 (
329 P_VAT_TAX                     IN         VARCHAR2,
330 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
331 P_INTERNAL_ORG_ID_TBL 	      IN         ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
332 P_REQUEST_ID                  IN         NUMBER,
333 X_VAT_REG_STAT_CODE_TBL       OUT NOCOPY ATTRIBUTE8_TBL
334 );
335 
336 FUNCTION GET_TAX_AUTHORITY_CODE
337  (
338  P_VAT_TAX            IN  ZX_REP_TRX_DETAIL_T.TAX%TYPE,
339  P_ORG_ID             IN  NUMBER
340  )
341 return ZX_REP_TRX_JX_EXT_T.ATTRIBUTE10%TYPE;
342 
343 PROCEDURE GET_FISCAL_PRINTER
344 (
345 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
346 P_TAX_REGIME_CODE_TBL            IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
347 P_BILL_FROM_SITE_PROF_ID_TBL IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
348 P_BILL_FROM_SITE_ID_TBL          IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
349 X_FISCAL_PRINTER_TBL             OUT NOCOPY ATTRIBUTE20_TBL
350 );
351 
352 PROCEDURE GET_FISCAL_PRINTER_AR
353 (
354 P_TRX_ID_TBL            IN  ZX_EXTRACT_PKG.TRX_ID_TBL,
355 P_BATCH_SOURCE_ID_TBL   IN  ZX_EXTRACT_PKG.BATCH_SOURCE_ID_TBL,
356 X_FISCAL_PRINTER_TBL    OUT NOCOPY GDF_RA_BATCH_SOURCES_ATT7_TBL
357 );
358 
359 PROCEDURE GET_CAI_NUM
360 (
361 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
362 P_REPORT_NAME                 IN          VARCHAR2,
363 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
364 P_BILL_FROM_SITE_PROF_ID_TBL  IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
365 P_BILL_FROM_SITE_ID_TBL       IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
366 X_CAI_NUMBER_TBL              OUT NOCOPY ATTRIBUTE19_TBL,
367 X_CAI_DUE_DATE_TBL            OUT NOCOPY ATTRIBUTE23_TBL
368 );
369 
370 PROCEDURE GET_CAI_NUM_AR
371 (
372 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
373 P_REPORT_NAME                 IN          VARCHAR2,
374 X_CAI_NUMBER_TBL              OUT NOCOPY ATTRIBUTE19_TBL,
375 X_CAI_DUE_DATE_TBL            OUT NOCOPY ATTRIBUTE23_TBL
376 );
377 
378 PROCEDURE GET_TAX_AUTH_CATEG
379 (
380 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
381 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
382 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.tax_rate_id_tbl,
383 X_TAX_AUTH_CATEG_TBL          OUT NOCOPY ATTRIBUTE10_TBL
384 ) ;
385 PROCEDURE PROV_JURISDICTION_CODE
386 (
387 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
388 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
389 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.tax_rate_id_tbl,
390 X_PROV_JURIS_CODE_TBL          OUT NOCOPY ATTRIBUTE1_TBL
391 ) ;
392 PROCEDURE MUN_JURISDICTION_CODE
393 (
394 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
395 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
396 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.tax_rate_id_tbl,
397 X_MUN_JURIS_CODE_TBL          OUT NOCOPY ATTRIBUTE3_TBL
398 ) ;
399 
400 PROCEDURE GET_TAXPAYERID_TYPE
401 (
402 P_TRX_ID_TBL                   IN ZX_EXTRACT_PKG.TRX_ID_TBL,
403 --P_TAX_REGIME_CODE_TBL        IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
404 --P_BILL_FROM_SITE_PROF_ID_TBL IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
405 P_BILL_FROM_TP_ID_TBL          IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
406 X_TAXPAYERID_TYPE_TBL          OUT NOCOPY ATTRIBUTE21_TBL,
407 X_REG_STATUS_CODE_TBL          OUT NOCOPY ATTRIBUTE22_TBL
408 );
409 
410 PROCEDURE GET_DGI_TAX_REGIME_CODE
411 (
412 P_VAT_PERCEP_TAX              IN         VARCHAR2,
413 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
414 P_TRX_LINE_ID_TBL             IN         ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
415 P_INTERNAL_ORG_ID_TBL         IN         ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
416 P_REQUEST_ID                  IN         NUMBER,
417 X_DGI_TAX_REGIME_CODE_TBL     OUT NOCOPY ATTRIBUTE25_TBL
418 );
419 
420 PROCEDURE GET_DGI_CODE
421  (
422   P_TRX_NUMBER_TBL        IN         ZX_EXTRACT_PKG.TRX_NUMBER_TBL,
423   P_TRX_CATEGORY_TBL      IN         ZX_EXTRACT_PKG.TRX_TYPE_ID_TBL,
424   P_ORG_ID_TBL            IN ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
425   X_DGI_CODE_TBL          OUT NOCOPY ATTRIBUTE11_TBL
426  );
427 PROCEDURE GET_DGI_DOC_TYPE
428 (
429 P_TRX_ID_TBL            IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
430 X_DGI_DOC_TYPE_TBL      OUT NOCOPY  ATTRIBUTE1_TBL,
431 X_GDF_AP_INV_ATT11_TBL  OUT NOCOPY  GDF_AP_INV_ATT11_TBL,
432 X_GDF_AP_INV_ATT12_TBL  OUT NOCOPY  GDF_AP_INV_ATT12_TBL
433 );
434 
435 PROCEDURE DGI_TRX_CODE
436 (
437 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
438 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
439 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.TAX_RATE_ID_TBL,
440 X_DGI_TRX_CODE_TBL            OUT NOCOPY ATTRIBUTE4_TBL
441 );
442 
443 PROCEDURE UPDATE_DGI_CURR_CODE
444 (
445 P_REQUEST_ID IN NUMBER
446 );
447 
448 PROCEDURE GET_LOOKUP_INFO
449  (
450  P_DOCUMENT_SUB_TYPE_TBL              IN          ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
451  X_JLCL_AP_DOC_TYPE_MEANING_TBL       OUT NOCOPY  DOCUMENT_SUB_TYPE_MNG_TBL,
452  X_ORDER_BY_DOC_TYPE_TBL              OUT NOCOPY  ATTRIBUTE14_TBL
453  );
454 
455 PROCEDURE GET_REC_COUNT
456 (
457 P_VAT_TAX            IN          ZX_REP_TRX_DETAIL_T.TAX%TYPE,
458 P_TAX_REGIME         IN          ZX_REP_TRX_DETAIL_T.TAX_REGIME_CODE%TYPE,
459 P_TRX_ID_TBL         IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
460 P_REQUEST_ID         IN          NUMBER,
461 X_REC_COUNT_TBL      OUT NOCOPY  NUMERIC11_TBL
462 );
463 
464 PROCEDURE GET_VAT_NONVAT_RATE_COUNT
465 (
466 P_VAT_TAX            IN          ZX_REP_TRX_DETAIL_T.TAX%TYPE,
467 P_VAT_NON_TAX        IN          ZX_REP_TRX_DETAIL_T.TAX%TYPE,
468 P_TAX_REGIME         IN          ZX_REP_TRX_DETAIL_T.TAX_REGIME_CODE%TYPE,
469 P_TRX_ID_TBL         IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
470 P_REQUEST_ID         IN          NUMBER,
471 X_RATE_COUNT_TBL     OUT NOCOPY  NUMERIC13_TBL
472 );
473 
474 PROCEDURE GET_TOTAL_DOCUMENT_AMOUNT
475 (
476 P_TRX_ID_TBL                IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
477 P_EXCHANGE_RATE_TBL         IN          ZX_EXTRACT_PKG.CURRENCY_CONVERSION_RATE_TBL,
478 P_REPORT_NAME               IN          VARCHAR2,
479 X_TOTAL_DOC_AMT_TBL         OUT NOCOPY  NUMERIC12_TBL
480 );
481 
482 PROCEDURE GET_TOTAL_DOC_TAXABLE_AMOUNT
483 (
484 P_TRX_ID_TBL               IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
485 P_REQUEST_ID               IN         NUMBER,
486 X_TOTAL_DOC_TAXAB_AMT_TBL  OUT NOCOPY NUMERIC8_TBL
487 );
488 
489 -- Declare global varibles for FND log messages
490 
491    g_current_runtime_level           NUMBER;
492    g_level_statement       CONSTANT  NUMBER  := FND_LOG.LEVEL_STATEMENT;
493    g_level_procedure       CONSTANT  NUMBER  := FND_LOG.LEVEL_PROCEDURE;
494    g_level_event           CONSTANT  NUMBER  := FND_LOG.LEVEL_EVENT;
495    g_level_unexpected      CONSTANT  NUMBER  := FND_LOG.LEVEL_UNEXPECTED;
496    g_error_buffer                    VARCHAR2(100);
497 
498 
499 -- Public APIs
500 
501 PROCEDURE FILTER_JL_AP_TAX_LINES
502 IS
503 BEGIN
504 
505 null;
506 
507 END FILTER_JL_AP_TAX_LINES;
508 
509 PROCEDURE FILTER_JL_AR_TAX_LINES
510    (P_TRL_GLOBAL_VARIABLES_REC     IN      ZX_EXTRACT_PKG.TRL_GLOBAL_VARIABLES_REC_TYPE
511    ) IS
512 BEGIN
513 
514 	g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
515 
516 	IF (g_level_procedure >= g_current_runtime_level ) THEN
517 	FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.FILTER_JL_AR_TAX_LINES.BEGIN',
518 				      'ZX_JL_EXTRACT_PKG.FILTER_JL_AR_TAX_LINES(+)');
519 	END IF;
520 
521 	IF ( g_level_statement>= g_current_runtime_level ) THEN
522 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.FILTER_JL_AR_TAX_LINES',
523 		      'P_TRL_GLOBAL_VARIABLES_REC.REPORT_NAME : '||P_TRL_GLOBAL_VARIABLES_REC.REPORT_NAME );
524 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.FILTER_JL_AR_TAX_LINES',
525 		      'P_TRL_GLOBAL_VARIABLES_REC.VAT_PERCEPTION_TAX : '||P_TRL_GLOBAL_VARIABLES_REC.VAT_PERCEPTION_TAX );
526 	END IF;
527 
528   IF P_TRL_GLOBAL_VARIABLES_REC.REPORT_NAME = 'JLARTPFF' THEN
529 
530     DELETE from ZX_REP_TRX_DETAIL_T DET
531        WHERE DET.REQUEST_ID = P_TRL_GLOBAL_VARIABLES_REC.REQUEST_ID
532         AND  DET.TAX <> P_TRL_GLOBAL_VARIABLES_REC.VAT_PERCEPTION_TAX;
533  /*   DELETE from ZX_REP_TRX_DETAIL_T DET
534        WHERE DET.REQUEST_ID = P_TRL_GLOBAL_VARIABLES_REC.REQUEST_ID and
535              NOT EXISTS
536              (SELECT 1
537               FROM   jl_zz_ar_tx_categ_all   catg,
538                      jl_zz_ar_tx_att_cls_all attcls,
539                      jl_zz_ar_tx_att_val_all val
540               WHERE  attcls.tax_attribute_value = val.tax_attribute_value
541                 AND  attcls.tax_category_id     = val.tax_category_id
542                 AND  attcls.tax_attribute_name  = val.tax_attribute_name
543                 AND  val.tax_attribute_type   = 'TRANSACTION_ATTRIBUTE'
544        -- nipatel we should add join to attcls.TAX_ATTRIBUTE_TYPE, attcls.TAX_ATTR_CLASS_TYPE,
545        -- attcls.TAX_ATTR_CLASS_CODE for proper use of index
546                 AND  attcls.tax_category_id     = catg.tax_category_id
547                 AND  catg.org_id = det.internal_organization_id
548                 AND  catg.org_id = attcls.org_id
549                 AND  catg.org_id = val.org_id
550                 AND  attcls.tax_attr_class_code = det.TRX_BUSINESS_CATEGORY
551                 AND  det.tax = P_TRL_GLOBAL_VARIABLES_REC.VAT_PERCEPTION_TAX);
552 */
553 	IF ( g_level_statement>= g_current_runtime_level ) THEN
554 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.FILTER_JL_AR_TAX_LINES',
555 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
556 	END IF;
557   END IF;
558 
559 	IF (g_level_procedure >= g_current_runtime_level ) THEN
560 	FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.FILTER_JL_AR_TAX_LINES.BEGIN',
561 				      'ZX_JL_EXTRACT_PKG.FILTER_JL_AR_TAX_LINES(-)');
562 	END IF;
563 
564 
565 END FILTER_JL_AR_TAX_LINES;
566 
567 /*===========================================================================+
568  | PROCEDURE                                                                 |
569  |   POPULATE_JL_AP                                                          |
570  |   Type       : Private                                                    |
571  |   Pre-req    : None                                                       |
572  |   Function   :                                                            |
573  |    This procedure extract tax amount for various tax types                |
574  |    from zx_rep_trx_jx_ext_t table to meet the requirement in            |
575  |    the flat file                                                          |
576  |                                                                           |
577  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                              |
578  |                                                                           |
579  |   Parameters :                                                            |
580  |   IN         :  P_MUN_TAX_TYPE_FROM         IN   VARCHAR2 Optional        |
581  |                 P_MUN_TAX_TYPE_TO           IN   VARCHAR2 Optional        |
582  |                 P_PROV_TAX_TYPE_FROM        IN   VARCHAR2 Optional        |
583  |                 P_PROV_TAX_TYPE_TO          IN   VARCHAR2 Optional        |
584  |                 P_EXC_TAX_TYPE_FROM         IN   VARCHAR2 Optional        |
585  |                 P_EXC_TAX_TYPE_TO           IN   VARCHAR2 Optional        |
586  |                 P_NON_TAXAB_TAX_TYPE        IN   VARCHAR2 Optional        |
587  |                 P_VAT_PERC_TAX_TYPE_FROM    IN   VARCHAR2 Optional        |
588  |                 P_VAT_PERC_TAX_TYPE_TO      IN   VARCHAR2 Optional        |
589  |                 P_VAT_TAX_TYPE              IN   VARCHAR2 Optional        |
590  |                 P_REPORT_NAME               IN   VARCHAR2 Required        |
591  |                                                                           |
592  |   MODIFICATION HISTORY                                                    |
593  |     07-Nov-03  Hidetaka Kojima   created                                  |
594  |     17-Feb-04  Hidekoji          Modified Parameters                      |
595  |                                                                           |
596  +===========================================================================*/
597 
598 PROCEDURE POPULATE_JL_AP(
599           P_TRL_GLOBAL_VARIABLES_REC     IN      ZX_EXTRACT_PKG.TRL_GLOBAL_VARIABLES_REC_TYPE
600           )
601 IS
602 
603 P_REQUEST_ID                    NUMBER;
604 P_REPORT_NAME                   VARCHAR2(30);
605 P_TRANSACTION_LETTER_FROM       VARCHAR2(30);
606 P_TRANSACTION_LETTER_TO         VARCHAR2(30);
607 P_EXCLUDING_TRX_LETTER          VARCHAR2(30);
608 P_MUN_TAX_TYPE_FROM             VARCHAR2(30);
609 P_MUN_TAX_TYPE_TO               VARCHAR2(30);
610 P_PROV_TAX_TYPE_FROM            VARCHAR2(30);
611 P_PROV_TAX_TYPE_TO              VARCHAR2(30);
612 P_EXC_TAX_TYPE_FROM             VARCHAR2(30);
613 P_EXC_TAX_TYPE_TO               VARCHAR2(30);
614 P_NON_TAXAB_TAX_TYPE            VARCHAR2(30);
615 P_VAT_PERC_TAX_TYPE_FROM        VARCHAR2(30);
616 P_VAT_PERC_TAX_TYPE_TO          VARCHAR2(30);
617 P_FED_PERC_TAX_TYPE_FROM        VARCHAR2(30);
618 P_FED_PERC_TAX_TYPE_TO          VARCHAR2(30);
619 P_VAT_TAX_TYPE                  VARCHAR2(30);
620 P_TAX_TYPE_CODE_LOW                  VARCHAR2(30);
621 P_TAX_TYPE_CODE_HIGH                  VARCHAR2(30);
622 P_TAX_TYPE_CODE                  VARCHAR2(30);
623 P_VAT_ADDIT_TAX_TYPE            VARCHAR2(30);
624 
625 l_err_msg                       VARCHAR2(120);
626 
627 l_detail_tax_line_id_tbl        ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL;
628 l_trx_line_id_tbl               ZX_EXTRACT_PKG.TRX_LINE_ID_TBL;
629 l_trx_id_tbl                    ZX_EXTRACT_PKG.TRX_ID_TBL;
630 l_tax_rate_tbl                  ZX_EXTRACT_PKG.TAX_RATE_TBL;
631 l_tax_rate_id_tbl               ZX_EXTRACT_PKG.TAX_RATE_ID_TBL;
632 l_document_sub_type_tbl         ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL;
633 l_exchange_rate_tbl             ZX_EXTRACT_PKG.CURRENCY_CONVERSION_RATE_TBL;
634 l_trx_currency_code_tbl         ZX_EXTRACT_PKG.TRX_CURRENCY_CODE_TBL;
635 l_vat_exempt_amt_tbl            NUMERIC2_TBL;
636 l_vat_perc_amt_tbl              NUMERIC3_TBL;
637 l_other_fed_perc_amt_tbl        NUMERIC7_TBL;
638 l_prov_perc_amt_tbl             NUMERIC4_TBL;
639 l_munic_perc_amt_tbl            NUMERIC5_TBL;
640 l_excise_amt_tbl                NUMERIC6_TBL;
641 l_non_taxable_amt_tbl           NUMERIC8_TBL;
642 l_other_tax_amt_tbl             NUMERIC7_TBL;
643 l_vat_amt_tbl                   NUMERIC9_TBL;
644 l_dgi_doc_type_tbl              ATTRIBUTE1_TBL;
645 l_tax_auth_categ_tbl            ATTRIBUTE10_TBL;
646 l_gdf_ap_inv_att11_tbl          GDF_AP_INV_ATT11_TBL;
647 l_gdf_ap_inv_att12_tbl          GDF_AP_INV_ATT12_TBL;
648 l_dgi_trx_code_tbl              ATTRIBUTE4_TBL;
649 l_taxable_amt_tbl               NUMERIC10_TBL;
650 l_total_doc_amt_tbl             NUMERIC12_TBL;
651 l_total_doc_taxab_amt_tbl       NUMERIC8_TBL;
652 
653 l_cl_num_of_doc_tbl             NUMERIC3_TBL;
654 l_cl_total_exempt_tbl           NUMERIC4_TBL;
655 l_cl_total_effective_tbl        NUMERIC5_TBL;
656 l_cl_total_vat_tax_tbl          NUMERIC6_TBL;
657 l_cl_total_other_tax_tbl        NUMERIC11_TBL;
658 
659 l_order_by_doc_type_tbl         ATTRIBUTE14_TBL;
660 l_cai_number_tbl                ATTRIBUTE19_TBL;
661 l_cai_due_date_tbl              ATTRIBUTE23_TBL;
662 l_fiscal_printer_tbl            ATTRIBUTE20_TBL;
663 l_taxpayerid_type_tbl           ATTRIBUTE21_TBL;
664 l_reg_status_code_tbl           ATTRIBUTE22_TBL;
665 l_jlcl_ap_doc_type_mng_tbl      DOCUMENT_SUB_TYPE_MNG_TBL;
666 
667 l_tax_regime_code_tbl           ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL;
668 l_bill_from_site_prof_id_tbl      ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL;
669 --l_shipping_tp_address_id_tbl          ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL;
670 --l_billing_tp_address_id_tbl           ZX_EXTRACT_PKG.BILLING_TP_ADDRESS_ID_TBL;
671 l_bill_from_site_id_tbl     ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL;
672 l_bill_from_tp_id_tbl        ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL;
673 
674 BEGIN
675 
676  g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
677 
678   IF (g_level_procedure >= g_current_runtime_level ) THEN
679      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP.BEGIN',
680                                       'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP(+)');
681   END IF;
682 
683 
684  P_REQUEST_ID              :=  P_TRL_GLOBAL_VARIABLES_REC.REQUEST_ID;
685  P_REPORT_NAME             :=  P_TRL_GLOBAL_VARIABLES_REC.REPORT_NAME;
686  P_TRANSACTION_LETTER_FROM :=  P_TRL_GLOBAL_VARIABLES_REC.TRX_LETTER_LOW;
687  P_TRANSACTION_LETTER_TO   :=  P_TRL_GLOBAL_VARIABLES_REC.TRX_LETTER_HIGH;
688  P_EXCLUDING_TRX_LETTER    :=  P_TRL_GLOBAL_VARIABLES_REC.EXCLUDING_TRX_LETTER;
689  P_MUN_TAX_TYPE_FROM       :=  P_TRL_GLOBAL_VARIABLES_REC.MUNICIPAL_TAX_TYPE_CODE_LOW;
690  P_MUN_TAX_TYPE_TO         :=  P_TRL_GLOBAL_VARIABLES_REC.MUNICIPAL_TAX_TYPE_CODE_HIGH;
691  P_PROV_TAX_TYPE_FROM      :=  P_TRL_GLOBAL_VARIABLES_REC.PROV_TAX_TYPE_CODE_LOW;
692  P_PROV_TAX_TYPE_TO        :=  P_TRL_GLOBAL_VARIABLES_REC.PROV_TAX_TYPE_CODE_HIGH;
693  P_EXC_TAX_TYPE_FROM       :=  P_TRL_GLOBAL_VARIABLES_REC.EXCISE_TAX_TYPE_CODE_LOW;
694  P_EXC_TAX_TYPE_TO         :=  P_TRL_GLOBAL_VARIABLES_REC.EXCISE_TAX_TYPE_CODE_HIGH;
695  P_NON_TAXAB_TAX_TYPE      :=  P_TRL_GLOBAL_VARIABLES_REC.NON_TAXABLE_TAX_TYPE_CODE;
696  P_VAT_PERC_TAX_TYPE_FROM  :=  P_TRL_GLOBAL_VARIABLES_REC.PER_TAX_TYPE_CODE_LOW;
697  P_VAT_PERC_TAX_TYPE_TO    :=  P_TRL_GLOBAL_VARIABLES_REC.PER_TAX_TYPE_CODE_HIGH;
698  P_FED_PERC_TAX_TYPE_FROM  :=  P_TRL_GLOBAL_VARIABLES_REC.FED_PER_TAX_TYPE_CODE_LOW;
699  P_FED_PERC_TAX_TYPE_TO    :=  P_TRL_GLOBAL_VARIABLES_REC.FED_PER_TAX_TYPE_CODE_HIGH;
700  P_TAX_TYPE_CODE_LOW       :=  P_TRL_GLOBAL_VARIABLES_REC.TAX_TYPE_CODE_LOW;
701  P_TAX_TYPE_CODE_HIGH      :=  P_TRL_GLOBAL_VARIABLES_REC.TAX_TYPE_CODE_HIGH;
702  P_VAT_TAX_TYPE            :=  P_TRL_GLOBAL_VARIABLES_REC.VAT_TAX_TYPE_CODE;
703  P_VAT_ADDIT_TAX_TYPE      :=  P_TRL_GLOBAL_VARIABLES_REC.VAT_ADDITIONAL_TAX;
704 
705 --added debug messages
706 
707     IF ( g_level_statement>= g_current_runtime_level ) THEN
708 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP','P_REPORT_NAME : '||P_REPORT_NAME);
709 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_TRANSACTION_LETTER_FROM :'|| P_TRANSACTION_LETTER_FROM);
710 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_TRANSACTION_LETTER_TO   :'|| P_TRANSACTION_LETTER_TO  );
711 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_EXCLUDING_TRX_LETTER    :'|| P_EXCLUDING_TRX_LETTER   );
712 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_MUN_TAX_TYPE_FROM       :'|| P_MUN_TAX_TYPE_FROM      );
713 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_MUN_TAX_TYPE_TO         :'|| P_MUN_TAX_TYPE_TO        );
714 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_PROV_TAX_TYPE_FROM      :'|| P_PROV_TAX_TYPE_FROM     );
715 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_PROV_TAX_TYPE_TO        :'|| P_PROV_TAX_TYPE_TO       );
716 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_EXC_TAX_TYPE_FROM       :'|| P_EXC_TAX_TYPE_FROM      );
717 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_EXC_TAX_TYPE_TO         :'|| P_EXC_TAX_TYPE_TO        );
718 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_NON_TAXAB_TAX_TYPE      :'|| P_NON_TAXAB_TAX_TYPE     );
719 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_VAT_PERC_TAX_TYPE_FROM  :'|| P_VAT_PERC_TAX_TYPE_FROM );
720 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_VAT_PERC_TAX_TYPE_TO    :'|| P_VAT_PERC_TAX_TYPE_TO   );
721 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_FED_PERC_TAX_TYPE_FROM  :'|| P_FED_PERC_TAX_TYPE_FROM );
722 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_FED_PERC_TAX_TYPE_TO    :'|| P_FED_PERC_TAX_TYPE_TO   );
723 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_TAX_TYPE_CODE_LOW       :'|| P_TAX_TYPE_CODE_LOW      );
724 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_TAX_TYPE_CODE_HIGH      :'|| P_TAX_TYPE_CODE_HIGH     );
725 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_VAT_TAX_TYPE            :'|| P_VAT_TAX_TYPE           );
726 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',' P_VAT_ADDIT_TAX_TYPE  :'|| P_VAT_ADDIT_TAX_TYPE );
727     END IF;
728 
729  IF P_REPORT_NAME = 'JLARPCFF' THEN
730 
731 
732     BEGIN
733 
734          -- ------------------------------------------------ --
735          -- Get filtered tax lines                           --
736          -- in this case, you need to group the lines by trx --
737          -- ------------------------------------------------ --
738   IF (g_level_procedure >= g_current_runtime_level ) THEN
739      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
740                                       'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP : Filter '||P_REPORT_NAME);
741   END IF;
742 
743          P_TAX_TYPE_CODE := NVL(P_TAX_TYPE_CODE_LOW,P_TAX_TYPE_CODE_HIGH);
744 
745                     SELECT min(itf.detail_tax_line_id),
746                            itf.trx_id,
747                            null,
748                            null
749          BULK COLLECT INTO l_detail_tax_line_id_tbl,
750                            l_trx_id_tbl,
751                            l_tax_rate_tbl,
752                            l_document_sub_type_tbl
753                       FROM zx_rep_trx_detail_t itf,
754                            ap_invoices apinv
755                      WHERE itf.request_id = p_request_id
756                        AND itf.trx_id = apinv.invoice_id
757                        AND itf.tax_type_code = P_TAX_TYPE_CODE
758                        AND apinv.global_attribute12 >= P_TRANSACTION_LETTER_FROM
759                        AND apinv.global_attribute12 <= P_TRANSACTION_LETTER_TO
760                   GROUP BY itf.trx_id;
761 
762  IF (g_level_procedure >= g_current_runtime_level ) THEN
763      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
764                'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP : Bulk Collect Filtered rows '||to_char(l_trx_id_tbl.count));
765      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
766                'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP : '||P_VAT_TAX_TYPE||P_TRANSACTION_LETTER_FROM||P_TRANSACTION_LETTER_TO);
767   END IF;
768 
769 
770 	IF ( g_level_statement>= g_current_runtime_level ) THEN
771 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
772 					      'Before Call to GET_VAT_AMOUNT ');
773 	END IF;
774 
775          -- Get Vat Amount --
776 
777          GET_VAT_AMOUNT(P_TAX_TYPE_CODE,
778                         NULL,
779                         P_REPORT_NAME,
780                         P_REQUEST_ID,
781                         l_trx_id_tbl,
782                         l_detail_tax_line_id_tbl,
783                         l_tax_rate_tbl,
784                         l_document_sub_type_tbl,
785                         l_vat_amt_tbl);
786 
787          GET_DGI_DOC_TYPE(l_trx_id_tbl,
788                           l_dgi_doc_type_tbl,
789                           l_gdf_ap_inv_att11_tbl,
790                           l_gdf_ap_inv_att12_tbl
791                           );
792 
793 
794          -- Insert lines into JX EXT Table with Calculated amount --
795 
796          FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
797 
798                 INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
799                                                 detail_tax_line_id,
800                                                 numeric9,
801                                                 gdf_ap_invoices_att13,
802                                                 created_by,
803                                                 creation_date,
804                                                 last_updated_by,
805                                                 last_update_date,
806                                                 last_update_login)
807                                         VALUES (zx_rep_trx_jx_ext_t_s.nextval,
808                                                 l_detail_tax_line_id_tbl(i),
809                                                 l_vat_amt_tbl(i),
810                                                 l_dgi_doc_type_tbl(i),
811                                                 fnd_global.user_id,
812                                                 sysdate,
813                                                 fnd_global.user_id,
814                                                 sysdate,
815                                                 fnd_global.login_id);
816 
817 	IF ( g_level_statement>= g_current_runtime_level ) THEN
818 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
819 					      'After insertion into zx_rep_trx_jx_ext_t ');
820 	END IF;
821 
822                 -- Delete Unwanted lines from Detail ITF
823 
824                 DELETE from zx_rep_trx_detail_t itf
825                  WHERE itf.request_id = p_request_id
826                    AND NOT EXISTS ( SELECT 1
827                                       FROM zx_rep_trx_jx_ext_t ext
828                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
829 
830 	IF ( g_level_statement>= g_current_runtime_level ) THEN
831 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
832 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
833 	END IF;
834 
835 
836     EXCEPTION
837        WHEN OTHERS THEN
838 	IF ( g_level_statement>= g_current_runtime_level ) THEN
839 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
840 		'Error Message for report '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
841 	END IF;
842 
843     END;
844 
845 
846  ELSIF P_REPORT_NAME = 'ZXARPVBR' THEN
847 
848        BEGIN
849 
850        -- ------------------------------------------------ --
851        -- Get filtered tax lines                           --
852        -- in this case, you need to group the lines by trx --
853        -- ------------------------------------------------ --
854 
855                        SELECT min(itf.detail_tax_line_id),
856                               itf.trx_line_id,
857                               itf.trx_id,
858                               itf.tax_rate,
859                               null
860             BULK COLLECT INTO l_detail_tax_line_id_tbl,
861                               l_trx_line_id_tbl,
862                               l_trx_id_tbl,
863                               l_tax_rate_tbl,
864                               l_document_sub_type_tbl
865                          FROM zx_rep_trx_detail_t itf,
866                               ap_invoices_all apinv --Bug 5415028
867                         WHERE itf.request_id = P_REQUEST_ID
868                           AND itf.tax_type_code = P_VAT_TAX_TYPE
869                       -- OR itf.tax_rate = 0)
870 --itf.tax_type_code = 'Exempt')
871                           AND itf.trx_id = apinv.invoice_id
872                           AND apinv.global_attribute12 <>  NVL(P_EXCLUDING_TRX_LETTER,'$') --Bug 5415028
873                           AND nvl(itf.reverse_flag,'N') <> 'Y'
874                      GROUP BY itf.tax_rate,
875                               itf.trx_line_id,
876                               itf.trx_id;
877 
878 	IF ( g_level_statement>= g_current_runtime_level ) THEN
879 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
880 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
881 	END IF;
882 
883 	IF ( g_level_statement>= g_current_runtime_level ) THEN
884 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_DOC_TYPE',
885 					      'Before Call to GET_DGI_DOC_TYPE');
886 	END IF;
887          GET_DGI_DOC_TYPE(l_trx_id_tbl,
888                           l_dgi_doc_type_tbl,
889                           l_gdf_ap_inv_att11_tbl,
890                           l_gdf_ap_inv_att12_tbl
891                           );
892 
893 	IF ( g_level_statement>= g_current_runtime_level ) THEN
894 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
895 					      'Before Call to GET_VAT_AMOUNT');
896 	END IF;
897 
898        -- Get Vat amount
899        GET_VAT_AMOUNT(P_VAT_TAX_TYPE,
900                       NULL,
901                       P_REPORT_NAME,
902                       P_REQUEST_ID,
903                       l_trx_id_tbl,
904                       l_detail_tax_line_id_tbl,
905                       l_tax_rate_tbl,
906                       l_document_sub_type_tbl,
907                       l_vat_amt_tbl);
908 
909 	IF ( g_level_statement>= g_current_runtime_level ) THEN
910 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
911 					      'Before Call to GET_TAXABLE_AMOUNT');
912 	END IF;
913 
914        -- Get Taxable Amount
915        GET_TAXABLE_AMOUNT(P_VAT_TAX_TYPE,
916                           NULL,
917                           P_REPORT_NAME,
918                           P_REQUEST_ID,
919                           l_detail_tax_line_id_tbl,
920                           l_trx_line_id_tbl,
921                           l_trx_id_tbl,
922                           l_tax_rate_tbl,
923                           l_document_sub_type_tbl,
924                           l_taxable_amt_tbl);
925 
926 	IF ( g_level_statement>= g_current_runtime_level ) THEN
927 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
928 					      'Before Call to GET_NON_TAXABLE_AMOUNT');
929 	END IF;
930        -- Get Non Taxable Amount
931        GET_NON_TAXABLE_AMOUNT(P_NON_TAXAB_TAX_TYPE,
932                               P_VAT_TAX_TYPE,
933                               P_VAT_ADDIT_TAX_TYPE,
934                               null, --P_VAT_PERCEP_TAX_TYPE,
935                               P_REPORT_NAME,
936                               p_REQUEST_ID,
937                               l_trx_id_tbl,
938                               l_detail_tax_line_id_tbl,
939                               l_trx_line_id_tbl,
940                               l_tax_rate_tbl,
941                               l_non_taxable_amt_tbl);
942 
943 
944 	IF ( g_level_statement>= g_current_runtime_level ) THEN
945 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
946 					      'Before Call to GET_VAT_EXEMPT_AMOUNT');
947 	END IF;
948 
949        -- Get Vat Exempt Amount
950        GET_VAT_EXEMPT_AMOUNT(P_VAT_TAX_TYPE,
951                              P_VAT_ADDIT_TAX_TYPE,
952                              NULL, --P_VAT_PERCEP_TAX_TYPE,
953                              P_REPORT_NAME,
954                              NULL, -- P_TAX_REGIME
955                              P_REQUEST_ID,
956                              l_trx_id_tbl,
957                              l_trx_line_id_tbl,
958                              l_tax_rate_tbl,
959                              l_document_sub_type_tbl,
960                              l_vat_exempt_amt_tbl);
961 
962 	IF ( g_level_statement>= g_current_runtime_level ) THEN
963 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
964 					      'Before Call to GET_VAT_PERCEPTION_AMOUNT');
965 	END IF;
966 
967        -- Get Vat Perception Amount
968        GET_VAT_PERCEPTION_AMOUNT(P_VAT_PERC_TAX_TYPE_FROM,
969                                  P_VAT_PERC_TAX_TYPE_TO,
970                                  NULL, -- P_VAT_PERC_TAX,
971                                  NULL, -- P_TAX_REGIME
972                                  P_REPORT_NAME,
973                                  p_REQUEST_ID,
974                                  l_trx_id_tbl,
975                                  l_trx_line_id_tbl,
976                                  l_tax_rate_tbl,
977                                  l_vat_perc_amt_tbl);
978 
979          -- Insert lines into JX EXT Table with Calculated amount --
980 
981          FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
982 
983                 INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
984                                                 detail_tax_line_id,
985                                                 numeric9,
986                                                 numeric10,
987                                                 numeric8,
988                                                 numeric2,
989                                                 numeric3,
990                                                 numeric12,
991                                                 gdf_ap_invoices_att11,
992                                                 gdf_ap_invoices_att12,
993                                                 created_by,
994 	                                        creation_date,
995                                                 last_updated_by,
996                                                 last_update_date,
997                                                 last_update_login,
998                                                 request_id)
999                                         VALUES (zx_rep_trx_jx_ext_t_s.nextval,
1000                                                 l_detail_tax_line_id_tbl(i),
1001                                                 l_vat_amt_tbl(i),
1002                                                 l_taxable_amt_tbl(i),
1003                                                 l_non_taxable_amt_tbl(i),
1004                                                 l_vat_exempt_amt_tbl(i),
1005                                                 l_vat_perc_amt_tbl(i),
1006                                                 nvl(l_non_taxable_amt_tbl(i),0)+nvl(l_vat_perc_amt_tbl(i),0)
1007                                                    +nvl(l_taxable_amt_tbl(i),0)+nvl(l_vat_amt_tbl(i),0), --Bug 5415028
1008                                                 l_gdf_ap_inv_att11_tbl(i),
1009                                                 l_gdf_ap_inv_att12_tbl(i),
1010                                                 fnd_global.user_id,
1011                                                 sysdate,
1012                                                 fnd_global.user_id,
1013                                                 sysdate,
1014                                                 fnd_global.login_id,
1015                                                 p_request_id);
1016 
1017 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1018 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1019 					      'After insertion into zx_rep_trx_jx_ext_t ');
1020 	END IF;
1021 
1022                 -- Delete Unwanted lines from Detail ITF
1023 
1024                 DELETE from zx_rep_trx_detail_t itf
1025                  WHERE itf.request_id = p_request_id
1026                    AND NOT EXISTS ( SELECT 1
1027                                       FROM zx_rep_trx_jx_ext_t ext
1028                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
1029 
1030 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1031 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JA_EXTRACT_PKG.POPULATE_JL_AP',
1032 				      'Deleted Count : '||to_char(SQL%ROWCOUNT) );
1033 	END IF;
1034 
1035 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1036 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1037 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
1038 	END IF;
1039 
1040     EXCEPTION
1041 
1042 
1043        WHEN OTHERS THEN
1044 		IF ( g_level_statement>= g_current_runtime_level ) THEN
1045 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1046 			'Error Message for report '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
1047 		END IF;
1048 
1049     END;
1050 
1051 
1052  ELSIF P_REPORT_NAME = 'JLARPPFF' THEN
1053 
1054        BEGIN
1055   IF (g_level_procedure >= g_current_runtime_level ) THEN
1056      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1057                                       'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP : Filter '||P_REPORT_NAME);
1058   END IF;
1059        -- ------------------------------------------------ --
1060        -- Get filtered tax lines                           --
1061        -- ------------------------------------------------ --
1062 
1063                        SELECT detail_tax_line_id,
1064                               trx_line_id,
1065                               trx_id,
1066                               currency_conversion_rate,
1067                              -- trx_currency_code,
1068                               tax_rate,
1069                               tax_rate_id,
1070                               document_sub_type,
1071                               tax_regime_code,
1072                               bill_from_site_tax_prof_id,
1073                             --  shipping_tp_address_id,
1074                              -- billing_tp_address_id
1075                               bill_from_site_id,
1076                               bill_from_party_id
1077             BULK COLLECT INTO l_detail_tax_line_id_tbl,
1078                                 l_trx_line_id_tbl,
1079                               l_trx_id_tbl,
1080                               l_exchange_rate_tbl,
1081                               --l_trx_currency_code_tbl,
1082                               l_tax_rate_tbl,
1083                               l_tax_rate_id_tbl,
1084                               l_document_sub_type_tbl,
1085                               l_tax_regime_code_tbl,
1086                               l_bill_from_site_prof_id_tbl,
1087                               l_bill_from_site_id_tbl,
1088                               l_bill_from_tp_id_tbl
1089                          FROM
1090                              ( SELECT min(itf1.detail_tax_line_id) detail_tax_line_id,
1091                                       itf1.trx_line_id,
1092                                       itf1.trx_id,
1093                                       null currency_conversion_rate,
1094                                --       itf1.trx_currency_code,
1095                                       itf1.tax_rate,
1096                                        itf1.tax_rate_id,
1097                                       null document_sub_type,
1098                                       itf1.tax_regime_code,
1099                                       itf1.bill_from_site_tax_prof_id,
1100                                    NVL(itf1.shipping_tp_address_id,
1101                                        itf1.billing_tp_address_id) bill_from_site_id,
1102                                    NVL(itf1.billing_trading_partner_id,
1103                                        itf1.shipping_trading_partner_id) bill_from_party_id
1104                                  FROM zx_rep_trx_detail_t itf1,
1105                                       ap_invoices apinv
1106                                 WHERE itf1.request_id = P_REQUEST_ID
1107                                   AND apinv.invoice_id = itf1.trx_id
1108                               --    AND itf1.posted_flag = 'Y'
1109                                   AND itf1.tax_type_code = P_VAT_TAX_TYPE
1110                                   AND apinv.global_attribute12 <> NVL(p_excluding_trx_letter, '$')
1111                              GROUP BY itf1.trx_id,
1112                                       itf1.trx_line_id,
1113                                       itf1.tax_rate,
1114                                       itf1.tax_rate_id,
1115                                 --      itf1.trx_currency_code,
1116                                       itf1.tax_regime_code,
1117                                       itf1.bill_from_site_tax_prof_id,
1118                                       itf1.shipping_tp_address_id,
1119                                       itf1.billing_tp_address_id,
1120                                       itf1.billing_trading_partner_id,
1121                                       itf1.shipping_trading_partner_id)
1122                                UNION
1123                              ( SELECT min(itf1.detail_tax_line_id) detail_tax_line_id,
1124                                       itf1.trx_line_id,
1125                                       itf1.trx_id,
1126                                       null currency_conversion_rate,
1127                                  --     itf1.trx_currency_code,
1128                                       itf1.tax_rate,
1129                                       itf1.tax_rate_id,
1130                                       null document_sub_type,
1131                                       itf1.tax_regime_code,
1132                                       itf1.bill_from_site_tax_prof_id,
1133                                    NVL(itf1.shipping_tp_address_id,
1134                                        itf1.billing_tp_address_id) bill_from_site_id,
1135                                    NVL(itf1.billing_trading_partner_id,
1136                                        itf1.shipping_trading_partner_id) bill_from_party_id
1137                                  FROM zx_rep_trx_detail_t itf1,
1138                                       ap_invoices apinv
1139                                 WHERE itf1.request_id = P_REQUEST_ID
1140                                   AND apinv.invoice_id = itf1.trx_id
1141                               --    AND itf1.posted_flag = 'Y'
1142                                   AND itf1.tax_type_code = 'Exempt'
1143                                   AND apinv.global_attribute12 <> NVL(p_excluding_trx_letter, '$')
1144                              GROUP BY itf1.trx_id,
1145                                       itf1.trx_line_id,
1146                                       itf1.tax_rate,
1147                                       itf1.tax_rate_id,
1148                                   --    itf1.trx_currency_code,
1149                                       itf1.tax_regime_code,
1150                                       itf1.bill_from_site_tax_prof_id,
1151                                       itf1.shipping_tp_address_id,
1152                                       itf1.billing_tp_address_id,
1153                                       itf1.billing_trading_partner_id,
1154                                       itf1.shipping_trading_partner_id)
1155                                  UNION
1156                              ( SELECT min(itf1.detail_tax_line_id) detail_tax_line_id,
1157                                       itf1.trx_line_id,
1158                                       itf1.trx_id,
1159                                       null currency_conversion_rate,
1160                                  --     itf1.trx_currency_code,
1161                                       NULL tax_rate,
1162                                       itf1.tax_rate_id,
1163                                       --null tax_rate_id,
1164                                       null document_sub_type,
1165                                       itf1.tax_regime_code,
1166                                       itf1.bill_from_site_tax_prof_id,
1167                                    NVL(itf1.shipping_tp_address_id,
1168                                        itf1.billing_tp_address_id) bill_from_site_id,
1169                                    NVL(itf1.billing_trading_partner_id,
1170                                        itf1.shipping_trading_partner_id) bill_from_party_id
1171                                  FROM zx_rep_trx_detail_t itf1,
1172                                       ap_invoices apinv
1173                                 WHERE itf1.request_id = P_REQUEST_ID
1174                                   AND apinv.invoice_id = itf1.trx_id
1175                               --    AND itf1.posted_flag = 'Y'
1176                                   AND itf1.tax_type_code = P_NON_TAXAB_TAX_TYPE
1177                                   AND apinv.global_attribute12 <> NVL(p_excluding_trx_letter, '$')
1178                              GROUP BY itf1.trx_id,
1179                                       itf1.trx_line_id,
1180                                      -- itf1.tax_rate,
1181                                       itf1.tax_rate_id,
1182                                   --    itf1.trx_currency_code,
1183                                       itf1.tax_regime_code,
1184                                       itf1.bill_from_site_tax_prof_id,
1185                                       itf1.shipping_tp_address_id,
1186                                       itf1.billing_tp_address_id,
1187                                       itf1.billing_trading_partner_id,
1188                                       itf1.shipping_trading_partner_id);
1189                                /* UNION
1190                                SELECT min(itf2.detail_tax_line_id) detail_tax_line_id,
1191                                       itf2.trx_id,
1192                                       null currency_conversion_rate,
1193                                       null tax_rate,
1194                                       null tax_rate_id,
1195                                       null document_sub_type
1196                                  FROM zx_rep_trx_detail_t itf2,
1197                                       ap_invoices apinv2
1198                                 WHERE itf2.request_id = P_REQUEST_ID
1199                                   AND apinv2.invoice_id = itf2.trx_id
1200                                   AND itf2.tax_type_code = P_NON_TAXAB_TAX_TYPE
1201                                 GROUP BY itf2.trx_id
1202                               );*/
1203 
1204   IF (g_level_procedure >= g_current_runtime_level ) THEN
1205      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1206                'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP : Bulk Collect Filtered rows '||to_char(l_trx_id_tbl.count));
1207      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1208                'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP : '||P_VAT_TAX_TYPE);
1209   END IF;
1210 
1211 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1212 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1213 					      'Before Call to GET_VAT_AMOUNT');
1214 	END IF;
1215 
1216          --GET_DGI_DOC_TYPE(l_trx_id_tbl,
1217           --                l_dgi_doc_type_tbl);
1218 
1219          GET_DGI_DOC_TYPE(l_trx_id_tbl,
1220                           l_dgi_doc_type_tbl,
1221                           l_gdf_ap_inv_att11_tbl,
1222                           l_gdf_ap_inv_att12_tbl
1223                           );
1224          DGI_TRX_CODE ( l_trx_id_tbl,
1225                         l_tax_regime_code_tbl,
1226                         l_tax_rate_id_tbl,
1227                         l_dgi_trx_code_tbl);
1228 
1229 
1230          GET_TAXPAYERID_TYPE(l_trx_id_tbl,
1231                             -- l_tax_regime_code_tbl,
1232                             -- l_bill_from_site_prof_id_tbl,
1233                              l_bill_from_tp_id_tbl,
1234                              l_taxpayerid_type_tbl,
1235                              l_reg_status_code_tbl);
1236 
1237             -- get CAI Number
1238              GET_CAI_NUM
1239                   ( l_trx_id_tbl,
1240                     p_report_name,
1241                     l_tax_regime_code_tbl,
1242                     l_bill_from_site_prof_id_tbl,
1243                     l_bill_from_site_id_tbl,
1244                     l_cai_number_tbl,
1245                     l_cai_due_date_tbl);
1246 
1247             -- get Fiscal Printer
1248              GET_FISCAL_PRINTER
1249                   ( l_trx_id_tbl,
1250                     l_tax_regime_code_tbl,
1251                     l_bill_from_site_prof_id_tbl,
1252                     l_bill_from_site_id_tbl,
1253                     l_fiscal_printer_tbl);
1254 
1255 
1256             -- Get Vat Amount
1257             GET_VAT_AMOUNT(P_VAT_TAX_TYPE,
1258                            NULL,
1259                            P_REPORT_NAME,
1260                            P_REQUEST_ID,
1261                            l_trx_id_tbl,
1262                            l_detail_tax_line_id_tbl,
1263                            l_tax_rate_tbl,
1264                            l_document_sub_type_tbl,
1265                            l_vat_amt_tbl);
1266 
1267 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1268 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1269 					      'Before Call to GET_TAXABLE_AMOUNT');
1270 	END IF;
1271 
1272             -- Get Taxable Amount
1273             GET_TAXABLE_AMOUNT(P_VAT_TAX_TYPE,
1274                                NULL,
1275                                P_REPORT_NAME,
1276                                P_REQUEST_ID,
1277                           l_detail_tax_line_id_tbl,
1278                           l_trx_line_id_tbl,
1279                                l_trx_id_tbl,
1280                                l_tax_rate_tbl,
1281                                l_document_sub_type_tbl,
1282                                l_taxable_amt_tbl);
1283 
1284 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1285 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1286 					      'Before Call to GET_NON_TAXABLE_AMOUNT');
1287 	END IF;
1288             -- Get Non Taxable Amount
1289             GET_NON_TAXABLE_AMOUNT(P_NON_TAXAB_TAX_TYPE,
1290                                    P_VAT_TAX_TYPE,
1291                                    P_VAT_ADDIT_TAX_TYPE,
1292                                    NULL, --P_VAT_PERCEP_TAX_TYPE,
1293                                    P_REPORT_NAME,
1294                                    p_REQUEST_ID,
1295                                    l_trx_id_tbl,
1296                               l_detail_tax_line_id_tbl,
1297                               l_trx_line_id_tbl,
1298                                    l_tax_rate_tbl,
1299                                    l_non_taxable_amt_tbl);
1300 
1301 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1302 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1303 					      'Before Call to GET_VAT_EXEMPT_AMOUNT');
1304 	END IF;
1305 	    -- Get Vat Exempt Amount
1306             GET_VAT_EXEMPT_AMOUNT(P_VAT_TAX_TYPE,
1307                                   NULL, -- P_VAT_ADDIT_TAX
1308                                   NULL, -- P_VAT_PERCEP_TAX
1309                                   P_REPORT_NAME,
1310                                   NULL, -- P_TAX_REGIME
1311                                   P_REQUEST_ID,
1312                                   l_trx_id_tbl,
1313                                   l_trx_line_id_tbl,
1314                                   l_tax_rate_tbl,
1315                                   l_document_sub_type_tbl,
1316                                   l_vat_exempt_amt_tbl);
1317 
1318 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1319 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1320 					      'Before Call to GET_VAT_PERCEPTION_AMOUNT');
1321 	END IF;
1322 	    -- Get Vat Perception Amount
1323             GET_VAT_PERCEPTION_AMOUNT(P_VAT_PERC_TAX_TYPE_FROM,
1324                                       P_VAT_PERC_TAX_TYPE_TO,
1325                                       NULL, -- P_VAT_PERC_TAX,
1326                                       NULL, -- P_TAX_REGIME,
1327                                       P_REPORT_NAME,
1328                                       P_REQUEST_ID,
1329                                       l_trx_id_tbl,
1330                                  l_trx_line_id_tbl,
1331                                       l_tax_rate_tbl,
1332                                       l_vat_perc_amt_tbl);
1333 
1334 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1335 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1336 					      'Before Call to GET_OTHER_FED_PERC_AMOUNT');
1337 	END IF;
1338 	    -- Get Other Federal Perception Amount
1339             GET_OTHER_FED_PERC_AMOUNT(P_FED_PERC_TAX_TYPE_FROM,
1340                                       P_FED_PERC_TAX_TYPE_TO,
1341                                       NULL, -- P_VAT_PERC_TAX,
1342                                       NULL, -- P_TAX_REGIME,
1343                                       P_REPORT_NAME,
1344                                       P_REQUEST_ID,
1345                                       l_trx_id_tbl,
1346                                       l_tax_rate_tbl,
1347                                       l_other_fed_perc_amt_tbl);
1348 
1349 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1350 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1351 					      'Before Call to GET_PROVINCIAL_PERC_AMOUNT');
1352 	END IF;
1353 	    -- Get Provincial Amount
1354             GET_PROVINCIAL_PERC_AMOUNT(P_PROV_TAX_TYPE_FROM,
1355                                        P_PROV_TAX_TYPE_TO,
1356                                        NULL, -- P_PROV_TAX_REGIME
1357                                        P_REPORT_NAME,
1358                                        P_REQUEST_ID,
1359                                        l_trx_id_tbl,
1360                                        l_tax_rate_id_tbl,
1361                                        l_prov_perc_amt_tbl);
1362 
1363 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1364 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1365 					      'Before Call to GET_MUNICIPAL_PERC_AMOUNT');
1366 	END IF;
1367 	    -- Get Municipal Perception Amount
1368             GET_MUNICIPAL_PERC_AMOUNT(P_MUN_TAX_TYPE_FROM,
1369                                       P_MUN_TAX_TYPE_TO,
1370                                       NULL, -- P_MUN_TAX_REGIME
1371                                       P_REPORT_NAME,
1372                                       P_REQUEST_ID,
1373                                       l_trx_id_tbl,
1374                                       l_tax_rate_id_tbl,
1375                                       l_munic_perc_amt_tbl);
1376 
1377 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1378 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1379 					      'Before Call to GET_EXCISE_TAX_AMOUNT');
1380 	END IF;
1381 	    -- Get Excise Tax Amount
1382             GET_EXCISE_TAX_AMOUNT(P_EXC_TAX_TYPE_FROM,
1383                                   P_EXC_TAX_TYPE_TO,
1384                                   NULL, --P_EXC_TAX_REGIME,
1385                                   P_REPORT_NAME,
1386                                   P_REQUEST_ID,
1387                                   l_trx_id_tbl,
1388                                   l_excise_amt_tbl);
1389 
1390 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1391 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1392 					      'Before Call to GET_TOTAL_DOCUMENT_AMOUNT');
1393 	END IF;
1394 	     -- Get Total Document Amount
1395              GET_TOTAL_DOCUMENT_AMOUNT(l_trx_id_tbl,
1396                                        l_exchange_rate_tbl,
1397                                        P_REPORT_NAME,
1398                                        l_total_doc_amt_tbl);
1399 
1400             -- Insert lines into JX EXT Table with Calculated amount --
1401 
1402             FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
1403 
1404                    INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
1405                                                    detail_tax_line_id,
1406                                                    numeric9,
1407                                                    numeric10,
1408                                                    numeric8,
1409                                                    numeric2,
1410                                                    numeric3,
1411                                                    numeric7,
1412                                                    numeric4,
1413                                                    numeric5,
1414                                                    numeric6,
1415                                                    numeric12,
1416                                                    attribute4,
1417                                                    attribute19,
1418                                                   attribute23,
1419                                                    attribute20,
1420                                                    gdf_ap_invoices_att13,
1421                                                    attribute21,
1422                                                    attribute22,
1423                                                    created_by,
1424                                                    creation_date,
1425                                                    last_updated_by,
1426                                                    last_update_date,
1427                                                    last_update_login,
1428                                                    request_id)
1429                                            VALUES (zx_rep_trx_jx_ext_t_s.nextval,
1430                                                    l_detail_tax_line_id_tbl(i),
1431                                                    l_vat_amt_tbl(i),
1432                                                    l_taxable_amt_tbl(i),
1433                                                    l_non_taxable_amt_tbl(i),
1434                                                    l_vat_exempt_amt_tbl(i),
1435                                                    l_vat_perc_amt_tbl(i),
1436                                                    l_other_fed_perc_amt_tbl(i),
1437                                                    l_prov_perc_amt_tbl(i),
1438                                                    l_munic_perc_amt_tbl(i),
1439                                                    l_excise_amt_tbl(i),
1440                                                    l_total_doc_amt_tbl(i),
1441                                                    l_dgi_trx_code_tbl(i),
1442                                                    l_cai_number_tbl(i),
1443                                                    l_cai_due_date_tbl(i),
1444                                                    l_fiscal_printer_tbl(i),
1445                                                    l_dgi_doc_type_tbl(i),
1446                                                    l_taxpayerid_type_tbl(i),
1447                                                    l_reg_status_code_tbl(i),
1448                                                    fnd_global.user_id,
1449                                                    sysdate,
1450                                                    fnd_global.user_id,
1451                                                    sysdate,
1452                                                    fnd_global.login_id,
1453                                                    p_request_id);
1454 
1455 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1456 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1457 					      'After insertion into zx_rep_trx_jx_ext_t ');
1458 	END IF;
1459 
1460                 -- Delete Unwanted lines from Detail ITF
1461 
1462                 DELETE from zx_rep_trx_detail_t itf
1463                  WHERE itf.request_id = p_request_id
1464                    AND NOT EXISTS ( SELECT 1
1465                                       FROM zx_rep_trx_jx_ext_t ext
1466                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
1467 
1468                UPDATE_DGI_CURR_CODE(p_request_id);
1469 
1470 
1471        EXCEPTION
1472 	WHEN OTHERS THEN
1473 		IF ( g_level_statement>= g_current_runtime_level ) THEN
1474 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1475 			'Error Message for report '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
1476 		END IF;
1477        END;
1478 
1479  ELSIF P_REPORT_NAME = 'ZXCLPPLR' THEN
1480 
1481        BEGIN
1482 
1483        -- ------------------------------------------------ --
1484        -- Get filtered tax lines                           --
1485        -- in this case, you need to group the lines by trx --
1486        -- ------------------------------------------------ --
1487 --Changes done for the Bug 5413860 :
1488 
1489                         SELECT min(itf1.detail_tax_line_id),
1490                                       itf1.trx_line_id,
1491                                trx_id,
1492                                tax_rate_id tax_rate,
1493                                document_sub_type
1494              BULK COLLECT INTO l_detail_tax_line_id_tbl,
1495                                l_trx_line_id_tbl,
1496                                l_trx_id_tbl,
1497                                l_tax_rate_tbl,
1498                                l_document_sub_type_tbl
1499                           FROM zx_rep_trx_detail_t itf1 ,
1500                                zx_fc_codes_denorm_b fc
1501                          WHERE itf1.request_id = P_REQUEST_ID
1502                            AND itf1.cancel_flag = 'N'
1503 --                           AND itf1.posted_flag = 'Y' --Bug 5413860
1504                            AND ( itf1.reverse_flag IS NULL OR itf1.reverse_flag <>'Y')
1505                            AND itf1.document_sub_type  = fc.concat_classif_code
1506                            AND fc.classification_type_code = 'DOCUMENT_SUBTYPE'
1507                       GROUP BY trx_id,
1508                                itf1.trx_line_id,
1509                                tax_rate_id ,
1510                                document_sub_type;
1511 
1512 
1513                     /*    SELECT min(itf1.detail_tax_line_id),
1514                                trx_id,
1515                                null tax_rate,
1516                                document_sub_type
1517             BULK COLLECT INTO  l_detail_tax_line_id_tbl,
1518                                l_trx_id_tbl,
1519                                l_tax_rate_tbl,
1520                                l_document_sub_type_tbl
1521                          FROM  zx_rep_trx_detail_t itf1
1522                         WHERE  itf1.request_id = P_REQUEST_ID
1523                           AND  itf1.cancel_flag = 'N'
1524                           AND  itf1.posted_flag = 'Y'
1525                           AND  ( itf1.reverse_flag IS NULL OR itf1.reverse_flag <>'Y')
1526                           AND  itf1.document_sub_type IN ( 'DOCUMENT TYPE.JL_CL_FOREIGN_INVOICE',
1527                                                            'DOCUMENT TYPE.JL_CL_DOMESTIC_INVOICE',
1528                                                            'DOCUMENT TYPE.JL_CL_CREDIT_MEMO',
1529                                                            'DOCUMENT TYPE.JL_CL_DEBIT_MEMO')
1530                      GROUP BY itf1.trx_id,document_sub_type;
1531               */
1532 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1533 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1534 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
1535 	END IF;
1536 	  --Bug 5058043
1537 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
1538 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1539 					      'Before call to GET_LOOKUP_INFO ');
1540 	  END IF;
1541            -- Get Lookup Info
1542            GET_LOOKUP_INFO(l_document_sub_type_tbl,
1543                            l_jlcl_ap_doc_type_mng_tbl,
1544                            l_order_by_doc_type_tbl);
1545 
1546 
1547 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
1548 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1549 					      'Before call to GET_LOOKUP_INFO ');
1550 	  END IF;
1551            -- Get Counted sum doc
1552            GET_COUNTED_SUM_DOC(P_REPORT_NAME,
1553                                P_REQUEST_ID,
1554                                l_document_sub_type_tbl,
1555                                l_cl_num_of_doc_tbl,
1556                                l_cl_total_exempt_tbl,
1557                                l_cl_total_effective_tbl,
1558                                l_cl_total_vat_tax_tbl,
1559                                l_cl_total_other_tax_tbl);
1560 
1561 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
1562 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1563 					      'Before call to GET_VAT_AMOUNT ');
1564 	  END IF;
1565            -- Get Vat Amount
1566            GET_VAT_AMOUNT(P_VAT_TAX_TYPE,
1567                           NULL,
1568                           P_REPORT_NAME,
1569                           P_REQUEST_ID,
1570                           l_trx_id_tbl,
1571                           l_detail_tax_line_id_tbl,
1572                           l_tax_rate_tbl,
1573                           l_document_sub_type_tbl,
1574                           l_vat_amt_tbl);
1575 
1576 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
1577 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1578 					      'Before call to GET_TAXABLE_AMOUNT ');
1579 	  END IF;
1580           -- Get Taxable Amount
1581           GET_TAXABLE_AMOUNT(P_VAT_TAX_TYPE,
1582                              NULL,
1583                              P_REPORT_NAME,
1584                              P_REQUEST_ID,
1585                           l_detail_tax_line_id_tbl,
1586                           l_trx_line_id_tbl,
1587                              l_trx_id_tbl,
1588                              l_tax_rate_tbl,
1589                              l_document_sub_type_tbl,
1590                              l_taxable_amt_tbl);
1591 
1592 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
1593 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1594 					      'Before call to GET_VAT_EXEMPT_AMOUNT ');
1595 	  END IF;
1596 	  -- Get Vat Exempt Amount
1597           GET_VAT_EXEMPT_AMOUNT(P_VAT_TAX_TYPE,
1598                                 NULL, -- P_VAT_ADDIT_TAX
1599                                 NULL, -- P_VAT_PERCEP_TAX
1600                                 P_REPORT_NAME,
1601                                 NULL, -- P_TAX_REGIME
1602                                 P_REQUEST_ID,
1603                                 l_trx_id_tbl,
1604                                 l_trx_line_id_tbl,
1605                                 l_tax_rate_tbl,
1606                                 l_document_sub_type_tbl,
1607                                 l_vat_exempt_amt_tbl);
1608 
1609 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
1610 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1611 					      'Before call to GET_OTHER_TAX_AMOUNT ');
1612 	  END IF;
1613 	  -- Get Other Tax Amount
1614           GET_OTHER_TAX_AMOUNT(P_REPORT_NAME,
1615                                p_REQUEST_ID,
1616                                l_trx_id_tbl,
1617                                l_tax_rate_tbl,
1618                                l_document_sub_type_tbl,
1619                                l_other_tax_amt_tbl);
1620 
1621 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
1622 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1623 					      'Before call to GET_TOTAL_DOC_TAXABLE_AMOUNT ');
1624 	  END IF;
1625 	  -- Get Total Doc taxable Amount
1626           GET_TOTAL_DOC_TAXABLE_AMOUNT(l_trx_id_tbl,
1627                                        P_REQUEST_ID,
1628                                        l_total_doc_taxab_amt_tbl);
1629 
1630             -- Insert lines into JX EXT Table with Calculated amount --
1631 
1632             FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
1633 
1634                    INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
1635                                                    detail_tax_line_id,
1636                                                    numeric9,--l_vat_amt_tbl
1637                                                    numeric10,--l_taxable_amt_tbl
1638                                                    numeric2,--l_vat_exempt_amt_tbl
1639                                                    numeric7,--l_other_tax_amt_tbl
1640                                                    numeric3,--l_cl_num_of_doc_tbl
1641                                                    numeric4,--l_cl_total_exempt_tbl
1642                                                    numeric5,--l_cl_total_effective_tbl
1643                                                    numeric6,--l_cl_total_vat_tax_tbl
1644                                                    numeric11,--l_cl_total_other_tax_tbl
1645                                                    numeric1,--total doc amt
1646                                                    numeric8,--l_total_doc_taxab_amt_tbl
1647                                                    attribute14,--l_order_by_doc_type_tbl
1648                                                    document_sub_type_mng,
1649                                                    created_by,
1650                                                    creation_date,
1651                                                    last_updated_by,
1652                                                    last_update_date,
1653                                                    last_update_login)
1654                                            VALUES (zx_rep_trx_jx_ext_t_s.nextval,
1655                                                    l_detail_tax_line_id_tbl(i),
1656                 	                                   l_vat_amt_tbl(i),
1657                                                    l_taxable_amt_tbl(i),
1658                                                    l_vat_exempt_amt_tbl(i),
1659                                                    l_other_tax_amt_tbl(i),
1660                                                    l_cl_num_of_doc_tbl(i),
1661                                                    l_cl_total_exempt_tbl(i),
1662                                                    l_cl_total_effective_tbl(i),
1663                                                    l_cl_total_vat_tax_tbl(i),
1664                                                    l_cl_total_other_tax_tbl(i),
1665                                                   NVL(l_vat_exempt_amt_tbl(i),0)+NVL(l_taxable_amt_tbl(i),0)+NVL(l_vat_amt_tbl(i),0)+NVL(l_other_tax_amt_tbl(i),0),
1666 --                                                   l_total_doc_taxab_amt_tbl(i),
1667 						  nvl(l_cl_total_exempt_tbl(i),0)+nvl(l_cl_total_effective_tbl(i),0)+nvl(l_cl_total_vat_tax_tbl(i),0)+nvl(l_cl_total_other_tax_tbl(i),0),
1668                                                    l_order_by_doc_type_tbl(i),
1669                                                    l_jlcl_ap_doc_type_mng_tbl(i),
1670                                                    fnd_global.user_id,
1671                                                    sysdate,
1672                                                    fnd_global.user_id,
1673                                                    sysdate,
1674                                                    fnd_global.login_id);
1675 
1676 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1677 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1678 					      'After insertion into zx_rep_trx_jx_ext_t ');
1679 	END IF;
1680 		-- Delete Unwanted lines from Detail ITF
1681 
1682 
1683 	      DELETE from zx_rep_trx_detail_t itf
1684                  WHERE itf.request_id = p_request_id
1685                    AND NOT EXISTS ( SELECT 1
1686                                       FROM zx_rep_trx_jx_ext_t ext
1687                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
1688 
1689 
1690 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1691 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1692 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
1693 	END IF;
1694 
1695        EXCEPTION
1696 
1697             WHEN OTHERS THEN
1698                     l_err_msg := substrb(SQLERRM,1,120);
1699             IF (g_level_procedure >= g_current_runtime_level ) THEN
1700                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP.END',
1701                                       'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP:'||p_report_name || '.'||l_err_msg);
1702             END IF;
1703 
1704        END;
1705 
1706       ELSIF P_REPORT_NAME = 'JLARPPTF' THEN
1707 
1708               DELETE from zx_rep_trx_detail_t itf
1709                  WHERE itf.request_id = p_request_id
1710                    AND (NVL(itf.reverse_flag,'N') = 'Y'
1711                        OR itf.tax_type_code <> NVL(p_trl_global_variables_rec.per_tax_type_code_high,
1712                                         p_trl_global_variables_rec.per_tax_type_code_low));
1713                    /*AND NOT EXISTS ( SELECT 1
1714                                       FROM zx_rep_actg_ext_t actg
1715                                      WHERE actg.detail_tax_line_id = itf.detail_tax_line_id
1716                                        AND actg.accounting_date between p_trl_global_variables_rec.gl_date_low
1717                                              AND p_trl_global_variables_rec.gl_date_high)*/
1718 
1719              DELETE from zx_rep_actg_ext_t actg
1720                 WHERE actg.request_id = p_request_id
1721                   AND NOT EXISTS ( SELECT 1 FROM zx_rep_trx_detail_t itf
1722                                     WHERE actg.detail_tax_line_id = itf.detail_tax_line_id);
1723 
1724                       SELECT detail_tax_line_id,
1725                               trx_line_id,
1726                               trx_id,
1727                               tax_rate,
1728                               tax_rate_id,
1729                               tax_regime_code
1730             BULK COLLECT INTO l_detail_tax_line_id_tbl,
1731                                 l_trx_line_id_tbl,
1732                               l_trx_id_tbl,
1733                               l_tax_rate_tbl,
1734                               l_tax_rate_id_tbl,
1735                               l_tax_regime_code_tbl
1736                          FROM zx_rep_trx_detail_t
1737                         WHERE request_id = p_request_id;
1738 
1739 
1740        GET_TAX_AUTH_CATEG(
1741              l_trx_id_tbl,
1742              l_tax_regime_code_tbl,
1743              l_tax_rate_id_tbl,
1744              l_tax_auth_categ_tbl);
1745 
1746         -- Insert lines into JX EXT Table with Calculated amount --
1747 
1748          FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
1749 
1750                 INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
1751                                                 detail_tax_line_id,
1752                                                 attribute10,
1753                                                 created_by,
1754                                                 creation_date,
1755                                                 last_updated_by,
1756                                                 last_update_date,
1757                                                 last_update_login)
1758                                         VALUES (zx_rep_trx_jx_ext_t_s.nextval,
1759                                                 l_detail_tax_line_id_tbl(i),
1760                                                 l_tax_auth_categ_tbl(i),
1761                                                 fnd_global.user_id,
1762                                                 sysdate,
1763                                                 fnd_global.user_id,
1764                                                 sysdate,
1765                                                 fnd_global.login_id);
1766 
1767         IF ( g_level_statement>= g_current_runtime_level ) THEN
1768                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
1769                                               'After insertion into zx_rep_trx_jx_ext_t ');
1770         END IF;
1771 
1772       END IF;  -- End of P_REPORT_NAME = ..
1773 
1774   IF (g_level_procedure >= g_current_runtime_level ) THEN
1775      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP.END',
1776                                       'ZX_JL_EXTRACT_PKG.POPULATE_JL_AP(-)');
1777   END IF;
1778 
1779 
1780  END populate_jl_ap;
1781 
1782 /*======================================================================================+
1783  | PROCEDURE                                                                            |
1784  |   POPULATER_AR_TAX_AMOUNT                                                            |
1785  |   Type       : Private                                                               |
1786  |   Pre-req    : None                                                                  |
1787  |   Function   :                                                                       |
1788  |    This procedure extract tax amount for various tax categories                      |
1789  |    from zx_rep_trx_jx_ext_t table to meet the requirement in                         |
1790  |    the flat file                                                                     |
1791  |                                                                                      |
1792  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                                         |
1793  |                                                                                      |
1794  |   Parameters :                                                                       |
1795  |   IN         :  P_MUN_TAX_REGIME              IN   VARCHAR2 Opt                      |
1796  |                                                                                      |
1797  |   MODIFICATION HISTORY                                                               |
1798  |     07-Nov-03  Hidetaka Kojima   created                                             |
1799  |     17-Feb-04  Hidekoji          Modified parameters                                 |
1800  |                                                                                      |
1801  +======================================================================================*/
1802 
1803 
1804 PROCEDURE POPULATE_JL_AR(
1805           P_TRL_GLOBAL_VARIABLES_REC     IN      ZX_EXTRACT_PKG.TRL_GLOBAL_VARIABLES_REC_TYPE
1806           )
1807 IS
1808 
1809 P_TAX_REGIME                    VARCHAR2(30);
1810 P_MUN_TAX_REGIME                VARCHAR2(30);
1811 P_PROV_TAX_REGIME               VARCHAR2(30);
1812 P_EXC_TAX                       VARCHAR2(30);
1813 P_VAT_ADDIT_TAX                 VARCHAR2(30);
1814 P_VAT_NON_TAXAB_TAX             VARCHAR2(30);
1815 P_VAT_NOT_CATEG_TAX             VARCHAR2(30);
1816 P_VAT_PERC_TAX                  VARCHAR2(30);
1817 P_VAT_TAX                       VARCHAR2(30);
1818 P_TRX_LETTER_FROM               VARCHAR2(30);
1819 P_TRX_LETTER_TO                 VARCHAR2(30);
1820 P_REPORT_NAME                   VARCHAR2(30);
1821 P_REQUEST_ID                    NUMBER;
1822 
1823 l_detail_tax_line_id_tbl        ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL;
1824 l_trx_line_id_tbl               ZX_EXTRACT_PKG.TRX_LINE_ID_TBL;
1825 l_trx_id_tbl                    ZX_EXTRACT_PKG.TRX_ID_TBL;
1826 l_batch_source_id_tbl           ZX_EXTRACT_PKG.BATCH_SOURCE_ID_TBL;
1827 l_internal_org_id_tbl           ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL;
1828 l_trx_number_tbl                ZX_EXTRACT_PKG.TRX_NUMBER_TBL;
1829 l_trx_type_id_tbl               ZX_EXTRACT_PKG.TRX_TYPE_ID_TBL;
1830 l_tax_rate_tbl                  ZX_EXTRACT_PKG.TAX_RATE_TBL;
1831 l_tax_rate_id_tbl               ZX_EXTRACT_PKG.TAX_RATE_ID_TBL;
1832 l_document_sub_type_tbl         ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL;
1833 l_exchange_rate_tbl             ZX_EXTRACT_PKG.CURRENCY_CONVERSION_RATE_TBL;
1834 
1835 l_not_reg_tax_amt_tbl           NUMERIC1_TBL;
1836 l_vat_exempt_amt_tbl            NUMERIC2_TBL;
1837 l_vat_perc_amt_tbl              NUMERIC3_TBL;
1838 l_prov_perc_amt_tbl             NUMERIC4_TBL;
1839 l_munic_perc_amt_tbl            NUMERIC5_TBL;
1840 l_excise_amt_tbl                NUMERIC6_TBL;
1841 l_other_tax_amt_tbl             NUMERIC7_TBL;
1842 l_non_taxable_amt_tbl           NUMERIC8_TBL;
1843 l_vat_amt_tbl                   NUMERIC9_TBL;
1844 l_taxable_amt_tbl               NUMERIC10_TBL;
1845 l_vat_additional_amt_tbl        NUMERIC7_TBL;
1846 l_total_doc_amt_tbl             NUMERIC12_TBL;
1847 l_rec_count_tbl                 NUMERIC11_TBL;
1848 l_rate_count_tbl                NUMERIC13_TBL;
1849 
1850 l_tax_authority_code            ZX_REP_TRX_JX_EXT_T.ATTRIBUTE10%TYPE;
1851 l_dgi_code_tbl                  ATTRIBUTE11_TBL;
1852 l_cust_condition_code_tbl       ATTRIBUTE7_TBL;
1853 l_dgi_tax_regime_code_tbl       ATTRIBUTE25_TBL;
1854 l_vat_reg_stat_code_tbl         ATTRIBUTE8_TBL;
1855 l_prov_juris_code_tbl           ATTRIBUTE1_TBL;
1856 l_mun_juris_code_tbl            ATTRIBUTE3_TBL;
1857 l_fiscal_printer_tbl            GDF_RA_BATCH_SOURCES_ATT7_TBL;
1858 l_cai_number_tbl                ATTRIBUTE19_TBL;
1859 l_cai_due_date_tbl              ATTRIBUTE23_TBL;
1860 l_dgi_trx_code_tbl              ATTRIBUTE4_TBL;
1861 l_count                         NUMBER;
1862 l_tax_regime_code_tbl           ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL;
1863 
1864 l_tax_catg_desc zx_rep_trx_jx_ext_t.attribute1%type; --bug 5251425
1865 l_extended_amt_tbl NUMERIC10_TBL; --Bug 5396444
1866 BEGIN
1867 
1868  g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1869 
1870   IF (g_level_procedure >= g_current_runtime_level ) THEN
1871      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR.BEGIN',
1872                                       'ZX_JL_EXTRACT_PKG.POPULATE_JL_AR(+)');
1873   END IF;
1874 
1875  -- Get necessary parameters from TRL Global Variables
1876 
1877  P_TAX_REGIME        := P_TRL_GLOBAL_VARIABLES_REC.TAX_REGIME_CODE;
1878  P_MUN_TAX_REGIME    := P_TRL_GLOBAL_VARIABLES_REC.MUNICIPAL_TAX;
1879  P_PROV_TAX_REGIME   := P_TRL_GLOBAL_VARIABLES_REC.PROVINCIAL_TAX;
1880  P_EXC_TAX           := P_TRL_GLOBAL_VARIABLES_REC.EXCISE_TAX;
1881  P_VAT_ADDIT_TAX     := P_TRL_GLOBAL_VARIABLES_REC.VAT_ADDITIONAL_TAX;
1882  P_VAT_NON_TAXAB_TAX := P_TRL_GLOBAL_VARIABLES_REC.VAT_NON_TAXABLE_TAX;
1883  P_VAT_NOT_CATEG_TAX := P_TRL_GLOBAL_VARIABLES_REC.VAT_NOT_TAX;
1884  P_VAT_PERC_TAX      := P_TRL_GLOBAL_VARIABLES_REC.VAT_PERCEPTION_TAX;
1885  P_VAT_TAX           := P_TRL_GLOBAL_VARIABLES_REC.VAT_TAX;
1886  P_VAT_NON_TAXAB_TAX := P_TRL_GLOBAL_VARIABLES_REC.VAT_NON_TAXABLE_TAX;
1887  P_TRX_LETTER_FROM   := P_TRL_GLOBAL_VARIABLES_REC.TRX_LETTER_LOW;
1888  P_TRX_LETTER_TO     := P_TRL_GLOBAL_VARIABLES_REC.TRX_LETTER_HIGH;
1889  P_REPORT_NAME       := P_TRL_GLOBAL_VARIABLES_REC.REPORT_NAME;
1890  P_REQUEST_ID        := P_TRL_GLOBAL_VARIABLES_REC.REQUEST_ID;
1891 
1892     IF ( g_level_statement>= g_current_runtime_level ) THEN
1893 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_TAX_REGIME        :'||P_TAX_REGIME       );
1894 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_MUN_TAX_REGIME    :'||P_MUN_TAX_REGIME   );
1895 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_PROV_TAX_REGIME   :'||P_PROV_TAX_REGIME  );
1896 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_EXC_TAX           :'||P_EXC_TAX          );
1897 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_VAT_ADDIT_TAX     :'||P_VAT_ADDIT_TAX    );
1898 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_VAT_NON_TAXAB_TAX :'||P_VAT_NON_TAXAB_TAX);
1899 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_VAT_NOT_CATEG_TAX :'||P_VAT_NOT_CATEG_TAX);
1900 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_VAT_PERC_TAX      :'||P_VAT_PERC_TAX     );
1901 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_VAT_TAX           :'||P_VAT_TAX          );
1902 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_VAT_NON_TAXAB_TAX :'||P_VAT_NON_TAXAB_TAX);
1903 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_TRX_LETTER_FROM   :'||P_TRX_LETTER_FROM  );
1904 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_TRX_LETTER_TO     :'||P_TRX_LETTER_TO    );
1905 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_REPORT_NAME       :'||P_REPORT_NAME      );
1906 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR','P_REQUEST_ID        :'||P_REQUEST_ID       );
1907     END IF;
1908 
1909 
1910 
1911 
1912  IF P_REPORT_NAME = 'JLZZTCFF' THEN
1913 
1914     BEGIN
1915 
1916       IF (g_level_procedure >= g_current_runtime_level ) THEN
1917           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
1918                                       'JLZZTCFF : Filter ');
1919       END IF;
1920 
1921 /*
1922                     SELECT  min(detail_tax_line_id) detail_tax_line_id,
1923                             trx_id,
1924                             internal_organization_id,
1925                             null tax_rate,
1926                             null document_sub_type
1927          BULK COLLECT INTO  l_detail_tax_line_id_tbl,
1928                             l_trx_id_tbl,
1929                             l_internal_org_id_tbl,
1930                             l_tax_rate_tbl,
1931                             l_document_sub_type_tbl
1932                       FROM  zx_rep_trx_detail_t itf,
1933                             ra_customer_trx_all   rcta
1934                      WHERE  itf.request_id = P_REQUEST_ID
1935                        AND  rcta.customer_trx_id = itf.trx_id
1936                        AND  itf.extract_source_ledger = 'AR'
1937                        AND  itf.trx_line_class = 'CREDIT_MEMO'
1938                        AND  rcta.global_attribute19 is NULL
1939                        AND  substr(itf.trx_number,1,1) BETWEEN P_TRX_LETTER_FROM AND P_TRX_LETTER_TO
1940                        AND  nvl(itf.tax_type_code, 'VAT') = 'VAT'
1941                   GROUP BY  itf.internal_organization_id, itf.trx_id;
1942 */
1943                     SELECT  min(detail_tax_line_id) detail_tax_line_id,
1944                             trx_id,
1945                             trx_number,
1946                             internal_organization_id,
1947                             null tax_rate,
1948                             null document_sub_type
1949          BULK COLLECT INTO  l_detail_tax_line_id_tbl,
1950                             l_trx_id_tbl,
1951                             l_trx_number_tbl,
1952                             l_internal_org_id_tbl,
1953                             l_tax_rate_tbl,
1954                             l_document_sub_type_tbl
1955                       FROM  zx_rep_trx_detail_t itf
1956                      WHERE  itf.request_id = P_REQUEST_ID
1957                        AND  itf.extract_source_ledger = 'AR'
1958                        AND  itf.trx_line_class = 'CREDIT_MEMO'
1959                        AND  NVL(itf.application_doc_status,'$')<>'VD'
1960                        AND  substr(itf.trx_number,1,1) BETWEEN P_TRX_LETTER_FROM AND P_TRX_LETTER_TO
1961                        AND  nvl(itf.tax_type_code, 'VAT') = 'VAT'
1962                   GROUP BY  itf.internal_organization_id, itf.trx_id,
1963                              itf.trx_number  ;
1964 
1965 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1966 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
1967 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
1968 	END IF;
1969 
1970            GET_DGI_CODE(l_trx_number_tbl,
1971                           l_trx_type_id_tbl,
1972                           l_internal_org_id_tbl,
1973                           l_dgi_code_tbl);
1974 
1975 
1976 	IF ( g_level_statement>= g_current_runtime_level ) THEN
1977 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
1978 					      'Before call to GET_VAT_AMOUNT ');
1979 	END IF;
1980          -- Get Vat Amount
1981          GET_VAT_AMOUNT(P_VAT_TAX,
1982                         P_TAX_REGIME,
1983                         P_REPORT_NAME,
1984                         P_REQUEST_ID,
1985                         l_trx_id_tbl,
1986                         l_detail_tax_line_id_tbl,
1987                         l_tax_rate_tbl,
1988                         l_document_sub_type_tbl,
1989                         l_vat_amt_tbl);
1990 
1991          -- Insert lines into JX EXT Table with Calculated amount --
1992 
1993          FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
1994 
1995                 INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
1996                                                   detail_tax_line_id,
1997                                                   numeric9,
1998                                                   attribute11,
1999                                                   created_by,
2000                                                   creation_date,
2001                                                   last_updated_by,
2002                                                   last_update_date,
2003                                                   last_update_login,
2004                                                   request_id)
2005                                           VALUES (zx_rep_trx_jx_ext_t_s.nextval,
2006                                                   l_detail_tax_line_id_tbl(i),
2007                                                   l_vat_amt_tbl(i),
2008                                                   l_dgi_code_tbl(i),
2009                                                   fnd_global.user_id,
2010                                                   sysdate,
2011                                                   fnd_global.user_id,
2012                                                   sysdate,
2013                                                   fnd_global.login_id,
2014                                                   p_request_id);
2015 
2016 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2017 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2018 					      'After insertion into zx_rep_trx_jx_ext_t ');
2019 	END IF;
2020                 -- Delete Unwanted lines from Detail ITF
2021 
2022                 DELETE from zx_rep_trx_detail_t itf
2023                  WHERE itf.request_id = p_request_id
2024                    AND NOT EXISTS ( SELECT 1
2025                                       FROM zx_rep_trx_jx_ext_t ext
2026                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
2027 
2028 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2029 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2030 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
2031 	END IF;
2032 
2033       IF (g_level_procedure >= g_current_runtime_level ) THEN
2034           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2035                                       'JLZZTCFF : Call End ');
2036       END IF;
2037 
2038        EXCEPTION
2039             WHEN OTHERS THEN
2040                l_err_msg := substrb(SQLERRM,1,120);
2041             IF (g_level_procedure >= g_current_runtime_level ) THEN
2042                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2043                                        'JLZZTCFF : Exception '||p_report_name || '.'||l_err_msg);
2044             END IF;
2045 
2046        END;
2047 
2048 
2049  ELSIF P_REPORT_NAME = 'JLARTPFF' THEN
2050 
2051        BEGIN
2052             IF (g_level_procedure >= g_current_runtime_level ) THEN
2053                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2054                                       'JLARTPFF : Filter ');
2055             END IF;
2056  -- DELETE from ZX_REP_TRX_DETAIL_T DET
2057   --     WHERE DET.REQUEST_ID = P_TRL_GLOBAL_VARIABLES_REC.REQUEST_ID
2058    --         AND det.TAX <> P_TRL_GLOBAL_VARIABLES_REC.VAT_PERCEPTION_TAX;
2059 
2060                         SELECT  detail_tax_line_id,
2061                                 itf1.trx_line_id,
2062                                 trx_id,
2063                                 internal_organization_id,
2064                                 tax_rate,
2065                                 document_sub_type,
2066                                 currency_conversion_rate
2067              BULK COLLECT INTO  l_detail_tax_line_id_tbl,
2068                                 l_trx_line_id_tbl,
2069                                 l_trx_id_tbl,
2070                                 l_internal_org_id_tbl,
2071                                 l_tax_rate_tbl,
2072                                 l_document_sub_type_tbl,
2073                                 l_exchange_rate_tbl
2074                           FROM  zx_rep_trx_detail_t itf1
2075                               --  ra_customer_trx rct
2076                          WHERE  itf1.request_id = P_REQUEST_ID
2077                           -- AND  rct.customer_trx_id = itf1.trx_id
2078                            AND  itf1.trx_line_class in ('INVOICE','DEBIT_MEMO','CREDIT_MEMO')
2079                            AND  NVL(itf1.application_doc_status,'$') <>'VD'
2080                            AND itf1.tax  =P_TRL_GLOBAL_VARIABLES_REC.VAT_PERCEPTION_TAX ;
2081                            --AND  rct.global_attribute19 is null
2082                            --AND  itf1.doc_event_status = 'FROZEN_FOR_TAX';
2083 
2084 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2085 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2086 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
2087 	END IF;
2088 
2089 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2090 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2091 					      'Before call to GET_TAXABLE_AMOUNT ');
2092 	END IF;
2093              -- Get Taxable Amount
2094              GET_TAXABLE_AMOUNT(P_VAT_TAX,
2095                                 P_TAX_REGIME,
2096                                 P_REPORT_NAME,
2097                                 P_REQUEST_ID,
2098                           l_detail_tax_line_id_tbl,
2099                           l_trx_line_id_tbl,
2100                                 l_trx_id_tbl,
2101                                 l_tax_rate_tbl,
2102                                 l_document_sub_type_tbl,
2103                                 l_taxable_amt_tbl);
2104 
2105 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2106 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2107 					      'Before call to GET_VAT_PERCEPTION_AMOUNT ');
2108 	END IF;
2109              -- Get Vat Perception Amount
2110              GET_VAT_PERCEPTION_AMOUNT(null, -- P_VAT_PERC_TAX_TYPE_FROM,
2111                                        null, --P_VAT_PERC_TAX_TYPE_TO,
2112                                        P_VAT_PERC_TAX,
2113                                        P_TAX_REGIME,
2114                                        P_REPORT_NAME,
2115                                        P_REQUEST_ID,
2116                                        l_trx_id_tbl,
2117                                        l_trx_line_id_tbl,
2118                                        l_tax_rate_tbl,
2119                                        l_vat_perc_amt_tbl);
2120 
2121 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2122 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2123 					      'Before call to GET_TOTAL_DOCUMENT_AMOUNT ');
2124 	END IF;
2125              -- Get Total Document Amount
2126              GET_TOTAL_DOCUMENT_AMOUNT(l_trx_id_tbl,
2127                                        l_exchange_rate_tbl,
2128                                        P_REPORT_NAME,
2129                                        l_total_doc_amt_tbl);
2130 
2131 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2132 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2133 					      'Before call to GET_TAX_AUTHORITY_CODE ');
2134 	END IF;
2135 	     -- Get Tax Authority Code
2136              l_tax_authority_code := GET_TAX_AUTHORITY_CODE(P_VAT_PERC_TAX,
2137                                                             l_internal_org_id_tbl(1));
2138 
2139 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2140 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2141 					      'Before call to GET_DGI_TAX_REGIME_CODE ');
2142 	END IF;
2143 
2144              GET_DGI_TAX_REGIME_CODE (P_VAT_PERC_TAX,
2145                                       l_trx_id_tbl ,
2146                                       l_trx_line_id_tbl ,
2147                                       l_internal_org_id_tbl,
2148                                       P_REQUEST_ID,
2149                                       l_dgi_tax_regime_code_tbl);
2150 
2151 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2152 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2153 					      'Before call to GET_CUSTOMER_CONDITION_CODE ');
2154 	END IF;
2155 	     -- Get Customer Condition Code
2156              GET_CUSTOMER_CONDITION_CODE(P_VAT_PERC_TAX,
2157                                          l_trx_id_tbl,
2158                                          l_internal_org_id_tbl,
2159                                          P_REQUEST_ID,
2160                                          l_cust_condition_code_tbl);
2161 
2162              -- Insert lines into JX EXT Table with Calculated amount --
2163 
2164              FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
2165 
2166                     INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
2167                                                     detail_tax_line_id,
2168                                                     numeric9,
2169                                                     numeric3,
2170                                                     numeric12,
2171                                                     attribute10,
2172                                                     attribute7,
2173                                                     attribute25,
2174                                                     request_id,
2175                                                     created_by,
2176                                                     creation_date,
2177                                                     last_updated_by,
2178                                                     last_update_date,
2179                                                     last_update_login)
2180                                             VALUES (zx_rep_trx_jx_ext_t_s.nextval,
2181                                                     l_detail_tax_line_id_tbl(i),
2182                                                     l_taxable_amt_tbl(i),
2183                                                     l_vat_perc_amt_tbl(i),
2184                                                     l_total_doc_amt_tbl(i),
2185                                                     l_tax_authority_code,
2186                                                     l_cust_condition_code_tbl(i),
2187                                                     l_dgi_tax_regime_code_tbl(i),
2188                                                     p_request_id,
2189                                                     fnd_global.user_id,
2190                                                     sysdate,
2191                                                     fnd_global.user_id,
2192                                                     sysdate,
2193                                                     fnd_global.login_id);
2194 
2195 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2196 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2197 					      'After insertion into zx_rep_trx_jx_ext_t ');
2198 	END IF;
2199 		-- Delete Unwanted lines from Detail ITF
2200 
2201                 DELETE from zx_rep_trx_detail_t itf
2202                  WHERE itf.request_id = p_request_id
2203                    AND NOT EXISTS ( SELECT 1
2204                                       FROM zx_rep_trx_jx_ext_t ext
2205                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
2206 
2207 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2208 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2209 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
2210 	END IF;
2211 
2212       IF (g_level_procedure >= g_current_runtime_level ) THEN
2213           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2214                                       'JLARTPFF : Call End ');
2215       END IF;
2216 
2217 
2218        EXCEPTION
2219 
2220             WHEN OTHERS THEN
2221                l_err_msg := substrb(SQLERRM,1,120);
2222             IF (g_level_procedure >= g_current_runtime_level ) THEN
2223                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2224                                        'JLARTPFF : Exception '||p_report_name || '.'||l_err_msg);
2225             END IF;
2226        END;
2227 
2228  ELSIF P_REPORT_NAME = 'ZXZZTVSR' THEN
2229 
2230        BEGIN
2231           IF (g_level_procedure >= g_current_runtime_level ) THEN
2232               FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2233                                       'ZXZZTVSR : Filter ');
2234           END IF;
2235 
2236                         SELECT detail_tax_line_id,
2237                                 trx_line_id,
2238                                trx_id,
2239                                internal_organization_id,
2240                                trx_number,
2241                                nvl(currency_conversion_rate,1), --  Bug 5374021
2242                                trx_type_id,
2243                                tax_rate,
2244                                tax_rate_id,
2245                                document_sub_type
2246             BULK COLLECT INTO  l_detail_tax_line_id_tbl,
2247                                l_trx_line_id_tbl,
2248                                l_trx_id_tbl,
2249                                l_internal_org_id_tbl,
2250                                l_trx_number_tbl,
2251                                l_exchange_rate_tbl,
2252                                l_trx_type_id_tbl,
2253                                l_tax_rate_tbl,
2254                                l_tax_rate_id_tbl,
2255                                l_document_sub_type_tbl
2256                          FROM
2257                               (  SELECT min(itf1.detail_tax_line_id) detail_tax_line_id,
2258                                         itf1.trx_line_id,
2259                                         itf1.trx_id   trx_id,
2260                                         itf1.internal_organization_id internal_organization_id,
2261                                         itf1.trx_number trx_number,
2262                                         itf1.currency_conversion_rate,
2263                                         itf1.trx_type_id,
2264                                         itf1.tax_rate tax_rate,
2265                                         itf1.tax_rate_id,
2266                                         null document_sub_type
2267                                    FROM zx_rep_trx_detail_t itf1
2268                                   WHERE itf1.request_id = P_REQUEST_ID
2269                                     AND itf1.tax = p_vat_tax
2270                                     AND nvl(itf1.tax_type_code,'VAT') = 'VAT'
2271                                     AND itf1.tax_rate <> 0
2272                                GROUP BY itf1.internal_organization_id,
2273                                         itf1.trx_line_id,
2274                                         itf1.trx_id,
2275                                         itf1.trx_number,
2276                                         itf1.currency_conversion_rate,
2277                                         itf1.trx_type_id,
2278                                         itf1.tax_rate,
2279                                         itf1.tax_rate_id
2280                                   UNION
2281 
2282                                  SELECT itf2.detail_tax_line_id,
2283                                         itf2.trx_line_id,
2284                                         itf2.trx_id   trx_id,
2285                                         itf2.internal_organization_id internal_organization_id,
2286                                         itf2.trx_number trx_number,
2287                                         itf2.currency_conversion_rate,
2288                                         itf2.trx_type_id,
2289                                         0 tax_rate,
2290                                         itf2.tax_rate_id,
2291                                         null document_sub_type
2292                                    FROM zx_rep_trx_detail_t itf2
2293                                   WHERE itf2.request_id = P_REQUEST_ID
2294                                     AND NVL(itf2.tax_type_code, 'VAT') = 'VAT'
2295                                     AND nvl(itf2.TAX_RATE,0) = 0
2296                                     AND itf2.tax = p_vat_tax
2297                                     AND not exists (SELECT 1
2298                                                       FROM zx_rep_trx_detail_t itf3
2299                                                      WHERE itf3.request_id = P_REQUEST_ID
2300                                                        AND itf2.trx_id = itf3.trx_id
2301                                                        AND NVL(itf3.tax_type_code, 'VAT') = 'VAT'
2302                                                        AND nvl(itf3.tax_rate,0) <>  0
2303                                                        AND itf3.tax = p_vat_tax)
2304                                     /*AND rownum = 1 for GSI Bug# 7170003*/
2305 
2306                                   UNION
2307 		--Query 3 : To pick once row per trx which have non-VAT taxes
2308                                  SELECT itf4.detail_tax_line_id,
2309                                         itf4.trx_line_id,
2310                                         itf4.trx_id   trx_id,
2311                                         itf4.internal_organization_id internal_organization_id,
2312                                         itf4.trx_number trx_number,
2313                                         itf4.currency_conversion_rate,
2314                                         itf4.trx_type_id,
2315                                         itf4.tax_rate,
2316                                         itf4.tax_rate_id,
2317                                         null document_sub_type
2318                                    FROM zx_rep_trx_detail_t itf4
2319                                   WHERE itf4.request_id = P_REQUEST_ID
2320                                   AND not exists ( SELECT 1
2321                                                      FROM zx_rep_trx_detail_t itf5
2322                                                     WHERE itf5.request_id = P_REQUEST_ID
2323                                                       AND itf5.trx_id = itf4.trx_id
2324                                                       AND itf5.tax = p_vat_tax )
2325                                   AND itf4.ROWID = ( SELECT Min(itf6.ROWID)
2326                                                       FROM zx_rep_trx_detail_t itf6
2327                                                       WHERE itf4.trx_id = itf6.trx_id
2328                                                       AND itf6.request_id =  P_REQUEST_ID )
2329                                                  );
2330 
2331 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2332 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2333 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
2334 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2335 					      'Before call to GET_VAT_AMOUNT ');
2336 	END IF;
2337              -- Get Vat Amount
2338              GET_VAT_AMOUNT(P_VAT_TAX,
2339                             P_TAX_REGIME,
2340                             P_REPORT_NAME,
2341                             P_REQUEST_ID,
2342                             l_trx_id_tbl,
2343                             l_detail_tax_line_id_tbl,
2344                             l_tax_rate_tbl,
2345                             l_document_sub_type_tbl,
2346                             l_vat_amt_tbl);
2347 
2348 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2349 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2350 					      'Before call to GET_TAXABLE_AMOUNT ');
2351 	END IF;
2352 	     -- Get Taxable Amount
2353              GET_TAXABLE_AMOUNT(P_VAT_TAX,
2354                                 P_TAX_REGIME,
2355                                 P_REPORT_NAME,
2356                                 P_REQUEST_ID,
2357                           l_detail_tax_line_id_tbl,
2358                           l_trx_line_id_tbl,
2359                                 l_trx_id_tbl,
2360                                 l_tax_rate_tbl,
2361                                 l_document_sub_type_tbl,
2362                                 l_taxable_amt_tbl);
2363 
2364 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2365 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2366 					      'Before call to GET_NON_TAXABLE_AMOUNT ');
2367 	END IF;
2368              -- Get Non Taxable Amount
2369              GET_NON_TAXABLE_AMOUNT(P_VAT_NON_TAXAB_TAX,
2370                                     P_VAT_TAX,
2371                                     P_VAT_ADDIT_TAX,
2372                                     P_VAT_PERC_TAX,
2373                                     P_REPORT_NAME,
2374                                     P_REQUEST_ID,
2375                                     l_trx_id_tbl,
2376                               l_detail_tax_line_id_tbl,
2377                               l_trx_line_id_tbl,
2378                                     l_tax_rate_tbl,
2379                                     l_non_taxable_amt_tbl);
2380 
2381 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2382 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2383 					      'Before call to GET_VAT_ADDITIONAL_AMOUNT ');
2384 	END IF;
2385              -- Get Vat Additional Amount
2386              GET_VAT_ADDITIONAL_AMOUNT(P_VAT_ADDIT_TAX,
2387                                        P_REPORT_NAME,
2388                                        P_REQUEST_ID,
2389                                        l_trx_id_tbl,
2390                                        l_tax_rate_id_tbl,
2391                                        l_vat_additional_amt_tbl);
2392 
2393 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2394 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2395 					      'Before call to GET_VAT_EXEMPT_AMOUNT ');
2396 	END IF;
2397              -- Get Vat Exempt Amount
2398              GET_VAT_EXEMPT_AMOUNT(P_VAT_TAX,
2399                                    P_VAT_ADDIT_TAX,
2400                                    P_VAT_PERC_TAX,
2401                                    P_REPORT_NAME,
2402                                    P_TAX_REGIME,
2403                                    P_REQUEST_ID,
2404                                    l_trx_id_tbl,
2405                                    l_trx_line_id_tbl,
2406                                    l_tax_rate_tbl,
2407                                    l_document_sub_type_tbl,
2408                                    l_vat_exempt_amt_tbl);
2409 
2410 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2411 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2412 					      'Before call to GET_VAT_PERCEPTION_AMOUNT ');
2413 	END IF;
2414              -- Get Vat Perception Amount
2415              GET_VAT_PERCEPTION_AMOUNT(null, -- P_VAT_PERC_TAX_TYPE_FROM,
2416                                        null, -- P_VAT_PERC_TAX_TYPE_TO,
2417                                        P_VAT_PERC_TAX,
2418                                        P_TAX_REGIME,
2419                                        P_REPORT_NAME,
2420                                        P_REQUEST_ID,
2421                                        l_trx_id_tbl,
2422                                  l_trx_line_id_tbl,
2423                                        l_tax_rate_tbl,
2424                                        l_vat_perc_amt_tbl);
2425 
2426 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2427 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2428 					      'Before call to GET_TOTAL_DOCUMENT_AMOUNT ');
2429 	END IF;
2430              -- Get Total Document Amount
2431              GET_TOTAL_DOCUMENT_AMOUNT(l_trx_id_tbl,
2432                                        l_exchange_rate_tbl,
2433                                        P_REPORT_NAME,
2434                                        l_total_doc_amt_tbl);
2435 
2436 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2437 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2438 					      'Before call to GET_DGI_CODE ');
2439 	END IF;
2440              -- Get DGI Code
2441              GET_DGI_CODE(l_trx_number_tbl,
2442                           l_trx_type_id_tbl,
2443                           l_internal_org_id_tbl,
2444                           l_dgi_code_tbl);
2445 
2446              -- Insert lines into JX EXT Table with Calculated amount --
2447 
2448              FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
2449 
2450                     INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
2451                                                     detail_tax_line_id,
2452                                                     numeric9,
2453                                                     numeric10,
2454                                                     numeric8,
2455                                                     numeric7,
2456                                                     numeric2,
2457                                                     numeric3,
2458                                                     numeric12,
2459                                                     attribute11,
2460                                                     created_by,
2461                                                     creation_date,
2462                                                     last_updated_by,
2463                                                     last_update_date,
2464                                                     last_update_login)
2465                                             VALUES (zx_rep_trx_jx_ext_t_s.nextval,
2466                                                     l_detail_tax_line_id_tbl(i),
2467                                                     l_vat_amt_tbl(i),
2468                                                     l_taxable_amt_tbl(i),
2469                                                     l_non_taxable_amt_tbl(i),
2470                                                     l_vat_additional_amt_tbl(i),
2471                                                     l_vat_exempt_amt_tbl(i),
2472                                                     l_vat_perc_amt_tbl(i),
2473                                                     l_total_doc_amt_tbl(i),
2474                                                     l_dgi_code_tbl(i),
2475                                                     fnd_global.user_id,
2476                                                     sysdate,
2477                                                     fnd_global.user_id,
2478                                                     sysdate,
2479                                                     fnd_global.login_id);
2480 
2481 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2482 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2483 					      'After insertion into zx_rep_trx_jx_ext_t ');
2484 	END IF;
2485 		-- Delete Unwanted lines from Detail ITF
2486 
2487                 DELETE from zx_rep_trx_detail_t itf
2488                  WHERE itf.request_id = p_request_id
2489                    AND NOT EXISTS ( SELECT 1
2490                                       FROM zx_rep_trx_jx_ext_t ext
2491                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
2492 
2493 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2494 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2495 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
2496 	END IF;
2497 
2498       IF (g_level_procedure >= g_current_runtime_level ) THEN
2499           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2500                                       'ZXZZTVSR : Call End ');
2501       END IF;
2502 
2503        EXCEPTION
2504 
2505             WHEN OTHERS THEN
2506                l_err_msg := substrb(SQLERRM,1,120);
2507             IF (g_level_procedure >= g_current_runtime_level ) THEN
2508                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2509                                        'ZXZZTVSR : Exception '||p_report_name || '.'||l_err_msg);
2510             END IF;
2511        END;
2512 
2513  ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
2514 
2515        BEGIN
2516 
2517           IF (g_level_procedure >= g_current_runtime_level ) THEN
2518              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2519                                        'JLARTSFF : Filter ');
2520           END IF;
2521 
2522           IF P_REPORT_NAME = 'JLARTSFF' THEN
2523 
2524                         SELECT  detail_tax_line_id,
2525                                 trx_id,
2526                                 trx_line_id,
2527                                 trx_batch_source_id,
2528                                 internal_organization_id,
2529                                 trx_number,
2530                                 currency_conversion_rate,
2531                                 trx_type_id,
2532                                 tax_rate,
2533                                 tax_rate_id,
2534                                 document_sub_type ,
2535                                 tax_regime_code
2536              BULK COLLECT INTO  l_detail_tax_line_id_tbl,
2537                                 l_trx_id_tbl,
2538                                 l_trx_line_id_tbl,
2539                                 l_batch_source_id_tbl,
2540                                 l_internal_org_id_tbl,
2541                                 l_trx_number_tbl,
2542                                 l_exchange_rate_tbl,
2543                                 l_trx_type_id_tbl,
2544                                 l_tax_rate_tbl,
2545                                 l_tax_rate_id_tbl,
2546                                 l_document_sub_type_tbl,
2547                                 l_tax_regime_code_tbl
2548                           FROM (SELECT min(dtl.detail_tax_line_id) detail_tax_line_id,
2549                                         dtl.trx_id,
2550                                         dtl.trx_line_id,
2551                                         dtl.trx_batch_source_id,
2552                                         dtl.internal_organization_id,
2553                                         dtl.trx_number,
2554                                         dtl.currency_conversion_rate,
2555                                         dtl.trx_type_id,
2556                                         dtl.tax_rate,
2557                                         dtl.tax_rate_id,
2558                                         null  document_sub_type,
2559                                         dtl.tax_regime_code
2560                                    FROM zx_rep_trx_detail_t dtl,
2561                                         ar_vat_tax_all vat
2562                                   WHERE dtl.request_id = P_REQUEST_ID
2563                                     AND nvl(vat.tax_type,'VAT') = 'VAT'
2564                                     AND dtl.tax_rate_id = vat.vat_tax_id
2565                           --       AND dtl.doc_event_status = 'FROZEN_FOR_TAX'
2566                                     AND dtl.tax_regime_code = p_tax_regime
2567                                     AND dtl.tax = P_VAT_TAX
2568                        GROUP BY dtl.internal_organization_id,
2569                                 dtl.trx_id,
2570                                 dtl.trx_line_id,
2571                                 dtl.trx_batch_source_id,
2572                                 dtl.trx_number,
2573                                 dtl.currency_conversion_rate,
2574                                 dtl.trx_type_id, dtl.tax_rate,
2575                                 dtl.tax_rate_id,
2576                                 dtl.tax_regime_code
2577                                /*UNION
2578                                  SELECT min(itf2.detail_tax_line_id) detail_tax_line_id,
2579                                         trx_id,
2580                                         trx_line_id,
2581                                         internal_organization_id,
2582                                         trx_number,
2583                                         currency_conversion_rate,
2584                                         trx_type_id,
2585                                         null tax_rate,
2586                                         null document_sub_type
2587                                    FROM zx_rep_trx_detail_t itf2
2588                                   WHERE itf2.request_id = P_REQUEST_ID
2589                                     AND nvl(itf2.tax_type_code,'VAT') = 'VAT'
2590                                GROUP BY itf2.internal_organization_id,
2591                                         itf2.trx_id, trx_line_id, trx_number, currency_conversion_rate,trx_type_id */
2592                                UNION
2593                                  SELECT min(itf3.detail_tax_line_id) detail_tax_line_id,
2594                                         itf3.trx_id,
2595                                         itf3.trx_line_id,
2596                                         itf3.trx_batch_source_id,
2597                                         itf3.internal_organization_id,
2598                                         itf3.trx_number,
2599                                         itf3.currency_conversion_rate,
2600                                         itf3.trx_type_id,
2601                                         null tax_rate,
2602                                         itf3.tax_rate_id,
2603                                         null document_sub_type,
2604                                         itf3.tax_regime_code
2605                                    FROM zx_rep_trx_detail_t itf3
2606                                   WHERE itf3.request_id = P_REQUEST_ID
2607                                     AND itf3.tax = P_VAT_NON_TAXAB_TAX
2608                                     AND itf3.tax_rate = 0
2609                                GROUP BY itf3.internal_organization_id,
2610                                         itf3.trx_id, itf3.trx_line_id,itf3.trx_batch_source_id,
2611                                         itf3.trx_number,
2612                                         itf3.currency_conversion_rate,
2613                                         itf3.trx_type_id,
2614                                         itf3.tax_rate_id,
2615                                         itf3.tax_regime_code);
2616 
2617  IF (g_level_procedure >= g_current_runtime_level ) THEN
2618      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2619                                       'Row Count : '||to_char(l_detail_tax_line_id_tbl.count));
2620      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2621                                       'p_tax_regime - P_VAT_TAX  : '||p_tax_regime||'-'||P_VAT_TAX);
2622   END IF;
2623 
2624 
2625        ELSIF P_REPORT_NAME = 'JLARTDFF' THEN
2626 
2627           IF (g_level_procedure >= g_current_runtime_level ) THEN
2628              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2629                                        'JLARTDFF : Filter ');
2630           END IF;
2631 
2632                          SELECT min(detail_tax_line_id),
2633                                 trx_line_id,
2634                                 trx_id,
2635                                 internal_organization_id,
2636                                 trx_number,
2637                                 trx_type_id,
2638                                 to_number(null) tax_rate,
2639                                 to_number(null) tax_rate_id,
2640                                 to_char(null) document_sub_type
2641              BULK COLLECT INTO  l_detail_tax_line_id_tbl,
2642                                 l_trx_line_id_tbl,
2643                                 l_trx_id_tbl,
2644                                 l_internal_org_id_tbl,
2645                                 l_trx_number_tbl,
2646                                 l_trx_type_id_tbl,
2647                                 l_tax_rate_tbl,
2648                                 l_tax_rate_id_tbl,
2649                                 l_document_sub_type_tbl
2650                            FROM zx_rep_trx_detail_t
2651                           WHERE request_id = P_REQUEST_ID
2652                             AND nvl(tax_type_code,'VAT') = 'VAT'
2653                             AND doc_event_status = 'FROZEN_FOR_TAX'
2654                             AND tax_regime_code = p_tax_regime
2655                             AND tax in (P_VAT_TAX,P_VAT_NON_TAXAB_TAX)
2656                        GROUP BY internal_organization_id,
2657                                 trx_line_id,
2658                                 trx_id,
2659                                 trx_number,
2660                                 trx_type_id;
2661 
2662        END IF;
2663 
2664           l_count := l_detail_tax_line_id_tbl.count;
2665 
2666 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2667 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2668 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
2669 	END IF;
2670 
2671 
2672 FOR i in 1..l_count
2673 LOOP
2674 --Initialize Variables --
2675 l_vat_amt_tbl(i) := NULL;
2676 l_taxable_amt_tbl(i) := NULL;
2677 l_non_taxable_amt_tbl(i) := NULL;
2678 l_vat_exempt_amt_tbl(i) := NULL;
2679 l_vat_perc_amt_tbl(i) := NULL;
2680 l_not_reg_tax_amt_tbl(i) := NULL;
2681 l_prov_perc_amt_tbl(i) := NULL;
2682 l_munic_perc_amt_tbl(i) := NULL;
2683 l_excise_amt_tbl(i) := NULL;
2684 l_total_doc_amt_tbl(i) := NULL;
2685 l_rec_count_tbl(i) := NULL;
2686 l_rate_count_tbl(i) := NULL;
2687 l_dgi_code_tbl(i) := NULL;
2688 l_dgi_trx_code_tbl(i) := NULL;
2689 l_vat_reg_stat_code_tbl(i) := NULL;
2690 l_fiscal_printer_tbl(i) := NULL;
2691 l_cai_number_tbl(i) := NULL;
2692 l_cai_due_date_tbl(i) := NULL;
2693 END LOOP;
2694 -- End of Initialize --
2695 
2696   	IF ( g_level_statement>= g_current_runtime_level ) THEN
2697 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2698 					      'Before call to GET_VAT_AMOUNT ');
2699 	END IF;
2700   --        initialize_variables(l_count);
2701             -- Get Vat Amount
2702              GET_VAT_AMOUNT(P_VAT_TAX,
2703                             P_TAX_REGIME,
2704                             P_REPORT_NAME,
2705                             P_REQUEST_ID,
2706                             l_trx_id_tbl,
2707                             l_detail_tax_line_id_tbl,
2708                             l_tax_rate_tbl,
2709                             l_document_sub_type_tbl,
2710                             l_vat_amt_tbl);
2711 
2712 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2713 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2714 					      'Before call to GET_TAXABLE_AMOUNT ');
2715 	END IF;
2716 
2717              -- Get Taxable Amount
2718              GET_TAXABLE_AMOUNT(P_VAT_TAX,
2719                                 P_TAX_REGIME,
2720                                 P_REPORT_NAME,
2721                                 P_REQUEST_ID,
2722                           l_detail_tax_line_id_tbl,
2723                           l_trx_line_id_tbl,
2724                                 l_trx_id_tbl,
2725                                 l_tax_rate_tbl,
2726                                 l_document_sub_type_tbl,
2727                                 l_taxable_amt_tbl);
2728 
2729 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2730 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2731 					      'Before call to GET_NON_TAXABLE_AMOUNT ');
2732 	END IF;
2733 
2734 
2735 	     -- Get Non Taxable Amount
2736              GET_NON_TAXABLE_AMOUNT(P_VAT_NON_TAXAB_TAX,
2737                                     P_VAT_TAX,
2738                                     P_VAT_ADDIT_TAX,
2739                                     P_VAT_PERC_TAX,
2740                                     P_REPORT_NAME,
2741                                     P_REQUEST_ID,
2742                                     l_trx_id_tbl,
2743                               l_detail_tax_line_id_tbl,
2744                               l_trx_line_id_tbl,
2745                                     l_tax_rate_tbl,
2746                                     l_non_taxable_amt_tbl);
2747 
2748 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2749 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2750 					      'Before call to GET_VAT_EXEMPT_AMOUNT ');
2751 	END IF;
2752              -- Get Vat Exempt Amount
2753              GET_VAT_EXEMPT_AMOUNT(P_VAT_TAX,
2754                                    P_VAT_ADDIT_TAX,
2755                                    P_VAT_PERC_TAX,
2756                                    P_REPORT_NAME,
2757                                    P_TAX_REGIME,
2758                                    P_REQUEST_ID,
2759                                    l_trx_id_tbl,
2760                                    l_trx_line_id_tbl,
2761                                    l_tax_rate_tbl,
2762                                    l_document_sub_type_tbl,
2763                                    l_vat_exempt_amt_tbl);
2764 
2765 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2766 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2767 					      'Before call to GET_VAT_PERCEPTION_AMOUNT ');
2768 	END IF;
2769              -- Get Vat Perception Amount
2770              GET_VAT_PERCEPTION_AMOUNT(null, -- P_VAT_PERC_TAX_TYPE_FROM,
2771                                        null, --P_VAT_PERC_TAX_TYPE_TO,
2772                                        P_VAT_PERC_TAX,
2773                                        P_TAX_REGIME,
2774                                        P_REPORT_NAME,
2775                                        P_REQUEST_ID,
2776                                        l_trx_id_tbl,
2777                                  l_trx_line_id_tbl,
2778                                        l_tax_rate_tbl,
2779                                        l_vat_perc_amt_tbl);
2780 
2781 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2782 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2783 					      'Before call to GET_NOT_REGISTERED_TAX_AMOUNT ');
2784 	END IF;
2785 	     -- Get Not Registered Amount
2786              GET_NOT_REGISTERED_TAX_AMOUNT(P_REPORT_NAME,
2787                                            P_VAT_ADDIT_TAX,
2788                                            P_VAT_NOT_CATEG_TAX,
2789                                            P_TAX_REGIME,
2790                                            P_REQUEST_ID,
2791                                            l_trx_id_tbl,
2792                                            l_tax_rate_tbl,
2793                                            l_document_sub_type_tbl,
2794                                            l_not_reg_tax_amt_tbl);
2795 
2796 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2797 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2798 					      'Before call to GET_PROVINCIAL_PERC_AMOUNT ');
2799 	END IF;
2800              -- Get Provincial Perception Amount
2801              GET_PROVINCIAL_PERC_AMOUNT(null, -- P_PROV_TAX_TYPE_FROM,
2802                                         null, -- P_PROV_TAX_TYPE_TO,
2803                                         P_PROV_TAX_REGIME,
2804                                         P_REPORT_NAME,
2805                                         P_REQUEST_ID,
2806                                         l_trx_id_tbl,
2807                                         l_tax_rate_id_tbl,
2808                                         l_prov_perc_amt_tbl);
2809 
2810 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2811 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2812 					      'Before call to GET_MUNICIPAL_PERC_AMOUNT ');
2813 	END IF;
2814              -- Get Municipal Perception Amount
2815              GET_MUNICIPAL_PERC_AMOUNT(null, -- P_MUN_TAX_TYPE_FROM,
2816                                        null, -- P_MUN_TAX_TYPE_TO,
2817                                        P_MUN_TAX_REGIME,
2818                                        P_REPORT_NAME,
2819                                        P_REQUEST_ID,
2820                                        l_trx_id_tbl,
2821                                        l_tax_rate_id_tbl,
2822                                        l_munic_perc_amt_tbl);
2823 
2824 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2825 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2826 					      'Before call to GET_EXCISE_TAX_AMOUNT ');
2827 	END IF;
2828              -- Get Excise Tax Amount
2829              GET_EXCISE_TAX_AMOUNT(null, --P_EXC_TAX_TYPE_FROM,
2830                                    null, --P_EXC_TAX_TYPE_TO,
2831                                    P_EXC_TAX,
2832                                    P_REPORT_NAME,
2833                                    P_REQUEST_ID,
2834                                    l_trx_id_tbl,
2835                                    l_excise_amt_tbl);
2836 
2837 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2838 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2839 					      'Before call to GET_TOTAL_DOCUMENT_AMOUNT ');
2840 	END IF;
2841              -- Get Total Document Amount
2842              GET_TOTAL_DOCUMENT_AMOUNT(l_trx_id_tbl,
2843                                        l_exchange_rate_tbl,
2844                                        P_REPORT_NAME,
2845                                        l_total_doc_amt_tbl);
2846 
2847      	IF ( g_level_statement>= g_current_runtime_level ) THEN
2848 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2849 					      'Before call to GET_DGI_CODE ');
2850 	END IF;
2851              -- Get DGI Code
2852              GET_DGI_CODE(l_trx_number_tbl,
2853                           l_trx_type_id_tbl,
2854                           l_internal_org_id_tbl,
2855                           l_dgi_code_tbl);
2856 
2857      	IF ( g_level_statement>= g_current_runtime_level ) THEN
2858 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2859 					      'Before call to GET_VAT_REG_STAT_CODE ');
2860 	END IF;
2861              -- Get Vat Reg Stat Code
2862              GET_VAT_REG_STAT_CODE(P_VAT_TAX,
2863                                    l_trx_id_tbl,
2864                                    l_internal_org_id_tbl,
2865                                    P_REQUEST_ID,
2866                                    l_vat_reg_stat_code_tbl);
2867 
2868 
2869      	IF ( g_level_statement>= g_current_runtime_level ) THEN
2870 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2871 					      'Before call to DGI_TRX_CODE ');
2872 	END IF;
2873              -- Get DGI Trx code
2874             DGI_TRX_CODE ( l_trx_id_tbl,
2875                         l_tax_regime_code_tbl,
2876                         l_tax_rate_id_tbl,
2877                         l_dgi_trx_code_tbl);
2878 
2879 
2880              -- Fiscal Printer --
2881        IF ( g_level_statement>= g_current_runtime_level ) THEN
2882                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER_AR',
2883                                               'Before call to GET_FISCAL_PRINTER_AR ');
2884         END IF;
2885 
2886              -- Fiscal Printer --
2887              GET_FISCAL_PRINTER_AR(l_trx_id_tbl,
2888                                    l_batch_source_id_tbl,
2889                                    l_fiscal_printer_tbl);
2890 
2891        IF ( g_level_statement>= g_current_runtime_level ) THEN
2892                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
2893                                               'Before call to GET_CAI_NUM ');
2894         END IF;
2895              GET_CAI_NUM_AR
2896                   ( l_trx_id_tbl,
2897                     p_report_name,
2898                     l_cai_number_tbl,
2899                     l_cai_due_date_tbl);
2900 
2901      	IF ( g_level_statement>= g_current_runtime_level ) THEN
2902 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2903 					      'Before call to GET_REC_COUNT ');
2904 	END IF;
2905              -- Get counted record
2906              GET_REC_COUNT(P_VAT_TAX,
2907                            P_TAX_REGIME,
2908                            l_trx_id_tbl,
2909                            P_REQUEST_ID,
2910                            l_rec_count_tbl);
2911 
2912      	IF ( g_level_statement>= g_current_runtime_level ) THEN
2913 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2914 					      'Before call to GET_VAT_NONVAT_RATE_COUNT ');
2915 	END IF;
2916              -- Get Counted VAT or NOVAT Tax Rate
2917              GET_VAT_NONVAT_RATE_COUNT  (P_VAT_TAX,
2918                                          P_VAT_NON_TAXAB_TAX,
2919                                          P_TAX_REGIME,
2920                                          l_trx_id_tbl,
2921                                          P_REQUEST_ID,
2922                                          l_rate_count_tbl);
2923 
2924              -- Insert lines into JX EXT Table with Calculated amount --
2925 
2926              FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
2927 
2928                     INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
2929                                                     detail_tax_line_id,
2930                                                     numeric9,
2931                                                     numeric10,
2932                                                     numeric8,
2933                                                    -- numeric7,
2934                                                     numeric2,
2935                                                     numeric3,
2936                                                     numeric1,
2937                                                     numeric4,
2938                                                     numeric5,
2939                                                     numeric6,
2940                                                     numeric12,
2941                                                     numeric11,
2942                                                     numeric13,
2943                                                     attribute11,
2944                                                     attribute4,
2945                                                     attribute8,
2946                                                     gdf_ra_batch_sources_att7,
2947                                                     attribute19,
2948                                                     attribute23,
2949                                                     created_by,
2950                                                     creation_date,
2951                                                     last_updated_by,
2952                                                     last_update_date,
2953                                                     last_update_login,
2954                                                     request_id)
2955                                             VALUES (zx_rep_trx_jx_ext_t_s.nextval,
2956                                                     l_detail_tax_line_id_tbl(i),
2957                                                     l_vat_amt_tbl(i),
2958                                                     l_taxable_amt_tbl(i),
2959                                                     l_non_taxable_amt_tbl(i),
2960                                                   --  l_vat_additional_amt_tbl(i),
2961                                                     l_vat_exempt_amt_tbl(i),
2962                                                     l_vat_perc_amt_tbl(i),
2963                                                     l_not_reg_tax_amt_tbl(i),
2964                                                     l_prov_perc_amt_tbl(i),
2965                                                     l_munic_perc_amt_tbl(i),
2966                                                     l_excise_amt_tbl(i),
2967                                                     l_total_doc_amt_tbl(i),
2968                                                     l_rec_count_tbl(i),
2969                                                     l_rate_count_tbl(i),
2970                                                     l_dgi_code_tbl(i),
2971                                                     l_dgi_trx_code_tbl(i),
2972                                                     l_vat_reg_stat_code_tbl(i),
2973                                                     l_fiscal_printer_tbl(i),
2974                                                     l_cai_number_tbl(i),
2975                                                     l_cai_due_date_tbl(i),
2976                                                     fnd_global.user_id,
2977                                                     sysdate,
2978                                                     fnd_global.user_id,
2979                                                     sysdate,
2980                                                     fnd_global.login_id,
2981                                                     p_request_id);
2982 
2983 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2984 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
2985 					      'After insertion into zx_rep_trx_jx_ext_t ');
2986 	END IF;
2987 		-- Delete Unwanted lines from Detail ITF
2988 
2989 /*                DELETE from zx_rep_trx_detail_t itf
2990                  WHERE itf.request_id = p_request_id
2991                    AND NOT EXISTS ( SELECT 1
2992                                       FROM zx_rep_trx_jx_ext_t ext
2993                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
2994 */
2995 
2996               UPDATE_DGI_CURR_CODE(p_request_id);
2997 
2998 	IF ( g_level_statement>= g_current_runtime_level ) THEN
2999 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3000 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
3001 	END IF;
3002 
3003           IF (g_level_procedure >= g_current_runtime_level ) THEN
3004              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3005                                        'JLARTDFF and  JLARTSFF : Call End ');
3006           END IF;
3007 
3008 
3009        EXCEPTION
3010             WHEN OTHERS THEN
3011               l_err_msg := substrb(SQLERRM,1,120);
3012             IF (g_level_procedure >= g_current_runtime_level ) THEN
3013                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3014                                        'JLARTDFF and JLARTSFF : Exception '||p_report_name || '.'||l_err_msg);
3015             END IF;
3016        END;
3017 
3018  ELSIF P_REPORT_NAME = 'JLARTOFF' THEN
3019 
3020        BEGIN
3021 
3022           IF (g_level_procedure >= g_current_runtime_level ) THEN
3023              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3024                                        'JLARTOFF : Filter ');
3025           END IF;
3026 
3027                          SELECT detail_tax_line_id,
3028                                 trx_id,
3029                                 internal_organization_id,
3030                                 trx_number,
3031                                 trx_type_id,
3032                                 tax_rate,
3033                                 tax_rate_id,
3034                                 tax_regime_code,
3035                                 document_sub_type
3036              BULK COLLECT INTO  l_detail_tax_line_id_tbl,
3037                                 l_trx_id_tbl,
3038                                 l_internal_org_id_tbl,
3039                                 l_trx_number_tbl,
3040                                 l_trx_type_id_tbl,
3041                                 l_tax_rate_tbl,
3042                                 l_tax_rate_id_tbl,
3043                                 l_tax_regime_code_tbl,
3044                                 l_document_sub_type_tbl
3045                           FROM  zx_rep_trx_detail_t itf1,
3046                                 jl_zz_ar_tx_categ categ
3047                          WHERE  itf1.request_id = P_REQUEST_ID
3048                         --   AND  itf1.tax_regime_code
3049                              AND itf1.tax = categ.tax_category
3050                              AND categ.tax_regime in (P_PROV_TAX_REGIME,
3051                                                          P_MUN_TAX_REGIME);
3052 
3053 
3054          IF (g_level_procedure >= g_current_runtime_level ) THEN
3055              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3056                                        'JLARTOFF : Bulk collect '||to_char(l_trx_id_tbl.count));
3057              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3058                                        'JLARTOFF : Bulk collect '||to_char(l_trx_id_tbl.count));
3059           END IF;
3060 
3061              -- Get Provincial Perception Amount
3062              GET_PROVINCIAL_PERC_AMOUNT(null, -- P_PROV_TAX_TYPE_FROM
3063                                         null, -- P_PROV_TAX_TYPE_TO
3064                                         P_PROV_TAX_REGIME,
3065                                         P_REPORT_NAME,
3066                                         P_REQUEST_ID,
3067                                         l_trx_id_tbl,
3068                                         l_tax_rate_id_tbl,
3069                                         l_prov_perc_amt_tbl);
3070 
3071 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3072 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3073 					      'Before call to GET_MUNICIPAL_PERC_AMOUNT ');
3074 	END IF;
3075              -- Get Municipal Perception Amount
3076              GET_MUNICIPAL_PERC_AMOUNT(null, -- P_MUN_TAX_TYPE_FROM
3077                                        null, --  P_MUN_TAX_TYPE_TO
3078                                        P_MUN_TAX_REGIME,
3079                                        P_REPORT_NAME,
3080                                        p_REQUEST_ID,
3081                                        l_trx_id_tbl,
3082                                        l_tax_rate_id_tbl,
3083                                        l_munic_perc_amt_tbl);
3084 
3085 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3086 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3087 					      'Before call to GET_DGI_CODE ');
3088 	END IF;
3089              -- Get DGI Code
3090              GET_DGI_CODE(l_trx_number_tbl,
3091                           l_trx_type_id_tbl,
3092                           l_internal_org_id_tbl,
3093                           l_dgi_code_tbl);
3094 
3095          PROV_JURISDICTION_CODE(
3096                      l_trx_id_tbl,
3097                      l_tax_regime_code_tbl,
3098                      l_tax_rate_id_tbl,
3099                      l_prov_juris_code_tbl);
3100 
3101 
3102          MUN_JURISDICTION_CODE(
3103                      l_trx_id_tbl,
3104                      l_tax_regime_code_tbl,
3105                      l_tax_rate_id_tbl,
3106                      l_mun_juris_code_tbl);
3107 
3108       -- Important --
3109       -- Need to add two more APIs to populate turnover jurisdiction code and municipal jurisdiction code.
3110       -- The gdf attributes 5 and 6 are migrated from ar_vat_tax table to reporting types and codes.
3111       -- The related reporting types are :AR_TURN_OVER_JUR_CODE and AR_MUNICIPAL_JUR
3112       -- This report shows these details and the attributes are already identified and used in the
3113       -- report. These attributes need to populate.
3114       --
3115              -- Insert lines into JX EXT Table with Calculated amount --
3116 
3117              FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
3118 
3119                     INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
3120                                                     detail_tax_line_id,
3121                                                     numeric4,
3122                                                     numeric5,
3123                                                     attribute11,
3124                                                     attribute1,
3125                                                     attribute3,
3126                                                     created_by,
3127                                                     creation_date,
3128                                                     last_updated_by,
3129                                                     last_update_date,
3130                                                     last_update_login,
3131                                                     request_id)
3132                                             VALUES (zx_rep_trx_jx_ext_t_s.nextval,
3133                                                     l_detail_tax_line_id_tbl(i),
3134                                                     l_prov_perc_amt_tbl(i),
3135                                                     l_munic_perc_amt_tbl(i),
3136                                                     l_dgi_code_tbl(i),
3137                                                     l_prov_juris_code_tbl(i),
3138                                                     l_mun_juris_code_tbl(i),
3139                                                     fnd_global.user_id,
3140                                                     sysdate,
3141                                                     fnd_global.user_id,
3142                                                     sysdate,
3143                                                     fnd_global.login_id,
3144                                                     p_request_id);
3145 
3146 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3147 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3148 					      'After insertion into zx_rep_trx_jx_ext_t ');
3149 	END IF;
3150 		-- Delete Unwanted lines from Detail ITF
3151 
3152                 DELETE from zx_rep_trx_detail_t itf
3153                  WHERE itf.request_id = p_request_id
3154                    AND NOT EXISTS ( SELECT 1
3155                                       FROM zx_rep_trx_jx_ext_t ext
3156                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
3157 
3158 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3159 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3160 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
3161 	END IF;
3162 
3163           IF (g_level_procedure >= g_current_runtime_level ) THEN
3164              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3165                                        'JLARTOFF : Call End ');
3166           END IF;
3167 
3168 
3169        EXCEPTION
3170 
3171             WHEN OTHERS THEN
3172               l_err_msg := substrb(SQLERRM,1,120);
3173             IF (g_level_procedure >= g_current_runtime_level ) THEN
3174                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3175                                        'JLARTOFF : Exception '||p_report_name || '.'||l_err_msg);
3176             END IF;
3177        END;
3178 
3179  ELSIF P_REPORT_NAME = 'ZXCLRSLL' THEN
3180 
3181        BEGIN
3182           IF (g_level_procedure >= g_current_runtime_level ) THEN
3183              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3184                                        'ZXCLRSLL : Filter ');
3185           END IF;
3186 
3187                          SELECT min(itf.detail_tax_line_id),
3188                                 itf.trx_line_id,
3189                                 itf.trx_id,
3190                                 itf.internal_organization_id,
3191                                 itf.trx_number,
3192                                 itf.tax_rate_id,
3193                                 itf.DOC_SEQ_NAME document_sub_type
3194              BULK COLLECT INTO  l_detail_tax_line_id_tbl,
3195                                 l_trx_line_id_tbl,
3196                                 l_trx_id_tbl,
3197                                 l_internal_org_id_tbl,
3198                                 l_trx_number_tbl,
3199                                 l_tax_rate_tbl,
3200                                 l_document_sub_type_tbl
3201                           FROM  zx_rep_trx_detail_t itf,
3202                                 zx_rates_b rates,
3203 --                                zx_report_codes_assoc repc,
3204 --                                zx_reporting_types_b  reptypes,--Bug 5438742
3205                                 ra_customer_trx_all   ratrx,
3206                                 ra_cust_trx_types_all types
3207                          WHERE  itf.request_id = P_REQUEST_ID
3208                            AND  itf.trx_id = ratrx.customer_trx_id
3209                            AND  itf.tax_rate_id = rates.tax_rate_id
3210                            AND  ratrx.cust_trx_type_id = types.cust_trx_type_id
3211 --                           AND  repc.entity_id = rates.tax_rate_id
3212 --                           AND  repc.entity_code = 'ZX_RATES'
3213                            AND  itf.extract_source_ledger = 'AR'
3214                            AND  itf.trx_line_class IN ('INVOICE', 'CREDIT_MEMO', 'DEBIT_MEMO')
3215                            AND (types.global_attribute7 = 'Y'
3216                                 OR  (types.global_attribute7 = 'N' AND types.global_attribute6 = 'Y' ))
3217 --                           AND repc.reporting_code_char_value is NOT NULL
3218                       GROUP BY itf.trx_id,
3219                                 itf.trx_line_id,
3220                                 itf.internal_organization_id,
3221                                 itf.trx_number,
3222                                 itf.tax_rate_id,
3223 				itf.DOC_SEQ_NAME; --Bug 5438742
3224 
3225 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3226 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3227 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
3228 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3229 					      'Before call to GET_VAT_AMOUNT ');
3230 	END IF;
3231 
3232              -- Get Vat Amount
3233              GET_VAT_AMOUNT(P_VAT_TAX,
3234                             P_TAX_REGIME,
3235                             P_REPORT_NAME,
3236                             P_REQUEST_ID,
3237                             l_trx_id_tbl,
3238                             l_detail_tax_line_id_tbl,
3239                             l_tax_rate_tbl,
3240                             l_document_sub_type_tbl,
3241                             l_vat_amt_tbl);
3242 
3243 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3244 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3245 					      'Before call to GET_TAXABLE_AMOUNT ');
3246 	END IF;
3247              -- Get Taxable Amount
3248              GET_TAXABLE_AMOUNT(P_VAT_TAX,
3249                                 P_TAX_REGIME,
3250                                 P_REPORT_NAME,
3251                                 P_REQUEST_ID,
3252                           l_detail_tax_line_id_tbl,
3253                           l_trx_line_id_tbl,
3254                                 l_trx_id_tbl,
3255                                 l_tax_rate_tbl,
3256                                 l_document_sub_type_tbl,
3257                                 l_taxable_amt_tbl);
3258 
3259 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3260 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3261 					      'Before call to GET_VAT_EXEMPT_AMOUNT ');
3262 	END IF;
3263              -- Get Vat Exempt Amount
3264              GET_VAT_EXEMPT_AMOUNT(P_VAT_TAX,
3265                                    P_VAT_ADDIT_TAX,
3266                                    P_VAT_PERC_TAX,
3267                                    P_REPORT_NAME,
3268                                    P_TAX_REGIME,
3269                                    P_REQUEST_ID,
3270                                    l_trx_id_tbl,
3271                                    l_trx_line_id_tbl,
3272                                    l_tax_rate_tbl,
3273                                    l_document_sub_type_tbl,
3274                                    l_vat_exempt_amt_tbl);
3275 
3276 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3277 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3278 					      'Before call to GET_OTHER_TAX_AMOUNT ');
3279 	END IF;
3280              -- Get Vat Exempt Amount
3281              GET_OTHER_TAX_AMOUNT(P_REPORT_NAME,
3282                                   P_REQUEST_ID,
3283                                   l_trx_id_tbl,
3284                                   l_tax_rate_tbl,
3285                                   l_document_sub_type_tbl,
3286                                   l_other_tax_amt_tbl);
3287 
3288            -- Get Counted sum doc
3289 	   --Bug 5438742 : Required if TRL has to fetch the document type level totals
3290           /* GET_COUNTED_SUM_DOC(P_REPORT_NAME,
3291                                P_REQUEST_ID,
3292                                l_document_sub_type_tbl,
3293                                l_cl_num_of_doc_tbl,
3294                                l_cl_total_exempt_tbl,
3295                                l_cl_total_taxable_tbl,
3296                                l_cl_total_vat_tax_tbl,
3297                                l_cl_total_other_tax_tbl);*/
3298 
3299              -- Insert lines into JX EXT Table with Calculated amount --
3300 
3301              FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
3302 
3303                     INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
3304                                                     detail_tax_line_id,
3305                                                     numeric9,
3306                                                     numeric10,
3307                                                     numeric2,
3308                                                     numeric7,
3309                                                     created_by,
3310                                                     creation_date,
3311                                                     last_updated_by,
3312                                                     last_update_date,
3313                                                     last_update_login)
3314                                             VALUES (zx_rep_trx_jx_ext_t_s.nextval,
3315                                                     l_detail_tax_line_id_tbl(i),
3316                                                     l_vat_amt_tbl(i),
3317                                                     l_taxable_amt_tbl(i),
3318                                                     l_vat_exempt_amt_tbl(i),
3319                                                     l_other_tax_amt_tbl(i),
3320                                                     fnd_global.user_id,
3321                                                     sysdate,
3322                                                     fnd_global.user_id,
3323                                                     sysdate,
3324                                                     fnd_global.login_id);
3325 
3326 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3327 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3328 					      'After insertion into zx_rep_trx_jx_ext_t ');
3329 	END IF;
3330                 -- Delete Unwanted lines from Detail ITF
3331 
3332                 DELETE from zx_rep_trx_detail_t itf
3333                  WHERE itf.request_id = p_request_id
3334                    AND NOT EXISTS ( SELECT 1
3335                                       FROM zx_rep_trx_jx_ext_t ext
3336                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
3337 
3338 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3339 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JA_EXTRACT_PKG.POPULATE_JL_AP',
3340 				      'Deleted Count : '||to_char(SQL%ROWCOUNT) );
3341 	END IF;
3342 
3343   IF (g_level_procedure >= g_current_runtime_level ) THEN
3344      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR.END',
3345                                       'ZX_JL_EXTRACT_PKG.POPULATE_JL_AR(-)');
3346   END IF;
3347 
3348        EXCEPTION
3349             WHEN OTHERS THEN
3350 
3351               l_err_msg := substrb(SQLERRM,1,120);
3352             IF (g_level_procedure >= g_current_runtime_level ) THEN
3353                 FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3354                                        'ZXCLRSLL : Exception '||p_report_name || '.'||l_err_msg);
3355             END IF;
3356        END;
3357 
3358  ELSIF P_REPORT_NAME = 'ZXCOARSB' THEN --Bug 5396444
3359 
3360        BEGIN
3361                 -- ------------------------------------------------------
3362                 -- Get all the tax lines and determine the extended amount
3363                 -- and total document amount
3364                 ----------------------------------------------------------
3365 
3366                        SELECT detail_tax_line_id,
3367                               trx_line_id,
3368                               trx_id,
3369                               nvl(currency_conversion_rate,1),
3370                               tax_rate,
3371                               tax_rate_id,
3372                               document_sub_type
3373             BULK COLLECT INTO l_detail_tax_line_id_tbl,
3374                               l_trx_line_id_tbl,
3375                               l_trx_id_tbl,
3376                               l_exchange_rate_tbl,
3377                               l_tax_rate_tbl,
3378                               l_tax_rate_id_tbl,
3379                               l_document_sub_type_tbl
3380                          FROM zx_rep_trx_detail_t dtl,	--Bug 5396444
3381 			      ra_cust_trx_types_all tt
3382                         WHERE dtl.request_id = P_REQUEST_ID
3383 			AND dtl.trx_type_id = tt.cust_trx_type_id
3384 			AND tt.accounting_affect_flag = 'Y';
3385 
3386 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3387 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
3388 					      'Count fetched : '||to_char(nvl(l_detail_tax_line_id_tbl.count,0)) );
3389 	END IF;
3390 
3391 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3392 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
3393 					      'Before call to GET_TOTAL_DOCUMENT_AMOUNT ');
3394 	END IF;
3395 
3396 	GET_TOTAL_DOCUMENT_AMOUNT(l_trx_id_tbl,
3397 		       l_exchange_rate_tbl,
3398 		       P_REPORT_NAME,
3399 		       l_total_doc_amt_tbl);
3400 
3401 --Bug 5396444 : Added logic for Extended Amount(ext.numeric12) and VAT Amount(ext.numeric9)
3402 -- Get Extended Amount
3403 
3404 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3405 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3406 					      'Before call to GET_TAXABLE_AMOUNT ');
3407 	END IF;
3408 
3409 	GET_TAXABLE_AMOUNT(null,
3410 		  NULL,
3411 		  P_REPORT_NAME,
3412 		  P_REQUEST_ID,
3413                           l_detail_tax_line_id_tbl,
3414                           l_trx_line_id_tbl,
3415 		  l_trx_id_tbl,
3416 		  l_tax_rate_tbl ,
3417 		  l_document_sub_type_tbl,
3418 		  l_extended_amt_tbl);
3419 
3420 --Get Vat Amount
3421 
3422 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3423 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3424 					      'Before call to GET_VAT_AMOUNT ');
3425 	END IF;
3426 
3427        GET_VAT_AMOUNT(NULL ,
3428                       NULL,
3429                       P_REPORT_NAME,
3430                       P_REQUEST_ID,
3431                       l_trx_id_tbl,
3432                       l_detail_tax_line_id_tbl,
3433                       l_tax_rate_tbl,
3434                       l_document_sub_type_tbl,
3435                       l_vat_amt_tbl);
3436 
3437 
3438            FORALL i in l_detail_tax_line_id_tbl.first..l_detail_tax_line_id_tbl.last
3439                    INSERT INTO zx_rep_trx_jx_ext_t(detail_tax_line_ext_id,
3440                                                    detail_tax_line_id,
3441                                                    numeric15,--total doc amt
3442 						   numeric12,--extended amt
3443 						   numeric9,--vat amt
3444                                                    created_by,
3445                                                    creation_date,
3446                                                    last_updated_by,
3447                                                    last_update_date,
3448                                                    last_update_login)
3449                                            VALUES (zx_rep_trx_jx_ext_t_s.nextval,
3450                                                    l_detail_tax_line_id_tbl(i),
3451                                                    (l_total_doc_amt_tbl(i) + l_vat_amt_tbl(i)) * l_exchange_rate_tbl(i), --Bug 5396444
3452 						   l_extended_amt_tbl(i) * l_exchange_rate_tbl(i),--Bug 5396444
3453 						   l_vat_amt_tbl(i) * l_exchange_rate_tbl(i),--Bug 5396444
3454                                                    fnd_global.user_id,
3455                                                    sysdate,
3456                                                    fnd_global.user_id,
3457                                                    sysdate,
3458                                                    fnd_global.login_id);
3459 
3460 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3461 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
3462 					      'After insertion into zx_rep_trx_jx_ext_t ');
3463 	END IF;
3464 
3465                 -- Delete Unwanted lines from Detail ITF
3466 
3467                 DELETE from zx_rep_trx_detail_t itf
3468                  WHERE itf.request_id = p_request_id
3469                    AND NOT EXISTS ( SELECT 1
3470                                       FROM zx_rep_trx_jx_ext_t ext
3471                                      WHERE ext.detail_tax_line_id = itf.detail_tax_line_id);
3472 
3473 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3474 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
3475 					      'After deletion from zx_rep_trx_detail_t : '||to_char(SQL%ROWCOUNT) );
3476 	END IF;
3477        EXCEPTION
3478             WHEN OTHERS THEN
3479 	    	IF ( g_level_statement>= g_current_runtime_level ) THEN
3480 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AP',
3481 			'Error Message for report '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
3482 		END IF;
3483 
3484        END;
3485 
3486     ELSIF P_REPORT_NAME = 'ZXCOARSW' THEN --Bug 5251425
3487     -- Populate zx_rep_trx_jx_ext_t.attribute1 to get the C_TAX_CATEGORY_DESC for the report
3488 
3489 		BEGIN
3490 			 SELECT jtc.description
3491 			 INTO l_tax_catg_desc
3492 			 FROM   JL_ZZ_AR_TX_CATEGRY jtc
3493 			 WHERE jtc.tax_category = P_TRL_GLOBAL_VARIABLES_REC.VAT_TAX;
3494 		EXCEPTION
3495 		WHEN OTHERS THEN
3496 		    l_tax_catg_desc := null;
3497 		    l_err_msg := substrb(SQLERRM,1,120);
3498 		    IF (g_level_procedure >= g_current_runtime_level ) THEN
3499 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3500 					       'ZXCOARSW : Exception '||p_report_name || '.'||l_err_msg);
3501 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3502 								       'Assigned tax_category_desc to null');
3503 		    END IF;
3504 		END ;
3505 
3506 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3507 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3508 					      'P_TRL_GLOBAL_VARIABLES_REC.VAT_TAX : '||P_TRL_GLOBAL_VARIABLES_REC.VAT_TAX );
3509 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3510 					      'l_tax_catg_desc : '||l_tax_catg_desc );
3511 	END IF;
3512 
3513 		       INSERT INTO zx_rep_trx_jx_ext_t
3514                            (detail_tax_line_ext_id,
3515                             detail_tax_line_id,
3516                             attribute1,
3517                             created_by,
3518                             creation_date,
3519                             last_updated_by,
3520                             last_update_date,
3521                             last_update_login)
3522                     (SELECT zx_rep_trx_jx_ext_t_s.nextval,
3523                             dtl.detail_tax_line_id,
3524 			    l_tax_catg_desc,
3525                             dtl.created_by,
3526                             dtl.creation_date,
3527                             dtl.last_updated_by,
3528                             dtl.last_update_date,
3529                             dtl.last_update_login
3530 			    FROM zx_rep_trx_detail_t dtl
3531 			    WHERE dtl.request_id = p_request_id
3532 			    );
3533 
3534 	IF ( g_level_statement>= g_current_runtime_level ) THEN
3535 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
3536 					      'After insertion into zx_rep_trx_jx_ext_t ');
3537 	END IF;
3538 
3539       END IF;  -- End of P_REPORT_NAME = ..
3540 
3541  END populate_jl_ar;
3542 
3543 
3544 /*================================================================================+
3545  | PROCEDURE                                                                      |
3546  |   GET_VAT_AMOUNT                                                               |
3547  |   Type       : Private                                                         |
3548  |   Pre-req    : None                                                            |
3549  |   Function   :                                                                 |
3550  |    This procedure extract VAT Tax Amount for the given report name             |
3551  |                                                                                |
3552  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
3553  |                                                                                |
3554  |   Parameters :                                                                 |
3555  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
3556  |                 P_TAX_REGIME                IN   VARCHAR2 Opt                  |
3557  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
3558  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
3559  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL Req |
3560  |      P_DETAIL_TAX_LINE_ID    IN   ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL      |
3561  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
3562  |                                                  SUB_TYPE_TBL              Opt |
3563  |                                                                                |
3564  |    OUT        : X_VAT_AMT_TBL            OUT  NUMERIC9_TBL   |
3565  |                                                                                |
3566  |   MODIFICATION HISTORY                                                         |
3567  |     07-Nov-03  Hidetaka Kojima   created                                       |
3568  |     17-Feb-04  Hidekoji          Modified Parameters                           |
3569  |                                                                                |
3570  +================================================================================*/
3571 
3572 
3573   PROCEDURE GET_VAT_AMOUNT
3574 (
3575 P_VAT_TAX                      IN            VARCHAR2 DEFAULT NULL,
3576 P_TAX_REGIME                   IN            VARCHAR2 DEFAULT NULL,
3577 P_REPORT_NAME                  IN            VARCHAR2,
3578 P_REQUEST_ID                   IN            NUMBER,
3579 P_TRX_ID_TBL                   IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
3580 P_DETAIL_TAX_LINE_ID           IN            ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL,
3581 P_TAX_RATE_TBL                 IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
3582 P_DOCUMENT_SUB_TYPE_TBL        IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
3583 X_VAT_AMT_TBL                  OUT  NOCOPY   NUMERIC9_TBL
3584 
3585 ) IS
3586 
3587  l_err_msg                     VARCHAR2(120);
3588  l_trx_counter                 NUMBER;
3589  l_vat_amt_tbl                 NUMERIC9_TBL;
3590  l_gdf_ra_cust_trx_att19_tbl   GDF_RA_CUST_TRX_ATT19_TBL;
3591 
3592 
3593 BEGIN
3594 
3595     IF (g_level_procedure >= g_current_runtime_level ) THEN
3596      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
3597                                       'ZX_JL_EXTRACT_PKG.get_vat_amount(+)');
3598    END IF;
3599 
3600 
3601      -- ------------------------------------------------------------------------------------------ --
3602      -- Case1: If report is ZXARPVBR                                                               --
3603      --        In this case, you cannot use cache as the lines are filtered by Trx ID and tax rate --
3604      -- ------------------------------------------------------------------------------------------ --
3605 
3606         IF substr(P_REPORT_NAME,1,2) = 'ZX' THEN
3607         FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
3608 
3609             BEGIN
3610               IF P_REPORT_NAME = 'ZXARPVBR' THEN
3611                   SELECT SUM(itf.tax_amt)
3612                     INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3613                     FROM zx_rep_trx_detail_t itf
3614                    WHERE itf.request_id = p_request_id
3615                      AND itf.trx_id = p_trx_id_tbl(i)
3616                      AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3617                      AND itf.tax_rate = p_tax_rate_tbl(i)
3618                      AND itf.tax_type_code = p_vat_tax;
3619 
3620              ELSIF P_REPORT_NAME = 'ZXCLPPLR' THEN
3621 
3622 			IF ( g_level_statement>= g_current_runtime_level ) THEN
3623 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
3624 			' Document_Sub_Type : '||P_DOCUMENT_SUB_TYPE_TBL(i) );
3625 			END IF;
3626 
3627 			IF P_DOCUMENT_SUB_TYPE_TBL(i) = 'JL_CL_CREDIT_MEMO' THEN
3628 
3629 				SELECT SUM(nvl(itf.tax_amt_funcl_curr,nvl(itf.tax_amt,0)))
3630 				INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3631 				FROM zx_rep_trx_detail_t itf
3632 				WHERE itf.request_id  = p_request_id
3633 				AND itf.trx_id = p_trx_id_tbl(i)
3634                                 AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3635 				AND (itf.reverse_flag IS NULL OR itf.reverse_flag <> 'Y')
3636 				AND itf.tax_type_code = 'VAT'
3637 				AND itf.tax_rate <> 0;
3638                    ELSE
3639 				SELECT SUM(nvl(itf.tax_amt_funcl_curr,nvl(itf.tax_amt,0)))
3640 				INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3641 				FROM zx_rep_trx_detail_t itf
3642 				WHERE itf.request_id = p_request_id
3643 				AND itf.trx_id = p_trx_id_tbl(i)
3644                                 AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3645 				AND itf.tax_type_code = 'VAT';
3646 
3647 			END IF;
3648                     ELSIF P_REPORT_NAME = 'ZXZZTVSR' THEN
3649 
3650                            SELECT sum(nvl(itf.tax_amt_funcl_curr, itf.tax_amt))
3651                              INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3652                              FROM zx_rep_trx_detail_t itf
3653                             WHERE itf.request_id = p_request_id
3654                               AND itf.trx_id = p_trx_id_tbl(i)
3655                               AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3656                               AND itf.tax_regime_code = nvl(p_tax_regime,itf.tax_regime_code)--Bug 5374021
3657                               AND itf.tax = p_vat_tax
3658                               AND nvl(itf.tax_type_code, 'VAT') = 'VAT'
3659                               AND nvl(itf.tax_rate,0) <> 0 ;
3660     ELSIF P_REPORT_NAME = 'ZXCLRSLL' THEN
3661 
3662     		IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
3663 			NULL;
3664 		ELSE
3665 			l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := '0';
3666 		END IF;
3667 
3668 		IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' AND
3669                      l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
3670 		BEGIN
3671 
3672 			SELECT decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
3673 			INTO l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
3674 			FROM ra_customer_trx_all
3675 			WHERE customer_trx_id = p_trx_id_tbl(i);
3676 
3677 			EXCEPTION
3678 			WHEN OTHERS THEN
3679 				l_err_msg := substrb(SQLERRM,1,120);
3680 				IF (g_level_procedure >= g_current_runtime_level ) THEN
3681 				FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
3682 				'ZX_JL_EXTRACT_PKG.get_vat_amount.'|| P_REPORT_NAME ||':'||l_err_msg);
3683 				END IF;
3684 
3685 				END;
3686 			  END IF;
3687 
3688                            IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
3689 
3690                               -- OPEN ISSUE --
3691 			      --Bug 5438742 : Added VAT Amt logic for the Bug
3692 			      	SELECT SUM(nvl(itf.tax_amt_funcl_curr,nvl(itf.tax_amt,0)))
3693 				INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3694 				FROM zx_rep_trx_detail_t itf
3695 				WHERE itf.request_id  = p_request_id
3696 				AND itf.trx_id = p_trx_id_tbl(i)
3697                                 AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3698 				AND itf.tax_type_code = 'VAT'
3699 				AND itf.tax_rate <> 0;
3700 
3701                            ELSE
3702 
3703                                l_vat_amt_tbl(p_trx_id_tbl(i)) := 0;
3704 
3705                            END IF;
3706                 ELSIF P_REPORT_NAME = 'ZXCOARSB' THEN --Bug 5396444 : Vat Amt
3707 				SELECT sum(nvl(itf.tax_amt,0))
3708 				INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3709 				FROM zx_rep_trx_detail_t itf
3710 				WHERE itf.request_id = p_request_id
3711                                 AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3712 				AND itf.trx_id = p_trx_id_tbl(i);
3713 
3714 
3715             END IF;
3716 
3717                 EXCEPTION
3718                     WHEN NO_DATA_FOUND THEN
3719                          X_VAT_AMT_TBL(i) := 0;
3720                          IF (g_level_statement >= g_current_runtime_level ) THEN
3721                              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3722                             'No Data Found  : Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i)||' tax_rate : '||p_tax_rate_tbl(i));
3723                          END IF;
3724 
3725                     WHEN OTHERS THEN
3726                          l_err_msg := substrb(SQLERRM,1,120);
3727                          IF (g_level_statement >= g_current_runtime_level ) THEN
3728                              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3729                            'Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i)||' tax_rate : '||p_tax_rate_tbl(i)||': '||l_err_msg);
3730                          END IF;
3731 
3732             END;
3733                     X_VAT_AMT_TBL(i) := l_vat_amt_tbl(p_trx_id_tbl(i));
3734         END LOOP;
3735 
3736      -- ------------------------------------------------------------------------------------------ --
3737      -- Case2: If report is NOT ZXARPVBR                                                           --
3738      --        In this case, you can use cache as the lines are filtered by Trx ID and tax rate    --
3739      -- ------------------------------------------------------------------------------------------ --
3740 
3741      ELSE
3742 
3743 		BEGIN
3744 
3745 		SELECT count(distinct trx_id)
3746 		INTO l_trx_counter
3747 		FROM zx_rep_trx_detail_t
3748 		WHERE request_id = p_request_id;
3749 
3750 		IF ( g_level_statement>= g_current_runtime_level ) THEN
3751 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
3752 		' l_trx_counter : '||l_trx_counter );
3753 		END IF;
3754 
3755 		EXCEPTION
3756 
3757 		WHEN OTHERS THEN
3758 		   l_err_msg := substrb(SQLERRM,1,120);
3759 		   IF (g_level_statement >= g_current_runtime_level ) THEN
3760 		       FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
3761 				      'ZX_JL_EXTRACT_PKG.get_vat_amount.'|| P_REPORT_NAME ||':'||l_err_msg);
3762 		   END IF;
3763 		END;
3764 
3765 
3766 		IF (g_level_procedure >= g_current_runtime_level ) THEN
3767 		FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3768 			      'Get VAT Amount For LOOP :'||to_char(p_trx_id_tbl.last));
3769 		END IF;
3770 
3771 
3772          FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
3773 
3774 
3775 		IF (g_level_procedure >= g_current_runtime_level ) THEN
3776 		FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3777 			      'Get VAT Amount For LOOP :'||to_char(i));
3778 		END IF;
3779 
3780 	/*	IF l_vat_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
3781 		NULL;
3782 		ELSE
3783 		l_vat_amt_tbl(p_trx_id_tbl(i)) := null;
3784 		END IF; */
3785 
3786 		--l_vat_amt_tbl(p_trx_id_tbl(i)) := null;
3787 		l_vat_amt_tbl(p_trx_id_tbl(i)) := 0;
3788 
3789 		IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
3790 			NULL;
3791 		ELSE
3792 			l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := '0';
3793 		END IF;
3794 
3795 	--	IF l_vat_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
3796 
3797 		BEGIN
3798 
3799 			IF (g_level_procedure >= g_current_runtime_level ) THEN
3800 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3801 				      'Get VAT Amount SQL :'||to_char(l_vat_amt_tbl(p_trx_id_tbl(i))));
3802 			END IF;
3803 
3804                      -- ---------------------------------------------- --
3805                      --       For AP Reports except ZXARPVBR          --
3806                      -- ---------------------------------------------- --
3807 
3808                      IF P_REPORT_NAME = 'JLARPCFF' THEN
3809 
3810 			--SELECT SUM(nvl(itf.tax_amt_funcl_curr,0))
3811 			SELECT SUM(nvl(itf.tax_amt,0))
3812 			INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3813 			FROM zx_rep_trx_detail_t itf
3814 			WHERE itf.request_id = p_request_id
3815 			AND itf.trx_id = p_trx_id_tbl(i)
3816                         AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3817 			AND itf.reverse_flag is null
3818 			AND itf.tax_type_code = p_vat_tax;
3819 
3820 			IF (g_level_procedure >= g_current_runtime_level ) THEN
3821 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3822 			'Get VAT Amount SQL : JLARPCFF:'||to_char(l_vat_amt_tbl(p_trx_id_tbl(i))));
3823 			END IF;
3824 
3825 
3826                      ELSIF P_REPORT_NAME = 'JLARPPFF' THEN
3827 
3828 			IF (g_level_procedure >= g_current_runtime_level ) THEN
3829 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3830 			'Get VAT Amount SQL : JLARPPFF:'||to_char(l_vat_amt_tbl(p_trx_id_tbl(i))));
3831 			END IF;
3832 
3833 			SELECT sum(itf.tax_amt)
3834 			INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3835 			FROM zx_rep_trx_detail_t itf
3836 			WHERE itf.request_id = p_request_id
3837 			AND itf.trx_id = p_trx_id_tbl(i)
3838                        AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3839 		--	AND itf.posted_flag    =  'Y'
3840 			AND itf.tax_type_code = p_vat_tax;
3841 
3842 
3843 			IF (g_level_procedure >= g_current_runtime_level ) THEN
3844 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3845 			'Get VAT Amount SQL : JLARPPFF: After SQL'||to_char(l_vat_amt_tbl(p_trx_id_tbl(i))));
3846 			END IF;
3847 
3848                      -- ---------------------------------------------- --
3849                      --               For AR Reports                   --
3850                      -- ---------------------------------------------- --
3851 
3852                      ELSIF P_REPORT_NAME = 'JLZZTCFF' THEN
3853 
3854                            SELECT sum(nvl(itf.tax_amt,0))
3855                              INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3856                              FROM zx_rep_trx_detail_t itf
3857                             WHERE itf.request_id = p_request_id
3858                               AND itf.trx_id = p_trx_id_tbl(i)
3859                               AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3860                               AND itf.tax_regime_code = p_tax_regime
3861                               AND itf.tax = p_vat_tax
3862                               AND nvl(itf.tax_type_code, 'VAT') = 'VAT';
3863 
3864 
3865 
3866                      ELSIF P_REPORT_NAME = 'JLARTSFF' THEN
3867 
3868 				IF (g_level_procedure >= g_current_runtime_level ) THEN
3869 				FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3870 				      'Get VAT Amount : JLARTSFF:');
3871 				END IF;
3872 
3873 
3874 				IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
3875 				null;
3876 
3877 					IF (g_level_procedure >= g_current_runtime_level ) THEN
3878 					FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3879 					      'Get VAT Amount : l_gdf_ra_cust_trx_att19_tbl not null:');
3880 					END IF;
3881 
3882 				ELSE
3883 					l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
3884 
3885 					IF (g_level_procedure >= g_current_runtime_level ) THEN
3886 					FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3887 					'Get VAT Amount : l_gdf_ra_cust_trx_att19_tbl null:');
3888 					END IF;
3889 
3890                                 END IF;
3891 
3892                            IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' AND
3893                                l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) OR
3894                               l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL THEN
3895 
3896 --                           IF  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL  THEN
3897 				BEGIN
3898 					IF (g_level_procedure >= g_current_runtime_level ) THEN
3899 					FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3900 					      'Get VAT Amount SQL begin : JLARTSFF:');
3901 					END IF;
3902 
3903 					SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
3904 					INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
3905 					FROM  ra_customer_trx_all
3906 					WHERE  customer_trx_id = p_trx_id_tbl(i);
3907 
3908 					IF (g_level_procedure >= g_current_runtime_level ) THEN
3909 						FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3910 						'Get VAT Amount SQL end: JLARTSFF:');
3911 					END IF;
3912 
3913 
3914 			EXCEPTION
3915 			WHEN OTHERS THEN
3916 				l_err_msg := substrb(SQLERRM,1,120);
3917 				IF (g_level_procedure >= g_current_runtime_level ) THEN
3918 				   FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
3919 						'ZX_JL_EXTRACT_PKG.get_vat_amount.'|| P_REPORT_NAME ||':'||l_err_msg);
3920 				END IF;
3921 
3922 				END;
3923 
3924 	                    END IF;
3925 
3926                           IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
3927 
3928                              SELECT sum(nvl(itf.tax_amt_funcl_curr, itf.tax_amt))
3929                                INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3930                                FROM zx_rep_trx_detail_t itf,
3931                                     ar_vat_tax_all vat
3932                               WHERE itf.request_id = p_request_id
3933                                 AND itf.trx_id = p_trx_id_tbl(i)
3934                                 AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3935                                 AND itf.tax_regime_code = p_tax_regime
3936                                 AND itf.tax = p_vat_tax
3937                                 AND nvl(vat.tax_type,'VAT') = 'VAT'
3938                                 AND itf.tax_rate = p_tax_rate_tbl(i)
3939                                 AND itf.tax_rate_id = vat.vat_tax_id;
3940 
3941 
3942 			    IF (g_level_procedure >= g_current_runtime_level ) THEN
3943 			    FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
3944 					      'VAT Amount : '||to_char(l_vat_amt_tbl(p_trx_id_tbl(i))));
3945 			    END IF;
3946 
3947 
3948                           ELSE
3949 
3950                                l_vat_amt_tbl(p_trx_id_tbl(i)) := 0;
3951 
3952                           END IF;
3953 
3954                      ELSIF P_REPORT_NAME = 'JLARTDFF' THEN
3955 
3956                            IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and
3957                                 l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
3958 
3959 				BEGIN
3960 
3961 					SELECT decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
3962 					INTO l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
3963 					FROM ra_customer_trx
3964 					WHERE customer_trx_id = p_trx_id_tbl(i);
3965 
3966 				EXCEPTION
3967 				WHEN OTHERS THEN
3968 					l_err_msg := substrb(SQLERRM,1,120);
3969 					IF (g_level_procedure >= g_current_runtime_level ) THEN
3970 					FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
3971 					'ZX_JL_EXTRACT_PKG.get_vat_amount.'|| P_REPORT_NAME ||':'||l_err_msg);
3972 					END IF;
3973 				END;
3974 
3975                           END IF;
3976 
3977                            IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
3978 
3979                               SELECT sum(nvl(itf.tax_amt,0))
3980                                 INTO l_vat_amt_tbl(p_trx_id_tbl(i))
3981                                 FROM zx_rep_trx_detail_t itf
3982                                WHERE itf.request_id = p_request_id
3983                                  AND itf.trx_id = p_trx_id_tbl(i)
3984                            --      AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
3985                                  AND itf.tax_regime_code = p_tax_regime
3986                                  AND itf.tax = p_vat_tax
3987                                  AND nvl(itf.tax_type_code, 'VAT') = 'VAT'
3988                                  AND nvl(itf.tax_rate,0) <> 0;
3989 
3990                            ELSE
3991 
3992                                 l_vat_amt_tbl(p_trx_id_tbl(i)) := 0;
3993 
3994                            END IF;
3995 
3996 
3997                      END IF;  -- Match IF P_REPORT_NAME = ...
3998 
3999                      X_VAT_AMT_TBL(i) := nvl(l_vat_amt_tbl(p_trx_id_tbl(i)),0);
4000 			IF (g_level_procedure >= g_current_runtime_level ) THEN
4001 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount',
4002 			'Get VAT Amount SQL : JLARPPFF: End of Report check'||to_char(l_vat_amt_tbl(p_trx_id_tbl(i))));
4003 			END IF;
4004 
4005                 EXCEPTION
4006                     WHEN NO_DATA_FOUND THEN
4007                       IF (g_level_procedure >= g_current_runtime_level ) THEN
4008                          FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
4009                                 'ZX_JL_EXTRACT_PKG.get_vat_amount.'|| P_REPORT_NAME ||':'||l_err_msg);
4010                       END IF;
4011                              l_vat_amt_tbl(p_trx_id_tbl(i)) := 0;
4012                              X_VAT_AMT_TBL(i) := l_vat_amt_tbl(p_trx_id_tbl(i));
4013                              NULL;
4014 
4015                         WHEN OTHERS THEN
4016                                   l_err_msg := substrb(SQLERRM,1,120);
4017                                IF (g_level_procedure >= g_current_runtime_level ) THEN
4018                                   FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
4019                                       'ZX_JL_EXTRACT_PKG.get_vat_amount.'|| P_REPORT_NAME ||':'||l_err_msg);
4020                                END IF;
4021 
4022                 END;
4023        --      ELSE -- if l_vat_amt_tbl is not null
4024 
4025                  -- X_VAT_AMT_TBL(i) := l_vat_amt_tbl(p_trx_id_tbl(i));
4026                   --X_VAT_AMT_TBL(i) := 0;
4027 
4028         --     END IF;
4029 
4030 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
4031 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4032 		' Vat Amt for Report Name  : '||p_report_name ||' trx_id : '
4033                      ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_AMT_TBL(i)));
4034 	    END IF;
4035 
4036        END LOOP;
4037      END IF; -- Two characters Report Name check--
4038 
4039    IF (g_level_procedure >= g_current_runtime_level ) THEN
4040       FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_amount.BEGIN',
4041                       'ZX_JL_EXTRACT_PKG.get_vat_amount(-)');
4042    END IF;
4043 END GET_VAT_AMOUNT;
4044 
4045 
4046 /*===============================================================================+
4047  | PROCEDURE                                                                     |
4048  |   GET_TAXABLE_AMOUNT                                                          |
4049  |   Type       : Private                                                        |
4050  |   Pre-req    : None                                                           |
4051  |   Function   :                                                                |
4052  |    This procedure extract VAT Tax Amount for the given report name            |
4053  |                                                                               |
4054  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                |
4055  |                                                                               |
4056  |   Parameters :                                                                |
4057  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                 |
4058  |                 P_REPORT_NAME               IN   VARCHAR2 Req                 |
4059  |                 P_REQUEST_ID                IN   NUMBER   Req                 |
4060  |    P_detail_tax_line_id_tbl    IN   ZX_EXTRACT_PKG.detail_tax_line_id_tbl     |
4061  |             P_trx_line_id_tbl  IN ZX_EXTRACT_PKG.P_trx_line_id_tbl            |
4062  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL Req|
4063  |                 P_TRX_RATE_TBL              IN   ZX_EXTRACT_PKG.RATE_TBL   Opt|
4064  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_     |
4065  |                                                  SUB_TYPE_TBL              Opt|
4066  |                                                                               |
4067  |    OUT                                                                        |
4068  |                 X_TAXABLE_AMT_TBL        OUT  NUMERIC10_TBL                   |
4069  |                                                                               |
4070  |   MODIFICATION HISTORY                                                        |
4071  |     29-Oct-04  Hidetaka Kojima   created                                      |
4072  |                                                                               |
4073  +===============================================================================*/
4074 
4075 
4076 PROCEDURE GET_TAXABLE_AMOUNT
4077 (
4078 P_VAT_TAX                    IN            VARCHAR2 DEFAULT NULL,
4079 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
4080 P_REPORT_NAME                IN            VARCHAR2,
4081 P_REQUEST_ID                 IN            NUMBER,
4082 P_DETAIL_TAX_LINE_ID         IN            ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL,
4083 P_TRX_LINE_ID                IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
4084 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
4085 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
4086 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
4087 X_TAXABLE_AMT_TBL            OUT  NOCOPY   NUMERIC10_TBL
4088 
4089 ) IS
4090 
4091  l_common_sql_string         VARCHAR2(1000);
4092  l_err_msg                   VARCHAR2(120);
4093  l_trx_counter               NUMBER;
4094  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
4095  l_taxable_amt_tbl           NUMERIC10_TBL;
4096  k                           NUMBER;
4097 --INTEGER;
4098 
4099 BEGIN
4100     IF (g_level_procedure >= g_current_runtime_level ) THEN
4101      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount.BEGIN',
4102                                       'ZX_JL_EXTRACT_PKG.get_taxable_amount(+)');
4103    END IF;
4104 
4105      -- ------------------------------------------------------------------------------------------ --
4106      -- Case1: If report is ZXARPVBR                                                               --
4107      --        In this case, you cannot use cache as the lines are filtered by Trx ID and tax rate --
4108      -- ------------------------------------------------------------------------------------------ --
4109 
4110 
4111        IF P_REPORT_NAME = 'ZXARPVBR' THEN
4112           k:=0;
4113           FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4114           BEGIN
4115 
4116           IF (g_level_procedure >= g_current_runtime_level ) THEN
4117               FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4118               'ZXARPVBR   : For Loop ' );
4119           END IF;
4120           IF (g_level_procedure >= g_current_runtime_level ) THEN
4121               FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4122               'p_trx_id_tbl : p_trx_line_id:'||to_char(p_trx_id_tbl(i))||' '||to_char(p_trx_line_id(i)));
4123           END IF;
4124               --   k:= to_number(to_char(p_trx_id_tbl(i))||to_char(p_trx_line_id(i)));
4125 
4126             IF i = 1 THEN
4127                k:=1;
4128             ELSE
4129                IF (p_trx_id_tbl(i) <> p_trx_id_tbl(i-1)) OR
4130                              (p_trx_line_id(i) <> p_trx_line_id(i-1)) THEN
4131                    k:=k+1;
4132                END IF;
4133            END IF;
4134 
4135           IF (g_level_procedure >= g_current_runtime_level ) THEN
4136               FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4137                       'K Value : '||to_char(k));
4138           END IF;
4139 
4140              IF l_taxable_amt_tbl.EXISTS(k) THEN
4141                 null;
4142               IF (g_level_procedure >= g_current_runtime_level ) THEN
4143                   FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4144                       'taxable_amt_tbl.EXISTS : '||to_char(k));
4145               END IF;
4146              ELSE
4147                      l_taxable_amt_tbl(k) := null;
4148               IF (g_level_procedure >= g_current_runtime_level ) THEN
4149                   FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4150                       'taxable_amt_tbl(k) null : '||to_char(k));
4151               END IF;
4152              END IF;
4153 
4154           IF (g_level_procedure >= g_current_runtime_level ) THEN
4155               FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4156                       'l_taxable_amt_tbl(k) : '||to_char(l_taxable_amt_tbl(k)));
4157           END IF;
4158 
4159              IF l_taxable_amt_tbl(k) is NULL THEN
4160               BEGIN
4161                  SELECT SUM(NVL(itf.taxable_amt,0))
4162                    INTO l_taxable_amt_tbl(k)
4163                    FROM zx_rep_trx_detail_t itf
4164                   WHERE itf.request_id = p_request_id
4165                     AND itf.trx_id = p_trx_id_tbl(i)
4166                     AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4167                     AND itf.trx_line_id = p_trx_line_id(i)
4168                     AND itf.tax_type_code = p_vat_tax
4169                     AND itf.tax_rate = p_tax_rate_tbl(i)
4170                     AND itf.tax_rate <> 0;
4171 
4172             EXCEPTION
4173               WHEN NO_DATA_FOUND THEN
4174 
4175                         X_TAXABLE_AMT_TBL(i) := 0;
4176                          IF (g_level_statement >= g_current_runtime_level ) THEN
4177                              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4178                             'No Data Found  : Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i));
4179                          END IF;
4180 
4181                     WHEN OTHERS THEN
4182                          IF (g_level_statement >= g_current_runtime_level ) THEN
4183                              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4184                            'Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i)||': '||substr(sqlerrm,1,120));
4185                          END IF;
4186                    END;
4187                      X_TAXABLE_AMT_TBL(i):=l_taxable_amt_tbl(k);
4188                ELSE
4189                      X_TAXABLE_AMT_TBL(i):=0;
4190                END IF;
4191 
4192             END;
4193         END LOOP;
4194 
4195      -- ------------------------------------------------------------------------------------------ --
4196      -- Case2: If report is ZXZZTVSR                                                               --
4197      --        In this case, you cannot use cache as the lines are filtered by Trx ID and tax rate --
4198      -- ------------------------------------------------------------------------------------------ --
4199 
4200      ELSIF P_REPORT_NAME = 'ZXZZTVSR' THEN
4201 
4202            FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4203 
4204 	   BEGIN
4205 
4206 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
4207 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4208 		' p_detail_tax_line_id : '||p_detail_tax_line_id(i));
4209 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4210 		' p_trx_id_tbl : '||p_trx_id_tbl(i));
4211 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4212 		' p_trx_line_id : '||p_trx_line_id(i));
4213 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4214 		' p_tax_rate_tbl : '||p_tax_rate_tbl(i));
4215 	    END IF ;
4216 
4217 	     IF l_taxable_amt_tbl.EXISTS(p_trx_line_id(i)) THEN
4218 		null;
4219 	     ELSE
4220 		     l_taxable_amt_tbl(p_trx_line_id(i)) := null;
4221 	     END IF;
4222 
4223              IF l_taxable_amt_tbl(p_trx_line_id(i)) is NULL THEN
4224                  BEGIN
4225                          SELECT SUM(nvl(itf.taxable_amt_funcl_curr,itf.taxable_amt))
4226                            INTO l_taxable_amt_tbl(p_trx_line_id(i))
4227                            FROM zx_rep_trx_detail_t itf
4228                           WHERE itf.request_id = p_request_id
4229                             AND itf.trx_id  = p_trx_id_tbl(i)
4230                             AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4231                             AND itf.trx_line_id = p_trx_line_id(i)
4232                             --AND itf.tax_regime_code = nvl(p_tax_regime,itf.tax_regime_code)--Bug 5374021
4233                             --AND itf.tax = p_vat_tax
4234 			    and itf.tax_rate <> 0
4235                             AND itf.tax_rate = p_tax_rate_tbl(i);
4236 
4237                    EXCEPTION
4238 
4239                         WHEN NO_DATA_FOUND THEN
4240 
4241                              X_TAXABLE_AMT_TBL(i) := 0;
4242                          IF (g_level_statement >= g_current_runtime_level ) THEN
4243                              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4244                             'No Data Found  : Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i));
4245                          END IF;
4246 
4247                         WHEN OTHERS THEN
4248                          IF (g_level_statement >= g_current_runtime_level ) THEN
4249                              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4250                            'Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i)||': '||substr(sqlerrm,1,120));
4251                          END IF;
4252                   END;
4253                      X_TAXABLE_AMT_TBL(i):=l_taxable_amt_tbl(p_trx_line_id(i));
4254               ELSE
4255                      X_TAXABLE_AMT_TBL(i):=0;
4256               END IF;
4257 
4258 
4259            END;
4260 
4261 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
4262 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4263 		' Taxable Amt for Report Name  : '||p_report_name ||' trx_id : '
4264                    ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_TAXABLE_AMT_TBL(i)));
4265 	    END IF;
4266 
4267            END LOOP;
4268 
4269           ELSIF P_REPORT_NAME = 'ZXCLPPLR' THEN
4270                k:=0;
4271                 FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4272                 BEGIN
4273                  -- k:= to_number(to_char(p_trx_id_tbl(i))||to_char(p_trx_line_id(i)));
4274 		  IF i = 1 THEN
4275                      k:=1;
4276                   ELSE
4277                      IF (p_trx_id_tbl(i) <> p_trx_id_tbl(i-1)) OR
4278                              (p_trx_line_id(i) <> p_trx_line_id(i-1)) THEN
4279                         k:=k+1;
4280                      END IF;
4281                   END IF;
4282 
4283                   IF l_taxable_amt_tbl.EXISTS(k) THEN
4284                      null;
4285                   ELSE
4286                      l_taxable_amt_tbl(k) := null;
4287                   END IF;
4288 
4289              IF l_taxable_amt_tbl(k) is NULL THEN
4290               BEGIN
4291                  IF ( g_level_statement>= g_current_runtime_level ) THEN
4292 		     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4293 			' Document Sub Type : '||P_DOCUMENT_SUB_TYPE_TBL(i) );
4294 		 END IF;
4295                      IF P_DOCUMENT_SUB_TYPE_TBL(i) = 'JL_CL_CREDIT_MEMO' THEN
4296                         SELECT SUM(nvl(itf.taxable_amt_funcl_curr,nvl(itf.taxable_amt,0)))
4297                           INTO l_taxable_amt_tbl(k)
4298                           FROM zx_rep_trx_detail_t itf
4299                          WHERE itf.request_id  = p_request_id
4300                            AND itf.trx_id  = p_trx_id_tbl(i)
4301                            AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4302                            AND itf.trx_line_id = p_trx_line_id(i)
4303                            AND (itf.reverse_flag IS NULL OR itf.reverse_flag <> 'Y')
4304 			   AND itf.tax_rate_id = P_TAX_RATE_TBL(i)  --Bug 5413860
4305                            AND itf.tax_rate <> 0;
4306                       ELSE
4307                         SELECT SUM(nvl(itf.taxable_amt_funcl_curr,nvl(itf.taxable_amt,0)))
4308                           INTO l_taxable_amt_tbl(k)
4309                           FROM zx_rep_trx_detail_t itf
4310                          WHERE itf.request_id = p_request_id
4311                            AND itf.trx_id = p_trx_id_tbl(i)
4312                            AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4313                            AND itf.trx_line_id = p_trx_line_id(i)
4314 			AND itf.tax_rate_id = P_TAX_RATE_TBL(i) --Bug 5413860
4315                         AND itf.tax_rate <> 0;
4316 
4317                  IF ( g_level_statement>= g_current_runtime_level ) THEN
4318 		     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4319 		     ' get taxable_amount() :l_taxable_amt_tbl: '||to_char(l_taxable_amt_tbl(k)));
4320 		 END IF;
4321 
4322                       END IF;
4323                    END;
4324                      X_TAXABLE_AMT_TBL(i):=l_taxable_amt_tbl(k);
4325                ELSE
4326                      X_TAXABLE_AMT_TBL(i):=0;
4327                END IF;
4328             END;
4329         END LOOP;
4330 
4331    ELSIF P_REPORT_NAME = 'ZXCOARSB' THEN --Bug 5396444 : Logic to get the extended amount
4332                 FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4333                 BEGIN
4334                   IF l_taxable_amt_tbl.EXISTS(p_trx_line_id(i)) THEN
4335                      null;
4336                   ELSE
4337                      l_taxable_amt_tbl(p_trx_line_id(i)) := null;
4338                   END IF;
4339 
4340              IF l_taxable_amt_tbl(p_trx_line_id(i)) is NULL THEN
4341               BEGIN
4342        	      SELECT (SUM(DECODE(ctl.line_type,'LINE', NVL(ctl.extended_amount,0),0))
4343 				 + SUM(DECODE(ctl.line_type,'FREIGHT',NVL(ctl.extended_amount,0),0))
4344 		  + SUM(DECODE(ctl.line_type,'CHARGE',NVL(ctl.extended_amount,0),0))) --*  p_exchange_rate_tbl(i)
4345 			 INTO l_taxable_amt_tbl(p_trx_line_id(i))
4346 			 FROM ra_customer_trx_lines_all  ctl
4347                         WHERE ctl.customer_trx_line_id = p_trx_line_id(i)
4348 			  AND ctl.customer_trx_id = p_trx_id_tbl(i);
4349 
4350               END;
4351                      X_TAXABLE_AMT_TBL(i):=l_taxable_amt_tbl(p_trx_line_id(i));
4352                ELSE
4353                      X_TAXABLE_AMT_TBL(i):=0;
4354                END IF;
4355 
4356             END;
4357         END LOOP;
4358 
4359           ELSIF P_REPORT_NAME = 'ZXCLRSLL' THEN
4360 
4361               FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4362                 BEGIN
4363                      IF l_taxable_amt_tbl.EXISTS(p_trx_line_id(i)) THEN
4364                        null;
4365                      ELSE
4366                        l_taxable_amt_tbl(p_trx_line_id(i)) := null;
4367                      END IF;
4368 
4369                       IF (g_level_statement >= g_current_runtime_level ) THEN
4370                             FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4371                                 'Inside Report Name : Taxable amount '||P_REPORT_NAME ||'i : '
4372                                      ||i||' trx_id : '||p_trx_id_tbl(i)||': ');
4373                       END IF;
4374 
4375                 IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_line_id(i)) THEN
4376                     NULL;
4377                 ELSE
4378                    l_gdf_ra_cust_trx_att19_tbl(p_trx_line_id(i)) := '0';
4379                 END IF;
4380 
4381 
4382                 IF l_taxable_amt_tbl(p_trx_line_id(i)) is NULL THEN
4383                  BEGIN
4384   			 IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_line_id(i)) <> 'IS_NULL'
4385                     AND l_gdf_ra_cust_trx_att19_tbl(p_trx_line_id(i)) <> 'NOT_NULL' ) THEN
4386 
4387                     BEGIN
4388 		       SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
4389 			 INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_line_id(i))
4390 			 FROM  ra_customer_trx_all
4391 			WHERE  customer_trx_id = p_trx_id_tbl(i);
4392 
4393 		   IF (g_level_statement >= g_current_runtime_level ) THEN
4394 		      FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4395 			   'Inside Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i)||': '
4396                              ||' ga9 : '||l_gdf_ra_cust_trx_att19_tbl(p_trx_line_id(i)));
4397 	           END IF;
4398 
4399 		         EXCEPTION
4400        		  	WHEN OTHERS THEN
4401 				IF (g_level_statement >= g_current_runtime_level ) THEN
4402 			      	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4403 				     'Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '
4404                                      ||p_trx_id_tbl(i)||': '||substr(sqlerrm,1,120));
4405 				END IF;
4406 			  END;
4407      		      END IF;
4408 
4409       		IF l_gdf_ra_cust_trx_att19_tbl(p_trx_line_id(i)) = 'IS_NULL' THEN
4410                  --    null;
4411                              -- OPEN ISSUE -- --Bug 5438742
4412                               SELECT SUM(nvl(itf.taxable_amt_funcl_curr,nvl(itf.taxable_amt,0)))
4413                                 INTO l_taxable_amt_tbl(p_trx_line_id(i))
4414                                 FROM zx_rep_trx_detail_t itf
4415                                WHERE itf.request_id = p_request_id
4416                                  AND itf.trx_id = p_trx_id_tbl(i)
4417                                  AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4418                                  AND itf.trx_line_id = p_trx_line_id(i)
4419 				         AND itf.tax_rate_id = P_TAX_RATE_TBL(i) --Bug 5413860
4420                                 AND itf.tax_rate <> 0;
4421                    ELSE
4422                              l_taxable_amt_tbl(p_trx_line_id(i)) := 0;
4423                    END IF;
4424 
4425                    --END IF;
4426 
4427                   --  X_TAXABLE_AMT_TBL(i) := l_taxable_amt_tbl(p_trx_line_id(i));
4428                EXCEPTION
4429                  WHEN NO_DATA_FOUND THEN
4430                       l_taxable_amt_tbl(p_trx_id_tbl(i)) := 0;
4431                       X_TAXABLE_AMT_TBL(i) := l_taxable_amt_tbl(p_trx_line_id(i));
4432                       NULL;
4433                       IF (g_level_statement >= g_current_runtime_level ) THEN
4434                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4435                         'No Data Found  : Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i));
4436                       END IF;
4437 
4438                     WHEN OTHERS THEN
4439                          IF (g_level_statement >= g_current_runtime_level ) THEN
4440                              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4441                            'Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i)||': '||substr(sqlerrm,1,120));
4442                          END IF;
4443 
4444               END;
4445                      X_TAXABLE_AMT_TBL(i):=l_taxable_amt_tbl(p_trx_line_id(i));
4446            ELSE
4447                  X_TAXABLE_AMT_TBL(i):=0;
4448           END IF;
4449         END;
4450 
4451 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
4452 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4453 		' Taxable Amt for Report Name  : '||p_report_name ||' trx_id : '
4454                    ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_TAXABLE_AMT_TBL(i)));
4455 	    END IF;
4456 
4457         END LOOP;
4458 
4459 
4460 
4461 
4462      -- ------------------------------------------------------------------------------------------ --
4463      -- Case3: If report is NOT ZXARPVBR or NOT ZXZZTVSR                                                           --
4464      --        In this case, you can use cache as the lines are filtered by Trx ID and tax rate    --
4465      -- ------------------------------------------------------------------------------------------ --
4466 
4467    ELSE
4468        BEGIN
4469           SELECT count(distinct trx_id)
4470             INTO l_trx_counter
4471             FROM zx_rep_trx_detail_t
4472            WHERE request_id = p_request_id;
4473 
4474   	     IF ( g_level_statement>= g_current_runtime_level ) THEN
4475 		  FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4476 		  ' l_trx_counter : '||l_trx_counter );
4477 	      END IF;
4478          EXCEPTION
4479             WHEN OTHERS THEN
4480                   l_err_msg := substrb(SQLERRM,1,120);
4481 			IF ( g_level_statement>= g_current_runtime_level ) THEN
4482 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount ',
4483 				      'ZX_JL_EXTRACT_PKG.get_taxable_amount.'|| P_REPORT_NAME ||':'||l_err_msg);
4484       		END IF;
4485          END;
4486 
4487 
4488          FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4489            BEGIN
4490 
4491             IF P_REPORT_NAME = 'JLARPPFF' THEN
4492               -- k:= to_number(to_char(p_trx_id_tbl(i))||to_char(p_trx_line_id(i)));
4493 	         IF i = 1 THEN
4494                     k:=1;
4495                  ELSE
4496                    IF (p_trx_id_tbl(i) <> p_trx_id_tbl(i-1)) OR
4497                              (p_trx_line_id(i) <> p_trx_line_id(i-1)) THEN
4498                        k:=k+1;
4499                    END IF;
4500                  END IF;
4501 		 IF (g_level_procedure >= g_current_runtime_level ) THEN
4502                       FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount.JLARPPFF',
4503                                          'K Value : '||to_char(k));
4504                  END IF;
4505 
4506                  IF l_taxable_amt_tbl.EXISTS(k) THEN
4507                     null;
4508                  ELSE
4509                     l_taxable_amt_tbl(k) := null;
4510                  END IF;
4511 
4512             ELSE
4513                k:= p_trx_line_id(i);
4514                IF l_taxable_amt_tbl.EXISTS(k) THEN
4515                   null;
4516                ELSE
4517                   l_taxable_amt_tbl(k) := null;
4518                END IF;
4519 
4520                IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
4521                   NULL;
4522                ELSE
4523                  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := '0';
4524                END IF;
4525             END IF;
4526 
4527              IF l_taxable_amt_tbl(k) is NULL THEN
4528                 BEGIN
4529                      IF P_REPORT_NAME = 'JLARPPFF' THEN
4530 			IF ( g_level_statement>= g_current_runtime_level ) THEN
4531 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount ',
4532 			'get_taxable : '|| to_char(k)||' '||to_char(p_trx_id_tbl(i))||' '||to_char(p_tax_rate_tbl(i)));
4533       		END IF;
4534                         SELECT abs(nvl(SUM(itf.taxable_amt),0))
4535                           INTO l_taxable_amt_tbl(k)
4536                           FROM zx_rep_trx_detail_t itf
4537                          WHERE itf.request_id = p_request_id
4538                            AND itf.trx_id = p_trx_id_tbl(i)
4539                            AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4540                            AND itf.trx_line_id = p_trx_line_id(i)
4541                            AND itf.tax_type_code = p_vat_tax
4542                            AND itf.tax_rate = p_tax_rate_tbl(i)
4543                            AND itf.tax_rate <> 0;
4544 
4545 
4546                     -- ---------------------------------------------- --
4547                     --               For AR Reports                   --
4548                     -- ---------------------------------------------- --
4549 
4550                     ELSIF P_REPORT_NAME = 'JLARTPFF' THEN
4551 
4552                           SELECT ABS(SUM(itf.taxable_amt_funcl_curr))
4553                             INTO l_taxable_amt_tbl(k)
4554                             FROM zx_rep_trx_detail_t itf
4555                            WHERE itf.request_id = p_request_id
4556                              AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4557                              AND itf.trx_line_id = p_trx_line_id(i)
4558                              AND itf.trx_id = p_trx_id_tbl(i);
4559 
4560                     ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
4561 
4562                           IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' AND
4563                                l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) OR
4564                                 l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL  THEN
4565 
4566                               BEGIN
4567                                 SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
4568                                   INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
4569                                   FROM  ra_customer_trx_all
4570                                  WHERE  customer_trx_id = p_trx_id_tbl(i);
4571 
4572                            EXCEPTION
4573                              WHEN OTHERS THEN
4574 			     IF (g_level_statement >= g_current_runtime_level ) THEN
4575 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4576 				'Report Name : '||P_REPORT_NAME ||'i : '||i||' trx_id : '||p_trx_id_tbl(i)||': '
4577                                 ||substr(sqlerrm,1,120));
4578 			     END IF;
4579                          END;
4580 
4581                          END IF;
4582 
4583                           IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
4584 			    IF (g_level_procedure >= g_current_runtime_level ) THEN
4585 			     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4586 						      'Trx ID : '||to_char(p_trx_id_tbl(i)));
4587 			     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4588 						      'p_tax_rate_tbl : '||to_char(p_tax_rate_tbl(i)));
4589 			     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4590 						      'p_tax_regime : '||p_tax_regime);
4591 			     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4592 						      'p_vat_tax : '||p_vat_tax);
4593 			   END IF;
4594 
4595                              SELECT  NVL(sum(nvl(itf.taxable_amt_funcl_curr,itf.taxable_amt)),0)
4596                                INTO  l_taxable_amt_tbl(k)
4597                                FROM  zx_rep_trx_detail_t itf
4598                               WHERE  itf.request_id = p_request_id
4599                                 AND  itf.trx_id  = p_trx_id_tbl(i)
4600                                  AND itf.detail_tax_line_id = p_detail_tax_line_id(i)
4601                                  AND itf.trx_line_id = p_trx_line_id(i)
4602                                 AND  itf.tax_regime_code = p_tax_regime
4603                                 AND  itf.tax = p_vat_tax
4604                                 AND  itf.tax_rate = p_tax_rate_tbl(i)
4605                                 AND  nvl(itf.tax_rate,0) <> 0;
4606 
4607                   IF (g_level_procedure >= g_current_runtime_level ) THEN
4608                      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4609                             'Trx ID After query  : '||to_char(l_taxable_amt_tbl(k)));
4610                   END IF;
4611                           ELSE
4612 
4613                               l_taxable_amt_tbl(k) := 0;
4614 
4615                           END IF;
4616 
4617                     END IF;
4618                   EXCEPTION
4619                   when others then
4620                   IF (g_level_procedure >= g_current_runtime_level ) THEN
4621                      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount',
4622                             'Trx ID Exemption  : '||to_char(p_trx_id_tbl(i)));
4623                   END IF;
4624                         l_taxable_amt_tbl(k) := 0;
4625 
4626                  END;
4627 
4628               X_TAXABLE_AMT_TBL(i) := l_taxable_amt_tbl(k);
4629          ELSE -- if l_vat_amt_tbl is not null
4630 
4631               X_TAXABLE_AMT_TBL(i) := 0;
4632 
4633          END IF;
4634 
4635 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
4636 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4637 		' Taxable Amt for Report Name  : '||p_report_name ||' trx_id : '
4638                    ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_TAXABLE_AMT_TBL(i)));
4639 	    END IF;
4640          END;
4641        END LOOP;
4642 
4643      END IF;
4644     IF (g_level_procedure >= g_current_runtime_level ) THEN
4645      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_taxable_amount.BEGIN',
4646                                       'ZX_JL_EXTRACT_PKG.get_taxable_amount(-)');
4647    END IF;
4648 END GET_TAXABLE_AMOUNT;
4649 
4650 
4651 /*================================================================================+
4652  | PROCEDURE                                                                      |
4653  |   GET_NON_TAXABLE_AMOUNT                                                       |
4654  |   Type       : Private                                                         |
4655  |   Pre-req    : None                                                            |
4656  |   Function   :                                                                 |
4657  |    This procedure extract VAT Tax Amount for the given report name             |
4658  |                                                                                |
4659  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
4660  |                                                                                |
4661  |   Parameters :                                                                 |
4662  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
4663  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
4664  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
4665  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
4666  |                                                                                |
4667  |    OUT                                                                         |
4668  |                 X_NON_TAXABLE_AMT_TBL    OUT  NUMERIC8_TBL   |
4669  |                                                                                |
4670  |   MODIFICATION HISTORY                                                         |
4671  |     29-Oct-04  Hidetaka Kojima   created                                       |
4672  |                                                                                |
4673  +================================================================================*/
4674 
4675 
4676 PROCEDURE GET_NON_TAXABLE_AMOUNT
4677 (
4678 P_NON_TAXAB_TAX              IN            VARCHAR2 DEFAULT NULL,
4679 P_VAT_TAX                    IN            VARCHAR2 DEFAULT NULL,
4680 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
4681 P_VAT_PERCEP_TAX             IN            VARCHAR2 DEFAULT NULL,
4682 P_REPORT_NAME                IN            VARCHAR2,
4683 p_REQUEST_ID                 IN            NUMBER,
4684 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
4685 P_DETAIL_TAX_LINE_ID         IN            ZX_EXTRACT_PKG.DETAIL_TAX_LINE_ID_TBL,
4686 P_TRX_LINE_ID                IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
4687 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
4688 X_NON_TAXABLE_AMT_TBL        OUT  NOCOPY   NUMERIC8_TBL
4689 ) IS
4690 
4691  l_err_msg                     VARCHAR2(120);
4692  l_trx_counter                 NUMBER;
4693  l_gdf_ra_cust_trx_att19_tbl   GDF_RA_CUST_TRX_ATT19_TBL;
4694  l_non_taxable_amt_tbl         NUMERIC8_TBL;
4695  k NUMBER;
4696 
4697 BEGIN
4698 
4699    IF (g_level_procedure >= g_current_runtime_level ) THEN
4700      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_non_taxable_amount.BEGIN',
4701                                       'ZX_JL_EXTRACT_PKG.get_non_taxable_amount(+)');
4702    END IF;
4703 
4704      BEGIN
4705 
4706           SELECT count(distinct trx_id)
4707             INTO l_trx_counter
4708             FROM zx_rep_trx_detail_t
4709            WHERE request_id = p_request_id;
4710 
4711     IF ( g_level_statement>= g_current_runtime_level ) THEN
4712 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4713 	' l_trx_counter : '||l_trx_counter );
4714     END IF;
4715 
4716      EXCEPTION
4717 
4718           WHEN OTHERS THEN
4719 		IF ( g_level_statement>= g_current_runtime_level ) THEN
4720 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JA_EXTRACT_PKG.get_non_taxable_amount',
4721 			'Error Message  : '||substrb(SQLERRM,1,120) );
4722 		END IF;
4723 
4724      END;
4725 
4726      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4727         IF P_REPORT_NAME in ('ZXARPVBR','JLARPPFF') THEN
4728 --           k:= to_number(to_char(p_trx_id_tbl(i))||to_char(p_trx_line_id(i)));
4729 
4730      -- Added for GSI bug#6615621 --
4731            IF i = 1 THEN
4732                k:=1;
4733             ELSE
4734                IF (p_trx_id_tbl(i) <> p_trx_id_tbl(i-1)) OR
4735                              (p_trx_line_id(i) <> p_trx_line_id(i-1)) THEN
4736                    k:=k+1;
4737                END IF;
4738            END IF;
4739      -- End GSI Bug -----
4740 
4741             IF l_non_taxable_amt_tbl.EXISTS(k) THEN
4742                null;
4743             ELSE
4744                l_non_taxable_amt_tbl(k) := null;
4745             END IF;
4746         ELSE
4747          k:= p_trx_line_id(i);
4748             IF l_non_taxable_amt_tbl.EXISTS(k) THEN
4749                null;
4750             ELSE
4751                l_non_taxable_amt_tbl(k) := null;
4752             END IF;
4753         END IF;
4754 
4755         /* IF l_non_taxable_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
4756             null;
4757          ELSE
4758 		 IF (g_level_procedure >= g_current_runtime_level ) THEN
4759 		     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_non_taxable_amount.BEGIN',
4760 						      'ZX_JL_EXTRACT_PKG.get_non_taxable_amount - NULL Check ');
4761 		   END IF;
4762 
4763                 l_non_taxable_amt_tbl(p_trx_id_tbl(i)) := null;
4764          END IF;
4765         */
4766          IF l_non_taxable_amt_tbl(k) is NULL THEN
4767 
4768             BEGIN
4769 
4770                  IF P_REPORT_NAME in ('ZXARPVBR','JLARPPFF') THEN
4771 
4772                      SELECT SUM(itf.taxable_amt)
4773                        INTO l_non_taxable_amt_tbl(k)
4774                        FROM zx_rep_trx_detail_t itf
4775                       WHERE itf.request_id = p_request_id
4776                         AND itf.trx_id = p_trx_id_tbl(i)
4777                         AND itf.trx_line_id = p_trx_line_id(i)
4778                         AND itf.tax_type_code = p_non_taxab_tax;
4779 
4780                  -- ---------------------------------------------- --
4781                  --               For AR Reports                   --
4782                  -- ---------------------------------------------- --
4783 
4784                  ELSIF P_REPORT_NAME = 'ZXZZTVSR' THEN
4785 
4786                        SELECT SUM(itf.taxable_amt_funcl_curr)
4787                          INTO l_non_taxable_amt_tbl(k)
4788                          FROM zx_rep_trx_detail_t itf
4789                         WHERE itf.request_id = p_request_id
4790                           AND itf.trx_id = p_trx_line_id(i)
4791                           AND itf.tax NOT IN (p_vat_tax, p_vat_addit_tax,p_vat_percep_tax);
4792 
4793                  ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
4794 
4795                        IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and
4796                             l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
4797 
4798                           BEGIN
4799 
4800                               SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
4801                                 INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
4802                                 FROM  ra_customer_trx
4803                                WHERE  customer_trx_id = p_trx_id_tbl(i);
4804 
4805                           EXCEPTION
4806                              WHEN OTHERS THEN
4807 			     IF ( g_level_statement>= g_current_runtime_level ) THEN
4808 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JA_EXTRACT_PKG.GET_NON_TAXABLE_AMOUNT',
4809 					'Error Message  : '||substrb(SQLERRM,1,120) );
4810 				END IF;
4811                           END;
4812 
4813                        END IF;
4814 
4815                        IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
4816 
4817                           SELECT  sum(nvl(itf.tax_amt ,0))
4818                             INTO  l_non_taxable_amt_tbl(p_trx_id_tbl(i))
4819                             FROM  zx_rep_trx_detail_t itf
4820                            WHERE  itf.request_id = p_request_id
4821                              AND  itf.trx_id = p_trx_id_tbl(i)
4822                              AND  nvl(itf.tax_type_code, 'VAT') = 'VAT'
4823                              AND  itf.tax = p_non_taxab_tax;
4824 
4825                        ELSE
4826 
4827                           --l_non_taxable_amt_tbl(p_trx_id_tbl(i)) := 0;
4828                           l_non_taxable_amt_tbl(k) := 0;
4829 
4830                        END IF;
4831 
4832                  END IF; -- IF P_REPORT_NAME = ..
4833 
4834                  X_NON_TAXABLE_AMT_TBL(i) := NVL(l_non_taxable_amt_tbl(k),0);
4835 
4836             EXCEPTION
4837 
4838                     WHEN NO_DATA_FOUND THEN
4839 
4840                          l_non_taxable_amt_tbl(k) := 0;
4841                          X_NON_TAXABLE_AMT_TBL(i) := l_non_taxable_amt_tbl(k);
4842                          NULL;
4843 
4844                     WHEN OTHERS THEN
4845 			IF ( g_level_statement>= g_current_runtime_level ) THEN
4846 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JA_EXTRACT_PKG.GET_NON_TAXABLE_AMOUNT',
4847 				'Error Message  : '||substrb(SQLERRM,1,120) );
4848 			END IF;
4849             END;
4850 
4851          ELSE -- if l_non_taxable_amt_tbl is not null
4852 
4853               X_NON_TAXABLE_AMT_TBL(i) := nvl(l_non_taxable_amt_tbl(k),0);
4854 
4855          END IF;
4856 
4857     IF ( g_level_statement>= g_current_runtime_level ) THEN
4858 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4859 	' Non Taxable Amt for Report Name  : '||p_report_name ||' trx_id : '||to_char(k)||' is : '||to_char(X_NON_TAXABLE_AMT_TBL(i)));
4860     END IF;
4861 
4862    END LOOP;
4863 
4864    IF (g_level_procedure >= g_current_runtime_level ) THEN
4865      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_non_taxable_amount.END',
4866                                       'ZX_JL_EXTRACT_PKG.get_non_taxable_amount(-)');
4867    END IF;
4868 
4869 END GET_NON_TAXABLE_AMOUNT;
4870 
4871 
4872 /*================================================================================+
4873  | PROCEDURE                                                                      |
4874  |   GET_VAT_ADDITIONAL_AMOUNT                                                        |
4875  |   Type       : Private                                                         |
4876  |   Pre-req    : None                                                            |
4877  |   Function   :                                                                 |
4878  |    This procedure extract VAT Exempt Amount for the given report name          |
4879  |                                                                                |
4880  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
4881  |                                                                                |
4882  |   Parameters :                                                                 |
4883  |   IN         :  P_VAT_ADDIT_TAX             IN   VARCHAR2 Opt                  |
4884  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
4885  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
4886  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
4887  |                 P_TAX_RATE_ID_TBL           IN   ZX_EXTRACT_PKG.DOCUMENT_      |
4888  |                                                  SUB_TYPE_TBL               Opt|
4889  |                                                                                |
4890  |    OUT                                                                         |
4891  |                 X_VAT_ADDITIONAL_AMT_TBL OUT  NUMERIC11_TBL  |
4892  |                                                                                |
4893  |   MODIFICATION HISTORY                                                         |
4894  |     29-Oct-04  Hidetaka Kojima   created                                       |
4895  |                                                                                |
4896  +================================================================================*/
4897 
4898 
4899   PROCEDURE GET_VAT_ADDITIONAL_AMOUNT
4900 (
4901 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
4902 P_REPORT_NAME                IN            VARCHAR2,
4903 p_REQUEST_ID                 IN            NUMBER,
4904 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
4905 P_TAX_RATE_ID_TBL            IN            ZX_EXTRACT_PKG.TAX_RATE_ID_TBL,
4906 X_VAT_ADDITIONAL_AMT_TBL     OUT  NOCOPY   NUMERIC7_TBL
4907 ) IS
4908 
4909  l_err_msg                   VARCHAR2(120);
4910  l_trx_counter               NUMBER;
4911  l_vat_additional_amt_tbl    NUMERIC7_TBL;
4912 
4913 
4914 BEGIN
4915 
4916     IF (g_level_procedure >= g_current_runtime_level ) THEN
4917 	FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_ADDITIONAL_AMOUNT.BEGIN',
4918                                       'ZX_JL_EXTRACT_PKG.GET_VAT_ADDITIONAL_AMOUNT(+)');
4919    END IF;
4920 
4921      BEGIN
4922 
4923           SELECT count(distinct trx_id)
4924             INTO l_trx_counter
4925             FROM zx_rep_trx_detail_t
4926            WHERE request_id = p_request_id;
4927 
4928 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
4929 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
4930 		' l_trx_counter : '|| l_trx_counter );
4931 	    END IF;
4932 
4933      EXCEPTION
4934 
4935           WHEN OTHERS THEN
4936 
4937 		IF ( g_level_statement>= g_current_runtime_level ) THEN
4938 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_additional_amount',
4939 			'ZX_JL_EXTRACT_PKG.get_vat_additional_amount : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
4940 		END IF;
4941 
4942      END;
4943 
4944      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
4945 
4946          IF l_vat_additional_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
4947             null;
4948          ELSE
4949                 l_vat_additional_amt_tbl(p_trx_id_tbl(i)) := null;
4950          END IF;
4951 
4952          IF l_vat_additional_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
4953 
4954     IF ( g_level_statement>= g_current_runtime_level ) THEN
4955         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_additional_amount',
4956                'ZX_JL_EXTRACT_PKG.get_vat_additional_amount : '||p_report_name
4957                  ||' : '||to_char(l_vat_additional_amt_tbl(p_trx_id_tbl(i))));
4958       END IF;
4959 
4960 
4961             BEGIN
4962 
4963                  IF P_REPORT_NAME IN ('ZXZZTVSR','JLARTSFF') THEN
4964 
4965                     SELECT SUM(NVL(itf.tax_amt_funcl_curr,itf.tax_amt))
4966                       INTO l_vat_additional_amt_tbl(p_trx_id_tbl(i))
4967                       FROM zx_rep_trx_detail_t itf
4968                      WHERE itf.request_id = p_request_id
4969                        AND itf.trx_id = p_trx_id_tbl(i)
4970                      --  AND itf.tax_rate_id = p_tax_rate_id_tbl(i)
4971                        ANd itf.tax = p_vat_addit_tax;
4972 
4973       IF ( g_level_statement>= g_current_runtime_level ) THEN
4974         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_additional_amount',
4975                'ZX_JL_EXTRACT_PKG.get_vat_additional_amount : '||p_report_name
4976                  ||' : '||to_char(l_vat_additional_amt_tbl(p_trx_id_tbl(i))));
4977       END IF;
4978 
4979 
4980                  END IF;
4981 
4982                  X_VAT_ADDITIONAL_AMT_TBL(i) := l_vat_additional_amt_tbl(p_trx_id_tbl(i));
4983 
4984             EXCEPTION
4985 
4986                     WHEN NO_DATA_FOUND THEN
4987 
4988                          l_vat_additional_amt_tbl(p_trx_id_tbl(i)) := 0;
4989                          X_VAT_ADDITIONAL_AMT_TBL(i) := l_vat_additional_amt_tbl(p_trx_id_tbl(i));
4990                          NULL;
4991 
4992                     WHEN OTHERS THEN
4993 
4994 		IF ( g_level_statement>= g_current_runtime_level ) THEN
4995 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_additional_amount',
4996 			'ZX_JL_EXTRACT_PKG.get_vat_additional_amount : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
4997 		END IF;
4998 
4999             END;
5000 
5001          ELSE -- if l_vat_iaddtional_amt_tbl is not null
5002 
5003  --          X_VAT_ADDITIONAL_AMT_TBL(i) := l_vat_additional_amt_tbl(p_trx_id_tbl(i));
5004               X_VAT_ADDITIONAL_AMT_TBL(i) := 0;
5005          END IF;
5006 
5007     IF ( g_level_statement>= g_current_runtime_level ) THEN
5008 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5009 	' Vat Additional Amt for Report Name  : '||p_report_name ||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_ADDITIONAL_AMT_TBL(i)));
5010     END IF;
5011 
5012    END LOOP;
5013 
5014    IF (g_level_procedure >= g_current_runtime_level ) THEN
5015 		FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_additional_amount',
5016 		'jl.plsql.ZX_JL_EXTRACT_PKG.get_vat_additional_amount(-)');
5017    END IF;
5018 
5019 END GET_VAT_ADDITIONAL_AMOUNT;
5020 
5021 
5022 /*================================================================================+
5023  | PROCEDURE                                                                      |
5024  |   GET_VAT_EXEMPT_AMOUNT                                                        |
5025  |   Type       : Private                                                         |
5026  |   Pre-req    : None                                                            |
5027  |   Function   :                                                                 |
5028  |    This procedure extract VAT Exempt Amount for the given report name          |
5029  |                                                                                |
5030  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
5031  |                                                                                |
5032  |   Parameters :                                                                 |
5033  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
5034  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
5035  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
5036  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
5037  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
5038  |                                                  SUB_TYPE_TBL               Opt|
5039  |                                                                                |
5040  |    OUT                                                                         |
5041  |                 X_VAT_EXEMPT_AMT_TBL    OUT  NUMERIC14_TBL   |
5042  |                                                                                |
5043  |   MODIFICATION HISTORY                                                         |
5044  |     29-Oct-04  Hidetaka Kojima   created                                       |
5045  |                                                                                |
5046  +================================================================================*/
5047 
5048 
5049   PROCEDURE GET_VAT_EXEMPT_AMOUNT
5050 (
5051 P_VAT_TAX                    IN            VARCHAR2 DEFAULT NULL,
5052 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
5053 P_VAT_PERCEP_TAX             IN            VARCHAR2 DEFAULT NULL,
5054 P_REPORT_NAME                IN            VARCHAR2,
5055 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
5056 p_REQUEST_ID                 IN            NUMBER,
5057 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
5058 P_TRX_LINE_ID_TBL            IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
5059 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
5060 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
5061 X_VAT_EXEMPT_AMT_TBL         OUT  NOCOPY   NUMERIC2_TBL
5062 ) IS
5063 
5064  l_err_msg                   VARCHAR2(120);
5065  l_trx_counter               NUMBER;
5066  l_vat_exempt_amt_tbl        NUMERIC2_TBL;
5067  l_vat_0_amt_tbl             NUMERIC2_TBL;
5068  l_no_vat_amt_tbl            NUMERIC2_TBL;
5069  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
5070  k NUMBER;
5071 BEGIN
5072 
5073  g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5074 	  --Bug 5058043
5075 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
5076 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT.BEGIN',
5077 	     'GET_VAT_EXEMPT_AMOUNT(+)');
5078 	  END IF ;
5079 
5080      BEGIN
5081 
5082           SELECT count(distinct trx_id)
5083             INTO l_trx_counter
5084             FROM zx_rep_trx_detail_t
5085            WHERE request_id = p_request_id;
5086 
5087     IF ( g_level_statement>= g_current_runtime_level ) THEN
5088 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5089 	' GET_VAT_EXEMPT_AMOUNT : l_trx_counter : '|| l_trx_counter );
5090     END IF;
5091 
5092      EXCEPTION
5093 
5094           WHEN OTHERS THEN
5095               l_err_msg := substrb(SQLERRM,1,120);
5096 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
5097 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
5098 	     'ZX_JL_EXTRACT_PKG.get_vat_exempt_amount.'||p_report_name || '.'||l_err_msg);
5099 
5100           END IF;
5101 
5102      END;
5103 
5104      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
5105 
5106         IF P_REPORT_NAME in ('ZXARPVBR','JLARPPFF') THEN
5107             -- k:= to_number(to_char(p_trx_id_tbl(i))||to_char(p_trx_line_id_tbl(i)));
5108             -- Added for GSI bug#6615621 ---
5109            IF i = 1 THEN
5110                k:=1;
5111            ELSE
5112                IF (p_trx_id_tbl(i) <> p_trx_id_tbl(i-1)) OR
5113                              (p_trx_line_id_tbl(i) <> p_trx_line_id_tbl(i-1)) THEN
5114                    k:=k+1;
5115                END IF;
5116            END IF;
5117            -- GSI BUG ---
5118 
5119             IF l_vat_exempt_amt_tbl.EXISTS(k) THEN
5120                null;
5121             ELSE
5122                l_vat_exempt_amt_tbl(k) := null;
5123             END IF;
5124         ELSE
5125             k:= p_trx_line_id_tbl(i);
5126             IF l_vat_exempt_amt_tbl.EXISTS(k) THEN
5127                null;
5128             ELSE
5129                l_vat_exempt_amt_tbl(k) := null;
5130             END IF;
5131         END IF;
5132 
5133          IF l_vat_exempt_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
5134             null;
5135          ELSE
5136              l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) := null;
5137          END IF;
5138 
5139 	IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
5140 		NULL;
5141 	ELSE
5142 		l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := '0';
5143 	END IF;
5144 
5145          --IF l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
5146          IF l_vat_exempt_amt_tbl(k) is NULL THEN
5147 
5148             BEGIN
5149 
5150                  IF P_REPORT_NAME in ('ZXARPVBR','JLARPPFF') THEN
5151                    BEGIN
5152                    IF (g_level_procedure >= g_current_runtime_level ) THEN
5153                       FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
5154                        'ZX_JL_EXTRACT_PKG.get_vat_exempt_amount : Call for '||p_report_name );
5155 
5156                    END IF;
5157 
5158                     SELECT nvl(SUM(itf.taxable_amt_funcl_curr),0)
5159                       INTO l_vat_exempt_amt_tbl(k)
5160                       FROM ZX_REP_TRX_DETAIL_T itf
5161                      WHERE itf.request_id = p_request_id
5162                        AND itf.trx_id = p_trx_id_tbl(i)
5163                        AND itf.trx_line_id = p_trx_line_id_tbl(i)
5164                       -- AND itf.tax_type_code = 'Exempt'
5165                        AND itf.tax_type_code = P_VAT_TAX
5166                        AND itf.tax_rate = 0;
5167                  EXCEPTION
5168                     WHEN NO_DATA_FOUND THEN
5169                          l_vat_exempt_amt_tbl(k) := 0;
5170                          X_VAT_EXEMPT_AMT_TBL(i) := l_vat_exempt_amt_tbl(k);
5171                       IF ( g_level_statement>= g_current_runtime_level ) THEN
5172                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_exempt_amount',
5173                         'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5174                       END IF;
5175                          NULL;
5176 
5177                     WHEN OTHERS THEN
5178                       IF ( g_level_statement>= g_current_runtime_level ) THEN
5179                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_exempt_amount',
5180                         'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5181                       END IF;
5182 
5183                     END;
5184                  ELSIF P_REPORT_NAME = 'ZXCLPPLR' THEN
5185 
5186 
5187                        IF P_DOCUMENT_SUB_TYPE_TBL(i) = 'DOCUMENT TYPE.JL_CL_CREDIT_MEMO' THEN
5188 
5189                           SELECT SUM(nvl(itf.taxable_amt_funcl_curr,nvl(itf.taxable_amt,0)))
5190                             INTO l_vat_exempt_amt_tbl(p_trx_id_tbl(i))
5191                             FROM zx_rep_trx_detail_t itf
5192                            WHERE itf.request_id  = p_request_id
5193                              AND itf.trx_id = p_trx_id_tbl(i)
5194                              AND (itf.reverse_flag IS NULL OR itf.reverse_flag <> 'Y')
5195                              AND itf.tax_rate = 0;
5196 
5197                        ELSE
5198 
5199                           SELECT SUM(nvl(itf.taxable_amt_funcl_curr,nvl(itf.taxable_amt,0)))
5200                             INTO l_vat_exempt_amt_tbl(p_trx_id_tbl(i))
5201                             FROM zx_rep_trx_detail_t itf
5202                            WHERE itf.request_id = p_request_id
5203                              AND itf.trx_id = p_trx_id_tbl(i)
5204                              AND itf.tax_rate = 0;
5205 
5206                        END IF;
5207 
5208                  -- ---------------------------------------------- --
5209                  --               For AR Reports                   --
5210                  -- ---------------------------------------------- --
5211 
5212                  ELSIF P_REPORT_NAME = 'ZXZZTVSR' THEN
5213 
5214                  IF ( g_level_statement>= g_current_runtime_level ) THEN
5215                     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5216                     'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' test : ');
5217                  END IF;
5218 
5219 
5220                        IF l_vat_0_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
5221                           null;
5222                        ELSE
5223                             l_vat_0_amt_tbl(p_trx_id_tbl(i)) := null;
5224                        END IF;
5225 
5226 		       IF ( g_level_statement>= g_current_runtime_level ) THEN
5227                           FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5228                           'l_vat_0_amt_tbl : '||to_char(l_vat_0_amt_tbl(p_trx_id_tbl(i)))||' : i-'||to_char(i));
5229                           FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5230                           'Trx ID : '||to_char(p_trx_id_tbl(i)));
5231                        END IF;
5232 
5233                        IF l_vat_0_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
5234 
5235                           SELECT sum(nvl(itf.taxable_amt_funcl_curr,itf.taxable_amt))
5236                             INTO l_vat_0_amt_tbl(p_trx_id_tbl(i))
5237                             FROM zx_rep_trx_detail_t itf
5238                            WHERE itf.request_id = p_request_id
5239                              AND itf.trx_id = p_trx_id_tbl(i)
5240                              AND nvl(itf.tax_type_code,'VAT') = 'VAT'
5241                              AND itf.tax_rate = 0
5242                              AND itf.tax IN (p_vat_tax,p_vat_addit_tax,p_vat_percep_tax);
5243 
5244                  IF ( g_level_statement>= g_current_runtime_level ) THEN
5245                     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5246                     'l_vat_0_amt_tbl : '||to_char(l_vat_0_amt_tbl(p_trx_id_tbl(i))));
5247                  END IF;
5248                        END IF;
5249 
5250                        IF l_no_vat_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
5251                           null;
5252                        ELSE
5253                             l_no_vat_amt_tbl(p_trx_id_tbl(i)) := null;
5254                        END IF;
5255 
5256                        IF l_no_vat_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
5257 
5258                           SELECT sum(nvl(itf.taxable_amt_funcl_curr,0))
5259                             INTO l_no_vat_amt_tbl(p_trx_id_tbl(i))
5260                             FROM zx_rep_trx_detail_t itf
5261                            WHERE itf.request_id = p_request_id
5262                              AND itf.trx_id = p_trx_id_tbl(i)
5263 			     AND itf.tax_rate = 0
5264                              AND ( itf.tax_regime_code  <> p_tax_regime OR itf.tax <> p_vat_tax )
5265                              AND nvl(itf.tax_type_code,'VAT') = 'VAT';
5266 
5267                  IF ( g_level_statement>= g_current_runtime_level ) THEN
5268                     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5269                     'l_no_vat_amt_tbl : '||to_char(l_no_vat_amt_tbl(p_trx_id_tbl(i))));
5270                  END IF;
5271                        END IF;
5272 
5273 		 IF l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) IS NULL THEN
5274                        l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) :=  nvl(l_vat_0_amt_tbl(p_trx_id_tbl(i)),0) +
5275                                                                  nvl(l_no_vat_amt_tbl(p_trx_id_tbl(i)),0);
5276 		       IF ( g_level_statement>= g_current_runtime_level ) THEN
5277                            FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5278                            'l_vat_exempt_amt_tbl : one '||to_char(l_vat_exempt_amt_tbl(p_trx_id_tbl(i))));
5279                        END IF;
5280 		 ELSE
5281                        l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) := 0;
5282                        IF ( g_level_statement>= g_current_runtime_level ) THEN
5283                            FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5284                            'l_vat_exempt_amt_tbl : two '||to_char(l_vat_exempt_amt_tbl(p_trx_id_tbl(i))));
5285                        END IF;
5286                  END IF;
5287 
5288                  IF ( g_level_statement>= g_current_runtime_level ) THEN
5289                     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5290                     'l_vat_exempt_amt_tbl : '||to_char(l_vat_exempt_amt_tbl(p_trx_id_tbl(i))));
5291                  END IF;
5292 
5293                  ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
5294 
5295               /*         IF l_gdf_ra_cust_trx_att19_TBL.EXISTS(p_trx_id_tbl(i)) THEN
5296                           null;
5297                        ELSE
5298                         l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
5299 
5300                        IF ( g_level_statement>= g_current_runtime_level ) THEN
5301                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5302                         'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '|| 'gdf19 Null ' );
5303                         END IF;
5304 
5305                        END IF; */
5306 
5307 --                       IF  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL THEN
5308 
5309                   IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' AND
5310                      l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) OR
5311                      l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL  THEN
5312 
5313                           BEGIN
5314 			IF ( g_level_statement>= g_current_runtime_level ) THEN
5315 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5316 			'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' test : ');
5317 			END IF;
5318 
5319                               SELECT decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
5320                                 INTO l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
5321                                 FROM ra_customer_trx
5322                                WHERE customer_trx_id = p_trx_id_tbl(i);
5323 
5324                           EXCEPTION
5325                             WHEN OTHERS THEN
5326 			IF ( g_level_statement>= g_current_runtime_level ) THEN
5327 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5328 			'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5329 			END IF;
5330 
5331                           END;
5332 
5333                        END IF;
5334 
5335                        IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
5336 			IF ( g_level_statement>= g_current_runtime_level ) THEN
5337 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT',
5338 			'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' test 1 : ');
5339 			END IF;
5340 
5341                           SELECT NVL(sum(nvl(itf.taxable_amt_funcl_curr,0)),0)
5342                             INTO l_vat_exempt_amt_tbl(p_trx_id_tbl(i))
5343                             --INTO l_vat_exempt_amt_tbl(k)
5344                             FROM zx_rep_trx_detail_t itf
5345                            WHERE itf.request_id = p_request_id
5346                              AND itf.trx_id = p_trx_id_tbl(i)
5347                              AND itf.trx_line_id = p_trx_line_id_tbl(i)  -- new join
5348                              AND nvl(itf.tax_type_code,'VAT') = 'VAT'
5349                              AND itf.tax_rate = 0
5350                              AND itf.tax = p_vat_tax;
5351 
5352                        ELSE
5353 
5354                           l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) := 0;
5355                           --l_vat_exempt_amt_tbl(k) := 0;
5356 
5357                        END IF;
5358 
5359                  ELSIF P_REPORT_NAME = 'ZXCLRSLL' THEN
5360 
5361                        IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
5362                           null;
5363                        ELSE
5364                               l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
5365                        END IF;
5366 
5367 			IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL'
5368                         AND l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
5369                           BEGIN
5370 
5371                               SELECT decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
5372                                 INTO l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
5373                                 FROM ra_customer_trx_all
5374                                WHERE customer_trx_id = p_trx_id_tbl(i);
5375 
5376                           EXCEPTION
5377 
5378                        WHEN OTHERS THEN
5379 		         l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
5380 			IF ( g_level_statement>= g_current_runtime_level ) THEN
5381 		           FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_additional_amount',
5382 			'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5383 			END IF;
5384                        END;
5385                      END IF;
5386 
5387                        IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
5388 
5389                           null;
5390                           -- OPEN ISSUE --
5391 			  --Bug 5438742 : Exempt Amt Logic Added for the Bug
5392 				SELECT Nvl(
5393 			         Sum((itf.EXEMPT_RATE_MODIFIER * coalesce(itf.tax_amt_funcl_curr,itf.tax_amt,0))
5394                                           /(100 - itf.EXEMPT_RATE_MODIFIER)) ,0)
5395 				INTO l_vat_exempt_amt_tbl(p_trx_id_tbl(i))
5396 				FROM zx_rep_trx_detail_t itf
5397 				WHERE itf.request_id = p_request_id
5398 				AND itf.trx_id = p_trx_id_tbl(i)
5399 				AND itf.TAX_EXEMPTION_ID IS NOT NULL ;
5400 
5401                        ELSE
5402 
5403                           l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) := 0;
5404 
5405                        END IF;
5406 
5407                  END IF; -- IF P_REPORT_NAME ...
5408 
5409                  l_vat_exempt_amt_tbl(k) := l_vat_exempt_amt_tbl(p_trx_id_tbl(i));
5410                  X_VAT_EXEMPT_AMT_TBL(i) := l_vat_exempt_amt_tbl(k);
5411 
5412             EXCEPTION
5413 
5414                     WHEN NO_DATA_FOUND THEN
5415 
5416                          l_vat_exempt_amt_tbl(p_trx_id_tbl(i)) := 0;
5417                          l_vat_exempt_amt_tbl(k) :=l_vat_exempt_amt_tbl(p_trx_id_tbl(i));
5418                       --   X_VAT_EXEMPT_AMT_TBL(i) := l_vat_exempt_amt_tbl(p_trx_id_tbl(i));
5419                          X_VAT_EXEMPT_AMT_TBL(i) := l_vat_exempt_amt_tbl(k);
5420 	              IF ( g_level_statement>= g_current_runtime_level ) THEN
5421 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_exempt_amount',
5422 			'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5423 		      END IF;
5424                          NULL;
5425 
5426                     WHEN OTHERS THEN
5427 		      IF ( g_level_statement>= g_current_runtime_level ) THEN
5428 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_exempt_amount',
5429 			'ZX_JL_EXTRACT_PKG.GET_VAT_EXEMPT_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5430 		      END IF;
5431                 END;
5432 
5433          ELSE -- if l_vat_exempt_amt_tbl is not null
5434 
5435          --     X_VAT_EXEMPT_AMT_TBL(i) := l_vat_exempt_amt_tbl(p_trx_id_tbl(i));
5436                 X_VAT_EXEMPT_AMT_TBL(i) := 0;
5437 
5438 
5439          END IF;
5440 
5441         IF ( g_level_statement>= g_current_runtime_level ) THEN
5442         	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5443         	' Vat Exempt Amt for Report Name  : '||p_report_name ||' trx_id : '
5444                    ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_EXEMPT_AMT_TBL(i)));
5445         END IF;
5446 
5447    END LOOP;
5448 
5449     IF (g_level_procedure >= g_current_runtime_level ) THEN
5450      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.get_vat_exempt_amount.END',
5451                                       'ZX_JL_EXTRACT_PKG.get_vat_exempt_amount(-)');
5452    END IF;
5453 
5454 END GET_VAT_EXEMPT_AMOUNT;
5455 
5456 
5457 /*================================================================================+
5458  | PROCEDURE                                                                      |
5459  |   GET_VAT_PERCEPTION_AMOUNT                                                    |
5460  |   Type       : Private                                                         |
5461  |   Pre-req    : None                                                            |
5462  |   Function   :                                                                 |
5463  |    This procedure extract VAT Perception Amount for the given report name      |
5464  |                                                                                |
5465  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
5466  |                                                                                |
5467  |   Parameters :                                                                 |
5468  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
5469  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
5470  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
5471  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
5472  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
5473  |                                                  SUB_TYPE_TBL               Opt|
5474  |                                                                                |
5475  |    OUT                                                                         |
5476  |                 X_VAT_PERCEPTION_AMT_TBL OUT  NUMERIC3_TBL   |
5477  |                                                                                |
5478  |   MODIFICATION HISTORY                                                         |
5479  |     29-Oct-04  Hidetaka Kojima   created                                       |
5480  |                                                                                |
5481  +================================================================================*/
5482 
5483 
5484 PROCEDURE GET_VAT_PERCEPTION_AMOUNT
5485 (
5486 P_VAT_PERC_TAX_TYPE_FROM     IN            VARCHAR2 DEFAULT NULL,
5487 P_VAT_PERC_TAX_TYPE_TO       IN            VARCHAR2 DEFAULT NULL,
5488 P_VAT_PERC_TAX               IN            VARCHAR2 DEFAULT NULL,
5489 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
5490 P_REPORT_NAME                IN            VARCHAR2,
5491 p_REQUEST_ID                 IN            NUMBER,
5492 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
5493 P_TRX_LINE_ID_TBL            IN            ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
5494 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
5495 X_VAT_PERCEPTION_AMT_TBL     OUT  NOCOPY   NUMERIC3_TBL
5496 ) IS
5497 
5498  l_err_msg                   VARCHAR2(120);
5499  l_trx_counter               NUMBER;
5500  l_vat_perc_amt_tbl          NUMERIC3_TBL;
5501  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
5502  k         NUMBER;
5503 BEGIN
5504     IF (g_level_procedure >= g_current_runtime_level ) THEN
5505      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT.END',
5506                                       'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT(+)');
5507    END IF;
5508 
5509      BEGIN
5510 
5511           SELECT count(distinct trx_id)
5512             INTO l_trx_counter
5513             FROM zx_rep_trx_detail_t
5514            WHERE request_id = p_request_id;
5515 
5516     IF ( g_level_statement>= g_current_runtime_level ) THEN
5517 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5518 	' GET_VAT_PERCEPTION_AMOUNT : l_trx_counter : '|| l_trx_counter );
5519     END IF;
5520 
5521      EXCEPTION
5522         WHEN OTHERS THEN
5523  	IF ( g_level_statement>= g_current_runtime_level ) THEN
5524 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5525 		'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5526 	END IF;
5527      END;
5528 
5529 
5530        IF P_REPORT_NAME  = 'JLARTPFF' THEN
5531        BEGIN
5532        FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
5533          IF l_vat_perc_amt_tbl.EXISTS(p_trx_line_id_tbl(i)) THEN
5534             null;
5535          ELSE
5536              l_vat_perc_amt_tbl(p_trx_line_id_tbl(i)) := null;
5537          END IF;
5538 
5539          IF l_vat_perc_amt_tbl(p_trx_line_id_tbl(i)) is NULL THEN
5540 
5541                     SELECT  sum(nvl(itf.tax_amt_funcl_curr,0))
5542                       INTO  l_vat_perc_amt_tbl(p_trx_line_id_tbl(i))
5543                       FROM  zx_rep_trx_detail_t itf
5544                      WHERE  itf.request_id = p_request_id
5545                        AND  itf.trx_id = p_trx_id_tbl(i)
5546                        AND  itf.trx_line_id = p_trx_line_id_tbl(i)
5547                        AND  itf.tax_regime_code = nvl(p_tax_regime,itf.tax_regime_code)--Bug 5374021
5548                        AND  itf.tax = p_vat_perc_tax
5549                        AND  nvl(itf.tax_type_code, 'VAT') = 'VAT';
5550 
5551              X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(p_trx_line_id_tbl(i));
5552 
5553          IF ( g_level_statement>= g_current_runtime_level ) THEN
5554             FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5555             ' Vat Perception Amt for Report Name  : '||p_report_name
5556             ||' trx_id : '||to_char(p_trx_id_tbl(i))||' Trx Line ID '
5557               ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_PERCEPTION_AMT_TBL(i)));
5558          END IF;
5559          /* EXCEPTION
5560              WHEN NO_DATA_FOUND THEN
5561                   l_vat_perc_amt_tbl(p_trx_line_id_tbl(i)) := 0;
5562                   X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(p_trx_line_id_tbl(i));
5563                   NULL;
5564              WHEN OTHERS THEN
5565                 IF ( g_level_statement>= g_current_runtime_level ) THEN
5566                    FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5567                 'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5568                 END IF;
5569 */
5570          ELSE
5571              X_VAT_PERCEPTION_AMT_TBL(i) := 0;
5572 
5573          END IF;
5574 
5575          IF ( g_level_statement>= g_current_runtime_level ) THEN
5576             FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5577             ' Vat Perception Amt for Report Name  : '||p_report_name
5578             ||' trx_id : '||to_char(p_trx_id_tbl(i))||' Trx Line ID '
5579               ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_PERCEPTION_AMT_TBL(i)));
5580          END IF;
5581 
5582      END LOOP;
5583      END;
5584      ELSE -- Reports where trx line id is not required --
5585 
5586      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
5587 
5588 
5589 
5590      -- Added for GSI bug#6615621 ---
5591            IF i = 1 THEN
5592                k:=1;
5593             ELSE
5594                IF (p_trx_id_tbl(i) <> p_trx_id_tbl(i-1)) THEN
5595                    k:=k+1;
5596                END IF;
5597            END IF;
5598 
5599 
5600 
5601          IF l_vat_perc_amt_tbl.EXISTS(k) THEN
5602             null;
5603          ELSE
5604              l_vat_perc_amt_tbl(k) := null;
5605          END IF;
5606 
5607 
5608 
5609         IF l_vat_perc_amt_tbl(k) is NULL THEN
5610 
5611             BEGIN
5612 
5613                  IF P_REPORT_NAME in ('ZXARPVBR','JLARPPFF') THEN
5614 
5615 
5616                     SELECT nvl(SUM(itf.tax_amt),0)
5617                       INTO l_vat_perc_amt_tbl(k)
5618                       FROM zx_rep_trx_detail_t itf
5619                      WHERE itf.request_id = p_request_id
5620                        AND itf.trx_id = p_trx_id_tbl(i)
5621                        AND itf.tax_type_code >= P_VAT_PERC_TAX_TYPE_FROM
5622                        AND itf.tax_type_code <= NVL(P_VAT_PERC_TAX_TYPE_TO, P_VAT_PERC_TAX_TYPE_FROM);
5623 
5624                  ELSIF P_REPORT_NAME in ('ZXZZTVSR') THEN
5625 
5626                     SELECT  sum(nvl(itf.tax_amt_funcl_curr,itf.tax_amt))
5627                       INTO  l_vat_perc_amt_tbl(k)
5628                       FROM  zx_rep_trx_detail_t itf
5629                      WHERE  itf.request_id = p_request_id
5630                        AND  itf.trx_id = p_trx_id_tbl(i)
5631                        AND  itf.tax_regime_code = nvl(p_tax_regime,itf.tax_regime_code)--Bug 5374021
5632                        AND  itf.tax = p_vat_perc_tax
5633                        AND  nvl(itf.tax_type_code, 'VAT') = 'VAT';
5634 
5635                  ELSIF P_REPORT_NAME IN ('JLARTDFF','JLARTSFF') THEN
5636 
5637                     IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(k) THEN
5638                        null;
5639                     ELSE
5640                          l_gdf_ra_cust_trx_att19_tbl(k) := null;
5641                     END IF;
5642 
5643                     IF ( l_gdf_ra_cust_trx_att19_tbl(k) <> 'IS_NULL' and
5644                          l_gdf_ra_cust_trx_att19_tbl(k) <> 'NOT_NULL' ) THEN
5645 
5646                     BEGIN
5647 
5648                             SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
5649                               INTO  l_gdf_ra_cust_trx_att19_tbl(k)
5650                               FROM  ra_customer_trx
5651                              WHERE  customer_trx_id = p_trx_id_tbl(i);
5652 
5653                     EXCEPTION
5654                     WHEN OTHERS THEN
5655 		     IF ( g_level_statement>= g_current_runtime_level ) THEN
5656 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5657 		       'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5658 	             END IF;
5659                      END;
5660 
5661                     END IF;
5662 
5663                           IF ( l_gdf_ra_cust_trx_att19_tbl(k) <> 'IS_NULL' AND
5664                                l_gdf_ra_cust_trx_att19_tbl(k) <> 'NOT_NULL' ) OR
5665                               l_gdf_ra_cust_trx_att19_tbl(k) IS NULL THEN
5666 
5667 		     IF ( g_level_statement>= g_current_runtime_level ) THEN
5668 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5669 		       'l_gdf_ra_cust_trx_att19_tbl : '||l_gdf_ra_cust_trx_att19_tbl(k) );
5670 	             END IF;
5671 --                    IF l_gdf_ra_cust_trx_att19_tbl(k) = 'IS_NULL' THEN
5672 
5673                        SELECT  sum(nvl(itf.tax_amt_funcl_curr,0))
5674                          INTO  l_vat_perc_amt_tbl(k)
5675                          FROM  zx_rep_trx_detail_t itf
5676                         WHERE  itf.request_id = p_request_id
5677                           AND  itf.trx_id = p_trx_id_tbl(i)
5678                           AND  itf.tax_regime_code = p_tax_regime
5679                           AND  itf.tax = p_vat_perc_tax
5680                           AND  nvl(itf.tax_type_code, 'VAT') = 'VAT';
5681 
5682                     ELSE
5683                           l_vat_perc_amt_tbl(k) := 0;
5684 
5685                     END IF;
5686 
5687                  END IF; -- IF P_REPORT_NAME ...
5688 
5689                         X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(k);
5690 
5691            EXCEPTION
5692 
5693                     WHEN NO_DATA_FOUND THEN
5694 
5695                          l_vat_perc_amt_tbl(k) := 0;
5696                          X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(k);
5697                          NULL;
5698 
5699                     WHEN OTHERS THEN
5700 			IF ( g_level_statement>= g_current_runtime_level ) THEN
5701 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5702 				'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5703 			END IF;
5704             END;
5705 
5706          ELSE -- if l_vat_perception_amt_tbl is not null
5707 
5708       --        X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(k);
5709               X_VAT_PERCEPTION_AMT_TBL(i) := 0;
5710 
5711          END IF;
5712 
5713 
5714        -- GSI BUG ---
5715 
5716         /* IF l_vat_perc_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
5717 
5718             BEGIN
5719 
5720                  IF P_REPORT_NAME in ('ZXARPVBR','JLARPPFF') THEN
5721 
5722 
5723                     SELECT nvl(SUM(itf.tax_amt),0)
5724                       INTO l_vat_perc_amt_tbl(p_trx_id_tbl(i))
5725                       FROM zx_rep_trx_detail_t itf
5726                      WHERE itf.request_id = p_request_id
5727                        AND itf.trx_id = p_trx_id_tbl(i)
5728                        AND itf.tax_type_code >= P_VAT_PERC_TAX_TYPE_FROM
5729                        AND itf.tax_type_code <= NVL(P_VAT_PERC_TAX_TYPE_TO, P_VAT_PERC_TAX_TYPE_FROM);
5730 
5731                  ELSIF P_REPORT_NAME in ('ZXZZTVSR') THEN
5732 
5733                     SELECT  sum(nvl(itf.tax_amt_funcl_curr,0))
5734                       INTO  l_vat_perc_amt_tbl(p_trx_id_tbl(i))
5735                       FROM  zx_rep_trx_detail_t itf
5736                      WHERE  itf.request_id = p_request_id
5737                        AND  itf.trx_id = p_trx_id_tbl(i)
5738                        AND  itf.tax_regime_code = nvl(p_tax_regime,itf.tax_regime_code)--Bug 5374021
5739                        AND  itf.tax = p_vat_perc_tax
5740                        AND  nvl(itf.tax_type_code, 'VAT') = 'VAT';
5741 
5742                  ELSIF P_REPORT_NAME IN ('JLARTDFF','JLARTSFF') THEN
5743 
5744                     IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
5745                        null;
5746                     ELSE
5747                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
5748                     END IF;
5749 
5750                     IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and
5751                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
5752 
5753                     BEGIN
5754 
5755                             SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
5756                               INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
5757                               FROM  ra_customer_trx
5758                              WHERE  customer_trx_id = p_trx_id_tbl(i);
5759 
5760                     EXCEPTION
5761                     WHEN OTHERS THEN
5762 		     IF ( g_level_statement>= g_current_runtime_level ) THEN
5763 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5764 		       'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5765 	             END IF;
5766                      END;
5767 
5768                     END IF;
5769 
5770                           IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' AND
5771                                l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) OR
5772                               l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL THEN
5773 
5774 		     IF ( g_level_statement>= g_current_runtime_level ) THEN
5775 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5776 		       'l_gdf_ra_cust_trx_att19_tbl : '||l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) );
5777 	             END IF;
5778 --                    IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
5779 
5780                        SELECT  sum(nvl(itf.tax_amt_funcl_curr,0))
5781                          INTO  l_vat_perc_amt_tbl(p_trx_id_tbl(i))
5782                          FROM  zx_rep_trx_detail_t itf
5783                         WHERE  itf.request_id = p_request_id
5784                           AND  itf.trx_id = p_trx_id_tbl(i)
5785                           AND  itf.tax_regime_code = p_tax_regime
5786                           AND  itf.tax = p_vat_perc_tax
5787                           AND  nvl(itf.tax_type_code, 'VAT') = 'VAT';
5788 
5789                     ELSE
5790                           l_vat_perc_amt_tbl(p_trx_id_tbl(i)) := 0;
5791 
5792                     END IF;
5793 
5794                  END IF; -- IF P_REPORT_NAME ...
5795 
5796                         X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(p_trx_id_tbl(i));
5797 
5798            EXCEPTION
5799 
5800                     WHEN NO_DATA_FOUND THEN
5801 
5802                          l_vat_perc_amt_tbl(p_trx_id_tbl(i)) := 0;
5803                          X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(p_trx_id_tbl(i));
5804                          NULL;
5805 
5806                     WHEN OTHERS THEN
5807 			IF ( g_level_statement>= g_current_runtime_level ) THEN
5808 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT',
5809 				'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5810 			END IF;
5811             END;
5812 
5813          ELSE -- if l_vat_perception_amt_tbl is not null
5814 
5815       --        X_VAT_PERCEPTION_AMT_TBL(i) := l_vat_perc_amt_tbl(p_trx_id_tbl(i));
5816               X_VAT_PERCEPTION_AMT_TBL(i) := 0;
5817 
5818          END IF;
5819   */
5820 
5821         IF ( g_level_statement>= g_current_runtime_level ) THEN
5822         	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5823         	' Vat Perception Amt for Report Name  : '||p_report_name
5824                ||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_PERCEPTION_AMT_TBL(i)));
5825         END IF;
5826 
5827      END LOOP;
5828    END IF; -- Trx line ID check
5829        IF (g_level_procedure >= g_current_runtime_level ) THEN
5830      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT.END',
5831                                       'ZX_JL_EXTRACT_PKG.GET_VAT_PERCEPTION_AMOUNT(-)');
5832    END IF;
5833 
5834 END GET_VAT_PERCEPTION_AMOUNT;
5835 
5836 
5837 /*================================================================================+
5838  | PROCEDURE                                                                      |
5839  |   GET_OTHER_FED_PERC_AMOUNT                                                    |
5840  |   Type       : Private                                                         |
5841  |   Pre-req    : None                                                            |
5842  |   Function   :                                                                 |
5843  |    This procedure extract Other Federal Perception Amount for the given        |
5844  |     report name                                                                |
5845  |                                                                                |
5846  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                 |
5847  |                                                                                |
5848  |   Parameters :                                                                 |
5849  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
5850  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
5851  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
5852  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
5853  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
5854  |                                                  SUB_TYPE_TBL               Opt|
5855  |                                                                                |
5856  |    OUT                                                                         |
5857  |                 X_OTHER_FED_PERC_AMT_TBL OUT  NUMERIC7_TBL                     |
5858  |                                                                                |
5859  |   MODIFICATION HISTORY                                                         |
5860  |     14-May-05  Srinivasa Rao Korrapati Created                                 |
5861  |                                                                                |
5862  +================================================================================*/
5863 
5864 
5865 PROCEDURE GET_OTHER_FED_PERC_AMOUNT
5866 (
5867 P_FED_PERC_TAX_TYPE_FROM     IN            VARCHAR2 DEFAULT NULL,
5868 P_FED_PERC_TAX_TYPE_TO       IN            VARCHAR2 DEFAULT NULL,
5869 P_VAT_PERC_TAX               IN            VARCHAR2 DEFAULT NULL,
5870 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
5871 P_REPORT_NAME                IN            VARCHAR2,
5872 p_REQUEST_ID                 IN            NUMBER,
5873 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
5874 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
5875 X_OTHER_FED_PERC_AMT_TBL     OUT  NOCOPY   NUMERIC7_TBL
5876 ) IS
5877 
5878  l_err_msg                   VARCHAR2(120);
5879  l_trx_counter               NUMBER;
5880  l_other_fed_perc_amt_tbl          NUMERIC3_TBL;
5881  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
5882 
5883 BEGIN
5884 NULL ;
5885     IF (g_level_procedure >= g_current_runtime_level ) THEN
5886      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT.BEGIN',
5887                                       'ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT(+)');
5888    END IF;
5889 
5890      BEGIN
5891 
5892           SELECT count(distinct trx_id)
5893             INTO l_trx_counter
5894             FROM zx_rep_trx_detail_t
5895            WHERE request_id = p_request_id;
5896 
5897 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
5898 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5899 		' GET_OTHER_FED_PERC_AMOUNT : l_trx_counter : '|| l_trx_counter );
5900 	    END IF;
5901 
5902      EXCEPTION
5903 
5904           WHEN OTHERS THEN
5905 		IF ( g_level_statement>= g_current_runtime_level ) THEN
5906 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT',
5907 			'ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5908 		END IF;
5909      END;
5910 
5911 
5912      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
5913 
5914          IF l_other_fed_perc_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
5915             null;
5916          ELSE
5917              l_other_fed_perc_amt_tbl(p_trx_id_tbl(i)) := null;
5918          END IF;
5919 
5920 
5921 
5922          IF l_other_fed_perc_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
5923 
5924             BEGIN
5925 
5926                  IF P_REPORT_NAME = 'JLARPPFF' THEN
5927 
5928 
5929                     SELECT NVL(SUM(itf.tax_amt),0)
5930                       INTO l_other_fed_perc_amt_tbl(p_trx_id_tbl(i))
5931                       FROM zx_rep_trx_detail_t itf
5932                      WHERE itf.request_id = p_request_id
5933                        AND itf.trx_id = p_trx_id_tbl(i)
5934                        AND itf.tax_type_code >= P_FED_PERC_TAX_TYPE_FROM
5935                        AND itf.tax_type_code <= NVL(P_FED_PERC_TAX_TYPE_TO, P_FED_PERC_TAX_TYPE_FROM);
5936 
5937 
5938                  END IF; -- IF P_REPORT_NAME ...
5939 
5940                         X_OTHER_FED_PERC_AMT_TBL(i) := l_other_fed_perc_amt_tbl(p_trx_id_tbl(i));
5941 
5942 
5943            EXCEPTION
5944 
5945                     WHEN NO_DATA_FOUND THEN
5946 
5947                          l_other_fed_perc_amt_tbl(p_trx_id_tbl(i)) := 0;
5948                          X_OTHER_FED_PERC_AMT_TBL(i) := l_other_fed_perc_amt_tbl(p_trx_id_tbl(i));
5949                          NULL;
5950 
5951                     WHEN OTHERS THEN
5952 			IF ( g_level_statement>= g_current_runtime_level ) THEN
5953 				FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT',
5954 				'ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
5955 			END IF;
5956             END;
5957 
5958          ELSE -- if l_vat_perception_amt_tbl is not null
5959 
5960               X_OTHER_FED_PERC_AMT_TBL(i) := 0;
5961 --              X_OTHER_FED_PERC_AMT_TBL(i) := l_other_fed_perc_amt_tbl(p_trx_id_tbl(i));
5962 
5963          END IF;
5964 
5965     IF ( g_level_statement>= g_current_runtime_level ) THEN
5966 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
5967 	' Other Fed perc amt for Report Name  : '||p_report_name ||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_OTHER_FED_PERC_AMT_TBL(i)));
5968     END IF;
5969 
5970      END LOOP;
5971 
5972    IF (g_level_procedure >= g_current_runtime_level ) THEN
5973      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT.END',
5974                                       'ZX_JL_EXTRACT_PKG.GET_OTHER_FED_PERC_AMOUNT(-)');
5975    END IF;
5976 
5977 END GET_OTHER_FED_PERC_AMOUNT;
5978 
5979 /*================================================================================+
5980  | PROCEDURE                                                                      |
5981  |   GET_OTHER_TAX_AMOUNT                                                         |
5982  |   Type       : Private                                                         |
5983  |   Pre-req    : None                                                            |
5984  |   Function   :                                                                 |
5985  |    This procedure extract Other Tax Amount for the given report name           |
5986  |                                                                                |
5987  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
5988  |                                                                                |
5989  |   Parameters :                                                                 |
5990  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
5991  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
5992  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
5993  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
5994  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
5995  |                                                  SUB_TYPE_TBL               Opt|
5996  |                                                                                |
5997  |    OUT                                                                         |
5998  |                 X_OTHER_TAX_AMT_TBL      OUT  NUMERIC7_TBL   |
5999  |                                                                                |
6000  |   MODIFICATION HISTORY                                                         |
6001  |     29-Oct-04  Hidetaka Kojima   created                                       |
6002  |                                                                                |
6003  +================================================================================*/
6004 
6005 
6006 PROCEDURE GET_OTHER_TAX_AMOUNT
6007 (
6008 P_REPORT_NAME                IN            VARCHAR2,
6009 p_REQUEST_ID                 IN            NUMBER,
6010 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
6011 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
6012 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
6013 X_OTHER_TAX_AMT_TBL          OUT  NOCOPY   NUMERIC7_TBL
6014 ) IS
6015 
6016  l_err_msg                   VARCHAR2(120);
6017  l_trx_counter               NUMBER;
6018  l_other_tax_amt_tbl         NUMERIC7_TBL;
6019  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
6020 
6021 BEGIN
6022 
6023  g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6024 	  --Bug 5058043
6025 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
6026 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
6027 					      'GET_OTHER_TAX_AMOUNT(+) ');
6028 	  END IF;
6029 
6030      BEGIN
6031 
6032           SELECT count(distinct trx_id)
6033             INTO l_trx_counter
6034             FROM zx_rep_trx_detail_t
6035            WHERE request_id = p_request_id;
6036 
6037     IF ( g_level_statement>= g_current_runtime_level ) THEN
6038 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6039 	' GET_OTHER_TAX_AMOUNT : l_trx_counter : '|| l_trx_counter );
6040     END IF;
6041 
6042      EXCEPTION
6043           WHEN OTHERS THEN
6044               l_err_msg := substrb(SQLERRM,1,120);
6045 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
6046 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
6047 					      'ZX_JL_EXTRACT_PKG.get_other_tax_amount.'||p_report_name || '.'||l_err_msg);
6048 	  END IF;
6049 
6050      END;
6051 
6052      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
6053 
6054          IF l_other_tax_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6055             null;
6056          ELSE
6057              l_other_tax_amt_tbl(p_trx_id_tbl(i)) := null;
6058          END IF;
6059 
6060 	IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6061 		NULL;
6062 	ELSE
6063 		l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := '0';
6064 	END IF;
6065 
6066          IF l_other_tax_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
6067 
6068             BEGIN
6069 
6070                  IF P_REPORT_NAME = 'ZXCLPPLR' THEN
6071 
6072                     IF P_DOCUMENT_SUB_TYPE_TBL(i) = 'DOCUMENT TYPE.JLCLPPLR' THEN
6073 
6074                        SELECT  SUM(nvl(itf.tax_amt_funcl_curr,nvl(itf.tax_amt,0)))
6075                          INTO  l_other_tax_amt_tbl(p_trx_id_tbl(i))
6076                          FROM  zx_rep_trx_detail_t itf
6077                         WHERE  itf.request_id  = P_REQUEST_ID
6078                           AND  itf.trx_id = p_trx_id_tbl(i)
6079                           AND  itf.tax_type_code <> 'VAT'
6080                           AND  (itf.reverse_flag IS NULL OR itf.reverse_flag <> 'Y');
6081 
6082                     ELSE
6083 
6084                         SELECT  SUM(nvl(itf.tax_amt_funcl_curr,nvl(itf.tax_amt,0)))
6085                           INTO  l_other_tax_amt_tbl(p_trx_id_tbl(i))
6086                           FROM  zx_rep_trx_detail_t itf
6087                          WHERE  itf.request_id = p_request_id
6088                            AND  itf.trx_id = p_trx_id_tbl(i)
6089                            AND  itf.tax_type_code <> 'VAT';
6090 
6091                     END IF;
6092 
6093                  -- ---------------------------------------------- --
6094                  --               For AR Reports                   --
6095                  -- ---------------------------------------------- --
6096 
6097                  ELSIF P_REPORT_NAME = 'ZXCLRSLL' THEN
6098 
6099    		 IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
6100                          BEGIN
6101                               SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
6102                                 INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
6103                                 FROM  ra_customer_trx_all
6104                                WHERE  customer_trx_id = p_trx_id_tbl(i);
6105 
6106                          EXCEPTION
6107 
6108                                   WHEN OTHERS THEN
6109 					IF ( g_level_statement>= g_current_runtime_level ) THEN
6110 						FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_OTHER_TAX_AMOUNT',
6111 						'ZX_JL_EXTRACT_PKG.GET_OTHER_TAX_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6112 					END IF;
6113                                   END;
6114 
6115                          END IF;
6116 
6117                          IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
6118 
6119                             null;
6120                             -- OPEN ISSUE --
6121 			    --Bug 5438742
6122 				SELECT  SUM(nvl(itf.tax_amt_funcl_curr,nvl(itf.tax_amt,0)))
6123 				INTO  l_other_tax_amt_tbl(p_trx_id_tbl(i))
6124 				FROM  zx_rep_trx_detail_t itf
6125 				WHERE  itf.request_id  = P_REQUEST_ID
6126 				AND  itf.trx_id = p_trx_id_tbl(i)
6127 				AND  itf.tax_type_code <> 'VAT' ;
6128 --				AND  (itf.reverse_flag IS NULL OR itf.reverse_flag <> 'Y');
6129 
6130                          ELSE
6131 
6132                             l_other_tax_amt_tbl(p_trx_id_tbl(i)) := 0;
6133 
6134                          END IF;
6135 
6136                  END IF;
6137 
6138                         X_OTHER_TAX_AMT_TBL(i) := l_other_tax_amt_tbl(p_trx_id_tbl(i));
6139 
6140             EXCEPTION
6141 
6142                     WHEN NO_DATA_FOUND THEN
6143 
6144                          l_other_tax_amt_tbl(p_trx_id_tbl(i)) := 0;
6145                          X_OTHER_TAX_AMT_TBL(i) := l_other_tax_amt_tbl(p_trx_id_tbl(i));
6146                          NULL;
6147 
6148                     WHEN OTHERS THEN
6149                             l_err_msg := substrb(SQLERRM,1,120);
6150 			  IF (g_level_procedure >= g_current_runtime_level ) THEN
6151 			     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
6152 							      'ZX_JL_EXTRACT_PKG.get_other_tax_amount:'||P_REPORT_NAME||'.'||l_err_msg);
6153 			  END IF;
6154             END;
6155 
6156          ELSE -- if l_other_tax_amt_tbl is not null
6157 
6158 --              X_OTHER_TAX_AMT_TBL(i) := l_other_tax_amt_tbl(p_trx_id_tbl(i));
6159               X_OTHER_TAX_AMT_TBL(i) := 0;
6160 
6161          END IF;
6162 
6163     IF ( g_level_statement>= g_current_runtime_level ) THEN
6164 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6165 	' Other Tax Amt for Report Name  : '||p_report_name ||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_OTHER_TAX_AMT_TBL(i)));
6166     END IF;
6167 
6168    END LOOP;
6169 
6170 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
6171 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
6172 					      'GET_OTHER_TAX_AMOUNT(-) ');
6173 	  END IF;
6174 
6175 END GET_OTHER_TAX_AMOUNT;
6176 
6177 
6178 /*================================================================================+
6179  | PROCEDURE                                                                      |
6180  |   GET_NOT_REGISTERED_TAX_AMOUNT                                                |
6181  |   Type       : Private                                                         |
6182  |   Pre-req    : None                                                            |
6183  |   Function   :                                                                 |
6184  |    This procedure extract not registered Tax Amount for the given report name  |
6185  |                                                                                |
6186  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
6187  |                                                                                |
6188  |   Parameters :                                                                 |
6189  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
6190  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
6191  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
6192  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
6193  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
6194  |                                                  SUB_TYPE_TBL               Opt|
6195  |                                                                                |
6196  |    OUT                                                                         |
6197  |                 X_OTHER_TAX_AMT_TBL      OUT  NUMERIC3_TBL   |
6198  |                                                                                |
6199  |   MODIFICATION HISTORY                                                         |
6200  |     29-Oct-04  Hidetaka Kojima   created                                       |
6201  |                                                                                |
6202  +================================================================================*/
6203 
6204 
6205   PROCEDURE GET_NOT_REGISTERED_TAX_AMOUNT
6206 (
6207 P_REPORT_NAME                IN            VARCHAR2,
6208 P_VAT_ADDIT_TAX              IN            VARCHAR2 DEFAULT NULL,
6209 P_VAT_NOT_CATEG_TAX          IN            VARCHAR2 DEFAULT NULL,
6210 P_TAX_REGIME                 IN            VARCHAR2 DEFAULT NULL,
6211 p_REQUEST_ID                 IN            NUMBER,
6212 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
6213 P_TAX_RATE_TBL               IN            ZX_EXTRACT_PKG.TAX_RATE_TBL,
6214 P_DOCUMENT_SUB_TYPE_TBL      IN            ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
6215 X_NOT_REG_TAX_AMT_TBL     OUT  NOCOPY   NUMERIC1_TBL
6216 ) IS
6217 
6218  l_err_msg                   VARCHAR2(120);
6219  l_trx_counter               NUMBER;
6220 
6221  l_vat_addit_tax_amt_tbl     NUMERIC1_TBL;
6222  l_not_categ_tax_amt_tbl     NUMERIC1_TBL;
6223  l_not_tax_amt_tbl           NUMERIC1_TBL;
6224  l_not_reg_tax_amt_tbl       NUMERIC1_TBL;
6225  l_other_tax_amt_tbl         NUMERIC1_TBL;
6226  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
6227 
6228 
6229 BEGIN
6230 
6231     IF (g_level_procedure >= g_current_runtime_level ) THEN
6232      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT.BEGIN',
6233                                       'GET_NOT_REGISTERED_TAX_AMOUNT(+)');
6234    END IF;
6235 
6236      BEGIN
6237 
6238           SELECT count(distinct trx_id)
6239             INTO l_trx_counter
6240             FROM zx_rep_trx_detail_t
6241            WHERE request_id = p_request_id;
6242 
6243     IF ( g_level_statement>= g_current_runtime_level ) THEN
6244 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6245 	' GET_NOT_REGISTERED_TAX_AMOUNT : l_trx_counter : '|| l_trx_counter );
6246     END IF;
6247      EXCEPTION
6248        WHEN OTHERS THEN
6249          IF ( g_level_statement>= g_current_runtime_level ) THEN
6250 	    FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6251 	     'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6252 	 END IF;
6253      END;
6254 
6255      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
6256          IF l_not_reg_tax_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6257             null;
6258          ELSE
6259             l_not_reg_tax_amt_tbl(p_trx_id_tbl(i)) := NULL;
6260             l_vat_addit_tax_amt_tbl(p_trx_id_tbl(i)) := NULL;
6261             l_not_categ_tax_amt_tbl(p_trx_id_tbl(i)) := NULL;
6262          END IF;
6263 
6264          IF l_not_reg_tax_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
6265             BEGIN
6266                IF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
6267                   IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6268                      null;
6269                   ELSE
6270                      l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
6271                   END IF;
6272 
6273                  IF (l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' AND
6274                       l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) OR
6275                        l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL THEN
6276 
6277                       BEGIN
6278            IF ( g_level_statement>= g_current_runtime_level ) THEN
6279                    FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6280                    'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT : att19-0 '
6281                    ||p_report_name ||' : '||l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)));
6282                 END IF;
6283 
6284                          SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
6285                            INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
6286                            FROM  ra_customer_trx_all
6287                           WHERE  customer_trx_id = p_trx_id_tbl(i);
6288 
6289                        EXCEPTION
6290                          WHEN OTHERS THEN
6291 		IF ( g_level_statement>= g_current_runtime_level ) THEN
6292 	           FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6293 		   'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT : '
6294                    ||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6295 	        END IF;
6296             END;
6297         END IF;
6298 
6299              IF ( g_level_statement>= g_current_runtime_level ) THEN
6300                    FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6301                    'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT : att19 '
6302                    ||p_report_name ||' : '||l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)));
6303                 END IF;
6304 
6305 
6306         IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
6307            IF l_vat_addit_tax_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
6308 
6309                 IF ( g_level_statement>= g_current_runtime_level ) THEN
6310                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6311                    'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT SQL-1: '||p_tax_regime||p_vat_addit_tax);
6312                 END IF;
6313 
6314               SELECT  sum(nvl(itf.tax_amt,0))
6315                 INTO  l_vat_addit_tax_amt_tbl(p_trx_id_tbl(i))
6316                 FROM  zx_rep_trx_detail_t itf
6317                WHERE  itf.request_id = p_request_id
6318                  AND  itf.trx_id = p_trx_id_tbl(i)
6319                  AND  itf.tax_regime_code = p_tax_regime
6320                  AND  itf.tax = p_vat_addit_tax
6321                  AND  nvl(itf.tax_type_code, 'VAT') = 'VAT';
6322 
6323 
6324                 IF ( g_level_statement>= g_current_runtime_level ) THEN
6325                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6326                    'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT SQL-1: '||to_char(l_vat_addit_tax_amt_tbl(p_trx_id_tbl(i))));
6327                 END IF;
6328 
6329             END IF;
6330 
6331            -- IF l_not_categ_tax_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
6332             BEGIN
6333                SELECT  sum(nvl(itf.tax_amt,0))
6334                  INTO  l_not_categ_tax_amt_tbl(p_trx_id_tbl(i))
6335                  FROM  zx_rep_trx_detail_t itf
6336                 WHERE  itf.request_id = p_request_id
6337                   AND  itf.trx_id = p_trx_id_tbl(i)
6338                   AND  itf.tax_regime_code = p_tax_regime
6339                   AND  itf.tax = p_vat_not_categ_tax
6340                   AND  nvl(itf.tax_type_code, 'VAT') = 'VAT';
6341        EXCEPTION
6342         WHEN OTHERS THEN
6343           IF ( g_level_statement>= g_current_runtime_level ) THEN
6344              FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6345                 'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT : p_vat_not_categ_tax '
6346                  ||' : '||substrb(SQLERRM,1,120) );
6347           END IF;
6348 
6349         END;
6350             --END IF;
6351 
6352             IF ( g_level_statement>= g_current_runtime_level ) THEN
6353                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6354                    'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT SQL-1: '||to_char(l_not_categ_tax_amt_tbl(p_trx_id_tbl(i))));
6355                 END IF;
6356 
6357 
6358             l_not_reg_tax_amt_tbl(p_trx_id_tbl(i)) := nvl(l_vat_addit_tax_amt_tbl(p_trx_id_tbl(i)),0) +
6359                                                       nvl(l_not_categ_tax_amt_tbl(p_trx_id_tbl(i)),0);
6360          ELSE
6361            l_not_reg_tax_amt_tbl(p_trx_id_tbl(i)) := 0;
6362          END IF;
6363        END IF;
6364 
6365              X_NOT_REG_TAX_AMT_TBL(i) := l_not_reg_tax_amt_tbl(p_trx_id_tbl(i));
6366              IF ( g_level_statement>= g_current_runtime_level ) THEN
6367                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6368                    'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT : '||p_report_name ||' : '
6369                         ||to_char( X_NOT_REG_TAX_AMT_TBL(i)));
6370              END IF;
6371 
6372        EXCEPTION
6373         WHEN NO_DATA_FOUND THEN
6374               l_other_tax_amt_tbl(p_trx_id_tbl(i)) := 0;
6375               X_NOT_REG_TAX_AMT_TBL(i) := l_not_tax_amt_tbl(p_trx_id_tbl(i));
6376               NULL;
6377 
6378         WHEN OTHERS THEN
6379 	  IF ( g_level_statement>= g_current_runtime_level ) THEN
6380 	     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT',
6381         	'ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT : '||p_report_name
6382                  ||' : '||substrb(SQLERRM,1,120) );
6383 	  END IF;
6384        END;
6385 
6386          ELSE -- if l_not_reg_tax_amt_tbl is not null
6387 
6388 --              X_NOT_REG_TAX_AMT_TBL(i) := l_not_reg_tax_amt_tbl(p_trx_id_tbl(i));
6389               X_NOT_REG_TAX_AMT_TBL(i) := 0;
6390 
6391          END IF;
6392 
6393     IF ( g_level_statement>= g_current_runtime_level ) THEN
6394 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6395 	' Non Registered Tax Amt. for Report Name  : '||p_report_name ||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_NOT_REG_TAX_AMT_TBL(i)));
6396     END IF;
6397 
6398    END LOOP;
6399 
6400        IF (g_level_procedure >= g_current_runtime_level ) THEN
6401      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_NOT_REGISTERED_TAX_AMOUNT.END',
6402                                       'GET_NOT_REGISTERED_TAX_AMOUNT(-)');
6403    END IF;
6404 
6405 END GET_NOT_REGISTERED_TAX_AMOUNT;
6406 
6407 
6408 
6409 /*================================================================================+
6410  | PROCEDURE                                                                      |
6411  |   GET_PROVINCIAL_PERC_AMOUNT                                                   |
6412  |   Type       : Private                                                         |
6413  |   Pre-req    : None                                                            |
6414  |   Function   :                                                                 |
6415  |    This procedure extract Provincial Perception Amount for a given report name |
6416  |                                                                                |
6417  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
6418  |                                                                                |
6419  |   Parameters :                                                                 |
6420  |   IN         :  P_PROV_TAX_TYPE_FROM        IN   VARCHAR2 Opt                  |
6421  |                 P_PROV_TAX_TYPE_TO          IN   VARCHAR2 Opt
6422  |                 P_PROV_TAX_REGIME           IN   VARCHAR2 Opt
6423  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
6424  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
6425  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
6426  |                                                                                |
6427  |    OUT                                                                         |
6428  |                 X_PROVINCIAL_PERC_AMT_TBLOUT  NUMERIC4_TBL   |
6429  |                                                                                |
6430  |   MODIFICATION HISTORY                                                         |
6431  |     29-Oct-04  Hidetaka Kojima   created                                       |
6432  |                                                                                |
6433  +================================================================================*/
6434 
6435 
6436   PROCEDURE GET_PROVINCIAL_PERC_AMOUNT
6437 (
6438 P_PROV_TAX_TYPE_FROM         IN            VARCHAR2 DEFAULT NULL,
6439 P_PROV_TAX_TYPE_TO           IN            VARCHAR2 DEFAULT NULL,
6440 P_PROV_TAX_REGIME            IN            VARCHAR2 DEFAULT NULL,
6441 P_REPORT_NAME                IN            VARCHAR2,
6442 p_REQUEST_ID                 IN            NUMBER,
6443 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
6444 P_TAX_RATE_ID_TBL            IN            ZX_EXTRACT_PKG.TAX_RATE_ID_TBL,
6445 X_PROVINCIAL_PERC_AMT_TBL    OUT  NOCOPY   NUMERIC4_TBL
6446 ) IS
6447 
6448  l_err_msg                   VARCHAR2(120);
6449  l_trx_counter               NUMBER;
6450  l_count                NUMBER;
6451  l_provincial_perc_amt_tbl   NUMERIC4_TBL;
6452  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
6453 
6454 BEGIN
6455 
6456     IF (g_level_procedure >= g_current_runtime_level ) THEN
6457              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT',
6458                                        'get_provincial_perc_amount(+) ');
6459           END IF;
6460 
6461 
6462      BEGIN
6463 
6464           SELECT count(distinct trx_id)
6465             INTO l_trx_counter
6466             FROM zx_rep_trx_detail_t
6467            WHERE request_id = p_request_id;
6468 
6469           l_count := p_trx_id_tbl.count;
6470 
6471 
6472        IF (g_level_procedure >= g_current_runtime_level ) THEN
6473              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT',
6474                                        'Count : '||to_char(l_count));
6475           END IF;
6476 
6477 
6478      EXCEPTION
6479 
6480           WHEN OTHERS THEN
6481               l_err_msg := substrb(SQLERRM,1,120);
6482         IF (g_level_procedure >= g_current_runtime_level ) THEN
6483              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT',
6484                                        'get_provincial_perc_amount : EXCEPTION '||l_err_msg);
6485           END IF;
6486 
6487      END;
6488 
6489        l_count := p_trx_id_tbl.count;
6490      --FOR i in 11..nvl(p_trx_id_tbl.last,0) LOOP
6491      FOR i in 1..l_count LOOP
6492         IF (g_level_procedure >= g_current_runtime_level ) THEN
6493              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT',
6494                                        'get_provincial_perc_amount : For Loop ');
6495           END IF;
6496 
6497          IF l_provincial_perc_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6498             null;
6499          ELSE
6500               l_provincial_perc_amt_tbl(p_trx_id_tbl(i)) := null;
6501          END IF;
6502 
6503          IF l_provincial_perc_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
6504 
6505             BEGIN
6506 
6507                  IF P_REPORT_NAME = 'JLARPPFF' THEN
6508 
6509 
6510                     SELECT NVL(SUM(itf.tax_amt),0)
6511                       INTO l_provincial_perc_amt_tbl(p_trx_id_tbl(i))
6512                       FROM zx_rep_trx_detail_t itf
6513                      WHERE itf.request_id = p_request_id
6514                        AND itf.trx_id = p_trx_id_tbl(i)
6515                        AND itf.tax_type_code >= P_PROV_TAX_TYPE_FROM
6516                        AND itf.tax_type_code <= P_PROV_TAX_TYPE_TO;
6517 
6518                  -- ---------------------------------------------- --
6519                  --               For AR Reports                   --
6520                  -- ---------------------------------------------- --
6521 
6522                  ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF')  THEN
6523 
6524                     IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and
6525                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
6526 
6527                        BEGIN
6528                             SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
6529                               INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
6530                               FROM  ra_customer_trx
6531                              WHERE  customer_trx_id = p_trx_id_tbl(i);
6532 
6533                        EXCEPTION
6534                          WHEN OTHERS THEN
6535 		IF ( g_level_statement>= g_current_runtime_level ) THEN
6536 		    FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT',
6537 		    'ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6538 		END IF;
6539                 END;
6540 
6541                 END IF;
6542 
6543                     IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
6544 
6545                        SELECT  sum(nvl(itf.tax_amt,0))
6546                          INTO  l_provincial_perc_amt_tbl(p_trx_id_tbl(i))
6547                          FROM  zx_rep_trx_detail_t itf
6548                         WHERE  itf.request_id = p_request_id
6549                           AND  itf.trx_id = p_trx_id_tbl(i)
6550                           AND  itf.tax_regime_code = p_prov_tax_regime
6551                           AND  nvl(itf.tax_type_code,'VAT') = 'VAT';
6552 
6553                     ELSE
6554 
6555                          l_provincial_perc_amt_tbl(p_trx_id_tbl(i)) := 0;
6556 
6557                     END IF;
6558 
6559                  ELSIF P_REPORT_NAME = 'JLARTOFF' THEN
6560 
6561                   IF (g_level_procedure >= g_current_runtime_level ) THEN
6562                       FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT',
6563                              'JLARTOFF:get_provincial_perc_amount ');
6564                   END IF;
6565 
6566                        SELECT  sum(nvl(itf.tax_amt,0))
6567                          INTO  l_provincial_perc_amt_tbl(p_trx_id_tbl(i))
6568                          FROM  zx_rep_trx_detail_t itf,
6569                                jl_zz_ar_tx_categ categ
6570                         WHERE  itf.request_id = p_request_id
6571                           AND  itf.trx_id = p_trx_id_tbl(i)
6572                         --  AND  itf.tax_regime_code = p_prov_tax_regime
6573                           AND  nvl(itf.tax_type_code,'VAT') = 'VAT'
6574                           AND  itf.tax_rate_id = p_tax_rate_id_tbl(i)
6575                           AND categ.tax_category = itf.tax
6576                           AND categ.tax_regime = p_prov_tax_regime
6577                           AND categ.org_id = itf.internal_organization_id;
6578 
6579                   IF (g_level_procedure >= g_current_runtime_level ) THEN
6580                       FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
6581                                        'JLARTOFF: SQL Call in get_provincial_perc_amount '
6582                                  ||to_char(l_provincial_perc_amt_tbl(p_trx_id_tbl(i))));
6583                   END IF;
6584 
6585                  END IF;
6586 
6587                         X_PROVINCIAL_PERC_AMT_TBL(i) := l_provincial_perc_amt_tbl(p_trx_id_tbl(i));
6588 
6589             EXCEPTION
6590 
6591                     WHEN NO_DATA_FOUND THEN
6592 
6593                          l_provincial_perc_amt_tbl(p_trx_id_tbl(i)) := 0;
6594                          X_PROVINCIAL_PERC_AMT_TBL(i) := l_provincial_perc_amt_tbl(p_trx_id_tbl(i));
6595                          NULL;
6596 
6597                     WHEN OTHERS THEN
6598 		IF ( g_level_statement>= g_current_runtime_level ) THEN
6599 		    FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT',
6600 		    'ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6601 		END IF;
6602             END;
6603 
6604          ELSE -- if l_provincial_perc_amt_tbl is not null
6605 
6606 --              X_PROVINCIAL_PERC_AMT_TBL(i) := l_provincial_perc_amt_tbl(p_trx_id_tbl(i));
6607               X_PROVINCIAL_PERC_AMT_TBL(i) := 0;
6608 
6609          END IF;
6610          IF ( g_level_statement>= g_current_runtime_level ) THEN
6611         	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6612         	' PROVINCIAL_PERC_AMOUNT for Report Name  : '||p_report_name ||' trx_id : '
6613                ||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_PROVINCIAL_PERC_AMT_TBL(i)));
6614          END IF;
6615 
6616    END LOOP;
6617 
6618        IF (g_level_procedure >= g_current_runtime_level ) THEN
6619           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_PROVINCIAL_PERC_AMOUNT.END',
6620                                       'GET_PROVINCIAL_PERC_AMOUNT(-)');
6621       END IF;
6622 
6623 END GET_PROVINCIAL_PERC_AMOUNT;
6624 
6625 
6626 /*================================================================================+
6627  | PROCEDURE                                                                      |
6628  |   GET_MUNICIPAL_PERC_AMOUNT                                                    |
6629  |   Type       : Private                                                         |
6630  |   Pre-req    : None                                                            |
6631  |   Function   :                                                                 |
6632  |    This procedure extract Municipal Perception Amount for the given report name|
6633  |                                                                                |
6634  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
6635  |                                                                                |
6636  |   Parameters :                                                                 |
6637  |   IN         :  P_MUN_TAX_TYPE_FROM         IN   VARCHAR2 Opt                  |
6638  |                 P_MUN_TAX_TYPE_TO           IN   VARCHAR2 Opt                  |
6639  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
6640  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
6641  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
6642  |                                                                                |
6643  |    OUT                                                                         |
6644  |                 X_MUNICIPAL_PERC_AMT_TBL OUT NUMERIC5_TBL    |
6645  |                                                                                |
6646  |   MODIFICATION HISTORY                                                         |
6647  |     29-Oct-04  Hidetaka Kojima   created                                       |
6648  |                                                                                |
6649  +================================================================================*/
6650 
6651 
6652   PROCEDURE GET_MUNICIPAL_PERC_AMOUNT
6653 (
6654 P_MUN_TAX_TYPE_FROM          IN            VARCHAR2 DEFAULT NULL,
6655 P_MUN_TAX_TYPE_TO            IN            VARCHAR2 DEFAULT NULL,
6656 P_MUN_TAX_REGIME             IN            VARCHAR2 DEFAULT NULL,
6657 P_REPORT_NAME                IN            VARCHAR2,
6658 p_REQUEST_ID                 IN            NUMBER,
6659 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
6660 P_TAX_RATE_ID_TBL            IN            ZX_EXTRACT_PKG.TAX_RATE_ID_TBL,
6661 X_MUNICIPAL_PERC_AMT_TBL     OUT  NOCOPY   NUMERIC5_TBL
6662 ) IS
6663 
6664  l_err_msg                   VARCHAR2(120);
6665  l_trx_counter               NUMBER;
6666  l_municipal_perc_amt_tbl    NUMERIC5_TBL;
6667  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
6668 
6669 BEGIN
6670 
6671     IF (g_level_procedure >= g_current_runtime_level ) THEN
6672      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT.BEGIN',
6673                                       'GET_MUNICIPAL_PERC_AMOUNT(+)');
6674    END IF;
6675 
6676      BEGIN
6677 
6678           SELECT count(distinct trx_id)
6679             INTO l_trx_counter
6680             FROM zx_rep_trx_detail_t
6681            WHERE request_id = p_request_id;
6682 
6683     IF ( g_level_statement>= g_current_runtime_level ) THEN
6684 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6685 	' GET_MUNICIPAL_PERC_AMOUNT : l_trx_counter : '|| l_trx_counter );
6686     END IF;
6687 
6688      EXCEPTION
6689 
6690           WHEN OTHERS THEN
6691 
6692 		IF ( g_level_statement>= g_current_runtime_level ) THEN
6693 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT',
6694 			'ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6695 		END IF;
6696 
6697      END;
6698 
6699 
6700      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
6701 
6702          IF l_municipal_perc_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6703             null;
6704          ELSE
6705              l_municipal_perc_amt_tbl(p_trx_id_tbl(i)) := null;
6706          END IF;
6707 
6708          IF l_municipal_perc_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
6709 
6710             BEGIN
6711 
6712                  IF P_REPORT_NAME = 'JLARPPFF' THEN
6713 
6714                     SELECT nvl(SUM(itf.tax_amt),0)
6715                       INTO l_municipal_perc_amt_tbl(p_trx_id_tbl(i))
6716                       FROM zx_rep_trx_detail_t itf
6717                      WHERE itf.request_id = p_request_id
6718                        AND itf.trx_id = p_trx_id_tbl(i)
6719                        AND itf.tax_type_code >= P_MUN_TAX_TYPE_FROM
6720                        AND itf.tax_type_code <= P_MUN_TAX_TYPE_TO;
6721 
6722                  ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
6723 
6724                     IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6725                        null;
6726                     ELSE
6727                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
6728                     END IF;
6729 
6730                     IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and
6731                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
6732 
6733                        BEGIN
6734                             SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
6735                               INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
6736                               FROM  ra_customer_trx
6737                              WHERE  customer_trx_id = p_trx_id_tbl(i);
6738 
6739                        EXCEPTION
6740                                 WHEN OTHERS THEN
6741 		IF ( g_level_statement>= g_current_runtime_level ) THEN
6742 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT',
6743 			'ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6744 		END IF;
6745                        END;
6746 
6747                     END IF;
6748 
6749                     IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
6750 
6751                        SELECT  sum(nvl(itf.tax_amt,0))
6752                          INTO  l_municipal_perc_amt_tbl(p_trx_id_tbl(i))
6753                          FROM  zx_rep_trx_detail_t itf
6754                         WHERE  itf.request_id = p_request_id
6755                           AND  itf.trx_id = p_trx_id_tbl(i)
6756                           AND  itf.tax_regime_code = p_mun_tax_regime
6757                           AND  nvl(itf.tax_type_code,'VAT') = 'VAT';
6758 
6759                     ELSE
6760 
6761                          l_municipal_perc_amt_tbl(p_trx_id_tbl(i)) := 0;
6762 
6763                     END IF;
6764 
6765                  ELSIF P_REPORT_NAME = 'JLARTOFF' THEN
6766 
6767         IF (g_level_procedure >= g_current_runtime_level ) THEN
6768              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT',
6769                                        'JLARTOFF:get_muncipal_perc_amount ');
6770           END IF;
6771                 l_municipal_perc_amt_tbl(p_trx_id_tbl(i)):= NULL;
6772 
6773                        SELECT  sum(nvl(itf.tax_amt,0))
6774                          INTO  l_municipal_perc_amt_tbl(p_trx_id_tbl(i))
6775                          FROM  zx_rep_trx_detail_t itf,
6776                                jl_zz_ar_tx_categ categ
6777                         WHERE  itf.request_id = p_request_id
6778                           AND  itf.trx_id = p_trx_id_tbl(i)
6779                         --  AND  itf.tax_regime_code = p_mun_tax_regime
6780                           AND  nvl(itf.tax_type_code,'VAT') = 'VAT'
6781                           AND  itf.tax_rate_id = p_tax_rate_id_tbl(i)
6782                           AND categ.tax_category = itf.tax
6783                           AND categ.tax_regime = p_mun_tax_regime
6784                           AND categ.org_id = itf.internal_organization_id;
6785 
6786          IF (g_level_procedure >= g_current_runtime_level ) THEN
6787              FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.POPULATE_JL_AR',
6788                                        'JLARTOFF: SQL Call in get_muncipal_perc_amount '
6789                                  ||to_char(l_municipal_perc_amt_tbl(p_trx_id_tbl(i))));
6790           END IF;
6791 
6792 
6793                  END IF;
6794 
6795 
6796 /*                       SELECT  sum(nvl(itf.tax_amt,0))
6797                          INTO  l_municipal_perc_amt_tbl(p_trx_id_tbl(i))
6798                          FROM  zx_rep_trx_detail_t itf
6799                         WHERE  itf.request_id = p_request_id
6800                           AND  itf.trx_id = p_trx_id_tbl(i)
6801                           AND  itf.tax_regime_code = p_mun_tax_regime
6802                           AND  nvl(itf.tax_type_code,'VAT') = 'VAT'
6803                           AND  itf.tax_rate_id = p_tax_rate_id_tbl(i);
6804 
6805                  END IF; -- IF P_REPORT_NAME = ..*/
6806 
6807                         X_MUNICIPAL_PERC_AMT_TBL(i) := NVL(l_municipal_perc_amt_tbl(p_trx_id_tbl(i)),0);
6808 
6809                  EXCEPTION
6810                     WHEN NO_DATA_FOUND THEN
6811                          l_municipal_perc_amt_tbl(p_trx_id_tbl(i)) := 0;
6812                          X_MUNICIPAL_PERC_AMT_TBL(i) := l_municipal_perc_amt_tbl(p_trx_id_tbl(i));
6813                          NULL;
6814 
6815                     WHEN OTHERS THEN
6816 		IF ( g_level_statement>= g_current_runtime_level ) THEN
6817 		       FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT',
6818 		      'ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6819 		END IF;
6820             END;
6821 
6822          ELSE -- if l_municipal_perc_amt_tbl is not null
6823 
6824               X_MUNICIPAL_PERC_AMT_TBL(i) := 0;
6825 --              X_MUNICIPAL_PERC_AMT_TBL(i) := l_municipal_perc_amt_tbl(p_trx_id_tbl(i));
6826 
6827          END IF;
6828 
6829          IF ( g_level_statement>= g_current_runtime_level ) THEN
6830         	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6831         	' X_MUNICIPAL_PERC_AMT_TBL for Report Name  : '||p_report_name
6832                 ||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_MUNICIPAL_PERC_AMT_TBL(i)));
6833          END IF;
6834 
6835       END LOOP;
6836 
6837        IF (g_level_procedure >= g_current_runtime_level ) THEN
6838           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_MUNICIPAL_PERC_AMOUNT.END',
6839                                       'GET_MUNICIPAL_PERC_AMOUNT(-)');
6840        END IF;
6841 
6842 END GET_MUNICIPAL_PERC_AMOUNT;
6843 
6844 
6845 /*================================================================================+
6846  | PROCEDURE                                                                      |
6847  |   GET_EXCISE_TAX_AMOUNT                                                        |
6848  |   Type       : Private                                                         |
6849  |   Pre-req    : None                                                            |
6850  |   Function   :                                                                 |
6851  |    This procedure extract Municipal Perception Amount for the given report name|
6852  |                                                                                |
6853  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
6854  |                                                                                |
6855  |   Parameters :                                                                 |
6856  |   IN         :  P_VAT_TAX_TYPE              IN   VARCHAR2 Opt                  |
6857  |                 P_REPORT_NAME               IN   VARCHAR2 Req                  |
6858  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
6859  |                 P_TRX_ID_TBL                IN   ZX_EXTRACT_PKG.TRX_ID_TBL  Req|
6860  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
6861  |                                                  SUB_TYPE_TBL               Opt|
6862  |                                                                                |
6863  |    OUT                                                                         |
6864  |                 X_EXCISE_TAX_AMT_TBL     OUT NUMERIC5_TBL    |
6865  |                                                                                |
6866  |   MODIFICATION HISTORY                                                         |
6867  |     29-Oct-04  Hidetaka Kojima   created                                       |
6868  |                                                                                |
6869  +================================================================================*/
6870 
6871 
6872 PROCEDURE GET_EXCISE_TAX_AMOUNT
6873 (
6874 P_EXC_TAX_TYPE_FROM          IN            VARCHAR2 DEFAULT NULL,
6875 P_EXC_TAX_TYPE_TO            IN            VARCHAR2 DEFAULT NULL,
6876 P_EXC_TAX_REGIME             IN            VARCHAR2 DEFAULT NULL,
6877 P_REPORT_NAME                IN            VARCHAR2,
6878 p_REQUEST_ID                 IN            NUMBER,
6879 P_TRX_ID_TBL                 IN            ZX_EXTRACT_PKG.TRX_ID_TBL,
6880 X_EXCISE_AMT_TBL             OUT NOCOPY    NUMERIC6_TBL
6881 ) IS
6882 
6883  l_err_msg                   VARCHAR2(120);
6884  l_trx_counter               NUMBER;
6885  l_excise_amt_tbl            NUMERIC6_TBL;
6886  l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
6887 
6888 BEGIN
6889 
6890     IF (g_level_procedure >= g_current_runtime_level ) THEN
6891      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT.BEGIN',
6892                                       'GET_EXCISE_TAX_AMOUNT(+)');
6893    END IF;
6894 
6895      BEGIN
6896 
6897           SELECT count(distinct trx_id)
6898             INTO l_trx_counter
6899             FROM zx_rep_trx_detail_t
6900            WHERE request_id = p_request_id;
6901 
6902     IF ( g_level_statement>= g_current_runtime_level ) THEN
6903 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
6904 	' GET_EXCISE_TAX_AMOUNT : l_trx_counter : '|| l_trx_counter );
6905     END IF;
6906 
6907      EXCEPTION
6908 
6909           WHEN OTHERS THEN
6910 		IF ( g_level_statement>= g_current_runtime_level ) THEN
6911 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT',
6912 			'ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6913 		END IF;
6914 
6915      END;
6916 
6917      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
6918 
6919          IF l_excise_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6920             null;
6921          ELSE
6922              l_excise_amt_tbl(p_trx_id_tbl(i)) := null;
6923          END IF;
6924 
6925          IF l_excise_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
6926 
6927             BEGIN
6928 
6929                  IF P_REPORT_NAME = 'JLARPPFF' THEN
6930 
6931                     SELECT nvl(SUM(itf.tax_amt),0)
6932                       INTO l_excise_amt_tbl(p_trx_id_tbl(i))
6933                       FROM zx_rep_trx_detail_t itf
6934                      WHERE itf.request_id = p_request_id
6935                        AND itf.trx_id = p_trx_id_tbl(i)
6936                        AND itf.tax_type_code >= P_EXC_TAX_TYPE_FROM
6937                        AND itf.tax_type_code <= P_EXC_TAX_TYPE_TO;
6938 
6939                  ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
6940 
6941                     IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
6942                        null;
6943                     ELSE
6944                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
6945                     END IF;
6946 
6947                     --IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and
6948                      --    l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) THEN
6949 
6950                     IF  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL THEN
6951                        BEGIN
6952                             SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
6953                               INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
6954                               FROM  ra_customer_trx
6955                              WHERE  customer_trx_id = p_trx_id_tbl(i);
6956 
6957  		IF ( g_level_statement>= g_current_runtime_level ) THEN
6958 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT',
6959 			'l_gdf_ra_cust_trx_att19_tbl : '||l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) );
6960 		END IF;
6961 
6962                        EXCEPTION
6963                                 WHEN OTHERS THEN
6964 
6965  		IF ( g_level_statement>= g_current_runtime_level ) THEN
6966 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT',
6967 			'ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
6968 		END IF;
6969                        END;
6970 
6971                     END IF;
6972 
6973                     IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
6974 
6975                        SELECT  sum(nvl(itf.tax_amt,0))
6976                          INTO  l_excise_amt_tbl(p_trx_id_tbl(i))
6977                          FROM  zx_rep_trx_detail_t itf
6978                         WHERE  itf.request_id = p_request_id
6979                           AND  itf.trx_id = p_trx_id_tbl(i)
6980                           --AND  itf.tax_regime_code = p_exc_tax_regime
6981                           AND  itf.tax = p_exc_tax_regime
6982                           AND  nvl(itf.tax_type_code,'VAT') = 'VAT';
6983 
6984                     ELSE
6985 
6986                          l_excise_amt_tbl(p_trx_id_tbl(i)) := 0;
6987 
6988                     END IF;
6989 
6990 
6991                  END IF;
6992 
6993                         X_EXCISE_AMT_TBL(i) := l_excise_amt_tbl(p_trx_id_tbl(i));
6994 
6995             EXCEPTION
6996 
6997                     WHEN NO_DATA_FOUND THEN
6998 
6999                          l_excise_amt_tbl(p_trx_id_tbl(i)) := 0;
7000                          X_EXCISE_AMT_TBL(i) := l_excise_amt_tbl(p_trx_id_tbl(i));
7001                          NULL;
7002 
7003                     WHEN OTHERS THEN
7004 
7005 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7006 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT',
7007 			'ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT : '||p_report_name ||' : '||substrb(SQLERRM,1,120) );
7008 		END IF;
7009             END;
7010 
7011          ELSE -- if l_excise_tax_amt_tbl is not null
7012 
7013               X_EXCISE_AMT_TBL(i) := 0;
7014 --              X_EXCISE_AMT_TBL(i) := l_excise_amt_tbl(p_trx_id_tbl(i));
7015 
7016          END IF;
7017 
7018     IF ( g_level_statement>= g_current_runtime_level ) THEN
7019 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7020 	' X_EXCISE_AMT_TBL for Report Name  : '||p_report_name ||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_EXCISE_AMT_TBL(i)));
7021     END IF;
7022 
7023    END LOOP;
7024 
7025        IF (g_level_procedure >= g_current_runtime_level ) THEN
7026      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_EXCISE_TAX_AMOUNT.END',
7027                                       'GET_EXCISE_TAX_AMOUNT(-)');
7028    END IF;
7029 
7030 END GET_EXCISE_TAX_AMOUNT;
7031 
7032 
7033 /*================================================================================+
7034  | PROCEDURE                                                                      |
7035  |   GET_COUNTED_SUM_DOC                                                          |
7036  |   Type       : Private                                                         |
7037  |   Pre-req    : None                                                            |
7038  |   Function   :                                                                 |
7039  |    This procedure extract Municipal Perception Amount for the given report name|
7040  |                                                                                |
7041  |   Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                                    |
7042  |                                                                                |
7043  |   Parameters :                                                                 |
7044  |   IN         :  P_REPORT_NAME               IN   VARCHAR2 Req                  |
7045  |                 P_REQUEST_ID                IN   NUMBER   Req                  |
7046  |                 P_DOCUMENT_SUB_TYPE_TBL     IN   ZX_EXTRACT_PKG.DOCUMENT_      |
7047  |                                                  SUB_TYPE_TBL               Opt|
7048  |                                                                                |
7049  |    OUT                                                                         |
7050  |                 X_CL_NUM_OF_DOC_TBL     OUT NUMERIC5_TBL    |
7051  |                                                                                |
7052  |                                                                                |
7053  |   MODIFICATION HISTORY                                                         |
7054  |     29-Oct-04  Hidetaka Kojima   created                                       |
7055  |                                                                                |
7056  +================================================================================*/
7057 
7058 PROCEDURE GET_COUNTED_SUM_DOC
7059 (
7060 P_REPORT_NAME             IN          VARCHAR2,
7061 P_REQUEST_ID              IN          NUMBER,
7062 P_DOCUMENT_SUB_TYPE_TBL   IN          ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
7063 X_CL_NUM_OF_DOC_TBL       OUT NOCOPY  NUMERIC3_TBL,
7064 X_CL_TOTAL_EXEMPT_TBL     OUT NOCOPY  NUMERIC4_TBL,
7065 X_CL_TOTAL_EFFECTIVE_TBL  OUT NOCOPY  NUMERIC5_TBL,
7066 X_CL_TOTAL_VAT_TAX_TBL    OUT NOCOPY  NUMERIC6_TBL,
7067 X_CL_TOTAL_OTHER_TAX_TBL  OUT NOCOPY  NUMERIC11_TBL
7068 
7069 )IS
7070 
7071 BEGIN
7072  g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
7073 	  --Bug 5058043
7074 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
7075 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_COUNTED_SUM_DOC',
7076 					      'GET_COUNTED_SUM_DOC(+)');
7077 	  END IF;
7078 
7079      IF P_REPORT_NAME = 'ZXCLPPLR' then
7080 
7081         FOR i in 1..nvl(p_document_sub_type_tbl.last,0) LOOP
7082 
7083             begin
7084 		SELECT  COUNT(DISTINCT DET.TRX_NUMBER),
7085 	               /* SUM(DECODE(DET.TAX_RATE,0,
7086 						coalesce(DET.TAXABLE_AMT_FUNCL_CURR,DET.TAXABLE_AMT,0),
7087 						0)),
7088 	                SUM(DECODE(DET.TAX_RATE,0,
7089 						0,
7090 						coalesce(DET.TAXABLE_AMT_FUNCL_CURR,DET.TAXABLE_AMT,0))),*/
7091 	                SUM(DECODE(DET.TAX_TYPE_CODE,'VAT',
7092 						     coalesce(DET.TAX_AMT_FUNCL_CURR,DET.TAX_AMT,0),
7093 						     0)),
7094 	                SUM(DECODE(DET.TAX_TYPE_CODE,'VAT',
7095 						       0,
7096 						       coalesce(DET.TAX_AMT_FUNCL_CURR,DET.TAX_AMT,0)))
7097                   INTO  X_CL_NUM_OF_DOC_TBL(i),
7098 --                        X_CL_TOTAL_EXEMPT_TBL(i),
7099 --                        X_CL_TOTAL_EFFECTIVE_TBL(i),
7100                         X_CL_TOTAL_VAT_TAX_TBL(i),
7101                         X_CL_TOTAL_OTHER_TAX_TBL(i)
7102                  FROM   ZX_REP_TRX_DETAIL_T DET
7103                 WHERE   DET.REQUEST_ID = P_REQUEST_ID
7104                   AND   DET.DOCUMENT_SUB_TYPE = P_DOCUMENT_SUB_TYPE_TBL(i)
7105              GROUP BY   DET.DOCUMENT_SUB_TYPE;
7106 	     EXCEPTION
7107 	     WHEN NO_DATA_FOUND THEN
7108 		X_CL_NUM_OF_DOC_TBL(i) := null;
7109 		X_CL_TOTAL_VAT_TAX_TBL(i) := null;
7110 		X_CL_TOTAL_OTHER_TAX_TBL(i) := NULL ;
7111 	     END ;
7112 
7113 --Added for the Bug 5413860
7114 	BEGIN
7115                SELECT   SUM(DECODE(DET.TAX_RATE,0,
7116 						coalesce(DET.TAXABLE_AMT_FUNCL_CURR,DET.TAXABLE_AMT,0),
7117 						0)),
7118 	                SUM(DECODE(DET.TAX_RATE,0,
7119 						0,
7120 						coalesce(DET.TAXABLE_AMT_FUNCL_CURR,DET.TAXABLE_AMT,0)))
7121                   INTO
7122                         X_CL_TOTAL_EXEMPT_TBL(i),
7123                         X_CL_TOTAL_EFFECTIVE_TBL(i)
7124                  FROM   ZX_REP_TRX_DETAIL_T DET
7125                 WHERE   DET.REQUEST_ID = P_REQUEST_ID
7126                   AND   DET.DOCUMENT_SUB_TYPE = P_DOCUMENT_SUB_TYPE_TBL(i)
7127 		  AND det.ROWID = ( SELECT min(det1.rowid) FROM zx_rep_trx_detail_t det1
7128 					WHERE det1.trx_id = det.trx_id
7129 					AND det1.request_id = P_REQUEST_ID
7130 					AND nvl(det1.trx_line_id,1) = nvl(det.trx_line_id,1) )--check if trx_line_id should be populated at TRANSACTION Level
7131              GROUP BY   DET.DOCUMENT_SUB_TYPE;
7132 --		X_CL_TOTAL_EXEMPT_TBL(i) := null;
7133 --		X_CL_TOTAL_EFFECTIVE_TBL(i) := null;
7134 
7135 	  IF (g_level_statement >= g_current_runtime_level ) THEN
7136 	     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_COUNTED_SUM_DOC',
7137 	      'i : '||i||'X_CL_TOTAL_EXEMPT_TBL : '||X_CL_TOTAL_EXEMPT_TBL(i)||'X_CL_TOTAL_EFFECTIVE_TBL : '||X_CL_TOTAL_EFFECTIVE_TBL(i) );
7138 	  END IF;
7139 
7140 	     EXCEPTION
7141 	     WHEN NO_DATA_FOUND THEN
7142 		X_CL_TOTAL_EXEMPT_TBL(i) := null;
7143 		X_CL_TOTAL_EFFECTIVE_TBL(i) := null;
7144 
7145 	     END ;
7146 
7147         END LOOP;
7148 
7149       END IF;
7150 
7151 --Bug 5438742
7152 	IF P_REPORT_NAME = 'ZXCLRSLL' then
7153 
7154 	FOR i in 1..nvl(p_document_sub_type_tbl.last,0) LOOP
7155 
7156 		begin
7157 			SELECT  COUNT(DISTINCT DET.TRX_NUMBER),
7158 			SUM(DECODE(DET.TAX_TYPE_CODE,'VAT',
7159 				coalesce(DET.TAX_AMT_FUNCL_CURR,DET.TAX_AMT,0),
7160 				0)),
7161 			SUM(DECODE(DET.TAX_TYPE_CODE,'VAT',
7162 			0,
7163 			coalesce(DET.TAX_AMT_FUNCL_CURR,DET.TAX_AMT,0)))
7164 			INTO  X_CL_NUM_OF_DOC_TBL(i),
7165 			X_CL_TOTAL_VAT_TAX_TBL(i),
7166 			X_CL_TOTAL_OTHER_TAX_TBL(i)
7167 			FROM   ZX_REP_TRX_DETAIL_T DET
7168 			WHERE   DET.REQUEST_ID = P_REQUEST_ID
7169 			AND   DET.doc_seq_name = P_DOCUMENT_SUB_TYPE_TBL(i)
7170 			GROUP BY   DET.DOCUMENT_SUB_TYPE;
7171 		EXCEPTION
7172 		WHEN NO_DATA_FOUND THEN
7173 			X_CL_NUM_OF_DOC_TBL(i) := null;
7174 			X_CL_TOTAL_VAT_TAX_TBL(i) := null;
7175 			X_CL_TOTAL_OTHER_TAX_TBL(i) := NULL ;
7176 		END ;
7177 
7178 		BEGIN
7179 			SELECT
7180 				SUM(DECODE(DET.TAX_RATE,0,
7181 				0,
7182 				coalesce(DET.TAXABLE_AMT_FUNCL_CURR,DET.TAXABLE_AMT,0)))
7183 			INTO
7184 				X_CL_TOTAL_EFFECTIVE_TBL(i)
7185 			FROM   ZX_REP_TRX_DETAIL_T DET
7186 			WHERE   DET.REQUEST_ID = P_REQUEST_ID
7187 				AND   DET.DOC_SEQ_NAME = P_DOCUMENT_SUB_TYPE_TBL(i)
7188 				AND det.ROWID = ( SELECT min(det1.rowid) FROM zx_rep_trx_detail_t det1
7189 				WHERE det1.trx_id = det.trx_id
7190 				AND det1.request_id = P_REQUEST_ID
7191 				AND nvl(det1.trx_line_id,1) = nvl(det.trx_line_id,1) )--check if trx_line_id should be populated at TRANSACTION Level
7192 			GROUP BY   DET.DOCUMENT_SUB_TYPE;
7193 
7194 		IF (g_level_statement >= g_current_runtime_level ) THEN
7195 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_COUNTED_SUM_DOC',
7196 		'i : '||i||'X_CL_TOTAL_EXEMPT_TBL : '||X_CL_TOTAL_EXEMPT_TBL(i)||'X_CL_TOTAL_EFFECTIVE_TBL : '||X_CL_TOTAL_EFFECTIVE_TBL(i) );
7197 		END IF;
7198 
7199 		EXCEPTION
7200 		WHEN NO_DATA_FOUND THEN
7201 		X_CL_TOTAL_EXEMPT_TBL(i) := null;
7202 		X_CL_TOTAL_EFFECTIVE_TBL(i) := null;
7203 
7204 		END ;
7205 
7206 	END LOOP;
7207 
7208 	END IF;
7209 	  --Bug 5058043
7210 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
7211 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_COUNTED_SUM_DOC',
7212 					      'GET_COUNTED_SUM_DOC(-)');
7213 	  END IF;
7214 
7215 END GET_COUNTED_SUM_DOC;
7216 
7217 
7218 /*=====================================================================================+
7219  | PROCEDURE                                                                           |
7220  |   GET_LOOKUP_INFO                                                                   |
7221  |   Type       : Private                                                              |
7222  |   Pre-req    : None                                                                 |
7223  |   Function   :                                                                      |
7224  |    This procedure fetched Lookup Code and Meaning from FND_LOOKUPS table            |
7225  |    using P_DOCUMENT_SUB_TYPE_TBL and returns fetched values.                        |
7226  |                                                                                     |
7227  |    Called from ZX_JL_EXTRACT_PKG.POPULATE                                              |
7228  |                                                                                     |
7229  |   Parameters :                                                                      |
7230  |   IN         :  P_DOCUMENT_SUB_TYPE_TBL     IN  ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL|
7231  |                 X_JLCL_AP_DOC_TYPE_MEANING  OUT VARCHAR2                            |
7232  |                 X_ORDER_BY_DOC_TYPE         OUT VARCHAR2                            |
7233  |                                                                                     |
7234  |   MODIFICATION HISTORY                                                              |
7235  |     07-Nov-03  Hidetaka Kojima   created                                            |
7236  |                                                                                     |
7237  |                                                                                     |
7238  +=====================================================================================*/
7239 
7240  PROCEDURE GET_LOOKUP_INFO
7241  (
7242  P_DOCUMENT_SUB_TYPE_TBL              IN          ZX_EXTRACT_PKG.DOCUMENT_SUB_TYPE_TBL,
7243  X_JLCL_AP_DOC_TYPE_MEANING_TBL       OUT NOCOPY  DOCUMENT_SUB_TYPE_MNG_TBL,
7244  X_ORDER_BY_DOC_TYPE_TBL              OUT NOCOPY  ATTRIBUTE14_TBL
7245  )
7246 
7247  IS
7248 
7249  BEGIN
7250 
7251  g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
7252   --Bug 5058043
7253   IF (g_level_procedure >= g_current_runtime_level ) THEN
7254      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_LOOKUP_INFO',
7255 				      'GET_LOOKUP_INFO(+)');
7256   END IF;
7257 
7258    FOR i in 1..nvl(p_document_sub_type_tbl.last,0) LOOP
7259 
7260 	IF (g_level_statement >= g_current_runtime_level ) THEN
7261 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_LOOKUP_INFO',
7262 			      'i : '||i||'P_DOCUMENT_SUB_TYPE_TBL(i) : '||P_DOCUMENT_SUB_TYPE_TBL(i));
7263 	END IF;
7264 
7265        BEGIN
7266 
7267             SELECT
7268                   fl.meaning,
7269                   DECODE(fl.lookup_code, 'JL_CL_DOMESTIC_INVOICE','1',
7270                                          'JL_CL_FOREIGN_INVOICE','2',
7271                                          'JL_CL_DEBIT_MEMO','3',
7272                                          'JL_CL_CREDIT_MEMO','4',
7273                                                              '5')
7274              INTO
7275                   x_jlcl_ap_doc_type_meaning_tbl(i),
7276                   x_order_by_doc_type_tbl(i)
7277              FROM
7278                   fnd_lookups fl
7279             WHERE
7280                   fl.lookup_type = 'JLCL_AP_DOCUMENT_TYPE'
7281               AND
7282                   fl.lookup_code = substr(P_DOCUMENT_SUB_TYPE_TBL(i),15); --Bug 5413860
7283 
7284        EXCEPTION
7285 
7286             WHEN NO_DATA_FOUND THEN
7287 
7288                  x_jlcl_ap_doc_type_meaning_tbl(i) := Null;
7289                  x_order_by_doc_type_tbl(i) := Null;
7290                  null;
7291 
7292             WHEN OTHERS THEN
7293 
7294                  l_err_msg := substrb(SQLERRM,1,120);
7295 			  --Bug 5058043
7296 		  IF (g_level_procedure >= g_current_runtime_level ) THEN
7297 		     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_LOOKUP_INFO',
7298 						      'EXCEPTION raised in ' ||'GET_LOOKUP_INFO: ' ||SQLCODE ||':'||l_err_msg);
7299 		  END IF;
7300 
7301        END;
7302 
7303    END LOOP;
7304 		   --Bug 5058043
7305 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
7306 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_LOOKUP_INFO',
7307 					      'GET_LOOKUP_INFO(-)');
7308 	  END IF;
7309 
7310  END GET_LOOKUP_INFO;
7311 
7312 
7313 /*===========================================================================+
7314  | FUNCTION                                                                  |
7315  |   GET_TAX_AUTHORITY_CODE                                                  |
7316  |   Type       : Private                                                    |
7317  |   Pre-req    : None                                                       |
7318  |   Function   :                                                            |
7319  |    This function returns the Tax Authority Code                           |
7320  |    from jl_zz_ar_tx_categ table to  meet the requirement in the flat file |
7321  |                                                                           |
7322  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                              |
7323  |                                                                           |
7324  |   Parameters :                                                            |
7325  |   IN         :  p_vat_tax IN                                              |
7326  |                              ZX_REP_TRX_DETAIL_T.TAX%TYPE     Required  |
7327  |                                                                           |
7328  |   MODIFICATION HISTORY                                                    |
7329  |     07-Nov-03  Hidetaka Kojima   created                                  |
7330  |                                                                           |
7331  |                                                                           |
7332  +===========================================================================*/
7333 
7334 
7335 FUNCTION GET_TAX_AUTHORITY_CODE
7336 (
7337 P_VAT_TAX            IN  ZX_REP_TRX_DETAIL_T.TAX%TYPE,
7338 P_ORG_ID             IN  NUMBER
7339 )
7340 return ZX_REP_TRX_JX_EXT_T.ATTRIBUTE10%TYPE IS
7341 
7342   l_tax_authority_code        ZX_REP_TRX_JX_EXT_T.ATTRIBUTE10%TYPE;
7343   l_err_msg                   VARCHAR2(120);
7344 
7345 BEGIN
7346 
7347 
7348     IF (g_level_procedure >= g_current_runtime_level ) THEN
7349      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTHORITY_CODE.BEGIN',
7350                                       'GET_TAX_AUTHORITY_CODE(+)');
7351    END IF;
7352 
7353       SELECT  tax_authority_code
7354         INTO  l_tax_authority_code
7355         FROM  jl_zz_ar_tx_categ
7356        WHERE  tax_category = p_vat_tax
7357          AND  org_id = p_org_id;
7358 
7359 
7360 	IF ( g_level_statement>= g_current_runtime_level ) THEN
7361 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTHORITY_CODE',
7362 					      'l_tax_authority_code : '||l_tax_authority_code);
7363 	END IF;
7364 
7365        IF (g_level_procedure >= g_current_runtime_level ) THEN
7366 
7367      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTHORITY_CODE.END',
7368                                       'GET_TAX_AUTHORITY_CODE(-)');
7369    END IF;
7370 
7371       RETURN l_tax_authority_code;
7372 
7373  EXCEPTION
7374 
7375      WHEN NO_DATA_FOUND THEN
7376 
7377      RETURN  null;
7378 
7379      WHEN OTHERS THEN
7380 
7381 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7382 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTHORITY_CODE',
7383 			'ZX_JL_EXTRACT_PKG.GET_TAX_AUTHORITY_CODE : '||substrb(SQLERRM,1,120) );
7384 		END IF;
7385 
7386 END get_tax_authority_code;
7387 
7388 
7389 /*=================================================================================+
7390  | PROCEDURE                                                                        |
7391  |   GET_DGI_CODE                                                                  |
7392  |   Type       : Private                                                          |
7393  |   Pre-req    : None                                                             |
7394  |   Function   :                                                                  |
7395  |    This function returns the DGI Code                                           |
7396  |    from jl_ar_ap_trx_dgi table to meet the requirement in the flat file         |
7397  |                                                                                 |
7398  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                                    |
7399  |                                                                                 |
7400  |   Parameters :                                                                  |
7401  |   IN         :  P_TRX_NUMBER_TBL    IN ZX_EXTRACT_PKG.TRX_NUMBER_TBL   Required |                       |
7402  |                 P_TRX_TYPE_ID_TBL   IN ZX_EXTRACT_PKG.TRX_TYPE_ID_TBL  Required |
7403  |                                                                                 |
7404  |   MODIFICATION HISTORY                                                          |
7405  |     07-Nov-03  Hidetaka Kojima   created                                        |
7406  |                                                                                 |
7407  |                                                                                 |
7408  +=================================================================================*/
7409 
7410  PROCEDURE GET_DGI_CODE
7411  (
7412   P_TRX_NUMBER_TBL        IN         ZX_EXTRACT_PKG.TRX_NUMBER_TBL,
7413   P_TRX_CATEGORY_TBL      IN         ZX_EXTRACT_PKG.TRX_TYPE_ID_TBL,
7414   P_ORG_ID_TBL            IN ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
7415   X_DGI_CODE_TBL          OUT NOCOPY ATTRIBUTE11_TBL
7416  )
7417 IS
7418 
7419      l_err_msg         VARCHAR2(120);
7420 
7421 BEGIN
7422     IF (g_level_procedure >= g_current_runtime_level ) THEN
7423      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_CODE.BEGIN',
7424                                       'GET_DGI_CODE(+)');
7425    END IF;
7426 
7427  FOR i in 1..p_trx_number_tbl.last LOOP
7428 
7429      BEGIN
7430 
7431           SELECT  dgi_code
7432             INTO  x_dgi_code_tbl(i)
7433             FROM  jl_ar_ap_trx_dgi_codes dgi,
7434                   ra_cust_trx_types_all rctt
7435            WHERE  trx_letter = substr(p_trx_number_tbl(i),1,1)
7436              AND  rctt.cust_trx_type_id = P_TRX_CATEGORY_TBL(i)
7437              AND  rctt.org_id = p_org_id_tbl(i)
7438              AND  trx_category = rctt.type;
7439 
7440     IF ( g_level_statement>= g_current_runtime_level ) THEN
7441 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7442 	' GET_DGI_CODE : i : ');
7443     END IF;
7444 
7445      EXCEPTION
7446 
7447            WHEN NO_DATA_FOUND THEN
7448                 x_dgi_code_tbl(i) := Null;
7449      IF ( g_level_statement>= g_current_runtime_level ) THEN
7450         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7451         ' GET_DGI_CODE : i : ');
7452     END IF;
7453 
7454 
7455 
7456            WHEN OTHERS THEN
7457 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7458 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_CODE',
7459 			'ZX_JL_EXTRACT_PKG.GET_DGI_CODE : '||substrb(SQLERRM,1,120) );
7460 		END IF;
7461      END;
7462 
7463  END LOOP;
7464 
7465        IF (g_level_procedure >= g_current_runtime_level ) THEN
7466      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_CODE.END',
7467                                       'GET_DGI_CODE(-)');
7468    END IF;
7469 
7470 END get_dgi_code;
7471 
7472 
7473 /*===========================================================================+
7474  | FUNCTION                                                                  |
7475  |   GET_CUSTOMER_CONDITION_CODE                                             |
7476  |   Type       : Private                                                    |
7477  |   Pre-req    : None                                                       |
7478  |   Function   :                                                            |
7479  |    This function returns the customer's tax condition code                |
7480  |    from jl_zz_ar_tx_val table to meet the requirement in the flat file    |
7481  |                                                                           |
7482  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                              |
7483  |                                                                           |
7484  |   Parameters :                                                            |
7485  |   IN         :  p_use_site_prof IN VARCHAR2  Required                     |
7486  |                 p_tax_category_id IN NUMBER Required                      |
7487  |                 p_contributor_class IN VHARCHAR2 Required                 |
7488  |                 p_address_id IN  NUMBER       Required                    |
7489  |                                                                           |
7490  |   MODIFICATION HISTORY                                                    |
7491  |     07-Nov-03  Asako Takahashi   created                                  |
7492  |                                                                           |
7493  |                                                                           |
7494  +===========================================================================*/
7495 
7496 PROCEDURE GET_CUSTOMER_CONDITION_CODE
7497 (
7498 P_VAT_PERCEP_TAX              IN         VARCHAR2,
7499 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
7500 P_INTERNAL_ORG_ID_TBL	      IN         ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
7501 P_REQUEST_ID                  IN         NUMBER,
7502 X_CUST_CONDITION_CODE_TBL     OUT NOCOPY ATTRIBUTE7_TBL
7503 )
7504 is
7505 
7506 l_cust_condition_code_tbl     ATTRIBUTE7_TBL;
7507 l_counted_trx_number          NUMBER;
7508 l_address_id                  NUMBER;
7509 l_contributor_class           VARCHAR2(150);
7510 l_use_site_prof               VARCHAR2(150);
7511 l_err_msg                     VARCHAR2(120);
7512 
7513 BEGIN
7514 
7515 
7516     IF (g_level_procedure >= g_current_runtime_level ) THEN
7517      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7518                                       'GET_CUSTOMER_CONDITION_CODE(+)');
7519    END IF;
7520 
7521       BEGIN
7522 
7523            SELECT count(distinct trx_id)
7524              INTO l_counted_trx_number
7525              FROM zx_rep_trx_detail_t
7526             WHERE request_id = p_request_id;
7527 
7528       EXCEPTION
7529 
7530            WHEN OTHERS THEN
7531 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7532 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7533 			'ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE : '||substrb(SQLERRM,1,120) );
7534 		END IF;
7535 
7536       END;
7537 
7538     IF (g_level_procedure >= g_current_runtime_level ) THEN
7539      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7540                                       'l_counted_trx_number :'||to_char(l_counted_trx_number));
7541    END IF;
7542 
7543       FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
7544 
7545           IF l_cust_condition_code_tbl.EXISTS(p_trx_id_tbl(i)) THEN
7546              null;
7547           ELSE
7548               l_cust_condition_code_tbl(p_trx_id_tbl(i)) := null;
7549           END IF;
7550     IF (g_level_procedure >= g_current_runtime_level ) THEN
7551      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7552                                       'l_cust_condition_code_tbl :');
7553    END IF;
7554 
7555 
7556           IF l_cust_condition_code_tbl(p_trx_id_tbl(i)) is null THEN
7557     IF (g_level_procedure >= g_current_runtime_level ) THEN
7558      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7559                                       'l_cust_condition_code_tbl 1 :');
7560    END IF;
7561 
7562 
7563              BEGIN
7564 
7565                   SELECT add1.cust_acct_site_id,
7566                          add1.global_attribute8,
7567                          NVL(add1.global_attribute9,'N')
7568                     INTO l_address_id,
7569                          l_contributor_class,
7570                          l_use_site_prof
7571                     FROM ra_customer_trx_all  trx,
7572                          hz_cust_accounts cust,
7573                          hz_cust_acct_sites_all add1,
7574                          hz_cust_site_uses_all  site
7575                    WHERE trx.customer_trx_id = p_trx_id_tbl(i)
7576                      AND cust.cust_account_id = nvl(trx.ship_to_customer_id,trx.bill_to_customer_id)
7577                      AND cust.cust_account_id = add1.cust_account_id
7578                      AND site.cust_acct_site_id = add1.cust_acct_site_id
7579                      AND site.site_use_id = nvl(trx.bill_to_site_use_id, ship_to_site_use_id);
7580     IF (g_level_procedure >= g_current_runtime_level ) THEN
7581      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7582                                       'l_use_site_prof :'||l_use_site_prof);
7583      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7584                                       'l_contributor_class :'||l_contributor_class);
7585      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7586                                       'l_address_id :'||to_char(l_address_id));
7587    END IF;
7588 
7589 
7590                    IF l_use_site_prof = 'Y' THEN
7591 
7592                       SELECT VAL.TAX_ATTR_VALUE_CODE
7593                         INTO l_cust_condition_code_tbl(p_trx_id_tbl(i))
7594                         FROM JL_ZZ_AR_TX_CUS_CLS_ALL cust,
7595                              JL_ZZ_AR_TX_CATEG_ALL categ,
7596                              JL_ZZ_AR_TX_ATT_VAL_ALL  val
7597                        WHERE CUST.TAX_ATTRIBUTE_VALUE = VAL.TAX_ATTRIBUTE_VALUE and
7598                              CUST.TAX_CATEGORY_ID = VAL.TAX_CATEGORY_ID and
7599                              CUST.TAX_CATEGORY_ID = CATEG.TAX_CATEGORY_ID and
7600                              CUST.TAX_ATTRIBUTE_NAME = VAL.TAX_ATTRIBUTE_NAME and
7601                              VAL.TAX_ATTRIBUTE_TYPE = 'CONTRIBUTOR_ATTRIBUTE' and
7602                              CATEG.TAX_CATEGORY = P_VAT_PERCEP_TAX and
7603                              CUST.TAX_ATTR_CLASS_CODE = l_contributor_class and
7604                              CUST.ADDRESS_ID = L_ADDRESS_ID AND
7605                              CUST.ORG_ID = CATEG.ORG_ID AND
7606                              CATEG.ORG_ID = VAL.ORG_ID AND
7607                              VAL.ORG_ID = P_INTERNAL_ORG_ID_TBL(I);
7608     IF (g_level_procedure >= g_current_runtime_level ) THEN
7609      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7610                    'l_cust_condition_code_tbl Value 1 :'||to_char(l_cust_condition_code_tbl(p_trx_id_tbl(i))));
7611    END IF;
7612 
7613 
7614                    ELSIF l_use_site_prof <> 'Y' THEN
7615 
7616                          SELECT VAL.TAX_ATTR_VALUE_CODE
7617                            INTO l_cust_condition_code_tbl(p_trx_id_tbl(i))
7618                            FROM JL_ZZ_AR_TX_ATT_CLS_ALL cust,
7619                                 JL_ZZ_AR_TX_CATEG_ALL categ,
7620                                 JL_ZZ_AR_TX_ATT_VAL val
7621                           WHERE CUST.TAX_ATTRIBUTE_VALUE = VAL.TAX_ATTRIBUTE_VALUE and
7622                                 CUST.TAX_CATEGORY_ID = VAL.TAX_CATEGORY_ID and
7623                                 CUST.TAX_CATEGORY_ID = CATEG.TAX_CATEGORY_ID and
7624                                 CUST.TAX_ATTRIBUTE_NAME = VAL.TAX_ATTRIBUTE_NAME and
7625                                 VAL.TAX_ATTRIBUTE_TYPE = 'CUSTOMER_ATTRIBUTE' and
7626                                 CATEG.TAX_CATEGORY = P_VAT_PERCEP_TAX and
7627                                 CUST.TAX_ATTR_CLASS_TYPE = 'CONTRIBUTOR_CLASS' and
7628                                 CUST.TAX_ATTR_CLASS_CODE = L_CONTRIBUTOR_CLASS AND
7629                                 CUST.ORG_ID = CATEG.ORG_ID AND
7630                                 CATEG.ORG_ID = VAL.ORG_ID AND
7631                                 VAL.ORG_ID = P_INTERNAL_ORG_ID_TBL(I);
7632     IF (g_level_procedure >= g_current_runtime_level ) THEN
7633      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.BEGIN',
7634                                       'l_cust_condition_code_tbl Value 2 :'||to_char(l_cust_condition_code_tbl(p_trx_id_tbl(i))));
7635    END IF;
7636                   END IF;
7637 
7638                   X_CUST_CONDITION_CODE_TBL(i) := l_cust_condition_code_tbl(p_trx_id_tbl(i));
7639 
7640              EXCEPTION
7641 
7642                WHEN NO_DATA_FOUND THEN
7643                    X_CUST_CONDITION_CODE_TBL(i) :=NULL;
7644 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7645 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7646 			'ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE : '||substrb(SQLERRM,1,120) );
7647 		END IF;
7648                WHEN OTHERS THEN
7649 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7650 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7651 			'ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE : '||substrb(SQLERRM,1,120) );
7652 		END IF;
7653 
7654              END;
7655 
7656           ELSE
7657 
7658                X_CUST_CONDITION_CODE_TBL(i) := l_cust_condition_code_tbl(p_trx_id_tbl(i));
7659 
7660           END IF;
7661     IF ( g_level_statement>= g_current_runtime_level ) THEN
7662 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7663 	' X_CUST_CONDITION_CODE_TBL (i) for : '||' i: '||i||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_CUST_CONDITION_CODE_TBL(i)));
7664     END IF;
7665 
7666      END LOOP;
7667 
7668        IF (g_level_procedure >= g_current_runtime_level ) THEN
7669      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE.END',
7670                                       'GET_CUSTOMER_CONDITION_CODE(-)');
7671    END IF;
7672 
7673 END get_customer_condition_code;
7674 
7675 
7676 PROCEDURE GET_DGI_TAX_REGIME_CODE
7677 (
7678 P_VAT_PERCEP_TAX              IN         VARCHAR2,
7679 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
7680 P_TRX_LINE_ID_TBL             IN         ZX_EXTRACT_PKG.TRX_LINE_ID_TBL,
7681 P_INTERNAL_ORG_ID_TBL	      IN         ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
7682 P_REQUEST_ID                  IN         NUMBER,
7683 X_DGI_TAX_REGIME_CODE_TBL     OUT NOCOPY ATTRIBUTE25_TBL
7684 )
7685 IS
7686 
7687 l_dgi_tax_regime_code_tbl     ATTRIBUTE25_TBL;
7688 l_counted_trx_number          NUMBER;
7689 l_err_msg                     VARCHAR2(120);
7690 
7691 BEGIN
7692 
7693     IF (g_level_procedure >= g_current_runtime_level ) THEN
7694      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_TAX_REGIME_CODE.BEGIN',
7695                                       'GET_DGI_TAX_REGIME_CODE(+)');
7696    END IF;
7697 
7698       BEGIN
7699            SELECT count(distinct trx_id)
7700              INTO l_counted_trx_number
7701              FROM zx_rep_trx_detail_t
7702             WHERE request_id = p_request_id;
7703       EXCEPTION
7704            WHEN OTHERS THEN
7705 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7706 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7707 			'ZX_JL_EXTRACT_PKG.GET_DGI_TAX_REGIME_CODE : '||substrb(SQLERRM,1,120) );
7708 		END IF;
7709       END;
7710 
7711       IF (g_level_procedure >= g_current_runtime_level ) THEN
7712           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_TAX_REGIME_CODE',
7713                                       'l_counted_trx_number :'||to_char(l_counted_trx_number));
7714       END IF;
7715 
7716         FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
7717           IF l_dgi_tax_regime_code_tbl.EXISTS(p_trx_line_id_tbl(i)) THEN
7718              null;
7719           ELSE
7720               l_dgi_tax_regime_code_tbl(p_trx_line_id_tbl(i)) := null;
7721           END IF;
7722       IF (g_level_procedure >= g_current_runtime_level ) THEN
7723           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_TAX_REGIME_CODE',
7724                      'p_trx_id_tbl, p_trx_line_id_tbl :'||to_char(p_trx_id_tbl(i))||' '||to_char(p_trx_line_id_tbl(i)));
7725       END IF;
7726            IF l_dgi_tax_regime_code_tbl(p_trx_line_id_tbl(i)) IS NULL THEN
7727               BEGIN
7728                  SELECT val.tax_attr_value_code
7729                    INTO     l_dgi_tax_regime_code_tbl(p_trx_line_id_tbl(i))
7730                  FROM   zx_lines lines,
7731                         jl_zz_ar_tx_categ_all     catg,
7732                         jl_zz_ar_tx_att_cls_all attcls,
7733                         jl_zz_ar_tx_att_val_all val
7734                  WHERE  catg.tax_category  = P_VAT_PERCEP_TAX
7735                  ANd   catg.tax_category  = lines.tax
7736                  AND    attcls.tax_attribute_value = val.tax_attribute_value
7737                  AND    attcls.tax_category_id     = val.tax_category_id
7738                  AND    attcls.tax_attribute_name  = val.tax_attribute_name
7739                  AND    val.tax_attribute_type   = 'TRANSACTION_ATTRIBUTE'
7740                  AND    attcls.tax_category_id     = catg.tax_category_id
7741                  AND    attcls.tax_attr_class_code = lines.global_attribute3
7742                  AND    lines.trx_id = p_trx_id_tbl(i)
7743                  AND    lines.trx_line_id = p_trx_line_id_tbl(i)
7744                  AND    attcls.ORG_ID = CATG.ORG_ID
7745                  AND    CATG.ORG_ID = VAL.ORG_ID
7746                  AND    lines.internal_organization_id = val.org_id
7747                  AND    VAL.ORG_ID = P_INTERNAL_ORG_ID_TBL(i);
7748 
7749                  IF (g_level_procedure >= g_current_runtime_level ) THEN
7750                    FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CUSTOMER_CONDITION_CODE',
7751                    'l_dgi_tax_regime_code :'||l_dgi_tax_regime_code_tbl(p_trx_line_id_tbl(i)));
7752                 END IF;
7753 
7754                   X_DGI_TAX_REGIME_CODE_TBL(i) := l_dgi_tax_regime_code_tbl(p_trx_line_id_tbl(i));
7755 
7756              EXCEPTION
7757                WHEN NO_DATA_FOUND THEN
7758                    X_DGI_TAX_REGIME_CODE_TBL(i) :=NULL;
7759 		IF (g_level_statement>= g_current_runtime_level ) THEN
7760 		   FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7761 			'ZX_JL_EXTRACT_PKG.GET_DGI_TAX_REGIME_CODE : '||substrb(SQLERRM,1,120) );
7762 		END IF;
7763                WHEN OTHERS THEN
7764 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7765 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7766 			'ZX_JL_EXTRACT_PKG.GET_DGI_TAX_REGIME_CODE : '||substrb(SQLERRM,1,120) );
7767 		END IF;
7768 
7769              END;
7770 
7771           ELSE
7772 
7773                   X_DGI_TAX_REGIME_CODE_TBL(i) := l_dgi_tax_regime_code_tbl(p_trx_line_id_tbl(i));
7774 
7775           END IF;
7776 
7777      END LOOP;
7778 
7779        IF (g_level_procedure >= g_current_runtime_level ) THEN
7780           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_TAX_REGIME_CODE.END',
7781                                       'GET_DGI_TAX_REGIME_CODE(-)');
7782        END IF;
7783 
7784 END GET_DGI_TAX_REGIME_CODE;
7785 
7786 /*===========================================================================+
7787  | PROCEDURE                                                                  |
7788  |   GET_VAT_REG_STAT_CODE                                                   |
7789  |   Type       : Private                                                    |
7790  |   Pre-req    : None                                                       |
7791  |   Function   :                                                            |
7792  |    This function returns the Customer VAT Registration Status Code        |
7793  |    from fnd_lookups, jl_zz_ar_tx_cus_cls and jl_zz_ar_tx_categry table to |
7794  |    meet the requirement in the flat file                                  |
7795  |                                                                           |
7796  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                              |
7797  |                                                                           |
7798  |   Parameters :                                                            |
7799  |   IN         :  p_use_site_prof    IN VARCHAR2  Required                  |
7800  |                 p_class_code       IN VARCHAR2  Required                  |
7801  |                 p_address_id       IN NUMBER    Required                  |
7802  |                 p_tax_category_id  IN NUMBER    Required                  |
7803  |                                                                           |
7804  |   MODIFICATION HISTORY                                                    |
7805  |     07-Nov-03  Hidetaka Kojima   created                                  |
7806  |                                                                           |
7807  |                                                                           |
7808  +===========================================================================*/
7809 
7810 PROCEDURE GET_VAT_REG_STAT_CODE
7811 (
7812 P_VAT_TAX                     IN         VARCHAR2,
7813 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
7814 P_INTERNAL_ORG_ID_TBL 	      IN         ZX_EXTRACT_PKG.INTERNAL_ORGANIZATION_ID_TBL,
7815 P_REQUEST_ID                  IN         NUMBER,
7816 X_VAT_REG_STAT_CODE_TBL       OUT NOCOPY ATTRIBUTE8_TBL
7817 )
7818 IS
7819 
7820 l_vat_reg_stat_code_tbl       ATTRIBUTE8_TBL;
7821 l_counted_trx_number          NUMBER;
7822 l_address_id                  NUMBER;
7823 l_class_code                  VARCHAR2(150);
7824 l_use_site_prof               VARCHAR2(150);
7825 l_err_msg                     VARCHAR2(120);
7826 
7827  BEGIN
7828 
7829     IF (g_level_procedure >= g_current_runtime_level ) THEN
7830      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_REG_STAT_CODE.BEGIN',
7831                                       'GET_VAT_REG_STAT_CODE(+)');
7832    END IF;
7833 
7834       BEGIN
7835 
7836            SELECT count(distinct trx_id)
7837              INTO l_counted_trx_number
7838              FROM zx_rep_trx_detail_t
7839             WHERE request_id = p_request_id;
7840 
7841     IF (g_level_procedure >= g_current_runtime_level ) THEN
7842      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_REG_STAT_CODE.BEGIN',
7843              'GET_VAT_REG_STAT_CODE : transaction count '||to_char(l_counted_trx_number));
7844    END IF;
7845 
7846       EXCEPTION
7847 
7848            WHEN OTHERS THEN
7849   		IF ( g_level_statement>= g_current_runtime_level ) THEN
7850 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7851 			'ZX_JL_EXTRACT_PKG.GET_VAT_REG_STAT_CODE : '||substrb(SQLERRM,1,120) );
7852 		END IF;
7853 
7854       END;
7855 
7856 
7857       FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
7858 IF ( g_level_statement>= g_current_runtime_level ) THEN
7859         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7860         ' For Loop 0 : X_VAT_REG_STAT_CODE_TBL for i: ');
7861     END IF;
7862 
7863 
7864           IF l_vat_reg_stat_code_tbl.EXISTS(p_trx_id_tbl(i)) THEN
7865              null;
7866           ELSE
7867                l_vat_reg_stat_code_tbl(p_trx_id_tbl(i)) := null;
7868           END IF;
7869 
7870    IF ( g_level_statement>= g_current_runtime_level ) THEN
7871         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7872         ' For Loop1 : X_VAT_REG_STAT_CODE_TBL for i: ');
7873     END IF;
7874 
7875           IF l_vat_reg_stat_code_tbl(p_trx_id_tbl(i)) is null THEN
7876 
7877              BEGIN
7878    IF ( g_level_statement>= g_current_runtime_level ) THEN
7879         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7880         'For Loop 1-1: l_use_site_prof : '||l_use_site_prof);
7881     END IF;
7882 
7883                   SELECT add1.cust_acct_site_id,
7884                          add1.global_attribute8,
7885                          NVL(add1.global_attribute9,'N')
7886                     INTO l_address_id,
7887                          l_class_code,
7888                          l_use_site_prof
7889                     FROM ra_customer_trx_all  trx,
7890                          hz_cust_accounts cust,
7891                          hz_cust_acct_sites_all add1,
7892                          hz_cust_site_uses_all  site
7893                    WHERE trx.customer_trx_id = p_trx_id_tbl(i)
7894                      AND cust.cust_account_id = NVL(trx.ship_to_customer_id,trx.bill_to_customer_id)
7895                      AND cust.cust_account_id = add1.cust_account_id
7896                      AND site.cust_acct_site_id = add1.cust_acct_site_id
7897                      AND site.site_use_id = NVL(trx.bill_to_site_use_id, ship_to_site_use_id);
7898 
7899    IF ( g_level_statement>= g_current_runtime_level ) THEN
7900         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7901         'For Loop 2: l_use_site_prof : '||l_use_site_prof);
7902     END IF;
7903 
7904                    IF l_use_site_prof = 'Y' THEN
7905 
7906                       SELECT  lkp.meaning
7907                         INTO  l_vat_reg_stat_code_tbl(p_trx_id_tbl(i))
7908                         FROM  jl_zz_ar_tx_cus_cls_all cls,
7909                               jl_zz_ar_tx_categ_all catg,
7910                               fnd_lookups   lkp
7911                        WHERE  cls.tax_attr_class_code = l_class_code
7912                          AND  cls.tax_attribute_name =  'VAT CONT STATUS'
7913                          AND  cls.tax_category_id = catg.tax_category_id
7914                          AND  cls.address_id  = l_address_id
7915                          AND  lkp.lookup_type = 'JLZZ_AR_TX_ATTR_VALUE'
7916                          AND  lkp.lookup_code = cls.tax_attribute_value
7917                          AND  cls.enabled_flag = 'Y'
7918                          AND  cls.org_id = catg.org_id
7919                          AND  cls.org_id = p_internal_org_id_tbl(i)
7920                          AND  catg.tax_category = p_vat_tax;
7921 
7922                    ELSE
7923 
7924                       SELECT  lkp.meaning
7925                         INTO  l_vat_reg_stat_code_tbl(p_trx_id_tbl(i))
7926                         FROM  jl_zz_ar_tx_att_cls_all cls,
7927                               jl_zz_ar_tx_categ_all catg,
7928                               fnd_lookups   lkp
7929                        WHERE  cls.tax_attr_class_type = 'CONTRIBUTOR_CLASS'
7930                          AND  cls.tax_attr_class_code =  l_class_code
7931                          AND  cls.tax_attribute_name  = 'VAT CONT STATUS'
7932                          AND  lkp.lookup_type = 'JLZZ_AR_TX_ATTR_VALUE'
7933                          AND  lkp.lookup_code = cls.tax_attribute_value
7934                          AND  cls.tax_attribute_type = 'CONTRIBUTOR_ATTRIBUTE'
7935                          AND  cls.enabled_flag = 'Y'
7936                          AND  cls.tax_category_id  = catg.tax_category_id
7937                          AND  catg.tax_category = p_vat_tax
7938                          AND  cls.org_id = catg.org_id
7939                          AND  cls.org_id = p_internal_org_id_tbl(i);
7940 
7941                    END IF;
7942 
7943 
7944                    X_VAT_REG_STAT_CODE_TBL(i) := l_vat_reg_stat_code_tbl(p_trx_id_tbl(i));
7945   IF ( g_level_statement>= g_current_runtime_level ) THEN
7946         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7947         'For Loop 3: X_VAT_REG_STAT_CODE_TBL for i: '||i||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_REG_STAT_CODE_TBL(i)));
7948     END IF;
7949 
7950 
7951              EXCEPTION
7952 
7953                   WHEN NO_DATA_FOUND THEN
7954                      IF ( g_level_statement>= g_current_runtime_level ) THEN
7955                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7956                         'ZX_JL_EXTRACT_PKG.GET_VAT_REG_STAT_CODE : No data Found ');
7957                      END IF;
7958                    X_VAT_REG_STAT_CODE_TBL(i) := NULL;
7959 
7960                   WHEN OTHERS THEN
7961 		IF ( g_level_statement>= g_current_runtime_level ) THEN
7962 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7963 			'ZX_JL_EXTRACT_PKG.GET_VAT_REG_STAT_CODE : '||substrb(SQLERRM,1,120) );
7964 		END IF;
7965 
7966              END;
7967 
7968           ELSE
7969 
7970                    X_VAT_REG_STAT_CODE_TBL(i) := l_vat_reg_stat_code_tbl(p_trx_id_tbl(i));
7971 
7972           END IF;
7973 
7974     IF ( g_level_statement>= g_current_runtime_level ) THEN
7975 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
7976 	' X_VAT_REG_STAT_CODE_TBL for i: '||i||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_VAT_REG_STAT_CODE_TBL(i)));
7977     END IF;
7978 
7979       END LOOP;
7980 
7981     IF (g_level_procedure >= g_current_runtime_level ) THEN
7982      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_REG_STAT_CODE.END',
7983                                       'GET_VAT_REG_STAT_CODE(-)');
7984    END IF;
7985 
7986 END get_vat_reg_stat_code;
7987 
7988 /*===========================================================================+
7989  | PROCEDURE                                                                 |
7990  |   GET_REC_COUNT                                                           |
7991  |   Type       : Private                                                    |
7992  |   Pre-req    : None                                                       |
7993  |   Function   :                                                            |
7994  |    This function returns the Tax Authority Code                           |
7995  |    from jl_zz_ar_tx_categ table to  meet the requirement in the flat file |
7996  |                                                                           |
7997  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                              |
7998  |                                                                           |
7999  |   Parameters :                                                            |
8000  |   IN         :  p_vat_tax IN                                              |
8001  |                              ZX_REP_TRX_DETAIL_T.TAX%TYPE     Required  |
8002  |                                                                           |
8003  |   MODIFICATION HISTORY                                                    |
8004  |     07-Nov-03  Hidetaka Kojima   created                                  |
8005  |                                                                           |
8006  |                                                                           |
8007  +===========================================================================*/
8008 
8009 
8010 PROCEDURE GET_REC_COUNT
8011 (
8012 P_VAT_TAX            IN          ZX_REP_TRX_DETAIL_T.TAX%TYPE,
8013 P_TAX_REGIME         IN          ZX_REP_TRX_DETAIL_T.TAX_REGIME_CODE%TYPE,
8014 P_TRX_ID_TBL         IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
8015 P_REQUEST_ID         IN          NUMBER,
8016 X_REC_COUNT_TBL      OUT NOCOPY  NUMERIC11_TBL
8017 )
8018 IS
8019 
8020 l_rec_count_tbl                  NUMERIC11_TBL;
8021 
8022 BEGIN
8023 
8024 
8025     IF (g_level_procedure >= g_current_runtime_level ) THEN
8026      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_REC_COUNT.BEGIN',
8027                                       'GET_REC_COUNT(+)');
8028    END IF;
8029 
8030       FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
8031 
8032           IF l_rec_count_tbl.EXISTS(p_trx_id_tbl(i)) THEN
8033              null;
8034           ELSE
8035               l_rec_count_tbl(p_trx_id_tbl(i)) := null;
8036           END IF;
8037 
8038           IF l_rec_count_tbl(p_trx_id_tbl(i)) is null THEN
8039 
8040              BEGIN
8041 
8042                   SELECT count(distinct tax_rate)
8043                     INTO l_rec_count_tbl(p_trx_id_tbl(i))
8044                     FROM zx_rep_trx_detail_t
8045                    WHERE request_id = p_request_id
8046                      AND trx_id = p_trx_id_tbl(i)
8047                      AND tax_regime_code = p_tax_regime
8048                      AND tax = p_vat_tax;
8049 
8050                   X_REC_COUNT_TBL(i) := l_rec_count_tbl(p_trx_id_tbl(i));
8051 
8052              EXCEPTION
8053 
8054                   WHEN OTHERS THEN
8055 
8056                        l_rec_count_tbl(p_trx_id_tbl(i)) := 0;
8057                        X_REC_COUNT_TBL(i) := l_rec_count_tbl(p_trx_id_tbl(i));
8058                        null;
8059              END;
8060 
8061 
8062           ELSE
8063 
8064               X_REC_COUNT_TBL(i) := l_rec_count_tbl(p_trx_id_tbl(i));
8065 
8066           END IF;
8067 
8068       END LOOP;
8069 
8070    IF (g_level_procedure >= g_current_runtime_level ) THEN
8071      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_REC_COUNT.END',
8072                                       'GET_REC_COUNT(-)');
8073    END IF;
8074 
8075 END get_rec_count;
8076 
8077 /*===========================================================================+
8078  | PROCEDURE                                                                 |
8079  |   GET_DGI_DOC_TYPE                                                        |
8080  |   Type       : Private                                                    |
8081  |   Pre-req    : None                                                       |
8082  |   Function   :                                                            |
8083  |    This function returns the DGI document type                            |
8084  |    from ap_invoices_all table to  meet the requirement in the flat file   |
8085  |                                                                           |
8086  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AP                           |
8087  |                                                                           |
8088  |   Parameters :                                                            |
8089  |   IN         :  P_TRX_ID_TBL IN ZX_EXTRACT_PKG.TRX_ID_TBL                 |
8090  |                                                                           |
8091  +==========================================================================*/
8092 PROCEDURE GET_DGI_DOC_TYPE
8093 (
8094 P_TRX_ID_TBL            IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
8095 X_DGI_DOC_TYPE_TBL      OUT NOCOPY  ATTRIBUTE1_TBL,
8096 X_GDF_AP_INV_ATT11_TBL  OUT NOCOPY  GDF_AP_INV_ATT11_TBL,
8097 X_GDF_AP_INV_ATT12_TBL  OUT NOCOPY  GDF_AP_INV_ATT12_TBL
8098 )
8099 IS
8100 
8101 l_dgi_doc_type_tbl       ATTRIBUTE1_TBL;
8102 l_gdf_ap_inv_att11_tbl   GDF_AP_INV_ATT11_TBL;
8103 l_gdf_ap_inv_att12_tbl   GDF_AP_INV_ATT12_TBL;
8104 
8105 BEGIN
8106 
8107 
8108     IF (g_level_procedure >= g_current_runtime_level ) THEN
8109      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_DOC_TYPE.BEGIN',
8110                                       'GET_DGI_DOC_TYP(+)');
8111    END IF;
8112 
8113       FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
8114 
8115           IF l_dgi_doc_type_tbl.EXISTS(p_trx_id_tbl(i)) THEN
8116              null;
8117           ELSE
8118               l_dgi_doc_type_tbl(p_trx_id_tbl(i)) := null;
8119           END IF;
8120 
8121           IF l_dgi_doc_type_tbl(p_trx_id_tbl(i)) is null THEN
8122 
8123              BEGIN
8124 
8125                   SELECT global_attribute11,
8126                          global_attribute12,
8127                          global_attribute13
8128                     INTO l_gdf_ap_inv_att11_tbl(p_trx_id_tbl(i)),
8129                          l_gdf_ap_inv_att12_tbl(p_trx_id_tbl(i)),
8130                          l_dgi_doc_type_tbl(p_trx_id_tbl(i))
8131                     FROM ap_invoices_all
8132                    WHERE invoice_id = p_trx_id_tbl(i);
8133 
8134                   X_GDF_AP_INV_ATT11_TBL(i)  := l_gdf_ap_inv_att11_tbl(p_trx_id_tbl(i));
8135                   X_GDF_AP_INV_ATT12_TBL(i)  := l_gdf_ap_inv_att12_tbl(p_trx_id_tbl(i));
8136                   X_DGI_DOC_TYPE_TBL(i) := l_dgi_doc_type_tbl(p_trx_id_tbl(i));
8137 
8138              EXCEPTION
8139                   WHEN OTHERS THEN
8140                     l_dgi_doc_type_tbl(p_trx_id_tbl(i)) := '0';
8141                     l_gdf_ap_inv_att11_tbl(p_trx_id_tbl(i)) := NULL;
8142                     l_gdf_ap_inv_att11_tbl(p_trx_id_tbl(i)) := NULL;
8143                     X_GDF_AP_INV_ATT11_TBL(i)  := l_gdf_ap_inv_att11_tbl(p_trx_id_tbl(i));
8144                     X_GDF_AP_INV_ATT12_TBL(i)  := l_gdf_ap_inv_att12_tbl(p_trx_id_tbl(i));
8145                     X_DGI_DOC_TYPE_TBL(i) := l_dgi_doc_type_tbl(p_trx_id_tbl(i));
8146                     NULL;
8147              END;
8148 
8149 
8150           ELSE
8151 
8152                     X_GDF_AP_INV_ATT11_TBL(i)  := l_gdf_ap_inv_att11_tbl(p_trx_id_tbl(i));
8153                     X_GDF_AP_INV_ATT12_TBL(i)  := l_gdf_ap_inv_att12_tbl(p_trx_id_tbl(i));
8154                     X_DGI_DOC_TYPE_TBL(i) := l_dgi_doc_type_tbl(p_trx_id_tbl(i));
8155 
8156           END IF;
8157 
8158       END LOOP;
8159 
8160    IF (g_level_procedure >= g_current_runtime_level ) THEN
8161      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_DGI_DOC_TYPE.END',
8162                                       'GET_DGI_DOC_TYPE(-)');
8163    END IF;
8164 
8165 END GET_DGI_DOC_TYPE;
8166 
8167 
8168 PROCEDURE UPDATE_DGI_CURR_CODE
8169 (
8170 P_REQUEST_ID IN NUMBER
8171 )
8172  IS
8173  BEGIN
8174   IF (g_level_procedure >= g_current_runtime_level ) THEN
8175      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.UPDATE_DGI_CURR_CODE.END',
8176                                       'UPDATE_DGI_CURR_CODE(+)');
8177    END IF;
8178 
8179     UPDATE zx_rep_trx_detail_t dtl
8180         SET gdf_fnd_currencies_att1= (SELECT global_attribute1
8181                                         FROM fnd_currencies
8182                                        WHERE currency_code = dtl.trx_currency_code)
8183     WHERE request_id = p_request_id;
8184 
8185   IF (g_level_procedure >= g_current_runtime_level ) THEN
8186      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.UPDATE_DGI_CURR_CODE.END',
8187                                       'UPDATE_DGI_CURR_CODE(-)');
8188    END IF;
8189 
8190 END;
8191 
8192 
8193 /*===========================================================================+
8194  | PROCEDURE                                                                 |
8195  |   GET_VAT_NONVAT_RATE_COUNT                                                           |
8196  |   Type       : Private                                                    |
8197  |   Pre-req    : None                                                       |
8198  |   Function   :                                                            |
8199  |    This function returns the Tax Authority Code                           |
8200  |    from jl_zz_ar_tx_categ table to  meet the requirement in the flat file |
8201  |                                                                           |
8202  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                              |
8203  |                                                                           |
8204  |   Parameters :                                                            |
8205  |   IN         :  p_vat_tax IN                                              |
8206  |                              ZX_REP_TRX_DETAIL_T.TAX%TYPE     Required  |
8207  |                                                                           |
8208  |   MODIFICATION HISTORY                                                    |
8209  |     07-Nov-03  Hidetaka Kojima   created                                  |
8210  |                                                                           |
8211  |                                                                           |
8212  +===========================================================================*/
8213 
8214 
8215 PROCEDURE GET_VAT_NONVAT_RATE_COUNT
8216 (
8217 P_VAT_TAX            IN          ZX_REP_TRX_DETAIL_T.TAX%TYPE,
8218 P_VAT_NON_TAX        IN          ZX_REP_TRX_DETAIL_T.TAX%TYPE,
8219 P_TAX_REGIME         IN          ZX_REP_TRX_DETAIL_T.TAX_REGIME_CODE%TYPE,
8220 P_TRX_ID_TBL         IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
8221 P_REQUEST_ID         IN          NUMBER,
8222 X_RATE_COUNT_TBL     OUT NOCOPY  NUMERIC13_TBL
8223 )
8224 IS
8225 
8226 l_rate_count_tbl                 NUMERIC13_TBL;
8227 
8228 BEGIN
8229 
8230 
8231     IF (g_level_procedure >= g_current_runtime_level ) THEN
8232      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_NONVAT_RATE_COUNT.BEGIN',
8233                                       'GET_VAT_NONVAT_RATE_COUNT(+)');
8234    END IF;
8235 
8236       FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
8237 
8238           IF l_rate_count_tbl.EXISTS(p_trx_id_tbl(i)) THEN
8239              null;
8240           ELSE
8241               l_rate_count_tbl(p_trx_id_tbl(i)) := null;
8242           END IF;
8243 
8244           IF l_rate_count_tbl(p_trx_id_tbl(i)) is null THEN
8245 
8246              BEGIN
8247 
8248                   SELECT count(distinct t1.tax_rate)
8249                     INTO l_rate_count_tbl(p_trx_id_tbl(i))
8250                     FROM zx_rep_trx_detail_t t1
8251                    WHERE t1.request_id = p_request_id
8252                      AND t1.trx_id = p_trx_id_tbl(i)
8253                      AND NVL(t1.TAX_TYPE_CODE, 'VAT') = 'VAT'
8254                      AND tax_regime_code = p_tax_regime
8255                      AND tax in (p_vat_tax, p_vat_non_tax)
8256                      AND EXISTS ( SELECT 1
8257                                     FROM zx_rep_trx_detail_t t2
8258                                    WHERE t2.request_id = p_request_id
8259                                      AND t2.trx_id = t1.trx_id
8260                                      AND t2.tax_rate = 0
8261                                      AND t2.tax_regime_code = p_tax_regime
8262                                      AND t2.tax = p_vat_non_tax);
8263 
8264                   X_RATE_COUNT_TBL(i) := l_rate_count_tbl(p_trx_id_tbl(i));
8265 
8266              EXCEPTION
8267 
8268                   WHEN OTHERS THEN
8269 
8270                        l_rate_count_tbl(p_trx_id_tbl(i)) := 1;
8271                        X_RATE_COUNT_TBL(i) := l_rate_count_tbl(p_trx_id_tbl(i));
8272                        null;
8273              END;
8274 
8275 
8276           ELSE
8277 
8278               X_RATE_COUNT_TBL(i) := l_rate_count_tbl(p_trx_id_tbl(i));
8279 
8280           END IF;
8281 
8282       END LOOP;
8283 
8284    IF (g_level_procedure >= g_current_runtime_level ) THEN
8285      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_VAT_NONVAT_RATE_COUNT.END',
8286                                       'GET_VAT_NONVAT_RATE_COUNT(-)');
8287    END IF;
8288 
8289 END get_vat_nonvat_rate_count;
8290 
8291 /*===========================================================================+
8292  | PROCEDURE                                                                 |
8293  |   GET_TOTAL_DOCUMENT_AMOUNT                                               |
8294  |   Type       : Private                                                    |
8295  |   Pre-req    : None                                                       |
8296  |   Function   :                                                            |
8297  |    This function returns the Tax Authority Code                           |
8298  |    from jl_zz_ar_tx_categ table to  meet the requirement in the flat file |
8299  |                                                                           |
8300  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                              |
8301  |                                                                           |
8302  |   Parameters :                                                            |
8303  |   IN         :  p_trx_id_tbl IN  ZX_EXTRACT_PKG.TRX_ID_TBL    Required    |
8304  |                                                                           |
8305  |   MODIFICATION HISTORY                                                    |
8306  |     07-Nov-03  Hidetaka Kojima   created                                  |
8307  |                                                                           |
8308  |                                                                           |
8309  +===========================================================================*/
8310 
8311 
8312 PROCEDURE GET_TOTAL_DOCUMENT_AMOUNT
8313 (
8314 P_TRX_ID_TBL                IN          ZX_EXTRACT_PKG.TRX_ID_TBL,
8315 P_EXCHANGE_RATE_TBL         IN          ZX_EXTRACT_PKG.CURRENCY_CONVERSION_RATE_TBL,
8316 P_REPORT_NAME               IN          VARCHAR2,
8317 X_TOTAL_DOC_AMT_TBL         OUT NOCOPY  NUMERIC12_TBL
8318 )
8319 IS
8320 
8321 l_total_doc_amt_tbl         NUMERIC12_TBL;
8322 l_gdf_ra_cust_trx_att19_tbl GDF_RA_CUST_TRX_ATT19_TBL;
8323 
8324 BEGIN
8325 
8326     IF (g_level_procedure >= g_current_runtime_level ) THEN
8327      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT.BEGIN',
8328                                       'GET_TOTAL_DOCUMENT_AMOUNT(+)');
8329    END IF;
8330 
8331 
8332 
8333      FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
8334 --Bug 5396444
8335    IF (g_level_statement >= g_current_runtime_level ) THEN
8336      FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT',
8337                                       'i :'||i);
8338      FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT',
8339                                       'trx_id :'||P_TRX_ID_TBL(i));
8340      FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT',
8341                                       'P_EXCHANGE_RATE_TBL :'||P_EXCHANGE_RATE_TBL(i));
8342    END IF;
8343 
8344          IF l_total_doc_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
8345             null;
8346          ELSE
8347              l_total_doc_amt_tbl(p_trx_id_tbl(i)) := NULL;
8348          END IF;
8349 
8350          IF l_total_doc_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
8351 
8352             IF P_REPORT_NAME = 'JLARTPFF' THEN
8353 
8354                SELECT abs(sum(nvl(extended_amount,0) * nvl(p_exchange_rate_tbl(i),1)))
8355                  INTO l_total_doc_amt_tbl(p_trx_id_tbl(i))
8356 	         FROM ra_customer_trx_lines
8357                 WHERE customer_trx_id = p_trx_id_tbl(i);
8358 
8359             ELSIF P_REPORT_NAME = 'ZXCOARSB' THEN -- : Total Doc Amt.
8360 
8361 	       SELECT (SUM(DECODE(ctl.line_type,'LINE', NVL(ctl.extended_amount,0),0))
8362                           + SUM(DECODE(ctl.line_type,'FREIGHT',NVL(ctl.extended_amount,0),0))
8363                           + SUM(DECODE(ctl.line_type,'CHARGE',NVL(ctl.extended_amount,0),0)))-- *  p_exchange_rate_tbl(i)
8364                  INTO l_total_doc_amt_tbl(p_trx_id_tbl(i))
8365                  FROM ra_customer_trx_lines_all ctl --Bug 5396444
8366                 WHERE ctl.customer_trx_id = p_trx_id_tbl(i);
8367 
8368             ELSIF P_REPORT_NAME = 'ZXZZTVSR' THEN
8369 
8370               SELECT (nvl(SUM(NVL(L.GROSS_EXTENDED_AMOUNT, nvl(L.EXTENDED_AMOUNT,0))),0) * p_exchange_rate_tbl(i))
8371                 INTO  l_total_doc_amt_tbl(p_trx_id_tbl(i))
8372                 FROM  RA_CUSTOMER_TRX_LINES L
8373                WHERE  L.CUSTOMER_TRX_ID = p_trx_id_tbl(i);
8374 
8375             ELSIF P_REPORT_NAME in ('JLARTSFF','JLARTDFF') THEN
8376 
8377                  IF ( g_level_statement>= g_current_runtime_level ) THEN
8378                     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
8379                'ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT : att19 '||P_REPORT_NAME);
8380                  END IF;
8381 
8382 
8383                     IF l_gdf_ra_cust_trx_att19_tbl.EXISTS(p_trx_id_tbl(i)) THEN
8384                        null;
8385                     ELSE
8386                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) := null;
8387                     END IF;
8388 
8389                     IF ( l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'IS_NULL' and
8390                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) <> 'NOT_NULL' ) OR
8391                          l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) IS NULL THEN
8392 
8393                         BEGIN
8394 
8395                                   SELECT  decode(global_attribute19,NULL,'IS_NULL','NOT_NULL')
8396                                     INTO  l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i))
8397                                     FROM  ra_customer_trx_all
8398                                    WHERE  customer_trx_id = p_trx_id_tbl(i);
8399 
8400                  IF ( g_level_statement>= g_current_runtime_level ) THEN
8401                     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
8402                    'ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT : att19 '||l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)));
8403                  END IF;
8404 
8405                     EXCEPTION
8406                        WHEN OTHERS THEN
8407 		         IF ( g_level_statement>= g_current_runtime_level ) THEN
8408 		            FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
8409 		            'ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT : '||substrb(SQLERRM,1,120) );
8410 			 END IF;
8411                     END;
8412 
8413                     END IF;
8414 
8415                     IF l_gdf_ra_cust_trx_att19_tbl(p_trx_id_tbl(i)) = 'IS_NULL' THEN
8416 
8417                        IF P_REPORT_NAME= 'JLARTDFF' THEN
8418 
8419                           SELECT nvl(SUM(abs(NVL(GROSS_EXTENDED_AMOUNT, nvl(EXTENDED_AMOUNT,0)))),0)
8420                             INTO l_total_doc_amt_tbl(p_trx_id_tbl(i))
8421 	                    FROM ra_customer_trx_lines
8422                            WHERE customer_trx_id = p_trx_id_tbl(i);
8423 
8424                        ELSIF P_REPORT_NAME = 'JLARTSFF' THEN
8425 
8426                  IF ( g_level_statement>= g_current_runtime_level ) THEN
8427                     FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
8428                 'ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT : exchange rate : '||to_char(p_exchange_rate_tbl(i)));
8429                  END IF;
8430 
8431                             SELECT (nvl(SUM(NVL(L.GROSS_EXTENDED_AMOUNT, nvl(L.EXTENDED_AMOUNT,0))),0)
8432                                     * nvl(p_exchange_rate_tbl(i),1))
8433                               INTO   l_total_doc_amt_tbl(p_trx_id_tbl(i))
8434                               FROM   RA_CUSTOMER_TRX_LINES L
8435                              WHERE  L.CUSTOMER_TRX_ID = p_trx_id_tbl(i);
8436                        END IF;
8437 
8438                    ELSE
8439                           l_total_doc_amt_tbl(p_trx_id_tbl(i)) := 0;
8440                    END IF;
8441 
8442             ELSIF P_REPORT_NAME = 'JLARPPFF' THEN
8443 
8444                      SELECT abs(nvl(SUM(NVL(aid.base_amount, aid.amount)),0))
8445                        INTO l_total_doc_amt_tbl(p_trx_id_tbl(i))
8446                        FROM ap_invoice_distributions aid
8447                       WHERE aid.invoice_id = p_trx_id_tbl(i)
8448                         AND aid.line_type_lookup_code <> 'AWT';
8449             END IF;
8450 
8451             X_TOTAL_DOC_AMT_TBL(i) := l_total_doc_amt_tbl(p_trx_id_tbl(i));
8452 
8453          ELSE
8454 
8455         --    X_TOTAL_DOC_AMT_TBL(i) := l_total_doc_amt_tbl(p_trx_id_tbl(i));
8456             X_TOTAL_DOC_AMT_TBL(i) := 0;
8457 
8458          END IF;
8459 
8460 
8461    IF ( g_level_statement>= g_current_runtime_level ) THEN
8462 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
8463 	' X_TOTAL_DOC_AMT_TBL for Report Name  : '||p_report_name ||' i: '||i||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_TOTAL_DOC_AMT_TBL(i)));
8464     END IF;
8465 
8466      END LOOP;
8467    IF (g_level_procedure >= g_current_runtime_level ) THEN
8468      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOCUMENT_AMOUNT.END',
8469                                       'GET_TOTAL_DOCUMENT_AMOUNT(-)');
8470    END IF;
8471 
8472 END GET_TOTAL_DOCUMENT_AMOUNT;
8473 
8474 
8475 
8476 PROCEDURE DGI_TRX_CODE
8477 (
8478 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8479 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8480 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.tax_rate_id_tbl,
8481 X_DGI_TRX_CODE_TBL            OUT NOCOPY ATTRIBUTE4_TBL
8482 ) IS
8483 
8484 
8485   l_dgi_trx_code_tbl        ATTRIBUTE4_TBL;
8486   l_err_msg                   VARCHAR2(120);
8487 
8488 
8489 
8490 BEGIN
8491     IF (g_level_procedure >= g_current_runtime_level ) THEN
8492         FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE.BEGIN',
8493                                       'DGI_TRX_CODE(+)');
8494     END IF;
8495 
8496      FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
8497 
8498          IF ( g_level_statement>= g_current_runtime_level ) THEN
8499                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8500                                  'P_TAX_RATE_ID_TBL: '||to_char(P_TAX_RATE_ID_TBL(i)));
8501                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8502                                  'P_TAX_REGIME_CODE_TBL : '||P_TAX_REGIME_CODE_TBL(i));
8503          END IF;
8504 
8505          IF l_dgi_trx_code_tbl.EXISTS(p_tax_rate_id_tbl(i)) THEN
8506              NULL;
8507           ELSE
8508               l_dgi_trx_code_tbl(p_tax_rate_id_tbl(i)) := null;
8509           END IF;
8510 
8511           IF l_dgi_trx_code_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8512              BEGIN
8513                SELECT rep_ass.reporting_code_char_value
8514                  INTO l_dgi_trx_code_tbl(p_tax_rate_id_tbl(i))
8515                  FROM zx_reporting_types_b rep_type,
8516                       zx_report_codes_assoc rep_ass
8517                 WHERE rep_type.reporting_type_code = 'AR_DGI_TRX_CODE'
8518                   AND rep_ass.reporting_type_id = rep_type.reporting_type_id
8519                   AND rep_ass.entity_code = 'ZX_RATES'
8520                   AND rep_ass.entity_id =P_TAX_RATE_ID_TBL(i)
8521                   AND rep_type.tax_regime_code =P_TAX_REGIME_CODE_TBL(i);
8522 
8523 
8524              EXCEPTION
8525               WHEN NO_DATA_FOUND THEN
8526        IF (g_level_procedure >= g_current_runtime_level ) THEN
8527           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8528                        'NO_DATA_FOUND : '||to_char(i));
8529        END IF;
8530                 X_DGI_TRX_CODE_TBL(i) := NULL;
8531                 --X_DGI_TRX_CODE_TBL(i) := 'T';
8532             END;
8533 
8534             IF l_dgi_trx_code_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8535                X_DGI_TRX_CODE_TBL(i) := NULL;
8536                --X_DGI_TRX_CODE_TBL(i) := 'T';
8537             ELSE
8538                X_DGI_TRX_CODE_TBL(i) := l_dgi_trx_code_tbl(p_tax_rate_id_tbl(i));
8539             END IF;
8540        ELSE
8541                X_DGI_TRX_CODE_TBL(i) := l_dgi_trx_code_tbl(p_tax_rate_id_tbl(i));
8542        END IF;
8543        IF (g_level_procedure >= g_current_runtime_level ) THEN
8544           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8545                        'l_dgi_trx_code_tbl : '||to_char(i) ||':'|| X_DGI_TRX_CODE_TBL(i));
8546        END IF;
8547      END LOOP;
8548 
8549        IF (g_level_procedure >= g_current_runtime_level ) THEN
8550           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE.END',
8551                                       'DGI_TRX_CODE(-)');
8552        END IF;
8553 
8554 
8555  EXCEPTION
8556      WHEN NO_DATA_FOUND THEN
8557                IF ( g_level_statement>= g_current_runtime_level ) THEN
8558                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8559                         'ZX_JL_EXTRACT_PKG.DGI_TRX_CODE : '||substrb(SQLERRM,1,120) );
8560                 END IF;
8561 
8562      WHEN OTHERS THEN
8563 
8564 		IF ( g_level_statement>= g_current_runtime_level ) THEN
8565 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8566 			'ZX_JL_EXTRACT_PKG.DGI_TRX_CODE : '||substrb(SQLERRM,1,120) );
8567 		END IF;
8568 
8569 END DGI_TRX_CODE;
8570 
8571 
8572 PROCEDURE GET_TAX_AUTH_CATEG
8573 (
8574 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8575 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8576 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.tax_rate_id_tbl,
8577 X_TAX_AUTH_CATEG_TBL          OUT NOCOPY ATTRIBUTE10_TBL
8578 ) IS
8579 
8580 
8581   l_tax_auth_categ_tbl        ATTRIBUTE10_TBL;
8582   l_err_msg                   VARCHAR2(120);
8583 
8584 
8585 
8586 BEGIN
8587     IF (g_level_procedure >= g_current_runtime_level ) THEN
8588         FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTH_CATEG.BEGIN',
8589                                       'GET_TAX_AUTH_CATEG(+)');
8590     END IF;
8591 
8592      FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
8593 
8594          IF ( g_level_statement>= g_current_runtime_level ) THEN
8595                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8596                                  'P_TAX_RATE_ID_TBL: '||to_char(P_TAX_RATE_ID_TBL(i)));
8597                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8598                                  'P_TAX_REGIME_CODE_TBL : '||P_TAX_REGIME_CODE_TBL(i));
8599          END IF;
8600 
8601          IF l_tax_auth_categ_tbl.EXISTS(p_tax_rate_id_tbl(i)) THEN
8602              NULL;
8603           ELSE
8604               l_tax_auth_categ_tbl(p_tax_rate_id_tbl(i)) := null;
8605           END IF;
8606 
8607           IF l_tax_auth_categ_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8608           BEGIN
8609              SELECT rep_ass.reporting_code_char_value
8610                INTO l_tax_auth_categ_tbl(p_tax_rate_id_tbl(i))
8611                FROM zx_reporting_types_b rep_type,
8612                     zx_report_codes_assoc rep_ass
8613               WHERE rep_type.reporting_type_code = 'AR_TAX_AUTHORITY_CATEG'
8614                 AND rep_ass.reporting_type_id = rep_type.reporting_type_id
8615                 AND rep_ass.entity_code = 'ZX_RATES'
8616                 AND rep_ass.entity_id =P_TAX_RATE_ID_TBL(i)
8617                 AND rep_type.tax_regime_code =P_TAX_REGIME_CODE_TBL(i);
8618 
8619 
8620            EXCEPTION
8621             WHEN NO_DATA_FOUND THEN
8622               X_TAX_AUTH_CATEG_TBL(i) := NULL;
8623 
8624          END;
8625 
8626           IF l_tax_auth_categ_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8627            X_TAX_AUTH_CATEG_TBL(i) := NULL;
8628           ELSE
8629            X_TAX_AUTH_CATEG_TBL(i) := l_tax_auth_categ_tbl(p_tax_rate_id_tbl(i));
8630           END IF;
8631        END IF;
8632      END LOOP;
8633 
8634        IF (g_level_procedure >= g_current_runtime_level ) THEN
8635           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTH_CATEG.END',
8636                                       'GET_TAX_AUTH_CATEG(-)');
8637        END IF;
8638 
8639 
8640  EXCEPTION
8641      WHEN NO_DATA_FOUND THEN
8642                IF ( g_level_statement>= g_current_runtime_level ) THEN
8643                   FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTH_CATEG',
8644                       'ZX_JL_EXTRACT_PKG.GET_TAX_AUTH_CATEG : '||substrb(SQLERRM,1,120) );
8645                 END IF;
8646 
8647      WHEN OTHERS THEN
8648 	IF ( g_level_statement>= g_current_runtime_level ) THEN
8649 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAX_AUTH_CATEG',
8650 		'ZX_JL_EXTRACT_PKG.GET_TAX_AUTH_CATEG : '||substrb(SQLERRM,1,120) );
8651 	END IF;
8652 
8653 END GET_TAX_AUTH_CATEG;
8654 
8655 
8656 PROCEDURE PROV_JURISDICTION_CODE
8657 (
8658 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8659 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8660 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.tax_rate_id_tbl,
8661 X_PROV_JURIS_CODE_TBL          OUT NOCOPY ATTRIBUTE1_TBL
8662 ) IS
8663 
8664   l_prov_juris_code_tbl       ATTRIBUTE1_TBL;
8665   l_err_msg                   VARCHAR2(120);
8666 
8667 
8668 
8669 BEGIN
8670     IF (g_level_procedure >= g_current_runtime_level ) THEN
8671         FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.PROV_JURISDICTION_CODE.BEGIN',
8672                                       'PROV_JURISDICTION_CODE(+)');
8673     END IF;
8674 
8675      FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
8676 
8677          IF ( g_level_statement>= g_current_runtime_level ) THEN
8678                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8679                                  'P_TAX_RATE_ID_TBL: '||to_char(P_TAX_RATE_ID_TBL(i)));
8680                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8681                                  'P_TAX_REGIME_CODE_TBL : '||P_TAX_REGIME_CODE_TBL(i));
8682          END IF;
8683 
8684          IF l_prov_juris_code_tbl.EXISTS(p_tax_rate_id_tbl(i)) THEN
8685            X_PROV_JURIS_CODE_TBL(i) := l_prov_juris_code_tbl(p_tax_rate_id_tbl(i));
8686            IF ( g_level_statement>= g_current_runtime_level ) THEN
8687                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8688                                  'P_TRX_ID_TBL: Not NULL '||to_char(P_TRX_ID_TBL(i))||'-'||to_char(i));
8689          END IF;
8690          IF ( g_level_statement>= g_current_runtime_level ) THEN
8691                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8692                                  'X_PROV_JURIS_CODE_TBL: '||l_prov_juris_code_tbl(p_tax_rate_id_tbl(i)));
8693          END IF;
8694 
8695              NULL;
8696           ELSE
8697               l_prov_juris_code_tbl(p_tax_rate_id_tbl(i)) := null;
8698            IF ( g_level_statement>= g_current_runtime_level ) THEN
8699                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8700                                  'P_TRX_ID_TBL: NULL assign '||to_char(P_TRX_ID_TBL(i))||'-'||to_char(i));
8701          END IF;
8702           END IF;
8703 
8704           IF l_prov_juris_code_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8705           BEGIN
8706            /*  SELECT rep_ass.reporting_code_char_value
8707                INTO l_prov_juris_code_tbl(p_tax_rate_id_tbl(i))
8708                FROM zx_reporting_types_b rep_type,
8709                     zx_report_codes_assoc rep_ass
8710               WHERE rep_type.reporting_type_code = 'AR_TURN_OVER_JUR_CODE'
8711                 AND rep_ass.reporting_type_id = rep_type.reporting_type_id
8712                 AND rep_ass.entity_code = 'ZX_RATES'
8713                 AND rep_ass.entity_id =P_TAX_RATE_ID_TBL(i)
8714                 AND rep_type.tax_regime_code =P_TAX_REGIME_CODE_TBL(i);
8715 
8716          IF ( g_level_statement>= g_current_runtime_level ) THEN
8717                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8718                                  'X_PROV_JURIS_CODE_TBL: '||l_prov_juris_code_tbl(p_tax_rate_id_tbl(i)));
8719          END IF;
8720 
8721            EXCEPTION
8722             WHEN NO_DATA_FOUND THEN
8723               X_PROV_JURIS_CODE_TBL(i) := NULL; */
8724               SELECT global_attribute5
8725                 INTO l_prov_juris_code_tbl(p_tax_rate_id_tbl(i))
8726                 FROM ar_vat_tax_all
8727                WHERE VAT_TAX_ID = P_TAX_RATE_ID_TBL(i);
8728 
8729               X_PROV_JURIS_CODE_TBL(i) := l_prov_juris_code_tbl(p_tax_rate_id_tbl(i));
8730 
8731          IF ( g_level_statement>= g_current_runtime_level ) THEN
8732                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8733                                  'X_PROV_JURIS_CODE_TBL: '||X_PROV_JURIS_CODE_TBL(i));
8734          END IF;
8735 
8736          END;
8737 
8738          -- IF l_prov_juris_code_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8739           -- X_PROV_JURIS_CODE_TBL(i) := NULL;
8740       -- ELSE
8741            X_PROV_JURIS_CODE_TBL(i) := l_prov_juris_code_tbl(p_tax_rate_id_tbl(i));
8742        END IF;
8743        --END IF;
8744      END LOOP;
8745 
8746        IF (g_level_procedure >= g_current_runtime_level ) THEN
8747           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.PROV_JURISDICTION_CODE.END',
8748                                       'PROV_JURISDICTION_CODE(-)');
8749        END IF;
8750 
8751 
8752  EXCEPTION
8753      WHEN NO_DATA_FOUND THEN
8754                IF ( g_level_statement>= g_current_runtime_level ) THEN
8755                   FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.PROV_JURISDICTION_CODE',
8756                       'ZX_JL_EXTRACT_PKG.PROV_JURISDICTION_CODE : '||substrb(SQLERRM,1,120) );
8757                 END IF;
8758 
8759      WHEN OTHERS THEN
8760 	IF ( g_level_statement>= g_current_runtime_level ) THEN
8761 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.PROV_JURISDICTION_CODE',
8762 		'ZX_JL_EXTRACT_PKG.PROV_JURISDICTION_CODE : '||substrb(SQLERRM,1,120) );
8763 	END IF;
8764 
8765 END PROV_JURISDICTION_CODE;
8766 
8767 
8768 PROCEDURE MUN_JURISDICTION_CODE
8769 (
8770 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8771 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8772 P_TAX_RATE_ID_TBL             IN ZX_EXTRACT_PKG.tax_rate_id_tbl,
8773 X_MUN_JURIS_CODE_TBL          OUT NOCOPY ATTRIBUTE3_TBL
8774 ) IS
8775 
8776 
8777   l_mun_juris_code_tbl       ATTRIBUTE3_TBL;
8778   l_err_msg                   VARCHAR2(120);
8779 
8780 
8781 
8782 BEGIN
8783     IF (g_level_procedure >= g_current_runtime_level ) THEN
8784         FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE.BEGIN',
8785                                       'MUN_JURISDICTION_CODE(+)');
8786     END IF;
8787 
8788      FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
8789 
8790          IF ( g_level_statement>= g_current_runtime_level ) THEN
8791                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8792                                  'P_TAX_RATE_ID_TBL: '||to_char(P_TAX_RATE_ID_TBL(i)));
8793                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.DGI_TRX_CODE',
8794                                  'P_TAX_REGIME_CODE_TBL : '||P_TAX_REGIME_CODE_TBL(i));
8795          END IF;
8796 
8797          IF l_mun_juris_code_tbl.EXISTS(p_tax_rate_id_tbl(i)) THEN
8798            X_MUN_JURIS_CODE_TBL(i) := l_mun_juris_code_tbl(p_tax_rate_id_tbl(i));
8799              NULL;
8800           ELSE
8801               l_mun_juris_code_tbl(p_tax_rate_id_tbl(i)) := null;
8802           END IF;
8803 
8804           IF l_mun_juris_code_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8805           BEGIN
8806           /*   SELECT rep_ass.reporting_code_char_value
8807                INTO l_mun_juris_code_tbl(p_tax_rate_id_tbl(i))
8808                FROM zx_reporting_types_b rep_type,
8809                     zx_report_codes_assoc rep_ass
8810               WHERE rep_type.reporting_type_code = 'AR_MUNICIPAL_JUR'
8811                 AND rep_ass.reporting_type_id = rep_type.reporting_type_id
8812                 AND rep_ass.entity_code = 'ZX_RATES'
8813                 AND rep_ass.entity_id =P_TAX_RATE_ID_TBL(i)
8814                 AND rep_type.tax_regime_code =P_TAX_REGIME_CODE_TBL(i);
8815 
8816 
8817          IF ( g_level_statement>= g_current_runtime_level ) THEN
8818                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE',
8819                                  'Reporting Types : X_MUN_JURIS_CODE_TBL: '||l_mun_juris_code_tbl(p_tax_rate_id_tbl(i)));
8820          END IF;
8821 
8822            EXCEPTION
8823             WHEN NO_DATA_FOUND THEN
8824               X_MUN_JURIS_CODE_TBL(i) := NULL; */
8825 
8826               SELECT global_attribute6
8827                 INTO l_mun_juris_code_tbl(p_tax_rate_id_tbl(i))
8828                 FROM ar_vat_tax_all
8829                WHERE VAT_TAX_ID = P_TAX_RATE_ID_TBL(i);
8830 
8831          IF ( g_level_statement>= g_current_runtime_level ) THEN
8832                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE',
8833                                  'Exception : X_MUN_JURIS_CODE_TBL: '||l_mun_juris_code_tbl(p_tax_rate_id_tbl(i)));
8834          END IF;
8835            X_MUN_JURIS_CODE_TBL(i) := l_mun_juris_code_tbl(p_tax_rate_id_tbl(i));
8836 
8837          END;
8838 
8839         --  IF l_mun_juris_code_tbl(p_tax_rate_id_tbl(i)) IS NULL THEN
8840          --  X_MUN_JURIS_CODE_TBL(i) := NULL;
8841          -- ELSE
8842            X_MUN_JURIS_CODE_TBL(i) := l_mun_juris_code_tbl(p_tax_rate_id_tbl(i));
8843           END IF;
8844          IF ( g_level_statement>= g_current_runtime_level ) THEN
8845                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE',
8846                                  'X_MUN_JURIS_CODE_TBL: '||X_MUN_JURIS_CODE_TBL(i));
8847          END IF;
8848 
8849        --END IF;
8850      END LOOP;
8851 
8852        IF (g_level_procedure >= g_current_runtime_level ) THEN
8853           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE.END',
8854                                       'MUN_JURISDICTION_CODE(-)');
8855        END IF;
8856 
8857 
8858  EXCEPTION
8859      WHEN NO_DATA_FOUND THEN
8860                IF ( g_level_statement>= g_current_runtime_level ) THEN
8861                   FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE',
8862                       'ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE : '||substrb(SQLERRM,1,120) );
8863                 END IF;
8864 
8865      WHEN OTHERS THEN
8866 	IF ( g_level_statement>= g_current_runtime_level ) THEN
8867 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE',
8868 		'ZX_JL_EXTRACT_PKG.MUN_JURISDICTION_CODE : '||substrb(SQLERRM,1,120) );
8869 	END IF;
8870 
8871 END MUN_JURISDICTION_CODE;
8872 
8873 /*
8874 PROCEDURE GET_CAI_NUM
8875 (
8876 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8877 P_REPORT_NAME                 IN          VARCHAR2,
8878 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8879 P_BILL_FROM_SITE_PROF_ID_TBL  IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
8880 P_BILL_FROM_SITE_ID_TBL       IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
8881 X_CAI_NUMBER_TBL              OUT NOCOPY ATTRIBUTE19_TBL,
8882 X_CAI_DUE_DATE_TBL            OUT NOCOPY ATTRIBUTE23_TBL
8883 ) IS
8884 
8885 
8886   l_cai_num_tbl        ATTRIBUTE19_TBL;
8887   l_cai_due_date_tbl        ATTRIBUTE23_TBL;
8888   l_rep_cai_num_tbl        ATTRIBUTE19_TBL;
8889   l_err_msg                   VARCHAR2(120);
8890 
8891 
8892 PROCEDURE GET_CAI_NUM
8893 PROCEDURE GET_CAI_NUM
8894 (
8895 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8896 P_REPORT_NAME                 IN          VARCHAR2,
8897 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8898 P_BILL_FROM_SITE_PROF_ID_TBL  IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
8899 P_BILL_FROM_SITE_ID_TBL       IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
8900 X_CAI_NUMBER_TBL              OUT NOCOPY ATTRIBUTE19_TBL,
8901 X_CAI_DUE_DATE_TBL            OUT NOCOPY ATTRIBUTE23_TBL
8902 ) IS
8903 
8904 
8905   l_cai_num_tbl        ATTRIBUTE19_TBL;
8906   l_cai_due_date_tbl        ATTRIBUTE23_TBL;
8907   l_rep_cai_num_tbl        ATTRIBUTE19_TBL;
8908   l_err_msg                   VARCHAR2(120);
8909 
8910 
8911 PROCEDURE GET_CAI_NUM
8912 PROCEDURE GET_CAI_NUM
8913 (
8914 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8915 P_REPORT_NAME                 IN          VARCHAR2,
8916 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8917 P_BILL_FROM_SITE_PROF_ID_TBL  IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
8918 P_BILL_FROM_SITE_ID_TBL       IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
8919 X_CAI_NUMBER_TBL              OUT NOCOPY ATTRIBUTE19_TBL,
8920 X_CAI_DUE_DATE_TBL            OUT NOCOPY ATTRIBUTE23_TBL
8921 ) IS
8922 
8923 
8924   l_cai_num_tbl        ATTRIBUTE19_TBL;
8925   l_cai_due_date_tbl        ATTRIBUTE23_TBL;
8926   l_rep_cai_num_tbl        ATTRIBUTE19_TBL;
8927   l_err_msg                   VARCHAR2(120);
8928 */
8929 
8930 PROCEDURE GET_CAI_NUM
8931 (
8932 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
8933 P_REPORT_NAME                 IN          VARCHAR2,
8934 P_TAX_REGIME_CODE_TBL         IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
8935 P_BILL_FROM_SITE_PROF_ID_TBL  IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
8936 P_BILL_FROM_SITE_ID_TBL       IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
8937 X_CAI_NUMBER_TBL              OUT NOCOPY ATTRIBUTE19_TBL,
8938 X_CAI_DUE_DATE_TBL            OUT NOCOPY ATTRIBUTE23_TBL
8939 ) IS
8940 
8941 
8942   l_cai_num_tbl        ATTRIBUTE19_TBL;
8943   l_cai_due_date_tbl        ATTRIBUTE23_TBL;
8944   l_rep_cai_num_tbl        ATTRIBUTE19_TBL;
8945   l_err_msg                   VARCHAR2(120);
8946 
8947 
8948 
8949 BEGIN
8950     IF (g_level_procedure >= g_current_runtime_level ) THEN
8951         FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM.BEGIN',
8952                                       'GET_CAI_NUM(+)');
8953     END IF;
8954 
8955      IF P_REPORT_NAME = 'JLARPPFF' THEN
8956      FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
8957 
8958      /*    IF ( g_level_statement>= g_current_runtime_level ) THEN
8959                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
8960                                  'P_BILL_FROM_SITE_ID_TBL : '||to_char(P_BILL_FROM_SITE_ID_TBL(i)));
8961                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
8962                                  'P_BILL_FROM_SITE_PROF_ID_TBL : '||to_char(P_BILL_FROM_SITE_PROF_ID_TBL(i)));
8963                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
8964                                  'P_TAX_REGIME_CODE_TBL : '||P_TAX_REGIME_CODE_TBL(i));
8965          END IF; */
8966 
8967          IF l_cai_num_tbl.EXISTS(p_trx_id_tbl(i)) THEN
8968              NULL;
8969           ELSE
8970               l_cai_due_date_tbl(p_trx_id_tbl(i)) := NULL;
8971               l_cai_num_tbl(p_trx_id_tbl(i)) := null;
8972           END IF;
8973 
8974           IF l_cai_num_tbl(p_trx_id_tbl(i)) is null THEN
8975           BEGIN
8976          IF ( g_level_statement>= g_current_runtime_level ) THEN
8977                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
8978                                  'P_BILL_FROM_SITE_ID_TBL : '||to_char(P_BILL_FROM_SITE_ID_TBL(i)));
8979                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
8980                                  'P_BILL_FROM_SITE_PROF_ID_TBL : '||to_char(P_BILL_FROM_SITE_PROF_ID_TBL(i)));
8981                 FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
8982                                  'P_TAX_REGIME_CODE_TBL : '||P_TAX_REGIME_CODE_TBL(i));
8983          END IF;
8984            SELECT rep_ass.reporting_code_char_value
8985              INTO l_cai_num_tbl(p_trx_id_tbl(i))
8986              FROM zx_reporting_types_b rep_type,
8987                   zx_report_codes_assoc rep_ass
8988             WHERE rep_type.reporting_type_code = 'CAI NUMBER'
8989               AND rep_ass.reporting_type_id = rep_type.reporting_type_id
8990               AND rep_ass.entity_code = 'ZX_PARTY_TAX_PROFILE'
8991               AND rep_ass.entity_id = P_BILL_FROM_SITE_PROF_ID_TBL(i)
8992               AND rep_type.tax_regime_code = P_TAX_REGIME_CODE_TBL(i);
8993 
8994            X_CAI_NUMBER_TBL(i) := nvl(l_cai_num_tbl(p_trx_id_tbl(i)),0);
8995      EXCEPTION
8996      WHEN NO_DATA_FOUND THEN
8997          -- BEGIN
8998 	   IF ( g_level_statement>= g_current_runtime_level ) THEN
8999 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
9000 	        'l_cai_num : '||l_cai_num_tbl(p_trx_id_tbl(i))||'-'||l_cai_due_date_tbl(p_trx_id_tbl(i)));
9001            END IF;
9002            X_CAI_NUMBER_TBL(i) := NULL;
9003         --   IF l_rep_cai_num_tbl(p_trx_id_tbl(i)) IS NULL THEN
9004               SELECT nvl(global_attribute19,0),nvl(global_attribute20,' ')
9005                 INTO l_cai_num_tbl(p_trx_id_tbl(i)),
9006                      l_cai_due_date_tbl(p_trx_id_tbl(i))
9007                 FROM ap_supplier_sites_all
9008               WHERE vendor_site_id = P_BILL_FROM_SITE_ID_TBL(i);
9009          --  END IF;
9010 
9011            X_CAI_NUMBER_TBL(i) := nvl(l_cai_num_tbl(p_trx_id_tbl(i)),0);
9012            X_CAI_DUE_DATE_TBL(i) := nvl(l_cai_due_date_tbl(p_trx_id_tbl(i)),' ');
9013 	   IF ( g_level_statement>= g_current_runtime_level ) THEN
9014 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
9015 	        'l_cai_num : '||l_cai_num_tbl(p_trx_id_tbl(i))||'-'||l_cai_due_date_tbl(p_trx_id_tbl(i)));
9016            END IF;
9017           -- END;
9018 
9019    END;
9020     ELSE
9021 	   IF ( g_level_statement>= g_current_runtime_level ) THEN
9022 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
9023 					      'Else : l_cai_num : '||l_cai_num_tbl(p_trx_id_tbl(i)));
9024            END IF;
9025            X_CAI_NUMBER_TBL(i) := l_cai_num_tbl(p_trx_id_tbl(i));
9026            X_CAI_DUE_DATE_TBL(i) := l_cai_due_date_tbl(p_trx_id_tbl(i));
9027 /*
9028           IF l_cai_num_tbl(p_trx_id_tbl(i)) IS NULL THEN
9029            X_CAI_NUMBER_TBL(i) := NULL;
9030            X_CAI_DUE_DATE_TBL(i) := NULL;
9031           ELSE
9032            X_CAI_NUMBER_TBL(i) := l_cai_num_tbl(p_trx_id_tbl(i));
9033            X_CAI_DUE_DATE_TBL(i) := l_cai_due_date_tbl(p_trx_id_tbl(i));
9034           END IF; */
9035        END IF;
9036      END LOOP;
9037      ENd IF;
9038 
9039        IF (g_level_procedure >= g_current_runtime_level ) THEN
9040           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM.END',
9041                                       'GET_CAI_NUM(-)');
9042        END IF;
9043 
9044 
9045  EXCEPTION
9046      WHEN NO_DATA_FOUND THEN
9047                IF ( g_level_statement>= g_current_runtime_level ) THEN
9048                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
9049                         'ZX_JL_EXTRACT_PKG.GET_CAI_NUM : '||substrb(SQLERRM,1,120) );
9050                 END IF;
9051 
9052        --    X_CAI_NUMBER_TBL(i) := NULL;
9053 
9054      WHEN OTHERS THEN
9055 
9056 		IF ( g_level_statement>= g_current_runtime_level ) THEN
9057 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM',
9058 			'ZX_JL_EXTRACT_PKG.GET_CAI_NUM : '||substrb(SQLERRM,1,120) );
9059 		END IF;
9060 
9061 END GET_CAI_NUM;
9062 
9063 PROCEDURE GET_CAI_NUM_AR
9064 (
9065 P_TRX_ID_TBL                  IN ZX_EXTRACT_PKG.TRX_ID_TBL,
9066 P_REPORT_NAME                 IN          VARCHAR2,
9067 X_CAI_NUMBER_TBL              OUT NOCOPY ATTRIBUTE19_TBL,
9068 X_CAI_DUE_DATE_TBL            OUT NOCOPY ATTRIBUTE23_TBL
9069 ) IS
9070 
9071 
9072   l_cai_num_tbl        ATTRIBUTE19_TBL;
9073   l_cai_due_date_tbl        ATTRIBUTE23_TBL;
9074   l_rep_cai_num_tbl        ATTRIBUTE19_TBL;
9075   l_err_msg                   VARCHAR2(120);
9076 
9077 
9078 
9079 BEGIN
9080     IF (g_level_procedure >= g_current_runtime_level ) THEN
9081         FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM_AR.BEGIN',
9082                                       'GET_CAI_NUM_AR(+)');
9083     END IF;
9084 
9085     IF P_REPORT_NAME IN ('JLARTSFF','JLARTDFF') THEN -- Report Name Check
9086 
9087      FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
9088       IF l_cai_num_tbl.EXISTS(p_trx_id_tbl(i)) THEN
9089              NULL;
9090       ELSE
9091          l_cai_num_tbl(p_trx_id_tbl(i)) := null;
9092       END IF;
9093 
9094       IF l_cai_num_tbl(p_trx_id_tbl(i)) is null THEN
9095          BEGIN
9096            SELECT global_attribute17,global_attribute18
9097              INTO l_cai_num_tbl(p_trx_id_tbl(i)),
9098                   l_cai_due_date_tbl(p_trx_id_tbl(i))
9099              FROM ra_customer_trx
9100             WHERE customer_trx_id = p_trx_id_tbl(i);
9101 
9102           EXCEPTION
9103            WHEN NO_DATA_FOUND THEN
9104            X_CAI_NUMBER_TBL(i) := NULL;
9105            X_CAI_DUE_DATE_TBL(i) := NULL;
9106          END;
9107 
9108           IF l_cai_num_tbl(p_trx_id_tbl(i)) IS NULL THEN
9109            X_CAI_NUMBER_TBL(i) := NULL;
9110            X_CAI_DUE_DATE_TBL(i) := NULL;
9111           ELSE
9112            X_CAI_NUMBER_TBL(i) := l_cai_num_tbl(p_trx_id_tbl(i));
9113            X_CAI_DUE_DATE_TBL(i) := l_cai_due_date_tbl(p_trx_id_tbl(i));
9114           END IF;
9115           ELSE
9116                  X_CAI_NUMBER_TBL(i) := l_cai_num_tbl(p_trx_id_tbl(i));
9117                  X_CAI_DUE_DATE_TBL(i) := l_cai_due_date_tbl(p_trx_id_tbl(i));
9118 
9119         END IF;
9120           END LOOP;
9121      END IF;
9122        IF (g_level_procedure >= g_current_runtime_level ) THEN
9123           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM_AR.END',
9124                                       'GET_CAI_NUM_AR(-)');
9125        END IF;
9126 
9127 
9128  EXCEPTION
9129      WHEN NO_DATA_FOUND THEN
9130                IF ( g_level_statement>= g_current_runtime_level ) THEN
9131                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM_AR',
9132                         'ZX_JL_EXTRACT_PKG.GET_CAI_NUM_AR : '||substrb(SQLERRM,1,120) );
9133                 END IF;
9134 
9135        --    X_CAI_NUMBER_TBL(i) := NULL;
9136 
9137      WHEN OTHERS THEN
9138 
9139 		IF ( g_level_statement>= g_current_runtime_level ) THEN
9140 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_CAI_NUM_AR',
9141 			'ZX_JL_EXTRACT_PKG.GET_CAI_NUM_AR : '||substrb(SQLERRM,1,120) );
9142 		END IF;
9143 
9144 END GET_CAI_NUM_AR;
9145 
9146 
9147 PROCEDURE GET_FISCAL_PRINTER
9148 (
9149 P_TRX_ID_TBL                  IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
9150 P_TAX_REGIME_CODE_TBL            IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
9151 P_BILL_FROM_SITE_PROF_ID_TBL IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
9152 P_BILL_FROM_SITE_ID_TBL          IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
9153 X_FISCAL_PRINTER_TBL             OUT NOCOPY ATTRIBUTE20_TBL
9154 ) IS
9155 
9156   l_fiscal_printer_tbl            ATTRIBUTE20_TBL;
9157   l_rep_fiscal_printer_tbl        ATTRIBUTE20_TBL;
9158   l_err_msg                       VARCHAR2(120);
9159 
9160 BEGIN
9161 
9162 
9163     IF (g_level_procedure >= g_current_runtime_level ) THEN
9164      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER.BEGIN',
9165                                       'GET_FISCAL_PRINTER(+)');
9166    END IF;
9167 
9168 
9169     FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
9170 
9171         IF l_fiscal_printer_tbl.EXISTS(p_trx_id_tbl(i)) THEN
9172              null;
9173           ELSE
9174               l_fiscal_printer_tbl(p_trx_id_tbl(i)) := null;
9175           END IF;
9176 
9177           IF l_fiscal_printer_tbl(p_trx_id_tbl(i)) is null THEN
9178           BEGIN
9179             SELECT rep_ass.reporting_code_char_value
9180               INTO l_rep_fiscal_printer_tbl(i)
9181               FROM zx_reporting_types_b rep_type,
9182                    zx_report_codes_assoc rep_ass
9183              WHERE rep_type.reporting_type_code = 'FISCAL PRINTER'
9184                AND rep_ass.reporting_type_id = rep_type.reporting_type_id
9185                AND rep_ass.entity_code = 'ZX_PARTY_TAX_PROFILE'
9186                AND rep_ass.entity_id = P_BILL_FROM_SITE_PROF_ID_TBL(i)
9187                AND rep_type.tax_regime_code = P_TAX_REGIME_CODE_TBL(i);
9188 
9189  EXCEPTION
9190      WHEN NO_DATA_FOUND THEN
9191             X_FISCAL_PRINTER_TBL(i):=NULL;
9192 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
9193 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER',
9194 					      'EXCEPTION : '||P_BILL_FROM_SITE_ID_TBL(i));
9195 	    END IF;
9196      --       IF l_rep_fiscal_printer_tbl IS NULL  THEN
9197                SELECT global_attribute18
9198                  INTO l_fiscal_printer_tbl(i)
9199                  FROM ap_supplier_sites_all
9200                WHERE vendor_site_id = P_BILL_FROM_SITE_ID_TBL(i);
9201       --      END IF;
9202 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
9203 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER',
9204 					      'l_fiscal_printer : '||l_fiscal_printer_tbl(i));
9205 	    END IF;
9206             X_FISCAL_PRINTER_TBL(i):=l_fiscal_printer_tbl(i);
9207 
9208            END;
9209 
9210           IF l_fiscal_printer_tbl(i) IS NULL THEN
9211              X_FISCAL_PRINTER_TBL(i):= NULL;
9212           ELSE
9213              X_FISCAL_PRINTER_TBL(i):=l_fiscal_printer_tbl(i);
9214           END IF;
9215 
9216        END IF;
9217      END LOOP;
9218 
9219        IF (g_level_procedure >= g_current_runtime_level ) THEN
9220           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER.END',
9221                                       'GET_FISCAL_PRINTER(-)');
9222        END IF;
9223 
9224  EXCEPTION
9225 
9226      WHEN NO_DATA_FOUND THEN
9227                IF ( g_level_statement>= g_current_runtime_level ) THEN
9228                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER',
9229                         'ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER : '||substrb(SQLERRM,1,120) );
9230                 END IF;
9231             -- X_FISCAL_PRINTER_TBL(i) :=  NULL;
9232 
9233      WHEN OTHERS THEN
9234 
9235 		IF ( g_level_statement>= g_current_runtime_level ) THEN
9236 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER',
9237 			'ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER : '||substrb(SQLERRM,1,120) );
9238 		END IF;
9239 
9240 END GET_FISCAL_PRINTER;
9241 
9242 
9243 PROCEDURE GET_TAXPAYERID_TYPE
9244 (
9245 P_TRX_ID_TBL                   IN ZX_EXTRACT_PKG.TRX_ID_TBL,
9246 --P_TAX_REGIME_CODE_TBL        IN ZX_EXTRACT_PKG.TAX_REGIME_CODE_TBL,
9247 --P_BILL_FROM_SITE_PROF_ID_TBL IN ZX_EXTRACT_PKG.BILL_FROM_SITE_TAX_PROF_ID_TBL,
9248 P_BILL_FROM_TP_ID_TBL          IN ZX_EXTRACT_PKG.SHIPPING_TP_ADDRESS_ID_TBL,
9249 X_TAXPAYERID_TYPE_TBL          OUT NOCOPY ATTRIBUTE21_TBL,
9250 X_REG_STATUS_CODE_TBL          OUT NOCOPY ATTRIBUTE22_TBL
9251 ) IS
9252 
9253   l_taxpayerid_type_tbl            ATTRIBUTE21_TBL;
9254   l_reg_status_code_tbl            ATTRIBUTE22_TBL;
9255 --  l_rep_fiscal_printer_tbl        ATTRIBUTE20_TBL;
9256   l_err_msg                       VARCHAR2(120);
9257 
9258 BEGIN
9259 
9260 
9261     IF (g_level_procedure >= g_current_runtime_level ) THEN
9262      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE.BEGIN',
9263                                       'GET_TAXPAYERID_TYPE(+)');
9264    END IF;
9265 
9266 
9267     FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
9268 
9269           IF l_taxpayerid_type_tbl.EXISTS(p_trx_id_tbl(i)) THEN
9270              null;
9271           ELSE
9272               l_taxpayerid_type_tbl(p_trx_id_tbl(i)) := null;
9273               l_reg_status_code_tbl(p_trx_id_tbl(i)) := null;
9274           END IF;
9275 
9276           IF l_taxpayerid_type_tbl(p_trx_id_tbl(i)) is null THEN
9277           BEGIN
9278                SELECT global_attribute10, global_attribute1
9279                  INTO l_taxpayerid_type_tbl(p_trx_id_tbl(i)),
9280                       l_reg_status_code_tbl(p_trx_id_tbl(i))
9281                  FROM ap_suppliers
9282                WHERE vendor_id = P_BILL_FROM_TP_ID_TBL(i);
9283 
9284 /*	    IF ( g_level_statement>= g_current_runtime_level ) THEN
9285 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE',
9286 			'l_taxpayerid_type_tbl : '||l_taxpayerid_type_tbl(p_trx_id_tbl(i)));
9287 	    END IF; */
9288             X_TAXPAYERID_TYPE_TBL(i):=l_taxpayerid_type_tbl(p_trx_id_tbl(i));
9289              X_REG_STATUS_CODE_TBL(i) := l_reg_status_code_tbl(p_trx_id_tbl(i));
9290 
9291            END;
9292           -- END IF;
9293           IF l_taxpayerid_type_tbl(p_trx_id_tbl(i)) IS NULL THEN
9294              X_TAXPAYERID_TYPE_TBL(i):= NULL;
9295              X_REG_STATUS_CODE_TBL(i) := NULL;
9296           ELSE
9297 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
9298 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE',
9299 			'l_taxpayerid_type_tbl : '||to_char(i)||'-'||l_taxpayerid_type_tbl(p_trx_id_tbl(i)));
9300 	    END IF;
9301              X_TAXPAYERID_TYPE_TBL(i):=l_taxpayerid_type_tbl(p_trx_id_tbl(i));
9302              X_REG_STATUS_CODE_TBL(i) := l_reg_status_code_tbl(p_trx_id_tbl(i));
9303           END IF;
9304        ELSE
9305              X_TAXPAYERID_TYPE_TBL(i):=l_taxpayerid_type_tbl(p_trx_id_tbl(i));
9306              X_REG_STATUS_CODE_TBL(i) := l_reg_status_code_tbl(p_trx_id_tbl(i));
9307        END IF;
9308      END LOOP;
9309 
9310        IF (g_level_procedure >= g_current_runtime_level ) THEN
9311           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE.END',
9312                                       'GET_TAXPAYERID_TYPE(-)');
9313        END IF;
9314 
9315  EXCEPTION
9316 
9317      WHEN NO_DATA_FOUND THEN
9318                IF ( g_level_statement>= g_current_runtime_level ) THEN
9319                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE',
9320                         'ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE : '||substrb(SQLERRM,1,120) );
9321                 END IF;
9322             -- X_FISCAL_PRINTER_TBL(i) :=  NULL;
9323 
9324      WHEN OTHERS THEN
9325 
9326 		IF ( g_level_statement>= g_current_runtime_level ) THEN
9327 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE',
9328 			'ZX_JL_EXTRACT_PKG.GET_TAXPAYERID_TYPE : '||substrb(SQLERRM,1,120) );
9329 		END IF;
9330 
9331 END GET_TAXPAYERID_TYPE;
9332 
9333 PROCEDURE GET_FISCAL_PRINTER_AR
9334 (
9335 P_TRX_ID_TBL            IN  ZX_EXTRACT_PKG.TRX_ID_TBL,
9336 P_BATCH_SOURCE_ID_TBL   IN  ZX_EXTRACT_PKG.BATCH_SOURCE_ID_TBL,
9337 X_FISCAL_PRINTER_TBL    OUT NOCOPY GDF_RA_BATCH_SOURCES_ATT7_TBL
9338 ) IS
9339 
9340   l_fiscal_printer_tbl            GDF_RA_BATCH_SOURCES_ATT7_TBL;
9341   l_err_msg                       VARCHAR2(120);
9342 
9343 BEGIN
9344 
9345 
9346     IF (g_level_procedure >= g_current_runtime_level ) THEN
9347      FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER_AR.BEGIN',
9348                                       'GET_FISCAL_PRINTER_AR(+)');
9349    END IF;
9350 
9351 
9352     FOR i in 1..nvl(P_TRX_ID_TBL.last,0) LOOP
9353 
9354         IF l_fiscal_printer_tbl.EXISTS(p_trx_id_tbl(i)) THEN
9355              null;
9356           ELSE
9357               l_fiscal_printer_tbl(p_trx_id_tbl(i)) := null;
9358           END IF;
9359 
9360           IF l_fiscal_printer_tbl(p_trx_id_tbl(i)) is null THEN
9361           BEGIN
9362                SELECT global_attribute7
9363                  INTO l_fiscal_printer_tbl(i)
9364                  FROM ra_batch_sources_all
9365                WHERE batch_source_id = P_BATCH_SOURCE_ID_TBL(i);
9366 
9367 	    IF ( g_level_statement>= g_current_runtime_level ) THEN
9368 		FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER_AR',
9369 					      'l_fiscal_printer : '||l_fiscal_printer_tbl(i));
9370 	    END IF;
9371             X_FISCAL_PRINTER_TBL(i):=l_fiscal_printer_tbl(i);
9372 
9373            END;
9374 
9375       --   IF l_fiscal_printer_tbl(i) IS NULL THEN
9376        --      X_FISCAL_PRINTER_TBL(i):= NULL;
9377         --  ELSE
9378          --    X_FISCAL_PRINTER_TBL(i):=l_fiscal_printer_tbl(i);
9379           --END IF;
9380 
9381        END IF;
9382      END LOOP;
9383 
9384        IF (g_level_procedure >= g_current_runtime_level ) THEN
9385           FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER_AR.END',
9386                                       'GET_FISCAL_PRINTER_AR(-)');
9387        END IF;
9388 
9389  EXCEPTION
9390 
9391      WHEN NO_DATA_FOUND THEN
9392                IF ( g_level_statement>= g_current_runtime_level ) THEN
9393                         FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER',
9394                         'ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER_AR : '||substrb(SQLERRM,1,120) );
9395                 END IF;
9396 
9397      WHEN OTHERS THEN
9398 
9399 		IF ( g_level_statement>= g_current_runtime_level ) THEN
9400 			FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER',
9401 			'ZX_JL_EXTRACT_PKG.GET_FISCAL_PRINTER : '||substrb(SQLERRM,1,120) );
9402 		END IF;
9403 
9404 END GET_FISCAL_PRINTER_AR;
9405 
9406 /*===========================================================================+
9407  | PROCEDURE                                                                 |
9408  |   GET_TOTAL_DOC_TAXABLE_AMOUNT                                            |
9409  |   Type       : Private                                                    |
9410  |   Pre-req    : None                                                       |
9411  |   Function   :                                                            |
9412  |    This function returns the Tax Authority Code                           |
9413  |    from jl_zz_ar_tx_categ table to  meet the requirement in the flat file |
9414  |                                                                           |
9415  |    Called from ZX_JL_EXTRACT_PKG.POPULATE_JL_AR                              |
9416  |                                                                           |
9417  |   Parameters :                                                            |
9418  |   IN         :  p_trx_id_tbl IN     ZX_EXTRACT_PKG.TRX_ID_TBL     Required|
9419  |                                                                           |
9420  |   MODIFICATION HISTORY                                                    |
9421  |     07-Nov-03  Hidetaka Kojima   created                                  |
9422  |                                                                           |
9423  |                                                                           |
9424  +===========================================================================*/
9425 
9426 PROCEDURE GET_TOTAL_DOC_TAXABLE_AMOUNT
9427 (
9428 P_TRX_ID_TBL               IN         ZX_EXTRACT_PKG.TRX_ID_TBL,
9429 P_REQUEST_ID               IN         NUMBER,
9430 X_TOTAL_DOC_TAXAB_AMT_TBL  OUT NOCOPY NUMERIC8_TBL
9431 )
9432 IS
9433 
9434 l_err_msg                  VARCHAR2(120);
9435 l_total_doc_taxab_amt_tbl  NUMERIC8_TBL;
9436 
9437 BEGIN
9438 
9439 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
9440 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOC_TAXABLE_AMOUNT',
9441 					      'GET_TOTAL_DOC_TAXABLE_AMOUNT(+) ');
9442 	  END IF;
9443 
9444   FOR i in 1..nvl(p_trx_id_tbl.last,0) LOOP
9445       IF l_total_doc_taxab_amt_tbl.EXISTS(p_trx_id_tbl(i)) THEN
9446          NULL;
9447       ELSE
9448            l_total_doc_taxab_amt_tbl(p_trx_id_tbl(i)) := null;
9449       END IF;
9450 
9451       IF l_total_doc_taxab_amt_tbl(p_trx_id_tbl(i)) is NULL THEN
9452 
9453          BEGIN
9454 
9455              SELECT SUM(DECODE(DET.TAX_RATE,0,
9456 					    0,
9457 					    coalesce(DET.TAXABLE_AMT_FUNCL_CURR,DET.TAXABLE_AMT,0)))
9458                INTO l_total_doc_taxab_amt_tbl(p_trx_id_tbl(i))
9459                FROM ZX_REP_TRX_DETAIL_T DET
9460               WHERE REQUEST_ID = P_REQUEST_ID
9461                 AND TRX_ID = p_trx_id_tbl(i);
9462 
9463               X_TOTAL_DOC_TAXAB_AMT_TBL(i) := l_total_doc_taxab_amt_tbl(p_trx_id_tbl(i));
9464 
9465          EXCEPTION
9466              WHEN NO_DATA_FOUND THEN
9467                   l_total_doc_taxab_amt_tbl(p_trx_id_tbl(i)) := 0;
9468                   X_TOTAL_DOC_TAXAB_AMT_TBL(i) := l_total_doc_taxab_amt_tbl(p_trx_id_tbl(i));
9469                   null;
9470              WHEN OTHERS THEN
9471                   l_err_msg := substrb(SQLERRM,1,120);
9472 		IF (g_level_procedure >= g_current_runtime_level ) THEN
9473 			FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOC_TAXABLE_AMOUNT',
9474 			'EXCEPTION raised in ' ||'GET_TOTAL_DOC_TAXABLE_AMOUNT: ' ||SQLCODE ||':'||l_err_msg);
9475 		END IF;
9476 
9477          END;
9478 
9479       ELSE
9480 
9481           X_TOTAL_DOC_TAXAB_AMT_TBL(i) := l_total_doc_taxab_amt_tbl(p_trx_id_tbl(i));
9482 
9483       END IF;
9484 
9485     IF ( g_level_statement>= g_current_runtime_level ) THEN
9486 	FND_LOG.STRING(g_level_statement, 'ZX.TRL.ZX_JL_EXTRACT_PKG',
9487 	' X_TOTAL_DOC_TAXAB_AMT_TBL for i: '||i||' trx_id : '||to_char(p_trx_id_tbl(i))||' is : '||to_char(X_TOTAL_DOC_TAXAB_AMT_TBL(i)));
9488     END IF;
9489 
9490    END LOOP;
9491 	  IF (g_level_procedure >= g_current_runtime_level ) THEN
9492 	     FND_LOG.STRING(g_level_procedure, 'ZX.TRL.ZX_JL_EXTRACT_PKG.GET_TOTAL_DOC_TAXABLE_AMOUNT',
9493 					      'GET_TOTAL_DOC_TAXABLE_AMOUNT(-) ');
9494 	  END IF;
9495 
9496 END GET_TOTAL_DOC_TAXABLE_AMOUNT;
9497 
9498 
9499      PROCEDURE initialize_variables (
9500                       p_count   IN         NUMBER) IS
9501             i number;
9502      BEGIN
9503 /*
9504               FOR i IN 1.. p_count LOOP
9505             l_detail_tax_line_id_tbl(i)  := NULL;
9506             l_trx_id_tbl(i)      := NULL;
9507             l_trx_number_tbl(i)      := NULL;
9508             l_trx_type_id_tbl(i)      := NULL;
9509             l_tax_rate_tbl(i)      := NULL;
9510             l_tax_rate_id_tbl(i)      := NULL;
9511             l_document_sub_type_tbl(i)      := NULL;
9512             l_exchange_rate_tbl(i)      := NULL;
9513 
9514             l_not_reg_tax_amt_tbl(i)      := NULL;
9515             l_vat_exempt_amt_tbl(i)      := NULL;
9516             l_vat_perc_amt_tbl(i)      := NULL;
9517             l_prov_perc_amt_tbl(i)      := NULL;
9518             l_munic_perc_amt_tbl(i)      := NULL;
9519             l_excise_amt_tbl(i)      := NULL;
9520             l_other_tax_amt_tbl(i)      := NULL;
9521             l_non_taxable_amt_tbl(i)      := NULL;
9522             l_vat_amt_tbl(i)      := NULL;
9523             l_taxable_amt_tbl(i)      := NULL;
9524             l_vat_additional_amt_tbl(i)      := NULL;
9525             l_total_doc_amt_tbl(i)      := NULL;
9526             l_rec_count_tbl(i)      := NULL;
9527             l_rate_count_tbl(i)      := NULL;
9528 
9529             l_tax_authority_code := NULL;
9530             l_dgi_code_tbl(i)      := NULL;
9531             l_cust_condition_code_tbl(i)      := NULL;
9532             l_vat_reg_stat_code_tbl(i)      := NULL;
9533 
9534         END LOOP;
9535     */
9536 NULL;
9537 
9538      END initialize_variables ;
9539 
9540 
9541 END ZX_JL_EXTRACT_PKG;