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