DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_VALIDATE_API_PKG

Source


1 PACKAGE BODY Zx_Validate_Api_Pkg AS
2 /* $Header: zxapdefvalpkgb.pls 120.80.12010000.4 2009/02/05 14:44:37 tsen ship $ */
3 
4   g_current_runtime_level           NUMBER;
5   g_level_statement       CONSTANT  NUMBER := FND_LOG.LEVEL_STATEMENT;
6   g_level_procedure       CONSTANT  NUMBER := FND_LOG.LEVEL_PROCEDURE;
7   g_level_event           CONSTANT  NUMBER := FND_LOG.LEVEL_EVENT;
8   g_level_exception       CONSTANT  NUMBER := FND_LOG.LEVEL_EXCEPTION;
9   g_level_unexpected      CONSTANT  NUMBER := FND_LOG.LEVEL_UNEXPECTED;
10   g_first_pty_org_id                NUMBER;
11   l_le_id                           NUMBER;
12   l_ou_id                           NUMBER;
13   l_regime_not_exists               VARCHAR2(2000);
14   l_regime_not_effective            VARCHAR2(2000);
15   l_tax_not_exists                  VARCHAR2(2000);
16   l_tax_not_live                    VARCHAR2(2000);
17   l_tax_not_effective               VARCHAR2(2000);
18   l_tax_recov_or_offset             VARCHAR2(2000);
19   l_tax_status_not_exists           VARCHAR2(2000);
20   l_tax_status_not_effective        VARCHAR2(2000);
21   l_tax_rate_not_exists             VARCHAR2(2000);
22   l_tax_rate_not_effective          VARCHAR2(2000);
23   l_tax_rate_not_active             VARCHAR2(2000);
24   l_tax_rate_code_not_exists        VARCHAR2(2000);
25 --l_tax_rate_code_not_effective     VARCHAR2(2000);
26 --l_tax_rate_code_not_active        VARCHAR2(2000);
27   l_tax_rate_percentage_invalid     VARCHAR2(2000);
28   l_jur_code_not_exists             VARCHAR2(2000);
29   l_jur_code_not_effective          VARCHAR2(2000);
30   l_ref_doc_missing                 VARCHAR2(2000);
31   l_rel_doc_missing                 VARCHAR2(2000);
32   l_app_from_doc_missing            VARCHAR2(2000);
33   l_app_to_doc_missing              VARCHAR2(2000);
34   l_adj_doc_missing                 VARCHAR2(2000);
35   l_source_doc_missing              VARCHAR2(2000);
36   l_round_party_missing             VARCHAR2(2000);
37   l_location_missing                VARCHAR2(2000);
38   l_ctrl_flag_missing               VARCHAR2(2000);
39   l_line_class_invalid              VARCHAR2(2000);
40   l_trx_line_type_invalid           VARCHAR2(2000);
41   l_line_amt_incl_tax_invalid       VARCHAR2(2000);
42   l_default_status_not_exists       VARCHAR2(2000);
43   l_default_rate_code_not_exists    VARCHAR2(2000);
44   l_default_jur_code_not_exists     VARCHAR2(2000);
45   l_taxation_country_not_exists     VARCHAR2(2000);
46   l_prd_categ_not_exists            VARCHAR2(2000);
47   l_prd_categ_not_effective         VARCHAR2(2000);
48   l_prd_categ_country_inconsis      VARCHAR2(2000);
49   l_usr_df_fc_code_not_exists       VARCHAR2(2000);
50   l_usr_df_fc_code_not_effective    VARCHAR2(2000);
51   l_usr_df_country_inconsis         VARCHAR2(2000);
52   l_doc_fc_code_not_exists          VARCHAR2(2000);
53   l_doc_fc_code_not_effective       VARCHAR2(2000);
54   l_doc_fc_country_inconsis         VARCHAR2(2000);
55   l_trx_biz_fc_code_not_exists      VARCHAR2(2000);
56   l_trx_biz_fc_code_not_effect      VARCHAR2(2000);
57   l_trx_biz_fc_country_inconsis     VARCHAR2(2000);
58   l_intended_use_code_not_exists    VARCHAR2(2000);
59   l_intended_use_not_effective      VARCHAR2(2000);
60   l_intended_use_contry_inconsis    VARCHAR2(2000);
61   l_prd_type_code_not_exists        VARCHAR2(2000);
62   l_prd_type_not_effective          VARCHAR2(2000);
63   l_prd_fc_code_not_exists          VARCHAR2(2000);
64   l_party_not_exists                VARCHAR2(2000);
65   l_ship_to_party_not_exists        VARCHAR2(2000);
66   l_ship_frm_party_not_exits        VARCHAR2(2000);
67   l_bill_to_party_not_exists        VARCHAR2(2000);
68   l_bill_frm_party_not_exists       VARCHAR2(2000);
69   l_shipto_party_site_not_exists    VARCHAR2(2000);
70   l_shipfrm_party_site_not_exits    VARCHAR2(2000);
71   l_billto_party_site_not_exists    VARCHAR2(2000);
72   l_billfrm_party_site_not_exist    VARCHAR2(2000);
73   l_tax_multialloc_to_sameln        VARCHAR2(2000);
74   l_imptax_multialloc_to_sameln     VARCHAR2(2000);
75   l_tax_only_line_multi_allocate    VARCHAR2(2000);
76   l_pseudo_line_has_multi_taxall    VARCHAR2(2000);
77   --l_tax_amt_miss_for_mul_alloc      VARCHAR2(2000);
78   l_tax_amt_missing                 VARCHAR2(2000);
79   --l_tax_only_ln_w_null_tax_amt      VARCHAR2(2000);
80   l_tax_ln_typ_loc_not_allw_f_ar    VARCHAR2(2000);
81   l_tax_incl_flag_mismatch          VARCHAR2(2000);
82   l_imp_tax_missing_in_appld_frm    VARCHAR2(2000);
83   l_imp_tax_missing_in_adjust_to    VARCHAR2(2000);
84   l_currency_info_reqd              VARCHAR2(2000);
85   l_line_ctrl_amt_invalid           VARCHAR2(2000);
86   l_line_ctrl_amt_not_null          VARCHAR2(2000);
87   l_unit_price_missing              VARCHAR2(2000);
88   l_line_quantity_missing           VARCHAR2(2000);
89 
90   l_exemption_ctrl_flag_invalid     VARCHAR2(2000);
91   l_product_type_invalid            VARCHAR2(2000);
92   l_quote_flag_invalid              VARCHAR2(2000);
93   l_doc_lvl_recalc_flag_invalid     VARCHAR2(2000);
94   l_tax_line_alloc_flag_invalid     VARCHAR2(2000);
95 
96   l_inval_tax_lines_for_ctrl_flg    VARCHAR2(2000);
97   l_invald_line_for_ctrl_tot_amt    VARCHAR2(2000);
98   l_inval_tax_line_for_alloc_flg    VARCHAR2(2000);
99   l_invalid_tax_only_tax_lines      VARCHAR2(2000);
100   l_invalid_tax_line_alloc_flag     VARCHAR2(2000);
101   l_invd_trx_line_id_in_link_gt     VARCHAR2(2000);
102   l_invalid_summary_tax_line_id     VARCHAR2(2000);
103   l_regime_not_eff_in_subscrptn     VARCHAR2(2000);
104   l_tax_rate_id_code_missing        VARCHAR2(2000);
105   l_imp_tax_rate_amt_mismatch       VARCHAR2(2000);
106 
107   l_return_status                   VARCHAR2(30);
108 
109   l_count_header                    NUMBER;
110   l_count_lines                     NUMBER;
111   l_count_tax_lines                 NUMBER;
112   l_count_link_gt                   NUMBER;
113 
114   l_count_error                     NUMBER;
115 
116   l_error_rec  ZX_VALIDATION_ERRORS_GT%rowtype;
117 
118   --Declare Forward references
119   PROCEDURE Validate_Other_Documents(x_return_status OUT NOCOPY VARCHAR2);
120   procedure def_additional_tax_attribs;
121 
122 ------------ Main Procedure(Called from AP) ---------------------------
123 
124 PROCEDURE Default_And_Validate_Tax_Attr(
125                                 p_api_version      IN NUMBER,
126                                 p_init_msg_list    IN VARCHAR2,
127                                 p_commit           IN VARCHAR2,
128                                 p_validation_level IN VARCHAR2,
129                                 x_return_status OUT NOCOPY VARCHAR2,
130                                 x_msg_count     OUT NOCOPY NUMBER,
131                                 x_msg_data      OUT NOCOPY VARCHAR2) IS
132 
133 CURSOR  check_eror  IS
134   select
135          application_id,
136          entity_code,
137          event_class_code,
138          trx_id,
139          trx_line_id,
140          message_name,
141          message_text,
142          trx_level_type,
143          other_doc_application_id,
144          other_doc_entity_code,
145          other_doc_event_class_code,
146          other_doc_trx_id,
147          interface_line_entity_code,
148          interface_line_id
149   from  zx_validation_errors_gt;
150 
151 BEGIN
152 
153      x_return_status := FND_API.G_RET_STS_SUCCESS;
154      g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
155 
156      IF (g_level_procedure >= g_current_runtime_level ) THEN
157         FND_LOG.STRING(g_level_procedure,
158                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
159                 'ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR(+)');
160      END IF;
161 
162      SELECT count(1) INTO  l_count_header FROM zx_trx_headers_gt;
163 
164      SELECT count(1) INTO l_count_lines FROM ZX_TRANSACTION_LINES_GT;
165 
166      SELECT count(1) INTO l_count_tax_lines FROM ZX_IMPORT_TAX_LINES_GT;
167 
168      SELECT count(1) INTO l_count_link_gt FROM ZX_TRX_TAX_LINK_GT;
169 
170     IF ( g_level_statement >= g_current_runtime_level) THEN
171       FND_LOG.STRING(g_level_statement,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
172       'Count of ZX_TRX_HEADERS_GT '||to_char(l_count_header));
173       FND_LOG.STRING(g_level_statement,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
174       'Count of ZX_TRANSACTION_LINES_GT '||to_char(l_count_lines));
175             FND_LOG.STRING(g_level_statement,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
176       'Count of ZX_IMPORT_TAX_LINES_GT '||to_char(l_count_tax_lines));
177             FND_LOG.STRING(g_level_statement,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
178       'Count of ZX_TRX_TAX_LINK_GT '||to_char(l_count_link_gt));
179     END IF;
180 
181  ---------------------------------------------------------------------------------
182     -- Select First Party Organization to be used for validations and defaulting
183     -- for Imported Tax Lines
184 
185     -- Assumption: Operating Unit and Legal Entity will be same for all input
186     -- transactions
187 ---------------------------------------------------------------------------------
188 
189     BEGIN
190 
191         SELECT
192                 legal_entity_id , internal_organization_id
193                 INTO l_le_id, l_ou_id
194         FROM
195                 ZX_TRX_HEADERS_GT Header
196         WHERE rownum = 1;
197 
198     EXCEPTION
199 
200          WHEN NO_DATA_FOUND THEN
201               IF (g_level_exception >= g_current_runtime_level ) THEN
202                   FND_LOG.STRING(g_level_exception,
203                           'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR:
204                                          First Party Org Id : Not able to fetch
205                                          OU and LE',
206                           sqlerrm);
207               END IF;
208 
209          app_exception.raise_exception;
210 
211     END;
212 
213     IF ( g_level_statement >= g_current_runtime_level) THEN
214 
215       FND_LOG.STRING(g_level_statement,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
216       'Call ZX_TCM_PTP_PKG.GET_TAX_SUBSCRIBER() with OU: '||to_char(l_ou_id)||' and LE: '||to_char(l_le_id));
217     END IF;
218 
219     ZX_TCM_PTP_PKG.GET_TAX_SUBSCRIBER(l_le_id,
220                                       l_ou_id,
221                                       g_first_pty_org_id,
222                                       l_return_status);
223 
224     IF ( g_level_statement >= g_current_runtime_level) THEN
225       FND_LOG.STRING(g_level_statement,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
226       'G_FIRST_PTY_ORG_ID: '||to_char(g_first_pty_org_id));
227     END IF;
228 
229 -- Need to verify if we need to raise a UNEXPECTED error if we fail to set first party
230 -- Checked with Isaac. This should not be an unexpected error, but raise one valdn error for
231 -- all transactions and do not proceed further => Changes yet to be implemented
232 
233     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
234       IF (g_level_exception >= g_current_runtime_level ) THEN
235           FND_LOG.STRING(g_level_exception,
236                   'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR:
237                                  Get Tax Subscriber : Returned Error Status',
238                           sqlerrm);
239       END IF;
240 --      Return;
241     END IF;
242 
243 ------------------------------------------------------------------------------------
244 -- End logic for getting the first party org id
245 ------------------------------------------------------------------------------------
246 
247     IF ( g_level_event >= g_current_runtime_level) THEN
248       FND_LOG.STRING(g_level_event,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
249       'Validating Other Documents');
250     END IF;
251 
252     Validate_Other_Documents(x_return_status);
253 
254     IF ( g_level_event >= g_current_runtime_level) THEN
255       FND_LOG.STRING(g_level_event,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
256       'Executing On the Fly Migration If Needed');
257     END IF;
258 
259     zx_on_fly_trx_upgrade_pkg.upgrade_trx_on_fly_blk(x_return_status);
260 
261     -- Bug # 4697301
262     delete  from ZX_VALIDATION_ERRORS_GT err where  EXISTS
263     (Select  1 from  ZX_LINES_DET_FACTORS  linedet where
264     linedet.application_id   = err.other_doc_application_id and
265     linedet.entity_code      = err.other_doc_entity_code and
266     linedet.event_class_code = err.other_doc_event_class_code and
267     linedet.trx_id           = err.other_doc_trx_id and
268     rownum =1);
269 
270     --Bug # 4917256
271     IF ( g_level_event >= g_current_runtime_level) THEN
272       FND_LOG.STRING(g_level_event,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
273       'Before defaulting, validate either tax_rate_id or tax_rate_code is passed in the import tax lines GT table');
274     END IF;
275 
276   INSERT INTO
277   ZX_VALIDATION_ERRORS_GT(
278     application_id,
279     entity_code,
280     event_class_code,
281     trx_id,
282     trx_line_id,
283     summary_tax_line_number,
284     message_name,
285     message_text,
286     trx_level_type,
287     interface_tax_entity_code,
288     interface_tax_line_id
289     )
290   SELECT
291     application_id,
292     entity_code,
293     event_class_code,
294     trx_id,
295     trx_line_id,
296     summary_tax_line_number,
297     'ZX_TAX_RATE_ID_CODE_MISSING',
298     l_tax_rate_id_code_missing,
299     null,
300     interface_entity_code,
301     interface_tax_line_id
302   FROM
303         ZX_IMPORT_TAX_LINES_GT
304   WHERE
305         tax_rate_code IS NULL AND tax_rate_id IS NULL;
306 
307     IF ( g_level_event >= g_current_runtime_level) THEN
308       FND_LOG.STRING(g_level_event,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
309       'Defaulting Additional Tax Det Attrs and Tax Line Attrs');
310     END IF;
311 
312     Default_Tax_Attr(x_return_status);
313 
314     IF ( g_level_event >= g_current_runtime_level) THEN
315       FND_LOG.STRING(g_level_event,'ZX_VALIDATEAPI_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
316       'Validating Transaction and Imported tax line info');
317     END IF;
318 
319     Validate_Tax_Attr(x_return_status);
320 
321     IF (g_level_statement >= g_current_runtime_level ) THEN
322 
323   OPEN check_eror;
324   LOOP
325     fetch check_eror into l_error_rec.application_id,
326                           l_error_rec.entity_code,
327                           l_error_rec.event_class_code,
328                           l_error_rec.trx_id,
329                           l_error_rec.trx_line_id,
330                           l_error_rec.message_name,
331                           l_error_rec.message_text,
332                           l_error_rec.trx_level_type,
333                           l_error_rec.other_doc_application_id,
334                           l_error_rec.other_doc_entity_code,
335                           l_error_rec.other_doc_event_class_code,
336                           l_error_rec.other_doc_trx_id,
337                           l_error_rec.interface_line_entity_code,
338                           l_error_rec.interface_line_id;
339     EXIT WHEN check_eror%NOTFOUND ; -- Added exit conditon .
340 
341                 FND_LOG.STRING(g_level_statement,
342     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
343     'error application_id is '||l_error_rec.application_id);
344       FND_LOG.STRING(g_level_statement,
345     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
346     'error entity_code is '||l_error_rec.entity_code);
347       FND_LOG.STRING(g_level_statement,
348     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
349     'error event_class_code is '||l_error_rec.event_class_code);
350       FND_LOG.STRING(g_level_statement,
351     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
352     'error trx_id is '||l_error_rec.trx_id);
353       FND_LOG.STRING(g_level_statement,
354     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
355     'error trx_line_id is '||l_error_rec.trx_line_id);
356       FND_LOG.STRING(g_level_statement,
357     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
358     'error message_name is '||l_error_rec.message_name);
359       FND_LOG.STRING(g_level_statement,
360     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
361     'error trx_level_type is '||l_error_rec.trx_level_type);
362       FND_LOG.STRING(g_level_statement,
363     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
364     'error other_doc_application_id is '||l_error_rec.other_doc_application_id);
365       FND_LOG.STRING(g_level_statement,
366     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
367     'error other_doc_entity_code is '||l_error_rec.other_doc_entity_code);
368       FND_LOG.STRING(g_level_statement,
369     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
370     'error other_doc_event_class_code is '||l_error_rec.other_doc_event_class_code);
371       FND_LOG.STRING(g_level_statement,
372     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
373     'error other_doc_trx_id is '||l_error_rec.other_doc_trx_id);
374 
375   END LOOP;
376 
377     END IF;
378 
379     ZX_GLOBAL_STRUCTURES_PKG.delete_trx_line_dist_tbl;
380 
381     IF (g_level_statement >= g_current_runtime_level ) THEN
382   FND_LOG.STRING(g_level_statement,
383     'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
384     'x_return_status from Validate_Tax_Attr is '||x_return_status);
385     END IF;
386     IF (g_level_procedure >= g_current_runtime_level ) THEN
387        FND_LOG.STRING(g_level_procedure,
388                'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
389                'ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR(-)');
390     END IF;
391 
392 EXCEPTION
393          WHEN OTHERS THEN
394               IF (g_level_unexpected >= g_current_runtime_level ) THEN
395                   FND_LOG.STRING(g_level_unexpected,
396                           'ZX_VALIDATE_API_PKG.DEFAULT_AND_VALIDATE_TAX_ATTR',
397                            sqlerrm);
398               END IF;
399               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
400               app_exception.raise_exception;
401 END Default_And_Validate_Tax_Attr;
402 
403 
404 ------------------ Procedure For Defaulting -----------------------
405 
406 PROCEDURE Default_Tax_Attr(x_return_status OUT NOCOPY VARCHAR2) IS
407 
408 l_owner_table_code  ZX_FC_TYPES_B.owner_table_code%Type;
409 l_owner_id_num      ZX_FC_TYPES_B.owner_id_num%Type;
410 l_le_id             ZX_TRX_HEADERS_GT.legal_entity_id%Type;
411 l_org_id            ZX_TRX_HEADERS_GT.internal_organization_id%Type;
412 l_effective_date    Date;
413 l_return_status varchar2(30);
414 
415 --Bug 5018766 : Added for Defaulting the Tax Dates on the Newly added columns in zx_transaction_lines_gt
416 c_lines_per_commit CONSTANT NUMBER := ZX_TDS_CALC_SERVICES_PUB_PKG.G_LINES_PER_COMMIT;
417 l_application_id_tbl         APPLICATION_ID_TBL;
418 l_entity_code_tbl            ENTITY_CODE_TBL;
419 l_event_class_code_tbl       EVENT_CLASS_CODE_TBL;
420 l_trx_id_tbl                 TRX_ID_TBL;
421 l_trx_line_id_tbl            TRX_LINE_ID_TBL;
422 l_trx_level_type_tbl         TRX_LEVEL_TYPE_TBL;
423 l_trx_date_tbl               TRX_DATE_TBL;
424 l_subscription_date_tb1      TRX_DATE_TBL;
425 L_COUNT                      NUMBER ;
426 
427 cursor c_lines is
428   select lines.application_id,
429   lines.entity_code,
430   lines.event_class_code,
431   lines.trx_id,
432   lines.trx_line_id,
433   lines.trx_level_type,
434   COALESCE(header.related_doc_date,
435            header.provnl_tax_determination_date,
436            Lines.adjusted_doc_date,
437            Lines.trx_line_date,
438            header.trx_date) Tax_Date,
439   COALESCE(header.related_doc_date,
440            header.provnl_tax_determination_date,
441            Lines.adjusted_doc_date,
442            header.trx_date) subscription_date
443   from zx_trx_headers_gt header,
444   zx_transaction_lines_gt lines
445   where header.application_id = lines.application_id
446   and header.ENTITY_CODE = lines.ENTITY_CODE
447   and header.EVENT_CLASS_CODE = lines.EVENT_CLASS_CODE
448   and header.TRX_ID = lines.TRX_ID ;
449 
450 BEGIN
451 
452      x_return_status := FND_API.G_RET_STS_SUCCESS;
453      g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
454      IF (g_level_procedure >= g_current_runtime_level ) THEN
455         FND_LOG.STRING(g_level_procedure,
456                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
457                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR(+)');
458      END IF;
459 
460 
461 --Bug 5018766 : Default the tax_date , tax_determine_date and tax_point_date for all the trx_lines
462 IF (g_level_statement >= g_current_runtime_level ) THEN
463         FND_LOG.STRING(g_level_statement,
464                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
465                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:
466                 Stamping the Dates onto zx_transaction_lines_gt');
467 END IF;
468 
469 OPEN c_lines;
470 loop
471 fetch c_lines bulk collect into
472   l_application_id_tbl,
473   l_entity_code_tbl,
474   l_event_class_code_tbl,
475   l_trx_id_tbl,
476   l_trx_line_id_tbl,
477   l_trx_level_type_tbl,
478   l_trx_date_tbl,
479   l_subscription_date_tb1
480   LIMIT C_LINES_PER_COMMIT;
481 
482   l_count := nvl(l_trx_line_id_tbl.COUNT,0);
483 
484 -- Stamp the tax_date , tax_determine_date and tax_point_date to the same value
485   if ( l_count > 0 ) THEN
486     FORALL i IN 1 .. l_count
487       update zx_transaction_lines_gt
488       set tax_date = l_trx_date_tbl(i),
489       tax_determine_date = l_trx_date_tbl(i),
490       tax_point_date = l_trx_date_tbl(i),
491       subscription_date = l_subscription_date_tb1(i)
492       where application_id = l_application_id_tbl(i)
493           AND entity_code = l_entity_code_tbl(i)
494           AND event_class_code = l_event_class_code_tbl(i)
495           AND trx_id = l_trx_id_tbl(i)
496           AND trx_line_id = l_trx_line_id_tbl(i)
497           AND trx_level_type = l_trx_level_type_tbl(i);
498   l_count := 0;
499   else
500     exit;
501   end if;
502 end loop;
503 
504 IF ( c_lines%ISOPEN ) THEN
505 CLOSE c_lines;
506 END IF ;
507 
508 --Defaulting for Taxation Country
509 
510 IF (g_level_statement >= g_current_runtime_level ) THEN
511         FND_LOG.STRING(g_level_statement,
512                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
513                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:
514                 Defaulting for Taxation Country');
515 END IF;
516 
517 UPDATE ZX_TRX_HEADERS_GT Header
518         SET default_taxation_country =
519         (SELECT le.country
520          FROM
521                 XLE_FIRSTPARTY_INFORMATION_V le
522          WHERE
523                 le.legal_entity_id = Header.legal_entity_id
524         )
525 WHERE default_taxation_country is NULL;
526 
527 --Defaulting for Tax Regime Code and Tax Code
528 
529 IF (g_level_statement >= g_current_runtime_level ) THEN
530         FND_LOG.STRING(g_level_statement,
531                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
532                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:
533                 Defaulting for Tax Regime Code and Tax Code');
534 END IF;
535 
536   /* Default Logic based on Rate Code and Rate Id are seperated
537   to accomodate defaulting when one of them is passed and the other is null.*/
538 
539 -- This Update is to Ensure that the regime and tax get defaulted in case Rate Id is null and Rate Code being passed.
540 UPDATE ZX_IMPORT_TAX_LINES_GT  TaxLines
541 SET    (tax_regime_code, tax)  =
542        (SELECT NVL(TaxLines.tax_regime_code, qry.tax_regime_code),
543                NVL(TaxLines.tax, qry.tax)
544           FROM (SELECT NVL(rates.tax_regime_code,
545                            nvl2(to_char(taxlines_gt.tax_rate_id),null,ContDef.tax_regime_code)) tax_regime_code,
546                        NVL(rates.tax, nvl2(to_char(taxlines_gt.tax_rate_id),null,ContDef.tax)) tax,
547                        TaxLines_gt.application_id application_id,
548                        TaxLines_gt.entity_code entity_code,
549                        TaxLines_gt.event_class_code event_class_code,
550                        TaxLines_gt.trx_id trx_id,
551                        TaxLines_gt.summary_tax_line_number summary_tax_line_number
552                   FROM ZX_FC_COUNTRY_DEFAULTS ContDef,
553                        ZX_IMPORT_TAX_LINES_GT  TaxLines_gt,
554                        ZX_TRX_HEADERS_GT       Header,
555                        ZX_TRANSACTION_LINES_GT Lines,
556                        ZX_RATES_B              rates,
557                        ZX_SUBSCRIPTION_DETAILS sd_rates
558                  WHERE TaxLines_gt.tax_rate_code    = rates.tax_rate_code(+)
559                    AND (Taxlines_gt.tax_rate_code IS NOT NULL OR Taxlines_gt.tax_rate_id IS NOT NULL)
560                    AND lines.tax_date --Bug 5018766
561                        BETWEEN nvl(rates.effective_from,lines.tax_date)
562                        AND     nvl(rates.effective_to,lines.tax_date)
563                    AND ContDef.country_code(+)   = Header.default_taxation_country
564                    AND TaxLines_gt.application_id   = Header.application_id
565                    AND TaxLines_gt.entity_code      = Header.entity_code
566                    AND TaxLines_gt.event_class_code = Header.event_class_code
567                    AND TaxLines_gt.trx_id           = Header.trx_id
568                    AND Lines.application_id      = Header.application_id
569                    AND Lines.entity_code         = Header.entity_code
570                    AND Lines.event_class_code    = Header.event_class_code
571                    AND Lines.trx_id              = Header.trx_id
572                    AND
573                    ( -- One to One Alloc
574                      (
575                        lines.trx_line_id = taxlines_gt.trx_line_id
576                      )
577                      OR
578                      --Multi Alloc
579                      (
580                        taxlines_gt.trx_line_id IS NULL
581                        AND taxlines_gt.tax_line_allocation_flag = 'Y'
582                        AND lines.trx_line_id =
583                        (
584                         SELECT
585                            MIN(trx_line_id)
586                         FROM zx_trx_tax_link_gt link_gt
587                         WHERE link_gt.TRX_ID = taxlines_gt.trx_id
588                         AND link_gt.application_id = taxlines_gt.application_id
589                         AND link_gt.entity_code = taxlines_gt.entity_code
590                         AND link_gt.event_class_code = taxlines_gt.event_class_code
591                         AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
592                        )
593                      )
594                      OR
595                      --All Alloc
596                      (
597                        taxlines_gt.trx_line_id IS NULL
598                        AND taxlines_gt.tax_line_allocation_flag = 'N'
599                        AND lines.trx_line_id =
600                        (
601                         SELECT
602                            MIN(trx_line_id)
603                         FROM zx_transaction_lines_gt trans_line_gt
604                         WHERE trans_line_gt.trx_id = taxlines_gt.trx_id
605                         AND trans_line_gt.application_id = taxlines_gt.application_id
606                         AND trans_line_gt.entity_code = taxlines_gt.entity_code
607                         AND trans_line_gt.event_class_code = taxlines_gt.event_class_code
608                        )
609                      )
610                    )
611                    AND Rates.tax_regime_code     = sd_rates.tax_regime_code(+)
612                    AND Rates.rate_type_code <> 'RECOVERY'                         -- Added for Bug#7504455
613                    AND
614                    ( Rates.content_owner_id    = sd_rates.parent_first_pty_org_id
615                      OR
616                      sd_rates.parent_first_pty_org_id IS NULL )
617                    AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
618                    AND ( lines.subscription_date
619                          BETWEEN NVL(sd_rates.effective_from,
620                                      lines.subscription_date)
621                              AND NVL(sd_rates.effective_to,
622                                      lines.subscription_date)
623                         OR
624                         Rates.effective_from = (SELECT MIN(effective_from)
625                                                 FROM zx_rates_b
626                                                 WHERE
627                                                 tax_regime_code  = Rates.tax_regime_code and
628                                                 tax              = Rates.tax and
629                                                 tax_status_code  = Rates.tax_status_code and
630                                                 tax_rate_code    = Rates.tax_rate_code and
631                                                 content_owner_id = Rates.content_owner_id and
632                                                 rate_type_code   = Rates.rate_type_code     -- Added for Bug#7504455
633                                                 )
634                         )
635                    AND (NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC') OR
636                             (NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
637                                  AND NOT EXISTS (SELECT 1 FROM zx_rates_b b
638                                                   WHERE b.tax_regime_code = Rates.tax_regime_code
639                                                     AND b.tax = Rates.tax
640                                                     AND b.tax_status_code = Rates.tax_status_code
641                                                     AND b.tax_rate_code = Rates.tax_rate_code
642                                                     AND b.content_owner_id = sd_rates.first_pty_org_id
643                                                     AND b.rate_type_code = Rates.rate_type_code          -- Added for Bug#7504455
644                                                  )
645                              )
646                         )
647                ) qry
648     where TaxLines.application_id   = qry.application_id
649                    AND TaxLines.entity_code      = qry.entity_code
650                    AND TaxLines.event_class_code = qry.event_class_code
651                    AND TaxLines.trx_id           = qry.trx_id
652                    AND TaxLines.summary_tax_line_number = qry.summary_tax_line_number
653        AND ROWNUM = 1  -- To Prevent more than one row being fetched for a single row update
654   );
655 
656 -- This Update is to Ensure that the regime and tax get defaulted in case rate code is null and rate id being passed
657 UPDATE ZX_IMPORT_TAX_LINES_GT  TaxLines
658 SET    (tax_regime_code, tax)  =
659        (SELECT NVL(TaxLines.tax_regime_code, qry.tax_regime_code),
660                NVL(TaxLines.tax, qry.tax)
661           FROM (SELECT NVL(rates.tax_regime_code,
662                            ContDef.tax_regime_code) tax_regime_code,
663                        NVL(rates.tax, ContDef.tax) tax,
664                        TaxLines_gt.application_id application_id,
665                        TaxLines_gt.entity_code entity_code,
666                        TaxLines_gt.event_class_code event_class_code,
667                        TaxLines_gt.trx_id trx_id,
668                        TaxLines_gt.summary_tax_line_number summary_tax_line_number
669                   FROM ZX_FC_COUNTRY_DEFAULTS ContDef,
670                        ZX_IMPORT_TAX_LINES_GT  TaxLines_gt,
671                        ZX_TRX_HEADERS_GT       Header,
672                        ZX_TRANSACTION_LINES_GT Lines,
673                        ZX_RATES_B              rates,
674                        ZX_SUBSCRIPTION_DETAILS sd_rates
675                  WHERE TaxLines_gt.tax_rate_id    = rates.tax_rate_id(+)
676                    AND (Taxlines_gt.tax_rate_code IS NOT NULL OR Taxlines_gt.tax_rate_id IS NOT NULL)
677                    AND lines.tax_date --Bug 5018766
678                        BETWEEN nvl(rates.effective_from,lines.tax_date)
679                        AND     nvl(rates.effective_to,lines.tax_date )
680                    AND ContDef.country_code(+)   = Header.default_taxation_country
681                    AND TaxLines_gt.application_id   = Header.application_id
682                    AND TaxLines_gt.entity_code      = Header.entity_code
683                    AND TaxLines_gt.event_class_code = Header.event_class_code
684                    AND TaxLines_gt.trx_id           = Header.trx_id
685                    AND Lines.application_id      = Header.application_id
686                    AND Lines.entity_code         = Header.entity_code
687                    AND Lines.event_class_code    = Header.event_class_code
688                    AND Lines.trx_id              = Header.trx_id
689                    AND
690                    (-- One to One Alloc
691                     (
692                       lines.trx_line_id = taxlines_gt.trx_line_id
693                     )
694                     OR
695                     --Multi Alloc
696                     (
697                       taxlines_gt.trx_line_id IS NULL
698                       AND taxlines_gt.tax_line_allocation_flag = 'Y'
699                       AND lines.trx_line_id =
700                       (
701                        SELECT
702                         MIN(trx_line_id)
703                        FROM zx_trx_tax_link_gt link_gt
704                        WHERE link_gt.TRX_ID = taxlines_gt.trx_id
705                        AND link_gt.application_id = taxlines_gt.application_id
706                        AND link_gt.entity_code = taxlines_gt.entity_code
707                        AND link_gt.event_class_code = taxlines_gt.event_class_code
708                        AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
709                       )
710                     )
711                     OR
712                     --All Alloc
713                     (
714                       taxlines_gt.trx_line_id IS NULL
715                       AND taxlines_gt.tax_line_allocation_flag = 'N'
716                       AND lines.trx_line_id =
717                       (
718                        SELECT
719                         MIN(trx_line_id)
720                        FROM zx_transaction_lines_gt trans_line_gt
721                        WHERE trans_line_gt.trx_id = taxlines_gt.trx_id
722                        AND trans_line_gt.application_id = taxlines_gt.application_id
723                        AND trans_line_gt.entity_code = taxlines_gt.entity_code
724                        AND trans_line_gt.event_class_code = taxlines_gt.event_class_code
725                       )
726                     )
727                    )
728                    AND Rates.tax_regime_code     = sd_rates.tax_regime_code(+)
729                    AND Rates.rate_type_code <> 'RECOVERY'                       -- Added for Bug#7504455
730                    AND
731                    ( Rates.content_owner_id    = sd_rates.parent_first_pty_org_id
732                      OR
733                      sd_rates.parent_first_pty_org_id IS NULL )
734                    AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
735                    AND (lines.subscription_date
736                          BETWEEN NVL(sd_rates.effective_from,
737                                      lines.subscription_date)
738                              AND NVL(sd_rates.effective_to,
739                                      lines.subscription_date)
740                         OR
741                         Rates.effective_from = (SELECT MIN(effective_from)
742                                                 FROM zx_rates_b
743                                                 WHERE
744                                                 tax_regime_code  = Rates.tax_regime_code and
745                                                 tax              = Rates.tax and
746                                                 tax_status_code  = Rates.tax_status_code and
747                                                 tax_rate_code    = Rates.tax_rate_code and
748                                                 content_owner_id = Rates.content_owner_id and
749                                                 rate_type_code   = Rates.rate_type_code          -- Added for Bug#7504455
750                                                 )
751                         )
752                    AND (NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC') OR
753                             (NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
754                                  AND NOT EXISTS (SELECT 1 FROM zx_rates_b b
755                                                   WHERE b.tax_regime_code = Rates.tax_regime_code
756                                                     AND b.tax = Rates.tax
757                                                     AND b.tax_status_code = Rates.tax_status_code
758                                                     AND b.tax_rate_code = Rates.tax_rate_code
759                                                     AND b.content_owner_id = sd_rates.first_pty_org_id
760                                                     AND b.rate_type_code = Rates.rate_type_code   -- Added for Bug#7504455
761                                                  )
762                              )
763                         )
764                ) qry
765     where TaxLines.application_id   = qry.application_id
766                    AND TaxLines.entity_code      = qry.entity_code
767                    AND TaxLines.event_class_code = qry.event_class_code
768                    AND TaxLines.trx_id           = qry.trx_id
769                    AND TaxLines.summary_tax_line_number = qry.summary_tax_line_number
770        AND ROWNUM = 1  -- To Prevent more than one row being fetched for a single row update
771   )
772 WHERE TaxLines.tax_rate_code IS NULL
773 AND TaxLines.tax_rate_id IS NOT NULL
774 AND ( TaxLines.tax_regime_code IS NULL OR TaxLines.tax IS NULL );
775 
776 IF (g_level_statement >= g_current_runtime_level ) THEN
777         FND_LOG.STRING(g_level_statement,
778                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
779                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:Defaulting for Tax Status Code');
780 END IF;
781 
782 UPDATE ZX_IMPORT_TAX_LINES_GT TaxLines
783         SET tax_status_code =
784         (SELECT Status.tax_status_code
785            FROM ZX_STATUS_B Status,
786                 ZX_TRX_HEADERS_GT Header,
787                 ZX_TRANSACTION_LINES_GT Lines,
788                 ZX_SUBSCRIPTION_DETAILS sd_status,
789                 ZX_RATES_B              rates,
790                 ZX_SUBSCRIPTION_DETAILS sd_rates
791           WHERE Status.tax_regime_code     = TaxLines.tax_regime_code
792             AND Status.tax                 = TaxLines.tax
793             --AND Status.default_status_flag = 'Y'
794             AND (Taxlines.tax_rate_code IS NOT NULL OR Taxlines.tax_rate_id IS NOT NULL)
795             AND ((Taxlines.tax_rate_code IS NOT NULL and rates.tax_rate_code = Taxlines.tax_rate_code)
796             OR  (Taxlines.tax_rate_id IS NOT NULL and rates.tax_rate_id = Taxlines.tax_rate_id))
797             AND rates.tax_status_code = Status.tax_status_code
798             AND lines.tax_date --Bug 5018766
799                 BETWEEN status.effective_from
800                 AND NVL(Status.effective_to, lines.tax_date ) --Bug 5018766,6982881
801             AND TaxLines.application_id    = Header.application_id
802             AND TaxLines.entity_code       = Header.entity_code
803             AND TaxLines.event_class_code  = Header.event_class_code
804             AND TaxLines.trx_id            = Header.trx_id
805             AND Lines.application_id       = Header.application_id
806       AND Lines.entity_code          = Header.entity_code
807       AND Lines.event_class_code     = Header.event_class_code
808       AND Lines.trx_id               = Header.trx_id
809       AND
810       (-- One to One Alloc
811     (
812         lines.trx_line_id = TaxLines.trx_line_id
813     )
814     OR
815     --Multi Alloc
816     (
817         TaxLines.trx_line_id IS NULL
818         AND TaxLines.tax_line_allocation_flag = 'Y'
819         AND lines.trx_line_id =
820         (
821         SELECT
822       MIN(trx_line_id)
823         FROM zx_trx_tax_link_gt link_gt
824         WHERE link_gt.TRX_ID = TaxLines.trx_id
825       AND link_gt.application_id = TaxLines.application_id
826       AND link_gt.entity_code = TaxLines.entity_code
827       AND link_gt.event_class_code = TaxLines.event_class_code
828       AND link_gt.summary_tax_line_number = TaxLines.summary_tax_line_number
829         )
830     )
831     OR
832     --All Alloc
833     (
834         TaxLines.trx_line_id IS NULL
835         AND TaxLines.tax_line_allocation_flag = 'N'
836         AND lines.trx_line_id =
837         (
838         SELECT
839       MIN(trx_line_id)
840         FROM zx_transaction_lines_gt trans_line_gt
841         WHERE trans_line_gt.trx_id = TaxLines.trx_id
842       AND trans_line_gt.application_id = TaxLines.application_id
843       AND trans_line_gt.entity_code = TaxLines.entity_code
844       AND trans_line_gt.event_class_code = TaxLines.event_class_code
845         )
846     )
847       )
848       AND status.tax_regime_code     = sd_status.tax_regime_code
849       AND status.content_owner_id    = sd_status.parent_first_pty_org_id
850       AND sd_status.first_pty_org_id = g_first_pty_org_id
851       AND (lines.subscription_date
852             BETWEEN NVL(sd_status.effective_from,
853             lines.subscription_date
854             )
855             AND NVL(sd_status.effective_to,
856         lines.subscription_date
857         )
858                   OR  status.effective_from = (SELECT MIN(effective_from)
859                          FROM ZX_STATUS_B
860                         WHERE tax_regime_code  = status.tax_regime_code and
861                               tax              = status.tax and
862                               tax_status_code  = status.tax_status_code and
863                               content_owner_id = status.content_owner_id
864                        )
865            )
866       AND (NVL(sd_status.view_options_code,'NONE') in ('NONE', 'VFC') OR
867                (NVL(sd_status.view_options_code,'VFR') = 'VFR'
868                AND NOT EXISTS ( SELECT 1 FROM zx_status_vl b
869                      WHERE b.tax_regime_code = status.tax_regime_code
870                      AND b.tax = status.tax
871                      AND b.tax_status_code = status.tax_status_code
872                      AND b.content_owner_id = sd_status.first_pty_org_id
873                    )
874                 )
875            )
876       AND Rates.tax_regime_code     = sd_rates.tax_regime_code(+)
877       AND Rates.rate_type_code <> 'RECOVERY'                         -- Added for Bug#7504455
878       AND ( Rates.content_owner_id    = sd_rates.parent_first_pty_org_id
879             OR sd_rates.parent_first_pty_org_id IS NULL )
880       AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
881       AND (lines.subscription_date
882             BETWEEN NVL(sd_rates.effective_from,
883                        lines.subscription_date)
884             AND NVL(sd_rates.effective_to,
885                     lines.subscription_date)
886             OR
887             Rates.effective_from = (SELECT MIN(effective_from)
888                                     FROM zx_rates_b
889                                     WHERE
890                                     tax_regime_code  = Rates.tax_regime_code and
891                                     tax              = Rates.tax and
892                                     tax_status_code  = Rates.tax_status_code and
893                                     tax_rate_code    = Rates.tax_rate_code and
894                                     content_owner_id = Rates.content_owner_id and
895                                     rate_type_code   = Rates.rate_type_code     -- Added for Bug#7504455
896                                     )
897             )
898       AND (NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC') OR
899           (NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
900            AND NOT EXISTS (SELECT 1 FROM zx_rates_b b
901                            WHERE b.tax_regime_code = Rates.tax_regime_code
902                            AND b.tax = Rates.tax
903                            AND b.tax_status_code = Rates.tax_status_code
904                            AND b.tax_rate_code = Rates.tax_rate_code
905                            AND b.content_owner_id = sd_rates.first_pty_org_id
906                            AND b.rate_type_code = Rates.rate_type_code          -- Added for Bug#7504455
907                            )
908           ))
909       AND ROWNUM = 1 -- To Prevent more than one row being fetched for a single row update
910    )
911 WHERE tax_status_code is NULL AND
912       (tax_rate_code IS NOT NULL OR tax_rate_id IS NOT NULL);
913 
914 
915 IF (g_level_statement >= g_current_runtime_level ) THEN
916         FND_LOG.STRING(g_level_statement,
917              'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
918              'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:Defaulting for tax_provider_id in ZX_IMPORT_TAX_LINES_GT ');
919 END IF;
920 
921 --Defaulting for tax Provider Id
922 Update ZX_IMPORT_TAX_LINES_GT TaxLines
923   SET tax_provider_id =
924           (SELECT srvc.srvc_provider_id
925              FROM ZX_SRVC_SUBSCRIPTIONS srvc,
926                   ZX_REGIMES_USAGES reg,
927                   ZX_TRX_HEADERS_GT Header,
928                   ZX_TRANSACTION_LINES_GT Lines,
929                   ZX_EVNT_CLS_MAPPINGS mapp
930             WHERE reg.tax_regime_code   =  TaxLines.tax_regime_code
931               AND srvc.regime_usage_id  = reg.regime_usage_id
932               AND srvc.enabled_flag = 'Y'
933               AND mapp.application_id =  TaxLines.application_id
934               AND mapp.entity_code =  TaxLines.entity_code
935               AND mapp.event_class_code =  TaxLines.event_class_code
936               AND TaxLines.application_id = Header.application_id
937               AND TaxLines.entity_code = Header.entity_code
938               AND TaxLines.event_class_code = Header.event_class_code
939               AND TaxLines.trx_id = Header.trx_id
940               AND srvc.prod_family_grp_code = mapp.prod_family_grp_code
941               AND Lines.application_id      = Header.application_id
942         AND Lines.entity_code         = Header.entity_code
943         AND Lines.event_class_code    = Header.event_class_code
944         AND Lines.trx_id              = Header.trx_id
945         AND
946         (-- One to One Alloc
947     (
948         lines.trx_line_id = TaxLines.trx_line_id
949     )
950     OR
951     --Multi Alloc
952     (
953         TaxLines.trx_line_id IS NULL
954         AND TaxLines.tax_line_allocation_flag = 'Y'
955         AND lines.trx_line_id =
956         (
957         SELECT
958       MIN(trx_line_id)
959         FROM zx_trx_tax_link_gt link_gt
960         WHERE link_gt.TRX_ID = TaxLines.trx_id
961       AND link_gt.application_id = TaxLines.application_id
962       AND link_gt.entity_code = TaxLines.entity_code
963       AND link_gt.event_class_code = TaxLines.event_class_code
964       AND link_gt.summary_tax_line_number = TaxLines.summary_tax_line_number
965         )
966     )
967     OR
968     --All Alloc
969     (
970         TaxLines.trx_line_id IS NULL
971         AND TaxLines.tax_line_allocation_flag = 'N'
972         AND lines.trx_line_id =
973         (
974         SELECT
975       MIN(trx_line_id)
976         FROM zx_transaction_lines_gt trans_line_gt
977         WHERE trans_line_gt.trx_id = TaxLines.trx_id
978       AND trans_line_gt.application_id = TaxLines.application_id
979       AND trans_line_gt.entity_code = TaxLines.entity_code
980       AND trans_line_gt.event_class_code = TaxLines.event_class_code
981         )
982     )
983         )
984               AND lines.subscription_date
985                   BETWEEN(srvc.effective_from) AND
986                       NVL(srvc.effective_to,
987                           lines.subscription_date)
988               AND reg.first_pty_org_id  = g_first_pty_org_id
989         AND NOT EXISTS (SELECT 1
990                           FROM ZX_SRVC_SBSCRPTN_EXCLS excl
991                                WHERE excl.application_id   = TaxLines.application_id
992                                  AND excl.entity_code      = TaxLines.entity_code
993                                  AND excl.event_class_code = TaxLines.event_class_code
994                                  AND excl.srvc_subscription_id = srvc_subscription_id
995                     )
996       AND ROWNUM = 1 -- To Prevent more than one row being fetched for a single row update
997          )
998 WHERE tax_provider_id is NULL AND
999       (tax_rate_code IS NOT NULL OR tax_rate_id IS NOT NULL);
1000 
1001 
1002 /* Bug 4703541 : Defaulting for Tax Jurisdiction Code */
1003 /* Seperated the  Defaulting for Tax Jurisdiction Code as tax_rate_code
1004 is defaulted based on the Jurisdiction Code */
1005 IF (g_level_statement >= g_current_runtime_level ) THEN
1006         FND_LOG.STRING(g_level_statement,
1007                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
1008                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:Defaulting for Tax Jurisdiction Code ');
1009 END IF;
1010 
1011 UPDATE ZX_IMPORT_TAX_LINES_GT TaxLines
1012         SET tax_jurisdiction_code =
1013         (SELECT jur.TAX_JURISDICTION_CODE
1014            FROM ZX_JURISDICTIONS_B Jur,
1015                 ZX_TRX_HEADERS_GT Header,
1016                 ZX_TRANSACTION_LINES_GT Lines,
1017                 ZX_RATES_B              rates,
1018                 ZX_SUBSCRIPTION_DETAILS sd_rates
1019           WHERE
1020          Jur.tax                 = TaxLines.Tax
1021      AND Jur.tax_regime_code     = TaxLines.Tax_Regime_Code
1022      --AND Jur.default_jurisdiction_flag = 'Y'
1023      AND Jur.tax_jurisdiction_code = rates.tax_jurisdiction_code(+)
1024      AND (Taxlines.tax_rate_code IS NOT NULL OR Taxlines.tax_rate_id IS NOT NULL)
1025      AND ((Taxlines.tax_rate_code IS NOT NULL and rates.tax_rate_code = Taxlines.tax_rate_code)
1026          OR  (Taxlines.tax_rate_id IS NOT NULL and rates.tax_rate_id = Taxlines.tax_rate_id))
1027             AND  lines.tax_date --Bug 5018766
1028            BETWEEN Jur.effective_from
1029            AND NVL(Jur.effective_to, lines.tax_date ) --Bug 5018766
1030      --AND lines.tax_date --Bug 5018766
1031            --BETWEEN Jur.default_flg_effective_from
1032            --AND NVL(Jur.default_flg_effective_to,
1033            --    lines.tax_date)
1034             AND TaxLines.application_id    = Header.application_id
1035             AND TaxLines.entity_code       = Header.entity_code
1036             AND TaxLines.event_class_code  = Header.event_class_code
1037             AND TaxLines.trx_id            = Header.trx_id
1038             AND Lines.application_id       = TaxLines.application_id
1039       AND Lines.entity_code          = TaxLines.entity_code
1040       AND Lines.event_class_code     = TaxLines.event_class_code
1041       AND Lines.trx_id               = TaxLines.trx_id
1042       AND
1043            (-- One to One Alloc
1044     (
1045         lines.trx_line_id = TaxLines.trx_line_id
1046     )
1047     OR
1048     --Multi Alloc
1049     (
1050         TaxLines.trx_line_id IS NULL
1051         AND TaxLines.tax_line_allocation_flag = 'Y'
1052         AND lines.trx_line_id =
1053         (
1054         SELECT
1055       MIN(trx_line_id)
1056         FROM zx_trx_tax_link_gt link_gt
1057         WHERE link_gt.TRX_ID = TaxLines.trx_id
1058       AND link_gt.application_id = TaxLines.application_id
1059       AND link_gt.entity_code = TaxLines.entity_code
1060       AND link_gt.event_class_code = TaxLines.event_class_code
1061       AND link_gt.summary_tax_line_number = TaxLines.summary_tax_line_number
1062         )
1063     )
1064     OR
1065     --All Alloc
1066     (
1067         TaxLines.trx_line_id IS NULL
1068         AND TaxLines.tax_line_allocation_flag = 'N'
1069         AND lines.trx_line_id =
1070         (
1071         SELECT
1072       MIN(trx_line_id)
1073         FROM zx_transaction_lines_gt trans_line_gt
1074         WHERE trans_line_gt.trx_id = TaxLines.trx_id
1075       AND trans_line_gt.application_id = TaxLines.application_id
1076       AND trans_line_gt.entity_code = TaxLines.entity_code
1077       AND trans_line_gt.event_class_code = TaxLines.event_class_code
1078         )
1079     )
1080       )
1081      AND Rates.tax_regime_code     = sd_rates.tax_regime_code(+)
1082  	   AND ( Rates.content_owner_id    = sd_rates.parent_first_pty_org_id
1083  	                         OR sd_rates.parent_first_pty_org_id IS NULL )
1084  	   AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
1085  	   AND (lines.subscription_date
1086  	        BETWEEN NVL(sd_rates.effective_from,
1087  	                    lines.subscription_date)
1088  	        AND NVL(sd_rates.effective_to,
1089  	                    lines.subscription_date)
1090  	   OR
1091  	     Rates.effective_from = (SELECT MIN(effective_from)
1092  	                             FROM zx_rates_b
1093  	                             WHERE
1094  	                                  tax_regime_code  = Rates.tax_regime_code and
1095  	                                  tax              = Rates.tax and
1096  	                                  tax_status_code  = Rates.tax_status_code and
1097  	                                  tax_rate_code    = Rates.tax_rate_code and
1098  	                                  content_owner_id = Rates.content_owner_id
1099  	                             )
1100  	       )
1101  	   AND (NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC') OR
1102  	       (NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
1103  	        AND NOT EXISTS (SELECT 1 FROM zx_rates_b b
1104  	                        WHERE b.tax_regime_code = Rates.tax_regime_code
1105  	                        AND b.tax = Rates.tax
1106  	                        AND b.tax_status_code = Rates.tax_status_code
1107  	                        AND b.tax_rate_code = Rates.tax_rate_code
1108  	                        AND b.content_owner_id = sd_rates.first_pty_org_id
1109  	                       )
1110  	   ))
1111       AND ROWNUM = 1 -- To Prevent more than one row being fetched for a single row update
1112    )
1113 WHERE tax_jurisdiction_code is NULL AND
1114      (tax_rate_code IS NOT NULL OR tax_rate_id IS NOT NULL);
1115 
1116 IF (g_level_statement >= g_current_runtime_level ) THEN
1117         FND_LOG.STRING(g_level_statement,
1118                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
1119                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:Defaulting for Tax Rate Code,
1120     Tax Rate Id, Percentage Rate ');
1121 END IF;
1122 
1123 
1124 /* Defaulting for Tax Rate Code, Tax Rate Id, Percentage Rate */
1125 --Bug 4703541 : Seperated Logic to Default Rates and the Jurisdiction Code.
1126 -- bug 7414628 split the query using UNION ALL based on tax_rate_code and tax_rate_id
1127 UPDATE zx_import_tax_lines_gt  TaxLines
1128 SET (tax_rate_code,
1129      tax_rate_id,
1130      tax_rate) =
1131     (
1132   SELECT NVL(TaxLines.tax_rate_code, qry.rate_code),
1133          NVL(TaxLines.tax_rate_id, qry.rate_id),
1134          NVL(TaxLines.tax_rate, qry.percnt_rate)
1135   FROM (
1136     SELECT NVL(taxlines.tax_rate_code,Rates.tax_rate_code) rate_code,
1137            NVL(taxlines.tax_rate_id,Rates.tax_rate_id) rate_id,
1138            NVL(taxlines.tax_rate,Rates.percentage_rate) percnt_rate,
1139            TaxLines.application_id application_id,
1140            TaxLines.entity_code entity_code,
1141            TaxLines.event_class_code event_class_code,
1142            TaxLines.trx_id trx_id,
1143            TaxLines.summary_tax_line_number summary_tax_line_number
1144     FROM zx_rates_b rates,
1145          zx_trx_headers_gt header,
1146          zx_transaction_lines_gt lines,
1147          zx_subscription_details sd_rates,
1148          zx_import_tax_lines_gt  taxlines
1149     WHERE TaxLines.tax_regime_Code = rates.tax_regime_code(+)
1150 --      AND (Taxlines.tax_rate_code IS NOT NULL OR Taxlines.tax_rate_id IS NOT NULL)
1151       AND TaxLines.tax = rates.tax(+)
1152       AND ( TaxLines.tax_jurisdiction_code = rates.tax_jurisdiction_code
1153             OR
1154             rates.tax_jurisdiction_code IS NULL
1155             OR
1156             TaxLines.tax_jurisdiction_code IS NULL
1157           )
1158       --and Rates.default_rate_flag(+) = 'Y'
1159       AND TaxLines.tax_status_code = rates.tax_status_code(+)
1160 --                  AND ((Taxlines.tax_rate_code IS NOT NULL AND
1161 --                                              Taxlines.tax_rate_code = rates.tax_rate_code)
1162 --                      OR (Taxlines.tax_rate_id IS NOT NULL AND
1163 --                                              Taxlines.tax_rate_id = rates.tax_rate_id))
1164       AND Taxlines.tax_rate_id = rates.tax_rate_id
1165       AND lines.tax_date --Bug 5018766
1166                    -- BETWEEN nvl(Rates.default_flg_effective_from,  -- Commented as a fix of Bug#7148665
1167                    -- AND NVL(Rates.default_flg_effective_to,        -- Commented as a fix of Bug#7148665
1168           BETWEEN nvl(Rates.effective_from, lines.tax_date)
1169               AND NVL(Rates.effective_to, lines.tax_date)
1170       AND Rates.tax_regime_code = sd_rates.tax_regime_code(+)
1171       AND Rates.active_flag = 'Y'
1172       AND Rates.rate_type_code <> 'RECOVERY'                         -- Added for Bug#7504455
1173       AND ( Rates.content_owner_id = sd_rates.parent_first_pty_org_id
1174             OR
1175             sd_rates.parent_first_pty_org_id IS NULL
1176           )
1177       AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
1178       AND (lines.subscription_date
1179             BETWEEN NVL(sd_rates.effective_from,lines.subscription_date)
1180                 AND NVL(sd_rates.effective_to,lines.subscription_date)
1181            OR
1182            Rates.effective_from = (SELECT MIN(effective_from)
1183                                      FROM zx_rates_b
1184                                     WHERE tax_regime_code  = Rates.tax_regime_code
1185                                       and tax              = Rates.tax
1186                                       and tax_status_code  = Rates.tax_status_code
1187                                       and tax_rate_code    = Rates.tax_rate_code
1188                                       and content_owner_id = Rates.content_owner_id
1189                                       and rate_type_code   = Rates.rate_type_code  -- Added for Bug#7504455
1190                                   )
1191           )
1192       AND ( NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC')
1193             OR
1194             (NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
1195                 AND NOT EXISTS (SELECT 1 FROM zx_rates_b b
1196                                  WHERE b.tax_regime_code  = Rates.tax_regime_code
1197                                    AND b.tax              = Rates.tax
1198                                    AND b.tax_status_code  = Rates.tax_status_code
1199                                    AND b.tax_rate_code    = Rates.tax_rate_code
1200                                    AND b.content_owner_id = sd_rates.first_pty_org_id
1201                                    AND b.rate_type_code   = Rates.rate_type_code   -- Added for Bug#7504455
1202                                )
1203            )
1204          )
1205       AND TaxLines.application_id   = Header.application_id
1206       AND TaxLines.entity_code      = Header.entity_code
1207       AND TaxLines.event_class_code = Header.event_class_code
1208       AND TaxLines.trx_id           = Header.trx_id
1209       AND Lines.application_id      = Header.application_id
1210       AND Lines.entity_code         = Header.entity_code
1211       AND Lines.event_class_code    = Header.event_class_code
1212       AND Lines.trx_id              = Header.trx_id
1213       AND (
1214              -- One to One Alloc
1215              ( lines.trx_line_id = TaxLines.trx_line_id )
1216               OR
1217              --Multi Alloc
1218              (      TaxLines.trx_line_id IS NULL
1219                 AND TaxLines.tax_line_allocation_flag = 'Y'
1220                 AND lines.trx_line_id =
1221                        (SELECT MIN(trx_line_id)
1222                           FROM zx_trx_tax_link_gt link_gt
1223                          WHERE link_gt.TRX_ID                  = TaxLines.trx_id
1224                            AND link_gt.application_id          = TaxLines.application_id
1225                            AND link_gt.entity_code             = TaxLines.entity_code
1226                            AND link_gt.event_class_code        = TaxLines.event_class_code
1227                            AND link_gt.summary_tax_line_number = TaxLines.summary_tax_line_number
1228                        )
1229              )
1230              OR
1231              --All Alloc
1232             (       TaxLines.trx_line_id IS NULL
1233                 AND TaxLines.tax_line_allocation_flag = 'N'
1234                 AND lines.trx_line_id =
1235                        (SELECT MIN(trx_line_id)
1236                           FROM zx_transaction_lines_gt trans_line_gt
1237                          WHERE trans_line_gt.trx_id           = TaxLines.trx_id
1238                            AND trans_line_gt.application_id   = TaxLines.application_id
1239                            AND trans_line_gt.entity_code      = TaxLines.entity_code
1240                            AND trans_line_gt.event_class_code = TaxLines.event_class_code
1241                        )
1242              )
1243           )
1244     -- debug for bug 7414628 added UNION ALL by splitting the code for the join
1245     -- AND (Taxlines.tax_rate_code = rates.tax_rate_code OR Taxlines.tax_rate_id = rates.tax_rate_id)
1246     UNION ALL
1247     SELECT /*+ index(rates ZX_RATES_B_U2) */
1248            NVL(taxlines.tax_rate_code,Rates.tax_rate_code) rate_code,
1249            NVL(taxlines.tax_rate_id,Rates.tax_rate_id) rate_id,
1250            NVL(taxlines.tax_rate,Rates.percentage_rate) percnt_rate,
1251            TaxLines.application_id application_id,
1252            TaxLines.entity_code entity_code,
1253            TaxLines.event_class_code event_class_code,
1254            TaxLines.trx_id trx_id,
1255            TaxLines.summary_tax_line_number summary_tax_line_number
1256     FROM zx_rates_b rates,
1257          zx_trx_headers_gt header,
1258          zx_transaction_lines_gt lines,
1259          zx_subscription_details sd_rates,
1260          zx_import_tax_lines_gt  taxlines
1261     WHERE TaxLines.tax_regime_Code = rates.tax_regime_code(+)
1262 --      AND (Taxlines.tax_rate_code IS NOT NULL OR Taxlines.tax_rate_id IS NOT NULL)
1263       AND TaxLines.tax = rates.tax(+)
1264       AND ( TaxLines.tax_jurisdiction_code = rates.tax_jurisdiction_code
1265             OR
1266             rates.tax_jurisdiction_code IS NULL
1267             OR
1268             TaxLines.tax_jurisdiction_code IS NULL
1269           )
1270       --and Rates.default_rate_flag(+) = 'Y'
1271       AND TaxLines.tax_status_code = rates.tax_status_code(+)
1272 --                  AND ((Taxlines.tax_rate_code IS NOT NULL AND
1273 --                                              Taxlines.tax_rate_code = rates.tax_rate_code)
1274 --                      OR (Taxlines.tax_rate_id IS NOT NULL AND
1275 --                                              Taxlines.tax_rate_id = rates.tax_rate_id))
1276       AND taxlines.tax_rate_code = rates.tax_rate_code
1277       AND lines.tax_date --Bug 5018766
1278                    -- BETWEEN nvl(Rates.default_flg_effective_from,  -- Commented as a fix of Bug#7148665
1279                    -- AND NVL(Rates.default_flg_effective_to,        -- Commented as a fix of Bug#7148665
1280           BETWEEN NVL(Rates.effective_from, lines.tax_date)
1281               AND NVL(Rates.effective_to, lines.tax_date)
1282       AND Rates.tax_regime_code = sd_rates.tax_regime_code(+)
1283       AND Rates.active_flag = 'Y'
1284       AND Rates.rate_type_code <> 'RECOVERY'                         -- Added for Bug#7504455
1285       AND ( Rates.content_owner_id = sd_rates.parent_first_pty_org_id
1286             OR
1287             sd_rates.parent_first_pty_org_id IS NULL
1288           )
1289       AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
1290       AND (lines.subscription_date
1291             BETWEEN NVL(sd_rates.effective_from,lines.subscription_date)
1292                 AND NVL(sd_rates.effective_to,lines.subscription_date)
1293            OR
1294            Rates.effective_from = (SELECT MIN(effective_from)
1295                                      FROM zx_rates_b
1296                                     WHERE tax_regime_code  = Rates.tax_regime_code
1297                                       and tax              = Rates.tax
1298                                       and tax_status_code  = Rates.tax_status_code
1299                                       and tax_rate_code    = Rates.tax_rate_code
1300                                       and content_owner_id = Rates.content_owner_id
1301                                       and rate_type_code   = Rates.rate_type_code   -- Added for Bug#7504455
1302                                   )
1303           )
1304       AND ( NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC')
1305             OR
1306             (NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
1307                 AND NOT EXISTS (SELECT 1 FROM zx_rates_b b
1308                                  WHERE b.tax_regime_code  = Rates.tax_regime_code
1309                                    AND b.tax              = Rates.tax
1310                                    AND b.tax_status_code  = Rates.tax_status_code
1311                                    AND b.tax_rate_code    = Rates.tax_rate_code
1312                                    AND b.content_owner_id = sd_rates.first_pty_org_id
1313                                    AND b.rate_type_code   = Rates.rate_type_code    -- Added for Bug#7504455
1314                                )
1315            )
1316          )
1317       AND TaxLines.application_id   = Header.application_id
1318       AND TaxLines.entity_code      = Header.entity_code
1319       AND TaxLines.event_class_code = Header.event_class_code
1320       AND TaxLines.trx_id           = Header.trx_id
1321       AND Lines.application_id      = Header.application_id
1322       AND Lines.entity_code         = Header.entity_code
1323       AND Lines.event_class_code    = Header.event_class_code
1324       AND Lines.trx_id              = Header.trx_id
1325       AND (
1326              -- One to One Alloc
1327              ( lines.trx_line_id = TaxLines.trx_line_id )
1328               OR
1329              --Multi Alloc
1330              (      TaxLines.trx_line_id IS NULL
1331                 AND TaxLines.tax_line_allocation_flag = 'Y'
1332                 AND lines.trx_line_id =
1333                        (SELECT MIN(trx_line_id)
1334                           FROM zx_trx_tax_link_gt link_gt
1335                          WHERE link_gt.TRX_ID                  = TaxLines.trx_id
1336                            AND link_gt.application_id          = TaxLines.application_id
1337                            AND link_gt.entity_code             = TaxLines.entity_code
1338                            AND link_gt.event_class_code        = TaxLines.event_class_code
1339                            AND link_gt.summary_tax_line_number = TaxLines.summary_tax_line_number
1340                        )
1341              )
1342              OR
1343              --All Alloc
1344             (       TaxLines.trx_line_id IS NULL
1345                 AND TaxLines.tax_line_allocation_flag = 'N'
1346                 AND lines.trx_line_id =
1347                        (SELECT MIN(trx_line_id)
1348                           FROM zx_transaction_lines_gt trans_line_gt
1349                          WHERE trans_line_gt.trx_id           = TaxLines.trx_id
1350                            AND trans_line_gt.application_id   = TaxLines.application_id
1351                            AND trans_line_gt.entity_code      = TaxLines.entity_code
1352                            AND trans_line_gt.event_class_code = TaxLines.event_class_code
1353                        )
1354              )
1355           )
1356       ) qry
1357   WHERE TaxLines.application_id   = qry.application_id
1358     AND TaxLines.entity_code      = qry.entity_code
1359     AND TaxLines.event_class_code = qry.event_class_code
1360     AND TaxLines.trx_id           = qry.trx_id
1361     AND TaxLines.summary_tax_line_number = qry.summary_tax_line_number
1362     AND ROWNUM =1  -- To Prevent more than one row being fetched for a single row update
1363     );
1364 
1365 /*Defaulting for Transaction Business Category and Product Category
1366   Product Fiscal Classification  and Assessable Value */
1367 
1368 IF (g_level_statement >= g_current_runtime_level ) THEN
1369         FND_LOG.STRING(g_level_statement,
1370                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
1371         'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:
1372         Defaulting for Transaction Business Category and Product Category,
1373         Product Fiscal Classification  and Assessable Value');
1374 END IF;
1375 
1376 IF (g_level_statement >= g_current_runtime_level ) THEN
1377         FND_LOG.STRING(g_level_statement,
1378                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
1379                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR: Before Call to the private procedure
1380                  to default the additional tax attributes ');
1381 END IF;
1382 
1383 -- Call the private procedure to default the tax attributes.
1384 def_additional_tax_attribs;
1385 
1386 IF (g_level_statement >= g_current_runtime_level ) THEN
1387         FND_LOG.STRING(g_level_statement,
1388                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
1389                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR:Defaulting tax amount if it is NULL
1390                  and tax rate is specified  ');
1391 END IF;
1392 
1393 ---  CR 3275391 Default tax amount if it is NULL and tax rate is specified ----
1394 /* Commented for the Bug 4902521
1395 UPDATE ZX_IMPORT_TAX_LINES_GT  TaxLines
1396 SET tax_amt = (SELECT CASE WHEN (tax_amt_included_flag  <> 'Y')
1397                            THEN  tax_rate * line_amt / ( 100 + sum_of_tax_rates)
1398                            WHEN (sum_of_tax_rates = 0 )
1399                            THEN  0
1400                            END
1401                  FROM (SELECT (SELECT SUM(tax_rate)
1402                                  FROM temp
1403                               GROUP BY trx_line_id) sum_of_tax_rates ,
1404                               TAX_AMT_INCLUDED_FLAG,
1405                               LINE_AMT, tax_rate
1406                          FROM  -- temp subqry
1407                               (SELECT TaxLines.tax_rate,
1408                                       TaxLines.tax_amt_included_flag,
1409                                       TaxLink.line_amt,
1410                                       TaxLines.trx_id,
1411                                       TaxLines.trx_line_id
1412                                  FROM ZX_TRX_TAX_LINK_GT       TaxLink,
1413                                       ZX_IMPORT_TAX_LINES_GT   TaxLines,
1414                                       ZX_TRX_HEADERS_GT        Header,
1415                                       ZX_TRANSACTION_LINES_GT  Lines,
1416                                       ZX_TAXES_B               tax,
1417                                       zx_rates_b               rate,
1418                                       zx_subscription_details  sd_tax,
1419                                       zx_subscription_details  sd_rates
1420                                 WHERE Taxlines.TAX_LINE_ALLOCATION_FLAG  = 'Y'
1421                                   AND TaxLines.tax_amt is NULL
1422                                   AND TaxLines.tax_rate is not NULL
1423                                   AND TaxLines.application_id  = taxLink.application_id
1424                                   AND TaxLines.entity_code  = taxLink.entity_code
1425                                   AND TaxLines.event_class_code  = taxLink.event_class_code
1426                                   AND TaxLines.summary_tax_line_number  = taxLink.summary_tax_line_number
1427                                   AND TaxLines.trx_id = TaxLink.trx_id
1428                                   AND TaxLines.application_id   = Header.application_id
1429                 AND TaxLines.entity_code      = Header.entity_code
1430                 AND TaxLines.event_class_code = Header.event_class_code
1431                       AND TaxLines.trx_id           = Header.trx_id
1432                       AND Lines.application_id      = Header.application_id
1433           AND Lines.entity_code         = Header.entity_code
1434           AND Lines.event_class_code    = Header.event_class_code
1435           AND Lines.trx_id              = Header.trx_id
1436           AND
1437           (-- One to One Alloc
1438           (
1439               lines.trx_line_id = TaxLines.trx_line_id
1440           )
1441           OR
1442           --Multi Alloc
1443           (
1444               TaxLines.trx_line_id IS NULL
1445               AND TaxLines.tax_line_allocation_flag = 'Y'
1446               AND lines.trx_line_id =
1447               (
1448               SELECT
1449             MIN(trx_line_id)
1450               FROM zx_trx_tax_link_gt link_gt
1451               WHERE link_gt.TRX_ID = TaxLines.trx_id
1452             AND link_gt.application_id = TaxLines.application_id
1453             AND link_gt.entity_code = TaxLines.entity_code
1454             AND link_gt.event_class_code = TaxLines.event_class_code
1455             AND link_gt.summary_tax_line_number = TaxLines.summary_tax_line_number
1456               )
1457           )
1458           OR
1459           --All Alloc
1460           (
1461               TaxLines.trx_line_id IS NULL
1462               AND TaxLines.tax_line_allocation_flag = 'N'
1463               AND lines.trx_line_id =
1464               (
1465               SELECT
1466             MIN(trx_line_id)
1467               FROM zx_transaction_lines_gt trans_line_gt
1468               WHERE trans_line_gt.trx_id = TaxLines.trx_id
1469             AND trans_line_gt.application_id = TaxLines.application_id
1470             AND trans_line_gt.entity_code = TaxLines.entity_code
1471             AND trans_line_gt.event_class_code = TaxLines.event_class_code
1472               )
1473           )
1474           )
1475                                   --* for taxes
1476                                   AND NVL(tax.def_taxable_basis_formula,'STANDARD_TB') = 'STANDARD_TB'
1477                                   AND tax.tax(+)              = taxlines.tax
1478                                   AND tax.tax_regime_code     = sd_tax.tax_regime_code (+)
1479                                   AND tax.content_owner_id    = sd_tax.parent_first_pty_org_id(+)
1480                                   AND sd_tax.first_pty_org_id(+) = g_first_pty_org_id
1481                                   AND(COALESCE(header.related_doc_date,
1482                                                header.provnl_tax_determination_date,
1483                                                Lines.adjusted_doc_date,
1484                                                header.trx_date,
1485                                                SYSDATE)
1486                                         BETWEEN nvl(sd_tax.effective_from,
1487                                                     COALESCE(header.related_doc_date,
1488                                                              header.provnl_tax_determination_date,
1489                                                              Lines.adjusted_doc_date,
1490                                                              header.trx_date,
1491                                                              SYSDATE) )
1492                                             AND NVL(sd_tax.effective_to,
1493                                                     COALESCE(header.related_doc_date,
1494                                                              header.provnl_tax_determination_date,
1495                                                              Lines.adjusted_doc_date,
1496                                                              header.trx_date,
1497                                                              SYSDATE) )
1498                                       OR
1499                                           tax.effective_from = (SELECT MIN(effective_from)
1500                                                                   FROM ZX_TAXES_B
1501                                                                  WHERE
1502                                                                  tax_regime_code  = tax.tax_regime_code and
1503                                                                  tax      = tax.tax and
1504                                                                  content_owner_id = tax.content_owner_id
1505                                                                 )
1506                                        )
1507                                   and (nvl(sd_tax.view_options_code,'NONE')  in ('NONE', 'VFC') OR
1508                                         (nvl(sd_tax.view_options_code,'VFR') = 'VFR'
1509                                            AND NOT EXISTS (SELECT 1 FROM zx_taxes_b b
1510                                                             WHERE tax.tax_regime_code = b.tax_regime_code
1511                                                               AND tax.tax  =  b.tax
1512                                                               AND sd_tax.first_pty_org_id = b.content_owner_id
1513                                                            )
1514                                              )
1515                                        )
1516                                   --* for rates
1517                                   AND NVL(rate.rate_type_code,'PERCENTAGE') = 'PERCENTAGE'
1518                                   AND rate.tax_rate_id(+)       = taxlines.tax_rate_id
1519                                   AND rate.tax_rate_code (+)    = taxlines.tax_rate_code
1520                                   AND rate.tax_regime_code      = sd_rates.tax_regime_code (+)
1521                                   AND rate.content_owner_id     = sd_rates.parent_first_pty_org_id (+)
1522                                   AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
1523                       AND (COALESCE(header.related_doc_date,
1524                                     header.provnl_tax_determination_date,
1525                                     Lines.adjusted_doc_date,
1526                                     header.trx_date,
1527                                     SYSDATE)
1528                                   BETWEEN nvl( sd_rates.effective_from,
1529                                                COALESCE(header.related_doc_date,
1530                                                         header.provnl_tax_determination_date,
1531                                                         Lines.adjusted_doc_date,
1532                                                         header.trx_date,
1533                                                         SYSDATE) )
1534                                   AND nvl(sd_rates.effective_to,
1535                                           COALESCE(header.related_doc_date,
1536                                                    header.provnl_tax_determination_date,
1537                                                    Lines.adjusted_doc_date,
1538                                                    header.trx_date,
1539                                                    SYSDATE) )
1540                                                       OR
1541                                    rate.effective_from = (select min(effective_from)
1542                                                             from ZX_RATES_B
1543                                                            where
1544                                                            tax_regime_code  = rate.tax_regime_code and
1545                                                            tax        = rate.tax and
1546                                                            tax_status_code  = rate.tax_status_code and
1547                                                            tax_rate_code    = rate.tax_rate_code and
1548                                                            content_owner_id = rate.content_owner_id
1549                                                           )
1550                                   )
1551                                   AND (NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC') OR
1552                                         (NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
1553                                            AND NOT EXISTS (select 1 from zx_rates_b b
1554                                                             where b.tax_regime_code = rate.tax_regime_code
1555                                                               and b.tax             = rate.tax
1556                                                               and b.tax_status_code = rate.tax_status_code
1557                                                               and b.tax_rate_code = rate.tax_rate_code
1558                                                               and b.content_owner_id = sd_rates.first_pty_org_id
1559                                                            )
1560                                          )
1561                                        )
1562                        )) temp
1563                ); */
1564 
1565 -- Bug#3910168
1566 -- Defaulting for  tax classification code
1567 
1568 IF (g_level_statement >= g_current_runtime_level ) THEN
1569         FND_LOG.STRING(g_level_statement,
1570                 'ZX.PL/SQL.ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
1571                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR: Defaulting for  tax classification code -
1572     Call to pop_def_tax_classif_code');
1573 END IF;
1574 
1575      pop_def_tax_classif_code(x_return_status);
1576 
1577      IF (g_level_procedure >= g_current_runtime_level ) THEN
1578         FND_LOG.STRING(g_level_procedure,
1579                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR.END',
1580                 'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR(-)');
1581      END IF;
1582 
1583 EXCEPTION
1584                 WHEN OTHERS THEN
1585                 IF (g_level_unexpected >= g_current_runtime_level ) THEN
1586                   FND_LOG.STRING(g_level_unexpected,
1587                           'ZX_VALIDATE_API_PKG.DEFAULT_TAX_ATTR',
1588                            sqlerrm);
1589                 END IF;
1590                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1591                 app_exception.raise_exception;
1592 
1593 END Default_Tax_Attr;
1594 
1595 
1596 --------------Wrapper Procedure For Validating -----------------------
1597 
1598 PROCEDURE Validate_Tax_Attr(x_return_status OUT NOCOPY VARCHAR2) IS
1599 
1600   l_trx_id_tbl                        TRX_ID_TBL;
1601   l_trx_line_id_tbl                   TRX_LINE_ID_TBL;
1602   l_trx_level_type_tbl                TRX_LEVEL_TYPE_TBL;
1603   l_event_class_code_tbl              EVENT_CLASS_CODE_TBL;
1604   l_entity_code_tbl                   ENTITY_CODE_TBL;
1605   l_application_id_tbl                APPLICATION_ID_TBL;
1606   l_summary_tax_line_number_tbl       SUMMARY_TAX_LINE_NUMBER_TBL;
1607   l_count                             NUMBER;
1608   l_error_buffer                      VARCHAR2(240);
1609 
1610   c_lines_per_commit CONSTANT NUMBER := ZX_TDS_CALC_SERVICES_PUB_PKG.G_LINES_PER_COMMIT;
1611 
1612   CURSOR get_header_and_line_info_csr
1613   IS
1614   SELECT
1615   header.application_id,
1616   header.entity_code,
1617   header.event_class_code,
1618   header.trx_id,
1619   lines_gt.trx_line_id,
1620   lines_gt.trx_level_type
1621 
1622   FROM
1623        ZX_TRX_HEADERS_GT             header,
1624        ZX_EVNT_CLS_MAPPINGS          evntmap,
1625        ZX_TRANSACTION_LINES_GT       lines_gt,
1626        ZX_FC_PRODUCT_CATEGORIES_V    fc_prodcat,
1627        ZX_FC_CODES_B                 fc_user,
1628        ZX_FC_DOCUMENT_FISCAL_V       fc_doc,
1629        ZX_FC_BUSINESS_CATEGORIES_V   fc_trx,
1630        ZX_FC_CODES_B                 fc_int,
1631        FND_LOOKUPS                   fnd,
1632        FND_TERRITORIES               fnd_terr,
1633        ZX_FC_PRODUCT_FISCAL_V        fc_product
1634        --ZX_RATES_B                  rates       --Commented for Bug#7504455--
1635 
1636   WHERE
1637       lines_gt.trx_id = header.trx_id
1638   and fc_product.classification_code(+) =
1639       lines_gt.product_fisc_classification
1640   and fc_prodcat.classification_code(+) =
1641       lines_gt.product_category
1642   and fc_user.classification_type_code(+) = 'USER_DEFINED'
1643   and fc_user.classification_code(+) =
1644       lines_gt.user_defined_fisc_class
1645   and fc_doc.classification_code(+) = header.document_sub_type
1646   and fc_trx.classification_code(+) = lines_gt.trx_business_category
1647   and fc_trx.application_id(+)      = lines_gt.application_id
1648   and fc_trx.entity_code(+)         = lines_gt.entity_code
1649   and fc_trx.event_class_code(+)    = lines_gt.event_class_code
1650   and fc_int.classification_type_code(+) = 'INTENDED_USE'
1651   and fc_int.classification_code(+)      =
1652       lines_gt.line_intended_use
1653   and header.application_id    = evntmap.application_id (+)
1654   and header.entity_code       = evntmap.entity_code (+)
1655   and header.event_class_code  = evntmap.event_class_code(+)
1656   and fnd.lookup_type(+)    = 'ZX_PRODUCT_TYPE' AND
1657       fnd.lookup_code(+) = lines_gt.product_type
1658   and fnd_terr.territory_code(+) =
1659       header.default_taxation_country;
1660   --Commented for Bug#7504455--
1661   --and rates.tax_rate_code(+) = NVL(lines_gt.output_tax_classification_code,
1662   --                                 lines_gt.input_tax_classification_code);
1663 
1664 
1665   CURSOR get_import_tax_line_info_csr
1666   IS
1667   SELECT
1668       header.application_id,
1669       header.entity_code,
1670       header.event_class_code,
1671       header.trx_id,
1672       lines_gt.trx_line_id,
1673       lines_gt.trx_level_type,
1674       taxlines_gt.summary_tax_line_number
1675   FROM ZX_TRX_HEADERS_GT header,
1676       ZX_REGIMES_B regime ,
1677       ZX_TAXES_B tax ,
1678       ZX_STATUS_B status ,
1679   --    ZX_RATES_B rate ,
1680   --    zx_rates_b off_rate,
1681   --    zx_import_tax_lines_gt temp_gt,
1682       ZX_IMPORT_TAX_LINES_GT taxlines_gt,
1683       zx_transaction_lines_gt lines_gt,
1684       ZX_JURISDICTIONS_B jur,
1685       zx_subscription_details sd_reg,
1686       zx_subscription_details sd_tax,
1687       zx_subscription_details sd_status
1688   --    zx_subscription_details sd_rates
1689   WHERE taxlines_gt.trx_id = header.trx_id
1690       AND taxlines_gt.application_id = Header.application_id
1691       AND taxlines_gt.entity_code = Header.entity_code
1692       AND taxlines_gt.event_class_code = Header.event_class_code
1693             --AND (taxlines_gt.tax_rate_code IS NOT NULL OR taxlines_gt.tax_rate_id IS NOT NULL)
1694       AND jur.tax_jurisdiction_code(+) = taxlines_gt.tax_jurisdiction_code
1695       AND jur.tax_regime_code(+) = taxlines_gt.tax_regime_code
1696       AND jur.tax(+) = taxlines_gt.tax
1697       AND
1698       (
1699     lines_gt.tax_date --Bug 5018766
1700     BETWEEN
1701          nvl(jur.effective_from, lines_gt.tax_date) AND
1702          nvl(jur.effective_to,lines_gt.tax_date)
1703     /*OR jur.effective_from =
1704     (
1705     SELECT
1706         min(effective_from)
1707     FROM ZX_JURISDICTIONS_B
1708     WHERE tax_jurisdiction_code = jur.tax_jurisdiction_code
1709     ) */
1710       )
1711       AND lines_gt.application_id = header.application_id
1712       AND lines_gt.entity_code = header.entity_code
1713       AND lines_gt.event_class_code = header.event_class_code
1714       AND lines_gt.trx_id = header.trx_id
1715       AND
1716       (-- One to One Alloc
1717     (
1718         lines_gt.trx_line_id = taxlines_gt.trx_line_id
1719     )
1720     OR
1721     --Multi Alloc
1722     (
1723         taxlines_gt.trx_line_id IS NULL
1724         AND taxlines_gt.tax_line_allocation_flag = 'Y'
1725         AND lines_gt.trx_line_id =
1726         (
1727         SELECT
1728       MIN(trx_line_id)
1729         FROM zx_trx_tax_link_gt link_gt
1730         WHERE link_gt.TRX_ID = taxlines_gt.trx_id
1731       AND link_gt.application_id = taxlines_gt.application_id
1732       AND link_gt.entity_code = taxlines_gt.entity_code
1733       AND link_gt.event_class_code = taxlines_gt.event_class_code
1734       AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
1735         )
1736     )
1737     OR
1738     --All Alloc
1739     (
1740         taxlines_gt.trx_line_id IS NULL
1741         AND taxlines_gt.tax_line_allocation_flag = 'N'
1742         AND lines_gt.trx_line_id =
1743         (
1744         SELECT
1745       MIN(trx_line_id)
1746         FROM zx_transaction_lines_gt trans_line_gt
1747         WHERE trans_line_gt.trx_id = taxlines_gt.trx_id
1748       AND trans_line_gt.application_id = taxlines_gt.application_id
1749       AND trans_line_gt.entity_code = taxlines_gt.entity_code
1750       AND trans_line_gt.event_class_code = taxlines_gt.event_class_code
1751         )
1752     )
1753       )
1754       --* for regime
1755       AND regime.tax_regime_code(+) = taxlines_gt.tax_regime_code
1756       AND regime.TAX_REGIME_CODE = sd_reg.tax_regime_code (+)
1757       AND sd_reg.first_pty_org_id(+) = g_first_pty_org_id
1758       AND nvl(sd_reg.view_options_code,'NONE') in ('NONE', 'VFC') -- Bug 4902521
1759       AND (
1760     lines_gt.subscription_date
1761     BETWEEN
1762     NVL(sd_reg.effective_from,
1763         lines_gt.subscription_date
1764         )
1765     AND
1766     NVL(sd_reg.effective_to,
1767         lines_gt.subscription_date
1768         )
1769        /* OR regime.effective_from =
1770         (
1771         SELECT
1772       MIN(effective_from)
1773         FROM zx_regimes_b
1774         WHERE tax_regime_code = regime.tax_regime_code
1775         ) */
1776     )
1777       --* for taxes
1778       AND tax.tax(+) = taxlines_gt.tax
1779       AND tax.tax_regime_code(+) = taxlines_gt.tax_regime_code
1780       AND tax.tax_regime_code = sd_tax.tax_regime_code (+)
1781       AND (
1782      tax.content_owner_id = sd_tax.parent_first_pty_org_id
1783      OR
1784      sd_tax.parent_first_pty_org_id is NULL
1785     )
1786       AND sd_tax.first_pty_org_id(+) = g_first_pty_org_id
1787       AND
1788       (
1789     lines_gt.subscription_date
1790     BETWEEN
1791     nvl(sd_tax.effective_from,
1792         lines_gt.subscription_date
1793        )
1794         AND
1795         NVL(sd_tax.effective_to,
1796       lines_gt.subscription_date
1797            )
1798     /*OR tax.effective_from =
1799     (
1800     SELECT
1801         min(effective_from)
1802     FROM ZX_TAXES_B
1803     WHERE tax_regime_code = tax.tax_regime_code
1804         AND tax = tax.tax
1805         AND content_owner_id = tax.content_owner_id
1806     ) */
1807       )
1808       AND
1809       (
1810     nvl(sd_tax.view_options_code,'NONE') in ('NONE', 'VFC')
1811     OR
1812     (
1813         nvl(sd_tax.view_options_code,'VFR') = 'VFR'
1814         AND not exists
1815         (
1816         SELECT
1817       1
1818         FROM zx_taxes_b b
1819         WHERE tax.tax_regime_code = b.tax_regime_code
1820       AND tax.tax = b.tax
1821       AND sd_tax.first_pty_org_id = b.content_owner_id
1822         )
1823     )
1824       )
1825       --* for status
1826       AND status.tax_status_code(+) = taxlines_gt.tax_status_code
1827       AND status.tax(+) = taxlines_gt.tax
1828       AND status.tax_regime_code(+) = taxlines_gt.tax_regime_code
1829       AND status.tax_regime_code = sd_status.tax_regime_code (+)
1830       AND
1831          (
1832     status.content_owner_id = sd_status.parent_first_pty_org_id
1833     OR
1834      sd_status.parent_first_pty_org_id is NULL
1835          )
1836       AND sd_status.first_pty_org_id(+) = g_first_pty_org_id
1837       AND
1838       (
1839     lines_gt.subscription_date
1840     BETWEEN
1841     nvl( sd_status.effective_from,
1842          lines_gt.subscription_date
1843        )
1844        AND
1845        nvl(sd_status.effective_to,
1846            lines_gt.subscription_date
1847       )
1848     /*OR status.effective_from =
1849     (
1850     SELECT
1851         min(effective_from)
1852     FROM ZX_STATUS_B
1853     WHERE tax_regime_code = status.tax_regime_code
1854         AND tax = status.tax
1855         AND tax_status_code = status.tax_status_code
1856         AND content_owner_id = status.content_owner_id
1857     ) */
1858       )
1859       AND
1860       (
1861     NVL(sd_status.view_options_code,'NONE') in ('NONE', 'VFC')
1862     OR
1863     (
1864         NVL(sd_status.view_options_code,'VFR') = 'VFR'
1865         AND not exists
1866         (
1867         SELECT
1868       1
1869         FROM zx_status_vl b
1870         WHERE b.tax_regime_code = status.tax_regime_code
1871       AND b.tax = status.tax
1872       AND b.tax_status_code = status.tax_status_code
1873       AND b.content_owner_id = sd_status.first_pty_org_id
1874         )
1875     )
1876       ) ;
1877 
1878   CURSOR get_tax_link_gt_info_csr
1879   IS
1880   SELECT
1881   application_id,
1882   entity_code,
1883   event_class_code,
1884   trx_id,
1885   interface_line_id,
1886   trx_level_type,
1887   summary_tax_line_number
1888   FROM zx_trx_tax_link_gt;
1889 
1890 BEGIN
1891         x_return_status := FND_API.G_RET_STS_SUCCESS;
1892         g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1893         IF (g_level_procedure >= g_current_runtime_level ) THEN
1894                 FND_LOG.STRING(g_level_procedure,
1895                         'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR.BEGIN',
1896                         'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR(+)');
1897         END IF;
1898 
1899         --Validations for ZX_TRX_HEADERS_GT, ZX_TRANSACTION_LINES_GT
1900   IF ( g_level_event >= g_current_runtime_level) THEN
1901     FND_LOG.STRING(g_level_event,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1902     'Validations for zx_trx_headers_gt and zx_transaction_lines_gt');
1903   END IF;
1904 
1905   -- Select the key columns and write into fnd log for debug purpose
1906   IF ( g_level_statement >= g_current_runtime_level) THEN
1907    FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1908       'Before opening the cursor - get_header_and_line_info_csr');
1909 
1910     OPEN get_header_and_line_info_csr;
1911 
1912     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1913       'After opening the cursor - get_header_and_line_info_csr');
1914 
1915     LOOP
1916       FETCH get_header_and_line_info_csr BULK COLLECT INTO
1917       l_application_id_tbl,
1918       l_entity_code_tbl,
1919       l_event_class_code_tbl,
1920       l_trx_id_tbl,
1921       l_trx_line_id_tbl,
1922       l_trx_level_type_tbl
1923 
1924         LIMIT C_LINES_PER_COMMIT;
1925 
1926 
1927 --        EXIT WHEN get_header_and_line_info_csr%notfound;
1928 
1929       l_count := nvl(l_trx_line_id_tbl.COUNT,0);
1930 
1931     FND_LOG.STRING(g_level_statement,
1932              'ZX.PLSQL.ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1933              'number of rows fetched = ' || to_char(l_count));
1934 
1935       IF l_count > 0 THEN
1936 
1937         FOR i IN 1.. l_count LOOP
1938 
1939     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1940     'Row Number = ' || to_char(i) );
1941 
1942     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1943     'l_application_id = ' || to_char(l_application_id_tbl(i)) );
1944 
1945     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1946     'l_entity_code = ' || l_entity_code_tbl(i) );
1947 
1948     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1949     'l_event_class_code = ' || l_event_class_code_tbl(i) );
1950 
1951     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1952     'l_trx_id = ' || to_char(l_trx_id_tbl(i)) );
1953 
1954     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1955     'l_trx_line_id = ' || to_char(l_trx_line_id_tbl(i)) );
1956 
1957     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1958     'l_trx_level_type = ' || l_trx_level_type_tbl(i) );
1959 
1960         END LOOP;
1961       ELSE
1962          EXIT ;
1963 
1964       END IF; -- end of count checking
1965 
1966     END LOOP;
1967 
1968     CLOSE get_header_and_line_info_csr;
1969 
1970           -- Clear the records
1971     l_application_id_tbl.delete;
1972     l_entity_code_tbl.delete;
1973     l_event_class_code_tbl.delete;
1974     l_trx_id_tbl.delete;
1975     l_trx_line_id_tbl.delete;
1976     l_trx_level_type_tbl.delete;
1977 
1978   END IF; -- End of debug checking
1979 
1980   IF ( g_level_statement >= g_current_runtime_level) THEN
1981     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
1982     'Before insertion into ZX_VALIDATION_ERRORS_GT - zx_trx_headers_gt and zx_transaction_lines_gt');
1983   END IF;
1984 
1985 /******************** Split the Header and Line Level Validations : Bug 4703541******/
1986   /** 1. Validations for the zx_trx_headers_gt related **/
1987 
1988   INSERT ALL
1989   WHEN (ZX_ROUND_PARTY_MISSING = 'Y')  THEN
1990   INTO ZX_VALIDATION_ERRORS_GT(
1991     application_id,
1992     entity_code,
1993     event_class_code,
1994     trx_id,
1995     trx_line_id,
1996     summary_tax_line_number,
1997     message_name,
1998     message_text,
1999     trx_level_type,
2000     interface_line_entity_code,
2001     interface_line_id
2002     )
2003   VALUES(
2004     application_id,
2005     entity_code,
2006     event_class_code,
2007     trx_id,
2008     NULL ,--trx_line_id,
2009     NULL,
2010     'ZX_ROUND_PARTY_MISSING',
2011     l_round_party_missing,
2012     NULL ,--trx_level_type,
2013     NULL ,--interface_line_entity_code,
2014     NULL --interface_line_id
2015      )
2016   WHEN (ZX_CTRL_FLAG_MISSING = 'Y')  THEN
2017 
2018   INTO ZX_VALIDATION_ERRORS_GT(
2019     application_id,
2020     entity_code,
2021     event_class_code,
2022     trx_id,
2023     trx_line_id,
2024     summary_tax_line_number,
2025     message_name,
2026     message_text,
2027     trx_level_type,
2028     interface_line_entity_code,
2029     interface_line_id
2030     )
2031   VALUES(
2032     application_id,
2033     entity_code,
2034     event_class_code,
2035     trx_id,
2036     NULL ,--trx_line_id,
2037     NULL,
2038     'ZX_CTRFLAG_MISSING',
2039     l_ctrl_flag_missing,
2040     NULL ,--trx_level_type,
2041     NULL ,--interface_line_entity_code,
2042     NULL --interface_line_id
2043    )
2044   WHEN (TAXATION_COUNTRY_NOT_EXISTS = 'Y')  THEN
2045 
2046   INTO ZX_VALIDATION_ERRORS_GT(
2047     application_id,
2048     entity_code,
2049     event_class_code,
2050     trx_id,
2051     trx_line_id,
2052     summary_tax_line_number,
2053     message_name,
2054     message_text,
2055     trx_level_type,
2056     interface_line_entity_code,
2057     interface_line_id
2058   )
2059   VALUES(
2060     application_id,
2061     entity_code,
2062     event_class_code,
2063     trx_id,
2064     NULL ,--trx_line_id,
2065     NULL,
2066     'ZX_TAXATION_COUNTRY_NOT_EXIST',
2067     l_taxation_country_not_exists,
2068     NULL ,--trx_level_type,
2069     NULL ,--interface_line_entity_code,
2070     NULL --interface_line_id
2071    )
2072   WHEN (DOC_FC_CODE_NOT_EXISTS = 'Y')  THEN
2073 
2074   INTO ZX_VALIDATION_ERRORS_GT(
2075     application_id,
2076     entity_code,
2077     event_class_code,
2078     trx_id,
2079     trx_line_id,
2080     summary_tax_line_number,
2081     message_name,
2082     message_text,
2083     trx_level_type,
2084     interface_line_entity_code,
2085     interface_line_id
2086     )
2087   VALUES(
2088     application_id,
2089     entity_code,
2090     event_class_code,
2091     trx_id,
2092     NULL ,--trx_line_id,
2093     NULL,
2094     'ZX_DOC_FC_CODE_NOT_EXIST',
2095     l_doc_fc_code_not_exists,
2096     NULL ,--trx_level_type,
2097     NULL ,--interface_line_entity_code,
2098     NULL --interface_line_id
2099      )
2100 
2101   WHEN (DOC_FC_COUNTRY_INCONSIS = 'Y')  THEN
2102 
2103   INTO ZX_VALIDATION_ERRORS_GT(
2104     application_id,
2105     entity_code,
2106     event_class_code,
2107     trx_id,
2108     trx_line_id,
2109     summary_tax_line_number,
2110     message_name,
2111     message_text,
2112     trx_level_type,
2113     interface_line_entity_code,
2114     interface_line_id
2115     )
2116   VALUES(
2117     application_id,
2118     entity_code,
2119     event_class_code,
2120     trx_id,
2121     NULL ,--trx_line_id,
2122     NULL,
2123     'ZX_DOC_FC_COUNTRY_INCONSIS',
2124     l_doc_fc_country_inconsis,
2125     NULL ,--trx_level_type,
2126     NULL ,--interface_line_entity_code,
2127     NULL --interface_line_id
2128      )
2129   WHEN (PARTY_NOT_EXISTS = 'Y')  THEN
2130 
2131     INTO ZX_VALIDATION_ERRORS_GT(
2132       application_id,
2133       entity_code,
2134       event_class_code,
2135       trx_id,
2136       trx_line_id,
2137       summary_tax_line_number,
2138       message_name,
2139       message_text,
2140       trx_level_type,
2141       interface_line_entity_code,
2142       interface_line_id
2143       )
2144     VALUES(
2145       application_id,
2146       entity_code,
2147       event_class_code,
2148       trx_id,
2149       NULL ,--trx_line_id,
2150       NULL,
2151       'ZX_PARTY_NOT_EXISTS',
2152       l_party_not_exists,
2153       NULL ,--trx_level_type,
2154       NULL ,--interface_line_entity_code,
2155       NULL --interface_line_id
2156      )
2157   WHEN (ZX_CURRENCY_INFO_REQD = 'Y')  THEN
2158 
2159     INTO ZX_VALIDATION_ERRORS_GT(
2160       application_id,
2161       entity_code,
2162       event_class_code,
2163       trx_id,
2164       trx_line_id,
2165       summary_tax_line_number,
2166       message_name,
2167       message_text,
2168       trx_level_type,
2169       interface_line_entity_code,
2170       interface_line_id
2171       )
2172     VALUES(
2173       application_id,
2174       entity_code,
2175       event_class_code,
2176       trx_id,
2177       NULL ,--trx_line_id,
2178       NULL,
2179       'ZX_CURRENCY_INFO_REQD',
2180       l_currency_info_reqd,
2181       NULL ,--trx_level_type,
2182       NULL ,--interface_line_entity_code,
2183       NULL --interface_line_id
2184      )
2185   WHEN (ZX_QUOTE_FLAG_INVALID = 'Y')  THEN
2186 
2187     INTO ZX_VALIDATION_ERRORS_GT(
2188       application_id,
2189       entity_code,
2190       event_class_code,
2191       trx_id,
2192       trx_line_id,
2193       summary_tax_line_number,
2194       message_name,
2195       message_text,
2196       trx_level_type,
2197       interface_line_entity_code,
2198       interface_line_id
2199       )
2200     VALUES(
2201       application_id,
2202       entity_code,
2203       event_class_code,
2204       trx_id,
2205       NULL ,--trx_line_id,
2206       NULL,
2207       'ZX_QUOTE_FLAG_INVALID',
2208       l_quote_flag_invalid,
2209       NULL ,--trx_level_type,
2210       NULL ,--interface_line_entity_code,
2211       NULL --interface_line_id
2212      )
2213   WHEN (ZX_DOC_LVL_RECALC_FLAG_INVALID = 'Y')  THEN
2214     INTO ZX_VALIDATION_ERRORS_GT(
2215       application_id,
2216       entity_code,
2217       event_class_code,
2218       trx_id,
2219       trx_line_id,
2220       summary_tax_line_number,
2221       message_name,
2222       message_text,
2223       trx_level_type,
2224       interface_line_entity_code,
2225       interface_line_id
2226       )
2227     VALUES(
2228       application_id,
2229       entity_code,
2230       event_class_code,
2231       trx_id,
2232       NULL ,--trx_line_id,
2233       NULL,
2234       'ZX_DOC_LVL_RECALC_FLAG_INVALID',
2235       l_doc_lvl_recalc_flag_invalid,
2236       NULL ,--trx_level_type,
2237       NULL ,--interface_line_entity_code,
2238       NULL --interface_line_id
2239      )
2240   SELECT
2241   header.application_id,
2242   header.entity_code,
2243   header.event_class_code,
2244   header.trx_id,
2245   -- Check for existence of at least one rounding party
2246   CASE WHEN (header.rounding_ship_from_party_id is NULL AND
2247        header.rounding_ship_to_party_id is NULL AND
2248        header.rounding_bill_to_party_id is NULL AND
2249        header.rounding_bill_from_party_id is NULL )
2250         THEN 'Y'
2251         ELSE NULL
2252    END  ZX_ROUND_PARTY_MISSING,
2253 
2254   -- Check for existence of Control tax amount
2255        nvl2(header.ctrl_total_hdr_tx_amt,
2256        CASE WHEN ( NOT EXISTS
2257       (SELECT 1 FROM ZX_TRANSACTION_LINES_GT lines1
2258        WHERE lines1.ctrl_hdr_tx_appl_flag  = 'Y'
2259        AND lines1.trx_id = header.trx_id
2260        AND lines1.application_id = header.application_id
2261        AND lines1.entity_code = header.entity_code
2262        AND lines1.event_class_code = header.event_class_code)
2263            )
2264       THEN 'Y'
2265       ELSE NULL
2266        END,
2267        NULL
2268        ) ZX_CTRL_FLAG_MISSING,
2269 
2270   -- Check for Taxation Country
2271   nvl2(header.default_taxation_country,
2272        nvl(fnd_terr.territory_code,'Y'),
2273        NULL ) TAXATION_COUNTRY_NOT_EXISTS,
2274 
2275   -- Check for document subtype code exists
2276   nvl2(header.document_sub_type,
2277        nvl(fc_doc.classification_code,'Y'),
2278        null) DOC_FC_CODE_NOT_EXISTS,
2279 
2280   -- Check for document subtype code Effectivity
2281      /*  CASE WHEN header.document_sub_type is not null and
2282       fc_doc.classification_code is not null
2283        THEN
2284          CASE WHEN COALESCE(header.related_doc_date,
2285              header.provnl_tax_determination_date,
2286              lines_gt.adjusted_doc_date,
2287              lines_gt.trx_line_date,
2288              header.trx_date,
2289              SYSDATE)  NOT BETWEEN
2290          fc_doc.effective_from AND
2291          nvl(fc_doc.effective_to,
2292          COALESCE(header.related_doc_date,
2293             header.provnl_tax_determination_date,
2294             lines_gt.adjusted_doc_date,
2295             lines_gt.trx_line_date,
2296             header.trx_date,
2297             SYSDATE)
2298          )
2299         THEN 'Y'
2300         ELSE NULL END
2301        ELSE NULL END DOC_FC_CODE_NOT_EFFECTIVE,*/
2302 
2303   -- Check for document subtype code Country Consistency
2304   CASE WHEN (fc_doc.classification_code is not null AND
2305        fc_doc.country_code is not null)
2306        THEN CASE WHEN(fc_doc.country_code =
2307           header.default_taxation_country)
2308            THEN NULL
2309            ELSE 'Y' END
2310        ELSE NULL
2311    END DOC_FC_COUNTRY_INCONSIS,
2312 
2313   -- Check existence of PartyId in PartyTaxProfile
2314   --Bug 4703541
2315    CASE   WHEN (header.ESTABLISHMENT_ID IS NOT NULL
2316           AND NOT EXISTS
2317            (SELECT 1
2318       FROM   zx_party_tax_profile ptp,
2319              XLE_ETB_PROFILES etb
2320       WHERE  ptp.party_id = etb.party_id
2321       AND    ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
2322       AND    header.ESTABLISHMENT_ID = etb.ESTABLISHMENT_ID)
2323          )
2324       OR
2325         (header.LEGAL_ENTITY_ID IS NOT NULL
2326          AND NOT EXISTS
2327           (SELECT 1
2328            FROM   zx_party_tax_profile ptp,
2329             XLE_ENTITY_PROFILES etp
2330            WHERE  ptp.party_id = etp.party_id
2331            AND    ptp.party_type_code = 'FIRST_PARTY'
2332            AND    header.LEGAL_ENTITY_ID = etp.LEGAL_ENTITY_ID)
2333          )
2334     THEN 'Y'
2335     ELSE NULL END PARTY_NOT_EXISTS,
2336 
2337   --If currency information is not passed at header level,
2338   --it should be passed on all transaction lines of that header
2339   --Bug 4703541
2340   CASE WHEN (header.TRX_CURRENCY_CODE is NULL
2341        AND header.precision is NULL )
2342        AND EXISTS
2343        ( SELECT 1 FROM zx_transaction_lines_gt
2344            WHERE application_id = header.application_id
2345            AND   entity_code = header.entity_code
2346            AND   event_class_code = header.event_class_code
2347            AND   trx_id = header.trx_id
2348            AND   ( TRX_LINE_CURRENCY_CODE is NULL
2349            OR trx_line_precision is NULL)
2350         )
2351        THEN 'Y'
2352        ELSE NULL
2353   END  ZX_CURRENCY_INFO_REQD,
2354 
2355   CASE WHEN header.quote_flag IS NOT NULL AND
2356         header.quote_flag NOT IN ('Y', 'N')
2357        THEN 'Y'
2358        ELSE  NULL
2359   END  ZX_QUOTE_FLAG_INVALID,
2360 
2361   CASE WHEN header.doc_level_recalc_flag IS NOT NULL AND
2362         header.quote_flag NOT IN ('Y', 'N')
2363        THEN 'Y'
2364        ELSE  NULL
2365   END  ZX_DOC_LVL_RECALC_FLAG_INVALID
2366   FROM
2367     ZX_TRX_HEADERS_GT             header,
2368     ZX_EVNT_CLS_MAPPINGS          evntmap,
2369     ZX_FC_DOCUMENT_FISCAL_V       fc_doc,
2370     FND_TERRITORIES               fnd_terr
2371   WHERE
2372     fc_doc.classification_code(+) = header.document_sub_type
2373     and header.application_id    = evntmap.application_id (+)
2374     and header.entity_code       = evntmap.entity_code (+)
2375     and header.event_class_code  = evntmap.event_class_code(+)
2376     and fnd_terr.territory_code(+) =
2377     header.default_taxation_country;
2378 
2379         -- Bug 4902521 : Added Message to check no. of rows inserted .
2380   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2381 
2382   IF ( g_level_statement >= g_current_runtime_level) THEN
2383     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
2384     'No. of Rows inserted for Header Realted Validations '|| to_char(sql%ROWCOUNT) );
2385   END IF;
2386 
2387   /** 2. Validating for the Line Related Validations : zx_transaction_lines_gt **/
2388         g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2389   IF ( g_level_statement >= g_current_runtime_level) THEN
2390     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
2391     'Validating for the Line Related Validations : zx_transaction_lines_gt');
2392   END IF;
2393 
2394         INSERT ALL
2395 
2396         WHEN (ZX_LOCATION_MISSING = 'Y')  THEN
2397 
2398       INTO ZX_VALIDATION_ERRORS_GT(
2399         application_id,
2400         entity_code,
2401         event_class_code,
2402         trx_id,
2403         trx_line_id,
2404         summary_tax_line_number,
2405         message_name,
2406         message_text,
2407         trx_level_type,
2408         interface_line_entity_code,
2409         interface_line_id
2410         )
2411       VALUES(
2412         application_id,
2413         entity_code,
2414         event_class_code,
2415         trx_id,
2416         trx_line_id,
2417         NULL,
2418         'ZX_LOCATION_MISSING',
2419         l_location_missing,
2420         trx_level_type,
2421         interface_line_entity_code,
2422         interface_line_id
2423          )
2424 
2425         WHEN (ZX_LINE_CLASS_INVALID = 'Y')  THEN
2426 
2427       INTO ZX_VALIDATION_ERRORS_GT(
2428         application_id,
2429         entity_code,
2430         event_class_code,
2431         trx_id,
2432         trx_line_id,
2433         summary_tax_line_number,
2434         message_name,
2435         message_text,
2436         trx_level_type,
2437         interface_line_entity_code,
2438         interface_line_id
2439         )
2440       VALUES(
2441         application_id,
2442         entity_code,
2443         event_class_code,
2444         trx_id,
2445         trx_line_id,
2446         NULL,
2447         'ZX_LINE_CLASS_INVALID',
2448         l_line_class_invalid,
2449         trx_level_type,
2450         interface_line_entity_code,
2451         interface_line_id
2452          )
2453 
2454         WHEN (ZX_TRX_LINE_TYPE_INVALID = 'Y')  THEN
2455 
2456                         INTO ZX_VALIDATION_ERRORS_GT(
2457                                 application_id,
2458                                 entity_code,
2459                                 event_class_code,
2460                                 trx_id,
2461                                 trx_line_id,
2462                                 summary_tax_line_number,
2463                                 message_name,
2464                                 message_text,
2465                                 trx_level_type,
2466                                 interface_line_entity_code,
2467                                 interface_line_id
2468                                 )
2469                         VALUES(
2470                                 application_id,
2471                                 entity_code,
2472                                 event_class_code,
2473                                 trx_id,
2474                                 trx_line_id,
2475                                 NULL,
2476                                 'ZX_TRX_LINE_TYPE_INVALID',
2477                                 l_trx_line_type_invalid,
2478                                 trx_level_type,
2479                                 interface_line_entity_code,
2480                                 interface_line_id
2481                                  )
2482 
2483         WHEN (ZX_LINE_AMT_INCL_TAX_INVALID = 'Y')  THEN
2484 
2485                         INTO ZX_VALIDATION_ERRORS_GT(
2486                                 application_id,
2487                                 entity_code,
2488                                 event_class_code,
2489                                 trx_id,
2490                                 trx_line_id,
2491                                 summary_tax_line_number,
2492                                 message_name,
2493                                 message_text,
2494                                 trx_level_type,
2495                                 interface_line_entity_code,
2496                                 interface_line_id
2497                                 )
2498                         VALUES(
2499                                 application_id,
2500                                 entity_code,
2501                                 event_class_code,
2502                                 trx_id,
2503                                 trx_line_id,
2504                                 NULL,
2505                                 'ZX_LINE_AMT_INCTAX_INVALID',
2506                                 l_line_amt_incl_tax_invalid,
2507                                 trx_level_type,
2508                                 interface_line_entity_code,
2509                                 interface_line_id
2510                                  )
2511 
2512       WHEN (PRODUCT_CATEG_NOT_EXISTS = 'Y')  THEN
2513 
2514                 INTO ZX_VALIDATION_ERRORS_GT(
2515                         application_id,
2516                         entity_code,
2517                         event_class_code,
2518                         trx_id,
2519                         trx_line_id,
2520                         summary_tax_line_number,
2521                         message_name,
2522                         message_text,
2523                         trx_level_type,
2524                         interface_line_entity_code,
2525                         interface_line_id
2526                         )
2527                 VALUES(
2528                         application_id,
2529                         entity_code,
2530                         event_class_code,
2531                         trx_id,
2532                         trx_line_id,
2533                         NULL,
2534                         'ZX_PRODUCT_CATEG_NOT_EXIST',
2535                         l_prd_categ_not_exists,
2536                         trx_level_type,
2537                         interface_line_entity_code,
2538                         interface_line_id
2539                          )
2540 
2541       WHEN (PRODUCT_CATEG_NOT_EFFECTIVE = 'Y')  THEN
2542 
2543                 INTO ZX_VALIDATION_ERRORS_GT(
2544                         application_id,
2545                         entity_code,
2546                         event_class_code,
2547                         trx_id,
2548                         trx_line_id,
2549                         summary_tax_line_number,
2550                         message_name,
2551                         message_text,
2552                         trx_level_type,
2553                         interface_line_entity_code,
2554                         interface_line_id
2555                         )
2556                 VALUES(
2557                         application_id,
2558                         entity_code,
2559                         event_class_code,
2560                         trx_id,
2561                         trx_line_id,
2562                         NULL,
2563                         'ZX_PRODUCT_CATEG_NOT_EFFECTIVE',
2564                         l_prd_categ_not_effective,
2565                         trx_level_type,
2566                         interface_line_entity_code,
2567                         interface_line_id
2568                          )
2569 
2570         WHEN (PRODUCT_CATEG_COUNTRY_INCONSIS = 'Y')  THEN
2571 
2572                         INTO ZX_VALIDATION_ERRORS_GT(
2573                                 application_id,
2574                                 entity_code,
2575                                 event_class_code,
2576                                 trx_id,
2577                                 trx_line_id,
2578                                 summary_tax_line_number,
2579                                 message_name,
2580                                 message_text,
2581                                 trx_level_type,
2582                                 interface_line_entity_code,
2583                                 interface_line_id
2584                                 )
2585                         VALUES(
2586                                 application_id,
2587                                 entity_code,
2588                                 event_class_code,
2589                                 trx_id,
2590                                 trx_line_id,
2591                                 NULL,
2592                                 'ZX_PRODUCT_CATEG_COUNTRY_INCON',
2593                                 l_prd_categ_country_inconsis,
2594                                 trx_level_type,
2595                                 interface_line_entity_code,
2596                                 interface_line_id
2597                                  )
2598 
2599         WHEN (USER_DEF_FC_CODE_NOT_EXISTS = 'Y')  THEN
2600 
2601                         INTO ZX_VALIDATION_ERRORS_GT(
2602                                 application_id,
2603                                 entity_code,
2604                                 event_class_code,
2605                                 trx_id,
2606                                 trx_line_id,
2607                                 summary_tax_line_number,
2608                                 message_name,
2609                                 message_text,
2610                                 trx_level_type,
2611                                 interface_line_entity_code,
2612                                 interface_line_id
2613                                 )
2614                         VALUES(
2615                                 application_id,
2616                                 entity_code,
2617                                 event_class_code,
2618                                 trx_id,
2619                                 trx_line_id,
2620                                 NULL,
2621                                 'ZX_USER_DEF_FC_CODE_NOT_EXIST',
2622                                 l_usr_df_fc_code_not_exists,
2623                                 trx_level_type,
2624                                 interface_line_entity_code,
2625                                 interface_line_id
2626                                  )
2627 
2628         WHEN (USER_DEF_FC_CODE_NOT_EFFECTIVE = 'Y')  THEN
2629 
2630                         INTO ZX_VALIDATION_ERRORS_GT(
2631                                 application_id,
2632                                 entity_code,
2633                                 event_class_code,
2634                                 trx_id,
2635                                 trx_line_id,
2636                                 summary_tax_line_number,
2637                                 message_name,
2638                                 message_text,
2639                                 trx_level_type,
2640                                 interface_line_entity_code,
2641                                 interface_line_id
2642                                 )
2643                         VALUES(
2644                                 application_id,
2645                                 entity_code,
2646                                 event_class_code,
2647                                 trx_id,
2648                                 trx_line_id,
2649                                 NULL,
2650                                 'ZX_USER_DEF_FC_CODE_NOT_EFFECT',
2651                                 l_usr_df_fc_code_not_effective,
2652                                 trx_level_type,
2653                                 interface_line_entity_code,
2654                                 interface_line_id
2655                          )
2656         WHEN (USER_DEF_COUNTRY_INCONSIS = 'Y')  THEN
2657 
2658                         INTO ZX_VALIDATION_ERRORS_GT(
2659                                 application_id,
2660                                 entity_code,
2661                                 event_class_code,
2662                                 trx_id,
2663                                 trx_line_id,
2664                                 summary_tax_line_number,
2665                                 message_name,
2666                                 message_text,
2667                                 trx_level_type,
2668                                 interface_line_entity_code,
2669                                 interface_line_id
2670                                 )
2671                         VALUES(
2672                                 application_id,
2673                                 entity_code,
2674                                 event_class_code,
2675                                 trx_id,
2676                                 trx_line_id,
2677                                 NULL,
2678                                 'ZX_USER_DEF_COUNTRY_INCONSIS',
2679                                 l_usr_df_country_inconsis,
2680                                 trx_level_type,
2681                                 interface_line_entity_code,
2682                                 interface_line_id
2683                                  )
2684 
2685          WHEN (DOC_FC_CODE_NOT_EFFECTIVE = 'Y')  THEN
2686 
2687                         INTO ZX_VALIDATION_ERRORS_GT(
2688                                 application_id,
2689                                 entity_code,
2690                                 event_class_code,
2691                                 trx_id,
2692                                 trx_line_id,
2693                                 summary_tax_line_number,
2694                                 message_name,
2695                                 message_text,
2696                                 trx_level_type,
2697                                 interface_line_entity_code,
2698                                 interface_line_id
2699                                 )
2700                         VALUES(
2701                                 application_id,
2702                                 entity_code,
2703                                 event_class_code,
2704                                 trx_id,
2705                                 trx_line_id,
2706                                 NULL,
2707                                 'ZX_DOC_FC_CODE_NOT_EFFECTIVE',
2708                                 l_doc_fc_code_not_effective,
2709                                 trx_level_type,
2710                                 interface_line_entity_code,
2711                                 interface_line_id
2712                                  )
2713 
2714         WHEN (TRX_BIZ_FC_CODE_NOT_EXISTS = 'Y')  THEN
2715 
2716                         INTO ZX_VALIDATION_ERRORS_GT(
2717                                 application_id,
2718                                 entity_code,
2719                                 event_class_code,
2720                                 trx_id,
2721                                 trx_line_id,
2722                                 summary_tax_line_number,
2723                                 message_name,
2724                                 message_text,
2725                                 trx_level_type,
2726                                 interface_line_entity_code,
2727                                 interface_line_id
2728                                 )
2729                         VALUES(
2730                                 application_id,
2731                                 entity_code,
2732                                 event_class_code,
2733                                 trx_id,
2734                                 trx_line_id,
2735                                 NULL,
2736                                 'ZX_TRX_BIZ_FC_CODE_NOT_EXIST',
2737                                 l_trx_biz_fc_code_not_exists,
2738                                 trx_level_type,
2739                                 interface_line_entity_code,
2740                                 interface_line_id
2741                                  )
2742 
2743         WHEN (TRX_BIZ_FC_CODE_NOT_EFFECTIVE = 'Y')  THEN
2744 
2745                         INTO ZX_VALIDATION_ERRORS_GT(
2746                                 application_id,
2747                                 entity_code,
2748                                 event_class_code,
2749                                 trx_id,
2750                                 trx_line_id,
2751                                 summary_tax_line_number,
2752                                 message_name,
2753                                 message_text,
2754                                 trx_level_type,
2755                                 interface_line_entity_code,
2756                                 interface_line_id
2757                                 )
2758                         VALUES(
2759                                 application_id,
2760                                 entity_code,
2761                                 event_class_code,
2762                                 trx_id,
2763                                 trx_line_id,
2764                                 NULL,
2765                                 'ZX_TRX_BIZ_FC_CODE_NOT_EFFECT',
2766                                 l_trx_biz_fc_code_not_effect,
2767                                 trx_level_type,
2768                                 interface_line_entity_code,
2769                                 interface_line_id
2770                                  )
2771 
2772         WHEN (TRX_BIZ_FC_COUNTRY_INCONSIS = 'Y')  THEN
2773 
2774                         INTO ZX_VALIDATION_ERRORS_GT(
2775                                 application_id,
2776                                 entity_code,
2777                                 event_class_code,
2778                                 trx_id,
2779                                 trx_line_id,
2780                                 summary_tax_line_number,
2781                                 message_name,
2782                                 message_text,
2783                                 trx_level_type,
2784                                 interface_line_entity_code,
2785                                 interface_line_id
2786                                 )
2787                         VALUES(
2788                                 application_id,
2789                                 entity_code,
2790                                 event_class_code,
2791                                 trx_id,
2792                                 trx_line_id,
2793                                 NULL,
2794                                 'ZX_TRX_BIZ_FC_COUNTRY_INCONSIS',
2795                                 l_trx_biz_fc_country_inconsis,
2796                                 trx_level_type,
2797                                 interface_line_entity_code,
2798                                 interface_line_id
2799                                  )
2800 
2801 
2802 
2803         WHEN (INTENDED_USE_CODE_NOT_EXISTS = 'Y')  THEN
2804 
2805                                 INTO ZX_VALIDATION_ERRORS_GT(
2806                                         application_id,
2807                                         entity_code,
2808                                         event_class_code,
2809                                         trx_id,
2810                                         trx_line_id,
2811                                         summary_tax_line_number,
2812                                         message_name,
2813                                         message_text,
2814                                         trx_level_type,
2815                                         interface_line_entity_code,
2816                                         interface_line_id
2817                                         )
2818                                 VALUES(
2819                                         application_id,
2820                                         entity_code,
2821                                         event_class_code,
2822                                         trx_id,
2823                                         trx_line_id,
2824                                         NULL,
2825                                         'ZX_INTENDED_USE_CODE_NOT_EXIST',
2826                                         l_intended_use_code_not_exists,
2827                                         trx_level_type,
2828                                         interface_line_entity_code,
2829                                         interface_line_id
2830                                          )
2831 
2832         WHEN (INTENDED_USE_NOT_EFFECTIVE = 'Y')  THEN
2833 
2834                                 INTO ZX_VALIDATION_ERRORS_GT(
2835                                         application_id,
2836                                         entity_code,
2837                                         event_class_code,
2838                                         trx_id,
2839                                         trx_line_id,
2840                                         summary_tax_line_number,
2841                                         message_name,
2842                                         message_text,
2843                                         trx_level_type,
2844                                         interface_line_entity_code,
2845                                         interface_line_id
2846                                         )
2847                                 VALUES(
2848                                         application_id,
2849                                         entity_code,
2850                                         event_class_code,
2851                                         trx_id,
2852                                         trx_line_id,
2853                                         NULL,
2854                                         'ZX_INTENDED_USE_NOT_EFFECTIVE',
2855                                         l_intended_use_not_effective,
2856                                         trx_level_type,
2857                                         interface_line_entity_code,
2858                                         interface_line_id
2859                                          )
2860 
2861         WHEN (INTENDED_USE_CONTRY_INCONSIS = 'Y')  THEN
2862 
2863                                 INTO ZX_VALIDATION_ERRORS_GT(
2864                                         application_id,
2865                                         entity_code,
2866                                         event_class_code,
2867                                         trx_id,
2868                                         trx_line_id,
2869                                         summary_tax_line_number,
2870                                         message_name,
2871                                         message_text,
2872                                         trx_level_type,
2873                                         interface_line_entity_code,
2874                                         interface_line_id
2875                                         )
2876                                 VALUES(
2877                                         application_id,
2878                                         entity_code,
2879                                         event_class_code,
2880                                         trx_id,
2881                                         trx_line_id,
2882                                         NULL,
2883                                         'ZX_INTENDED_USE_COUNTRY_INCON',
2884                                         l_intended_use_contry_inconsis,
2885                                         trx_level_type,
2886                                         interface_line_entity_code,
2887                                         interface_line_id
2888                                          )
2889 
2890         WHEN (PRODUCT_TYPE_CODE_NOT_EXISTS = 'Y')  THEN
2891 
2892                                 INTO ZX_VALIDATION_ERRORS_GT(
2893                                         application_id,
2894                                         entity_code,
2895                                         event_class_code,
2896                                         trx_id,
2897                                         trx_line_id,
2898                                         summary_tax_line_number,
2899                                         message_name,
2900                                         message_text,
2901                                         trx_level_type,
2902                                         interface_line_entity_code,
2903                                         interface_line_id
2904                                         )
2905                                 VALUES(
2906                                         application_id,
2907                                         entity_code,
2908                                         event_class_code,
2909                                         trx_id,
2910                                         trx_line_id,
2911                                         NULL,
2912                                         'ZX_PRODUCT_TYPE_CODE_NOT_EXIST',
2913                                         l_prd_type_code_not_exists,
2914                                         trx_level_type,
2915                                         interface_line_entity_code,
2916                                         interface_line_id
2917                                          )
2918 
2919         WHEN (PRODUCT_TYPE_NOT_EFFECTIVE = 'Y')  THEN
2920 
2921                                 INTO ZX_VALIDATION_ERRORS_GT(
2922                                         application_id,
2923                                         entity_code,
2924                                         event_class_code,
2925                                         trx_id,
2926                                         trx_line_id,
2927                                         summary_tax_line_number,
2928                                         message_name,
2929                                         message_text,
2930                                         trx_level_type,
2931                                         interface_line_entity_code,
2932                                         interface_line_id
2933                                         )
2934                                 VALUES(
2935                                         application_id,
2936                                         entity_code,
2937                                         event_class_code,
2938                                         trx_id,
2939                                         trx_line_id,
2940                                         NULL,
2941                                         'ZX_PRODUCT_TYPE_NOT_EFFECTIVE',
2942                                         l_prd_type_not_effective,
2943                                         trx_level_type,
2944                                         interface_line_entity_code,
2945                                         interface_line_id
2946                                          )
2947 
2948         WHEN (PRODUCT_FC_CODE_NOT_EXISTS = 'Y')  THEN
2949 
2950                                 INTO ZX_VALIDATION_ERRORS_GT(
2951                                         application_id,
2952                                         entity_code,
2953                                         event_class_code,
2954                                         trx_id,
2955                                         trx_line_id,
2956                                         summary_tax_line_number,
2957                                         message_name,
2958                                         message_text,
2959                                         trx_level_type,
2960                                         interface_line_entity_code,
2961                                         interface_line_id
2962                                         )
2963                                 VALUES(
2964                                         application_id,
2965                                         entity_code,
2966                                         event_class_code,
2967                                         trx_id,
2968                                         trx_line_id,
2969                                         NULL,
2970                                         'ZX_PRODUCT_FC_CODE_NOT_EXIST',
2971                                         l_prd_fc_code_not_exists,
2972                                         trx_level_type,
2973                             interface_line_entity_code,
2974                             interface_line_id
2975                                          )
2976 /*      bugfix 4919842: remove party not exist and site not exist checks
2977         WHEN (SHIP_TO_PARTY_NOT_EXISTS = 'Y')  THEN
2978 
2979                                 INTO ZX_VALIDATION_ERRORS_GT(
2980                                         application_id,
2981                                         entity_code,
2982                                         event_class_code,
2983                                         trx_id,
2984                                         trx_line_id,
2985                                         summary_tax_line_number,
2986                                         message_name,
2987                                         message_text,
2988                                         trx_level_type,
2989                             interface_line_entity_code,
2990                             interface_line_id
2991                                         )
2992                                 VALUES(
2993                                         application_id,
2994                                         entity_code,
2995                                         event_class_code,
2996                                         trx_id,
2997                                         trx_line_id,
2998                                         NULL,
2999                                         'ZX_SHIP_TO_PARTY_NOT_EXIST',
3000                                         l_ship_to_party_not_exists,
3001                                         trx_level_type,
3002                             interface_line_entity_code,
3003                             interface_line_id
3004                                  )
3005 
3006         WHEN (SHIP_FROM_PARTY_NOT_EXISTS = 'Y')  THEN
3007 
3008                                 INTO ZX_VALIDATION_ERRORS_GT(
3009                                         application_id,
3010                                         entity_code,
3011                                         event_class_code,
3012                                         trx_id,
3013                                         trx_line_id,
3014                                         summary_tax_line_number,
3015                                         message_name,
3016                                         message_text,
3017                                         trx_level_type,
3018                             interface_line_entity_code,
3019                             interface_line_id
3020                                         )
3021                                 VALUES(
3022                                         application_id,
3023                                         entity_code,
3024                                         event_class_code,
3025                                         trx_id,
3026                                         trx_line_id,
3027                                         NULL,
3028                                         'ZX_SHIP_FROM_PARTY_NOT_EXIST',
3029                                         l_ship_frm_party_not_exits,
3030                                         trx_level_type,
3031                             interface_line_entity_code,
3032                             interface_line_id
3033                                  )
3034 
3035         WHEN (BILL_TO_PARTY_NOT_EXISTS = 'Y')  THEN
3036 
3037                                 INTO ZX_VALIDATION_ERRORS_GT(
3038                                         application_id,
3039                                         entity_code,
3040                                         event_class_code,
3041                                         trx_id,
3042                                         trx_line_id,
3043                                         summary_tax_line_number,
3044                                         message_name,
3045                                         message_text,
3046                                         trx_level_type,
3047                             interface_line_entity_code,
3048                             interface_line_id
3049                                         )
3050                                 VALUES(
3051                                         application_id,
3052                                         entity_code,
3053                                         event_class_code,
3054                                         trx_id,
3055                                         trx_line_id,
3056                                         NULL,
3057                                         'ZX_BILTO_PARTY_NOT_EXIST',
3058                                         l_bill_to_party_not_exists,
3059                                         trx_level_type,
3060                             interface_line_entity_code,
3061                             interface_line_id
3062                                  )
3063 
3064         WHEN (BILL_FROM_PARTY_NOT_EXISTS = 'Y')  THEN
3065 
3066                                 INTO ZX_VALIDATION_ERRORS_GT(
3067                                         application_id,
3068                                         entity_code,
3069                                         event_class_code,
3070                                         trx_id,
3071                                         trx_line_id,
3072                                         summary_tax_line_number,
3073                                         message_name,
3074                                         message_text,
3075                                         trx_level_type,
3076                             interface_line_entity_code,
3077                             interface_line_id
3078                                         )
3079                                 VALUES(
3080                                         application_id,
3081                                         entity_code,
3082                                         event_class_code,
3083                                         trx_id,
3084                                         trx_line_id,
3085                                         NULL,
3086                                         'ZX_BILFROM_PARTY_NOT_EXIST',
3087                                         l_bill_frm_party_not_exists,
3088                                         trx_level_type,
3089                             interface_line_entity_code,
3090                             interface_line_id
3091                                  )
3092 
3093         WHEN (SHIPTO_PARTY_SITE_NOT_EXISTS = 'Y')  THEN
3094 
3095                                 INTO ZX_VALIDATION_ERRORS_GT(
3096                                         application_id,
3097                                         entity_code,
3098                                         event_class_code,
3099                                         trx_id,
3100                                         trx_line_id,
3101                                         summary_tax_line_number,
3102                                         message_name,
3103                                         message_text,
3104                                         trx_level_type,
3105                             interface_line_entity_code,
3106                             interface_line_id
3107                                         )
3108                                 VALUES(
3109                                         application_id,
3110                                         entity_code,
3111                                         event_class_code,
3112                                         trx_id,
3113                                         trx_line_id,
3114                                         NULL,
3115                                         'ZX_SHIPTO_PARTY_SITE_NOT_EXIST',
3116                                         l_shipto_party_site_not_exists,
3117                                         trx_level_type,
3118                             interface_line_entity_code,
3119                             interface_line_id
3120                                  )
3121 
3122         WHEN (SHIPFROM_PARTY_SITE_NOT_EXISTS = 'Y')  THEN
3123 
3124                                 INTO ZX_VALIDATION_ERRORS_GT(
3125                                         application_id,
3126                                         entity_code,
3127                                         event_class_code,
3128                                         trx_id,
3129                                         trx_line_id,
3130                                         summary_tax_line_number,
3131                                         message_name,
3132                                         message_text,
3133                                         trx_level_type,
3134                             interface_line_entity_code,
3135                             interface_line_id
3136                                         )
3137                                 VALUES(
3138                                         application_id,
3139                                         entity_code,
3140                                         event_class_code,
3141                                         trx_id,
3142                                         trx_line_id,
3143                                         NULL,
3144                                         'ZX_SHIPFROM_PARTY_SITE_NOT_EXIST',
3145                                         l_shipfrm_party_site_not_exits,
3146                                         trx_level_type,
3147                             interface_line_entity_code,
3148                             interface_line_id
3149                                  )
3150 
3151         WHEN (BILLTO_PARTY_SITE_NOT_EXISTS = 'Y')  THEN
3152 
3153                                 INTO ZX_VALIDATION_ERRORS_GT(
3154                                         application_id,
3155                                         entity_code,
3156                                         event_class_code,
3157                                         trx_id,
3158                                         trx_line_id,
3159                                         summary_tax_line_number,
3160                                         message_name,
3161                                         message_text,
3162                                         trx_level_type,
3163                             interface_line_entity_code,
3164                             interface_line_id
3165                                         )
3166                                 VALUES(
3167                                         application_id,
3168                                         entity_code,
3169                                         event_class_code,
3170                                         trx_id,
3171                                         trx_line_id,
3172                                         NULL,
3173                                         'ZX_BILLTO_PARTY_SITE_NOT_EXIST',
3174                                         l_billto_party_site_not_exists,
3175                                         trx_level_type,
3176                             interface_line_entity_code,
3177                             interface_line_id
3178                                  )
3179 
3180           WHEN (BILLFROM_PARTY_SITE_NOT_EXISTS = 'Y')  THEN
3181 
3182                                 INTO ZX_VALIDATION_ERRORS_GT(
3183                                         application_id,
3184                                         entity_code,
3185                                         event_class_code,
3186                                         trx_id,
3187                                         trx_line_id,
3188                                         summary_tax_line_number,
3189                                         message_name,
3190                                         message_text,
3191                                         trx_level_type,
3192                             interface_line_entity_code,
3193                             interface_line_id
3194                                         )
3195                                 VALUES(
3196                                         application_id,
3197                                         entity_code,
3198                                         event_class_code,
3199                                         trx_id,
3200                                         trx_line_id,
3201                                         NULL,
3202                                         'ZX_BILLFROM_PARTY_SITE_NOT_EXIST',
3203                                         l_billfrm_party_site_not_exist,
3204                                         trx_level_type,
3205                             interface_line_entity_code,
3206                       interface_line_id
3207                                  )
3208       bugfix 4919842: remove party not exist and site not exist checks  */
3209           -- bug 6915776
3210           /*WHEN (ZX_LINE_CTRL_AMT_INVALID = 'Y')  THEN
3211 
3212                                 INTO ZX_VALIDATION_ERRORS_GT(
3213                                         application_id,
3214                                         entity_code,
3215                                         event_class_code,
3216                                         trx_id,
3217                                         trx_line_id,
3218                                         summary_tax_line_number,
3219                                         message_name,
3220                                         message_text,
3221                                         trx_level_type,
3222                             interface_line_entity_code,
3223                             interface_line_id
3224                                         )
3225                                 VALUES(
3226                                         application_id,
3227                                         entity_code,
3228                                         event_class_code,
3229                                         trx_id,
3230                                         trx_line_id,
3231                                         NULL,
3232                                         'ZX_LINE_CTRL_AMT_INVALID',
3233                                         l_line_ctrl_amt_invalid,
3234                                         trx_level_type,
3235                             interface_line_entity_code,
3236                       interface_line_id
3237                                  )*/
3238 
3239           WHEN (ZX_LINE_CTRL_AMT_NOT_NULL = 'Y')  THEN
3240 
3241                                 INTO ZX_VALIDATION_ERRORS_GT(
3242                                         application_id,
3243                                         entity_code,
3244                                         event_class_code,
3245                                         trx_id,
3246                                         trx_line_id,
3247                                         summary_tax_line_number,
3248                                         message_name,
3249                                         message_text,
3250                                         trx_level_type,
3251                                         interface_line_entity_code,
3252                                         interface_line_id
3253                                         )
3254                                 VALUES(
3255                                         application_id,
3256                                         entity_code,
3257                                         event_class_code,
3258                                         trx_id,
3259                                         trx_line_id,
3260                                         NULL,
3261                                         'ZX_LINE_CTRL_AMT_NOT_NULL',
3262                                         l_line_ctrl_amt_not_null,
3263                                         trx_level_type,
3264                                         interface_line_entity_code,
3265                                         interface_line_id
3266                                  )
3267 
3268 -- Bug 5516630: Moved unit price and quantity check to determine_recovery API
3269 
3270 /*           WHEN (ZX_UNIT_PRICE_MISSING = 'Y')  THEN
3271 
3272                                 INTO ZX_VALIDATION_ERRORS_GT(
3273                                         application_id,
3274                                         entity_code,
3275                                         event_class_code,
3276                                         trx_id,
3277                                         trx_line_id,
3278                                         summary_tax_line_number,
3279                                         message_name,
3280                                         message_text,
3281                                         trx_level_type,
3282                                         interface_line_entity_code,
3283                                         interface_line_id
3284                                         )
3285                                 VALUES(
3286                                         application_id,
3287                                         entity_code,
3288                                         event_class_code,
3289                                         trx_id,
3290                                         trx_line_id,
3291                                         NULL,
3292                                         'ZX_UNIT_PRICE_REQD',
3293                                         l_unit_price_missing,
3294                                         trx_level_type,
3295                                         interface_line_entity_code,
3296                                         interface_line_id
3297                                  )
3298 
3299            WHEN (ZX_LINE_QUANTITY_MISSING = 'Y')  THEN
3300 
3301                                 INTO ZX_VALIDATION_ERRORS_GT(
3302                                         application_id,
3303                                         entity_code,
3304                                         event_class_code,
3305                                         trx_id,
3306                                         trx_line_id,
3307                                         summary_tax_line_number,
3308                                         message_name,
3309                                         message_text,
3310                                         trx_level_type,
3311                                         interface_line_entity_code,
3312                                         interface_line_id
3313                                         )
3314                                 VALUES(
3315                                         application_id,
3316                                         entity_code,
3317                                         event_class_code,
3318                                         trx_id,
3319                                         trx_line_id,
3320                                         NULL,
3321                                         'ZX_TRX_LINE_QUANTITY_REQD',
3322                                         l_line_quantity_missing,
3323                                         trx_level_type,
3324                                         interface_line_entity_code,
3325                                         interface_line_id
3326                                  )
3327 */
3328                  WHEN (ZX_EXEMPTION_CTRL_FLAG_INVALID = 'Y')  THEN
3329 
3330                                 INTO ZX_VALIDATION_ERRORS_GT(
3331                                         application_id,
3332                                         entity_code,
3333                                         event_class_code,
3334                                         trx_id,
3335                                         trx_line_id,
3336                                         summary_tax_line_number,
3337                                         message_name,
3338                                         message_text,
3339                                         trx_level_type,
3340                                         interface_line_entity_code,
3341                                         interface_line_id
3342                                         )
3343                                 VALUES(
3344                                         application_id,
3345                                         entity_code,
3346                                         event_class_code,
3347                                         trx_id,
3348                                         trx_line_id,
3349                                         NULL,
3350                                         'ZX_EXEMPTION_CTRL_FLAG_INVALID',
3351                                         l_exemption_ctrl_flag_invalid,
3352                                         trx_level_type,
3353                                         interface_line_entity_code,
3354                                         interface_line_id
3355                                  )
3356                  WHEN (ZX_PRODUCT_TYPE_INVALID = 'Y')  THEN
3357 
3358                                 INTO ZX_VALIDATION_ERRORS_GT(
3359                                         application_id,
3360                                         entity_code,
3361                                         event_class_code,
3362                                         trx_id,
3363                                         trx_line_id,
3364                                         summary_tax_line_number,
3365                                         message_name,
3366                                         message_text,
3367                                         trx_level_type,
3368                                         interface_line_entity_code,
3369                                         interface_line_id
3370                                         )
3371                                 VALUES(
3372                                         application_id,
3373                                         entity_code,
3374                                         event_class_code,
3375                                         trx_id,
3376                                         trx_line_id,
3377                                         NULL,
3378                                         'ZX_PRODUCT_TYPE_INVALID',
3379                                         l_product_type_invalid,
3380                                         trx_level_type,
3381                                         interface_line_entity_code,
3382                                         interface_line_id
3383                                  )
3384 
3385      WHEN (ZX_INVALID_TAX_LINES = 'Y')  THEN
3386 
3387                                   INTO ZX_VALIDATION_ERRORS_GT(
3388                                           application_id,
3389                                           entity_code,
3390                                           event_class_code,
3391                                           trx_id,
3392                                           trx_line_id,
3393                                           summary_tax_line_number,
3394                                           message_name,
3395                                           message_text,
3396                                           trx_level_type,
3397                                           interface_line_entity_code,
3398                                           interface_line_id
3399                                           )
3400                                   VALUES(
3401                                           application_id,
3402                                           entity_code,
3403                                           event_class_code,
3404                                           trx_id,
3405                                           trx_line_id,
3406                                           NULL,
3407                                           'ZX_INVALID_TAX_LINES',
3408                                           l_inval_tax_lines_for_ctrl_flg,
3409                                           trx_level_type,
3410                                           interface_line_entity_code,
3411                                           interface_line_id
3412                                           )
3413 
3414 
3415              WHEN (ZX_INVALID_LINE_TAX_AMT = 'Y')  THEN
3416 
3417                                   INTO ZX_VALIDATION_ERRORS_GT(
3418                                           application_id,
3419                                           entity_code,
3420                                           event_class_code,
3421                                           trx_id,
3422                                           trx_line_id,
3423                                           summary_tax_line_number,
3424                                           message_name,
3425                                           message_text,
3426                                           trx_level_type,
3427                                           interface_line_entity_code,
3428                                           interface_line_id
3429                                           )
3430                                   VALUES(
3431                                           application_id,
3432                                           entity_code,
3433                                           event_class_code,
3434                                           trx_id,
3435                                           trx_line_id,
3436                                           NULL,
3437                                           'ZX_INVALID_LINE_TAX_AMT',
3438                                           l_invald_line_for_ctrl_tot_amt,
3439                                           trx_level_type,
3440                                           interface_line_entity_code,
3441                                           interface_line_id
3442                                           )
3443 
3444              WHEN (ZX_INVALID_TAX_FOR_ALLOC_FLG = 'Y')  THEN
3445 
3446                                   INTO ZX_VALIDATION_ERRORS_GT(
3447                                           application_id,
3448                                           entity_code,
3449                                           event_class_code,
3450                                           trx_id,
3451                                           trx_line_id,
3452                                           summary_tax_line_number,
3453                                           message_name,
3454                                           message_text,
3455                                           trx_level_type,
3456                                           interface_line_entity_code,
3457                                           interface_line_id
3458                                           )
3459                                   VALUES(
3460                                           application_id,
3461                                           entity_code,
3462                                           event_class_code,
3463                                           trx_id,
3464                                           trx_line_id,
3465                                           NULL,
3466                                           'ZX_INVALID_TAX_FOR_ALLOC_FLG',
3467                                           l_inval_tax_line_for_alloc_flg,
3468                                           trx_level_type,
3469                                           interface_line_entity_code,
3470                                           interface_line_id
3471                                           )
3472              WHEN (ZX_INVALID_TAX_ONLY_TAX_LINES = 'Y')  THEN
3473 
3474                                   INTO ZX_VALIDATION_ERRORS_GT(
3475                                           application_id,
3476                                           entity_code,
3477                                           event_class_code,
3478                                           trx_id,
3479                                           trx_line_id,
3480                                           summary_tax_line_number,
3481                                           message_name,
3482                                           message_text,
3483                                           trx_level_type,
3484                                           interface_line_entity_code,
3485                                           interface_line_id
3486                                           )
3487                                   VALUES(
3488                                           application_id,
3489                                           entity_code,
3490                                           event_class_code,
3491                                           trx_id,
3492                                           trx_line_id,
3493                                           NULL,
3494                                           'ZX_INVALID_TAX_ONLY_TAX_LINES',
3495                                           l_invalid_tax_only_tax_lines,
3496                                           trx_level_type,
3497                                           interface_line_entity_code,
3498                                           interface_line_id
3499                                           )
3500               WHEN (TAX_RATE_NOT_EXISTS = 'Y')  THEN
3501 
3502                                    INTO ZX_VALIDATION_ERRORS_GT(
3503                                           application_id,
3504                                           entity_code,
3505                                           event_class_code,
3506                                           trx_id,
3507                                           trx_line_id,
3508                                           summary_tax_line_number,
3509                                           message_name,
3510                                           message_text,
3511                                           trx_level_type,
3512                                           interface_line_entity_code,
3513                                           interface_line_id
3514                                           )
3515                                    VALUES(
3516                                           application_id,
3517                                           entity_code,
3518                                           event_class_code,
3519                                           trx_id,
3520                                           trx_line_id,
3521                                           NULL,
3522                                           'ZX_TAX_RATE_NOT_EXIST', --4703541
3523                                           l_tax_rate_not_exists,
3524                                           trx_level_type,
3525                                           interface_line_entity_code,
3526                                           interface_line_id
3527                                           )
3528              --Commented for Bug#7504455--
3529              /*WHEN (NVL(TAX_RATE_NOT_EXISTS,'N') <> 'Y' AND TAX_RECOV_OR_OFFSET = 'Y')  THEN
3530                         INTO ZX_VALIDATION_ERRORS_GT(
3531                                           application_id,
3532                                           entity_code,
3533                                           event_class_code,
3534                                           trx_id,
3535                                           trx_line_id,
3536                                           summary_tax_line_number,
3537                                           message_name,
3538                                           message_text,
3539                                           trx_level_type,
3540                                           interface_line_entity_code,
3541                                           interface_line_id
3542                                           )
3543                                    VALUES(
3544                                           application_id,
3545                                           entity_code,
3546                                           event_class_code,
3547                                           trx_id,
3548                                           trx_line_id,
3549                                           NULL,
3550                                           'ZX_TAX_RECOV_OR_OFFSET',
3551                                           l_tax_recov_or_offset,
3552                                           trx_level_type,
3553                                           interface_line_entity_code,
3554                                           interface_line_id
3555                                  )*/
3556               WHEN (NVL(TAX_RATE_NOT_EXISTS,'N') <> 'Y' AND TAX_RATE_CODE_NOT_EFFECTIVE = 'Y')  THEN
3557 
3558                         INTO ZX_VALIDATION_ERRORS_GT(
3559                                           application_id,
3560                                           entity_code,
3561                                           event_class_code,
3562                                           trx_id,
3563                                           trx_line_id,
3564                                           summary_tax_line_number,
3565                                           message_name,
3566                                           message_text,
3567                                           trx_level_type,
3568                                           interface_line_entity_code,
3569                                           interface_line_id
3570                                           )
3571                                    VALUES(
3572                                           application_id,
3573                                           entity_code,
3574                                           event_class_code,
3575                                           trx_id,
3576                                           trx_line_id,
3577                                           NULL,
3578                                           'ZX_TAX_RATE_NOT_EFFECTIVE',
3579                                           l_tax_rate_not_effective,
3580                                           trx_level_type,
3581                                           interface_line_entity_code,
3582                                           interface_line_id
3583                                 )
3584              WHEN (NVL(TAX_RATE_NOT_EXISTS,'N') <> 'Y' AND TAX_RATE_CODE_NOT_ACTIVE = 'Y')  THEN
3585 
3586                         INTO ZX_VALIDATION_ERRORS_GT(
3587                                           application_id,
3588                                           entity_code,
3589                                           event_class_code,
3590                                           trx_id,
3591                                           trx_line_id,
3592                                           summary_tax_line_number,
3593                                           message_name,
3594                                           message_text,
3595                                           trx_level_type,
3596                                           interface_line_entity_code,
3597                                           interface_line_id
3598                                           )
3599                                    VALUES(
3600                                           application_id,
3601                                           entity_code,
3602                                           event_class_code,
3603                                           trx_id,
3604                                           trx_line_id,
3605                                           NULL,
3606                                           'ZX_TAX_RATE_NOT_ACTIVE',
3607                                           l_tax_rate_not_active,
3608                                           trx_level_type,
3609                                           interface_line_entity_code,
3610                                           interface_line_id
3611                                  )
3612                 SELECT
3613                 header.application_id,
3614                 header.entity_code,
3615                 header.event_class_code,
3616                 header.trx_id,
3617                 lines_gt.trx_line_id,
3618                 lines_gt.trx_line_id          interface_line_id  ,
3619                 lines_gt.entity_code        interface_line_entity_code,
3620                 lines_gt.trx_level_type,
3621                 -- Check for existence of at least one location at line
3622                 CASE WHEN (lines_gt.ship_from_location_id is not null OR
3623                            lines_gt.ship_to_location_id is not NULL OR
3624                            lines_gt.poa_location_id is not NULL OR
3625                            lines_gt.poo_location_id is not NULL OR
3626                            lines_gt.paying_location_id is not NULL OR
3627                            lines_gt.own_hq_location_id is not NULL OR
3628                            lines_gt.trading_hq_location_id is not NULL OR
3629                            lines_gt.poc_location_id is not NULL OR
3630                            lines_gt.poi_location_id is not NULL OR
3631                            lines_gt.pod_location_id is not NULL OR
3632                            lines_gt.bill_to_location_id is not NULL OR
3633                            lines_gt.bill_from_location_id is not NULL OR
3634                            lines_gt.title_transfer_location_id is not NULL)
3635                       THEN NULL
3636                       ELSE 'Y'
3637                   END ZX_LOCATION_MISSING,
3638 
3639                 -- Check for Validity of Transaction line class
3640                 nvl2(lines_gt.line_class,
3641                      CASE WHEN (NOT EXISTS
3642                                 (SELECT 1 FROM FND_LOOKUPS lkp
3643                                  WHERE lines_gt.line_class = lkp.lookup_code
3644                                  AND lkp.lookup_type = 'ZX_LINE_CLASS'))
3645                           THEN 'Y'
3646                           ELSE NULL
3647                      END,
3648                      NULL
3649                     ) ZX_LINE_CLASS_INVALID,
3650 
3651                 -- Check for Validity of transaction line type
3652                 CASE WHEN (lines_gt.trx_line_type NOT IN('ITEM','FREIGHT',
3653                                                          'MISC','MISCELLANEOUS'))
3654                      THEN 'Y'
3655                      ELSE NULL
3656                 END  ZX_TRX_LINE_TYPE_INVALID,
3657 
3658                 -- Check for Validity of Line amount includes tax flag
3659                 CASE WHEN (lines_gt.line_amt_includes_tax_flag IS NULL OR
3660                            lines_gt.line_amt_includes_tax_flag NOT IN ('A','N','S'))
3661                      THEN 'Y'
3662                      ELSE  NULL
3663                 END  ZX_LINE_AMT_INCL_TAX_INVALID,
3664 
3665                 -- Check Product Category exists
3666                 nvl2(lines_gt.product_category,
3667                      nvl(fc_prodcat.classification_code, 'Y'),
3668                      null
3669                      ) PRODUCT_CATEG_NOT_EXISTS,
3670 
3671              -- Check for Product Category Effectivity
3672        --Bug 4703541
3673        CASE WHEN lines_gt.product_category IS NOT NULL AND
3674       fc_prodcat.classification_code IS NOT NULL
3675        THEN CASE WHEN
3676            nvl(lines_gt.trx_line_date, header.trx_date) BETWEEN
3677            fc_prodcat.effective_from AND
3678            nvl(fc_prodcat.effective_to, nvl(lines_gt.trx_line_date, header.trx_date))
3679        THEN NULL
3680        ELSE 'Y' END
3681        ELSE NULL END  PRODUCT_CATEG_NOT_EFFECTIVE,
3682 
3683                 -- Check for Country Consistency
3684                 CASE WHEN (fc_prodcat.classification_code is not null AND
3685                            fc_prodcat.country_code is not null)
3686                      THEN CASE WHEN(fc_prodcat.country_code =
3687                                     header.default_taxation_country)
3688                                THEN NULL
3689                                ELSE 'Y' END
3690                      ELSE NULL
3691                  END PRODUCT_CATEG_COUNTRY_INCONSIS,
3692 
3693                 -- Check for user defined code exists
3694                 nvl2(lines_gt.user_defined_fisc_class,
3695                      nvl(fc_user.classification_code, 'Y'),
3696                      null
3697                      ) USER_DEF_FC_CODE_NOT_EXISTS,
3698 
3699                 -- Check for user defined code Effectivity
3700                 CASE WHEN lines_gt.user_defined_fisc_class IS NOT NULL AND
3701                           fc_user.classification_code IS NOT NULL
3702          THEN CASE WHEN
3703              nvl(lines_gt.trx_line_date, header.trx_date) BETWEEN
3704                                fc_user.effective_from AND
3705                                nvl(fc_user.effective_to, nvl(lines_gt.trx_line_date,header.trx_date))
3706                            THEN NULL
3707                            ELSE 'Y' END
3708          ELSE NULL END  USER_DEF_FC_CODE_NOT_EFFECTIVE,
3709 
3710                 -- Check for user defined code Country Consistency
3711                 CASE WHEN (fc_user.classification_type_code is not null AND
3712                            fc_user.classification_code is not null AND
3713                            fc_user.country_code is not null)
3714                      THEN CASE WHEN(fc_user.country_code =
3715                                     header.default_taxation_country)
3716                                THEN NULL
3717                                ELSE 'Y' END
3718                      ELSE NULL
3719                  END USER_DEF_COUNTRY_INCONSIS,
3720 
3721                 -- Check for document subtype code Effectivity and enter only one error for trx.
3722     --Bug 4703541
3723         CASE WHEN header.document_sub_type is not null and
3724         fc_doc.classification_code is not null
3725          THEN --Bug 5018766
3726            CASE WHEN ( lines_gt.tax_date
3727                         NOT BETWEEN
3728            fc_doc.effective_from AND
3729            nvl(fc_doc.effective_to, lines_gt.tax_date)
3730            AND
3731            (NOT EXISTS
3732               (SELECT 1 FROM ZX_TRANSACTION_LINES_GT
3733               WHERE application_id = lines_gt.application_id
3734               AND   entity_code = lines_gt.entity_code
3735               AND   event_class_code = lines_gt.event_class_code
3736               AND   trx_id = lines_gt.trx_id
3737               AND   trx_line_id < lines_gt.trx_line_id
3738               AND   trx_level_type = lines_gt.trx_level_type)))
3739           THEN 'Y'
3740           ELSE NULL END
3741          ELSE NULL END DOC_FC_CODE_NOT_EFFECTIVE,
3742 
3743                 -- Check for Transaction Business Category fc code exists
3744                 nvl2(lines_gt.trx_business_category,
3745                      nvl(fc_trx.classification_code, 'Y'),
3746                      null
3747                      )TRX_BIZ_FC_CODE_NOT_EXISTS,
3748 
3749                 -- Check for Transaction Business Category fc code Effectivity
3750     --Bug 4703541
3751      CASE WHEN lines_gt.trx_business_category IS NOT NULL AND
3752                           fc_trx.classification_code IS NOT NULL
3753          THEN CASE WHEN
3754              nvl(lines_gt.trx_line_date, header.trx_date) BETWEEN
3755                                fc_trx.effective_from AND
3756                                nvl(fc_trx.effective_to, nvl(lines_gt.trx_line_date, header.trx_date))
3757                            THEN NULL
3758                            ELSE 'Y' END
3759          ELSE NULL END  TRX_BIZ_FC_CODE_NOT_EFFECTIVE,
3760 
3761                 -- Check for Transaction Business Category code Country Consistency
3762                 CASE WHEN (fc_trx.classification_code is not null AND
3763                            fc_trx.country_code is not null)
3764                      THEN CASE WHEN(fc_trx.country_code =
3765                                     header.default_taxation_country)
3766                                THEN NULL
3767                                ELSE 'Y' END
3768                      ELSE NULL
3769                 END TRX_BIZ_FC_COUNTRY_INCONSIS,
3770 
3771                 -- Check for Intended Use - eTax model FC code exists
3772     --Bug 4703541
3773                 nvl2(lines_gt.line_intended_use,
3774                      nvl(fc_int.classification_code, 'Y'),
3775                      null
3776                      ) INTENDED_USE_CODE_NOT_EXISTS,
3777 
3778                 -- Check for Intended Use - eTax model FC code Effectivity
3779     --Bug 4703541
3780                 CASE WHEN lines_gt.line_intended_use IS NOT NULL AND
3781                           fc_int.classification_code IS NOT NULL
3782          THEN CASE WHEN
3783              nvl(lines_gt.trx_line_date, header.trx_date) BETWEEN
3784                                fc_int.effective_from AND
3785                                nvl(fc_int.effective_to, nvl(lines_gt.trx_line_date, header.trx_date))
3786                            THEN NULL
3787                            ELSE 'Y' END
3788          ELSE NULL END  INTENDED_USE_NOT_EFFECTIVE,
3789 
3790              -- Check for Intended Use - eTax modelFC code Country Consistency
3791                 CASE WHEN (fc_int.classification_type_code is not null AND
3792                            fc_int.classification_code is not null AND
3793                            fc_int.country_code is not null )
3794                       THEN  CASE WHEN fc_int.country_code =
3795                                       header.default_taxation_country
3796                                  THEN NULL
3797                                  ELSE 'Y' END
3798                       ELSE NULL
3799                 END   INTENDED_USE_CONTRY_INCONSIS,
3800 
3801                 -- Check for product type
3802                 -- Bug # 3438264
3803                 nvl2(lines_gt.product_type,
3804                      nvl(fnd.lookup_code,'Y'),
3805                      NULL
3806                     ) PRODUCT_TYPE_CODE_NOT_EXISTS,
3807 
3808                 -- Check for product type code Effectivity
3809                 CASE WHEN (fnd.lookup_code is not null)
3810                      THEN  CASE WHEN ( lines_gt.tax_date --Bug 5018766
3811                                    BETWEEN fnd.start_date_active AND
3812                                         nvl(fnd.end_date_active,
3813                                             lines_gt.tax_date )
3814              )
3815                            THEN NULL
3816                            ELSE 'Y' END
3817                      ELSE NULL
3818                 END PRODUCT_TYPE_NOT_EFFECTIVE,
3819 
3820                 -- Check for product fiscal classification
3821                 nvl2(lines_gt.product_fisc_classification,
3822                      CASE WHEN (fc_product.country_code =
3823                                 header.default_taxation_country and
3824                                 fc_product.classification_code is not null)
3825                           THEN NULL
3826                           ELSE 'Y' END,
3827                      NULL
3828                      ) PRODUCT_FC_CODE_NOT_EXISTS,
3829 
3830                    -- Check for SHIP_TO_PARTY_ID
3831 /*
3832                 nvl2(lines_gt.SHIP_TO_PARTY_ID,
3833                      CASE WHEN (NOT EXISTS
3834                                 (SELECT 1 FROM zx_party_tax_profile
3835                                  WHERE party_id =
3836                                        lines_gt.SHIP_TO_PARTY_ID
3837                                  AND  party_type_code = 'THIRD_PARTY'))
3838                            THEN 'Y'
3839                            ELSE NULL END,
3840                       NULL) SHIP_TO_PARTY_NOT_EXISTS,
3841 
3842                    -- Check for SHIP_FROM_PARTY_ID
3843                 nvl2(lines_gt.SHIP_FROM_PARTY_ID,
3844                      CASE WHEN (NOT EXISTS
3845                                 (SELECT 1 FROM zx_party_tax_profile
3846                                  WHERE party_id =
3847                                        lines_gt.SHIP_FROM_PARTY_ID
3848                                  AND  party_type_code = 'THIRD_PARTY'))
3849                            THEN 'Y'
3850                            ELSE NULL END,
3851                       NULL) SHIP_FROM_PARTY_NOT_EXISTS,
3852 
3853                    -- Check for BILL_TO_PARTY_ID
3854                 nvl2(lines_gt.BILL_TO_PARTY_ID,
3855                      CASE WHEN (NOT EXISTS
3856                                 (SELECT 1 FROM zx_party_tax_profile
3857                                  WHERE party_id =
3858                                        lines_gt.BILL_TO_PARTY_ID
3859                                  AND  party_type_code = 'THIRD_PARTY'))
3860                            THEN 'Y'
3861                            ELSE NULL END,
3862                       NULL) BILL_TO_PARTY_NOT_EXISTS,
3863 
3864             -- Check for BILL_FROM_PARTY_ID
3865                 nvl2(lines_gt.BILL_FROM_PARTY_ID,
3866                      CASE WHEN (NOT EXISTS
3867                                 (SELECT 1 FROM zx_party_tax_profile
3868                                  WHERE party_id =
3869                                        lines_gt.BILL_FROM_PARTY_ID
3870                                  AND  party_type_code = 'THIRD_PARTY'))
3871                            THEN 'Y'
3872                            ELSE NULL END,
3873                       NULL) BILL_FROM_PARTY_NOT_EXISTS,
3874 
3875             -- Check for SHIP_TO_PARTY_SITE_ID
3876                 nvl2(lines_gt.SHIP_TO_PARTY_SITE_ID,
3877                      CASE WHEN (NOT EXISTS
3878                                 (SELECT 1 FROM zx_party_tax_profile
3879                                  WHERE party_id =
3880                                        lines_gt.SHIP_TO_PARTY_SITE_ID
3881                                  AND  party_type_code = 'THIRD_PARTY_SITE'))
3882                            THEN 'Y'
3883                            ELSE NULL END,
3884                       NULL) SHIPTO_PARTY_SITE_NOT_EXISTS,
3885 
3886             -- Check for SHIP_FROM_PARTY_SITE_ID
3887                 nvl2(lines_gt.SHIP_FROM_PARTY_SITE_ID,
3888                      CASE WHEN (NOT EXISTS
3889                                 (SELECT 1 FROM zx_party_tax_profile
3890                                  WHERE party_id =
3891                                        lines_gt.SHIP_FROM_PARTY_SITE_ID
3892                                  AND  party_type_code = 'THIRD_PARTY_SITE'))
3893                            THEN 'Y'
3894                            ELSE NULL END,
3895                       NULL) SHIPFROM_PARTY_SITE_NOT_EXISTS,
3896 
3897              -- Check for BILL_TO_PARTY_SITE_ID
3898                 nvl2(lines_gt.BILL_TO_PARTY_SITE_ID,
3899                      CASE WHEN (NOT EXISTS
3900                                 (SELECT 1 FROM zx_party_tax_profile
3901                                  WHERE party_id =
3902                                        lines_gt.BILL_TO_PARTY_SITE_ID
3903                                  AND  party_type_code = 'THIRD_PARTY_SITE'))
3904                            THEN 'Y'
3905                            ELSE NULL END,
3906                       NULL) BILLTO_PARTY_SITE_NOT_EXISTS,
3907 
3908              -- Check for BILL_FROM_PARTY_SITE_ID
3909                 nvl2(lines_gt.BILL_FROM_PARTY_SITE_ID,
3910                      CASE WHEN (NOT EXISTS
3911                                 (SELECT 1 FROM zx_party_tax_profile
3912                                  WHERE party_id =
3913                                        lines_gt.BILL_FROM_PARTY_SITE_ID
3914                                  AND  party_type_code = 'THIRD_PARTY_SITE'))
3915                            THEN 'Y'
3916                            ELSE NULL END,
3917                       NULL) BILLFROM_PARTY_SITE_NOT_EXISTS,
3918 */
3919 
3920                 -- If the header level control total flag is 'Y', then
3921                 -- there should not be any control amount passed at line level
3922                 -- removing the validation to sync the behavior with manual transactions
3923                 -- bug 6915776
3924                 /*CASE WHEN (lines_gt.CTRL_HDR_TX_APPL_FLAG ='Y' AND
3925                            lines_gt.CTRL_TOTAL_LINE_TX_AMT IS NOT NULL )
3926                      THEN 'Y'
3927                      ELSE NULL
3928                 END  ZX_LINE_CTRL_AMT_INVALID,*/
3929 
3930     -- Control total amount should be NULL if line_level_action is NOT 'CREATE'
3931                 -- bug 6915776
3932                 CASE WHEN (lines_gt.line_level_action <> 'CREATE' AND
3933                            lines_gt.CTRL_TOTAL_LINE_TX_AMT IS NOT NULL )
3934                      THEN 'Y'
3935                      ELSE NULL
3936                 END  ZX_LINE_CTRL_AMT_NOT_NULL,
3937 
3938                 -- If tax_variance_calc_flag in ZX_EVNT_CLS_MAPPINGS is set to 'Y',
3939                 -- then unit price and trx line quantity are required
3940           -- bugfix 4919842:
3941                 -- unit price and trx line quantity are only required for non-amount based
3942                 -- PO/receipt matched invoices
3943 
3944 /*                CASE WHEN (evntmap.tax_variance_calc_flag = 'Y'
3945                      and lines_gt.unit_price is null
3946                      and lines_gt.ref_doc_application_id IS NOT NULL
3947                      and lines_gt.line_class <> 'AMOUNT_MATCHED')
3948                      THEN  'Y'
3949                      ELSE  NULL
3950                 END ZX_UNIT_PRICE_MISSING,
3951 
3952                 CASE WHEN (evntmap.tax_variance_calc_flag = 'Y'
3953                      and lines_gt.trx_line_quantity is null
3954                      and lines_gt.ref_doc_application_id IS NOT NULL
3955                      and lines_gt.line_class <> 'AMOUNT_MATCHED')
3956                      THEN  'Y'
3957                      ELSE  NULL
3958                 END ZX_LINE_QUANTITY_MISSING,
3959 */
3960                 -- end Bug # 4563490
3961 
3962     CASE WHEN (lines_gt.exemption_control_flag IS NOT NULL AND
3963          lines_gt.exemption_control_flag NOT IN ('R','S','E'))
3964          THEN 'Y'
3965          ELSE  NULL
3966     END  ZX_EXEMPTION_CTRL_FLAG_INVALID,
3967 
3968     CASE WHEN (lines_gt.product_type IS NOT NULL AND
3969          lines_gt.product_type NOT IN ('GOODS','SERVICES'))
3970          THEN 'Y'
3971          ELSE  NULL
3972     END  ZX_PRODUCT_TYPE_INVALID,
3973 
3974                 -- If the header level control total flag is 'Y', then there should not be any tax lines passed for
3975                 -- that transaction except the tax-only tax lines
3976                 CASE WHEN (lines_gt.ctrl_hdr_tx_appl_flag = 'Y' AND
3977                            lines_gt.line_level_action <> 'LINE_INFO_TAX_ONLY' AND
3978                            EXISTS (SELECT 1
3979                                      FROM zx_import_tax_lines_gt imptaxes_gt
3980                                     WHERE application_id = lines_gt.application_id
3981                                       AND entity_code = lines_gt.entity_code
3982                                       AND event_class_code = lines_gt.event_class_code
3983                                       AND trx_id = lines_gt.trx_id
3984                                       AND trx_line_id = lines_gt.trx_line_id)
3985                            )
3986                      THEN 'Y'
3987                      ELSE  NULL
3988                 END ZX_INVALID_TAX_LINES,
3989 
3990                 -- If control total amount at line level is passed,
3991                 -- then no tax lines should be allocated to that line
3992 
3993                 CASE WHEN (lines_gt.CTRL_TOTAL_LINE_TX_AMT IS NOT NULL AND
3994                       EXISTS (SELECT 1
3995                                 from zx_trx_tax_link_gt
3996                                WHERE application_id = lines_gt.application_id
3997                                  AND entity_code = lines_gt.entity_code
3998                                  AND event_class_code = lines_gt.event_class_code
3999                                  AND trx_id = lines_gt.trx_id
4000                                  AND trx_line_id = lines_gt.trx_line_id
4001                                  AND trx_level_type = lines_gt.trx_level_type) )
4002                THEN 'Y'
4003                ELSE  NULL
4004                  END ZX_INVALID_LINE_TAX_AMT,
4005 
4006                 -- If control total amount at line level is passed, then there should not exist a tax line
4007                 -- that is allocated to all transaction lines (i.e. tax line with allocation flag as 'N').
4008 
4009                 CASE WHEN (lines_gt.ctrl_total_line_tx_amt IS NOT NULL AND
4010                            exists(select 1
4011                                     from zx_import_tax_lines_gt imptaxes_gt
4012                                    where application_id = lines_gt.application_id
4013                                      AND entity_code = lines_gt.entity_code
4014                                      AND event_class_code = lines_gt.event_class_code
4015                                      AND trx_id = lines_gt.trx_id
4016                                      AND trx_line_id is null
4017                                      and imptaxes_gt.tax_line_allocation_flag = 'N') )
4018                      THEN 'Y'
4019                      ELSE  NULL
4020                 END ZX_INVALID_TAX_FOR_ALLOC_FLG,
4021 
4022                 -- Tax-only Tax Lines should always have the tax line allocation flag as Y
4023 
4024                 CASE WHEN (lines_gt.line_level_action = 'LINE_INFO_TAX_ONLY' AND
4025                EXISTS (SELECT 1
4026                    FROM zx_import_tax_lines_gt imptaxes_gt
4027                   WHERE application_id = lines_gt.application_id
4028                     AND entity_code = lines_gt.entity_code
4029                     AND event_class_code = lines_gt.event_class_code
4030                     AND trx_id = lines_gt.trx_id
4031                     AND trx_line_id = lines_gt.trx_line_id
4032                     AND imptaxes_gt.tax_line_allocation_flag <> 'Y')
4033                            )
4034          THEN 'Y'
4035          ELSE  NULL
4036                 END ZX_INVALID_TAX_ONLY_TAX_LINES,
4037 
4038             /* CASE WHEN ((lines_gt.output_tax_classification_code IS NOT NULL OR
4039                            lines_gt.input_tax_classification_code IS NOT NULL)
4040                          --Changed for Bug#7504455--
4041                            AND NOT EXISTS (SELECT 1
4042                                              FROM zx_rates_b rates,
4043                                                   zx_subscription_details zxsd
4044                                             WHERE rates.tax_rate_code = NVL(lines_gt.output_tax_classification_code,
4045                                                                             lines_gt.input_tax_classification_code)
4046                                               AND rates.tax_regime_code = zxsd.tax_regime_code
4047                                               AND rates.content_owner_id = zxsd.first_pty_org_id
4048                                               AND rates.rate_type_code <> 'RECOVERY'))
4049                THEN 'Y'
4050                ELSE NULL
4051              END TAX_RATE_NOT_EXISTS,
4052 
4053              --Commented for Bug#7504455--
4054              /*CASE WHEN /*(lines_gt.output_tax_classification_code IS NOT NULL OR
4055                           lines_gt.input_tax_classification_code IS NOT NULL)
4056                           AND (EXISTS (SELECT 1 FROM ZX_TAXES_B
4057                                WHERE TAX_TYPE_CODE = 'OFFSET'
4058                                AND tax IN (SELECT tax FROM ZX_RATES_B
4059                                            WHERE tax_rate_code = NVL(lines_gt.output_tax_classification_code,
4060                                                                     lines_gt.input_tax_classification_code)))
4061                           OR
4062                           rates.rate_type_code = 'RECOVERY'
4063              --)
4064              --)
4065                   THEN 'Y'
4066              ELSE NULL END TAX_RECOV_OR_OFFSET,
4067 
4068              CASE WHEN ((lines_gt.output_tax_classification_code IS NOT NULL OR
4069                          lines_gt.input_tax_classification_code IS NOT NULL) AND
4070                          --Changed for Bug#7504455--
4071                          NOT EXISTS (SELECT 1
4072                                        FROM zx_rates_b rates,
4073                                             zx_subscription_details zxsd
4074                                       WHERE rates.tax_rate_code = NVL(lines_gt.output_tax_classification_code,
4075                                                                       lines_gt.input_tax_classification_code)
4076                                         AND rates.tax_regime_code = zxsd.tax_regime_code
4077                                         AND rates.content_owner_id = zxsd.first_pty_org_id
4078                                         AND rates.rate_type_code <> 'RECOVERY'
4079                                         AND lines_gt.tax_date BETWEEN rates.effective_from AND
4080                                                     NVL(rates.effective_to,lines_gt.tax_date)))
4081                   THEN 'Y'
4082              ELSE NULL END TAX_RATE_CODE_NOT_EFFECTIVE,
4083 
4084              -- Check Rate Code is Active
4085              CASE WHEN ((lines_gt.output_tax_classification_code IS NOT NULL OR
4086                          lines_gt.input_tax_classification_code IS NOT NULL) AND
4087                          --Changed for Bug#7504455--
4088                          NOT EXISTS (SELECT 1
4089                                        FROM zx_rates_b rates,
4090                                             zx_subscription_details zxsd
4091                                       WHERE rates.tax_rate_code = NVL(lines_gt.output_tax_classification_code,
4092                                                                       lines_gt.input_tax_classification_code)
4093                                         AND rates.tax_regime_code = zxsd.tax_regime_code
4094                                         AND rates.content_owner_id = zxsd.first_pty_org_id
4095                                         AND rates.rate_type_code <> 'RECOVERY'
4096                                         AND rates.active_flag = 'Y'))
4097                   THEN 'Y'
4098              ELSE NULL END TAX_RATE_CODE_NOT_ACTIVE*/
4099 --taniya
4100              CASE WHEN lines_gt.output_tax_classification_code IS NOT NULL
4101                         AND NOT EXISTS (SELECT 1
4102                                         FROM zx_output_classifications_v
4103                                         WHERE lookup_code = lines_gt.output_tax_classification_code
4104                                         AND org_id in (header.internal_organization_id, -99))
4105                         THEN 'Y'
4106                         ELSE
4107                            CASE WHEN lines_gt.input_tax_classification_code IS NOT NULL
4108                                      AND NOT EXISTS (SELECT 1
4109                                                      FROM zx_input_classifications_v
4110                                                      WHERE lookup_code = lines_gt.input_tax_classification_code
4111                                                      AND org_id in (header.internal_organization_id, -99))
4112                           THEN 'Y'
4113                           ELSE NULL END
4114              END TAX_RATE_NOT_EXISTS,
4115 
4116              CASE WHEN lines_gt.output_tax_classification_code IS NOT NULL
4117                        AND NOT EXISTS (SELECT 1
4118                                         FROM zx_output_classifications_v
4119                                         WHERE lookup_code = lines_gt.output_tax_classification_code
4120                                         AND org_id in (header.internal_organization_id, -99)
4121                                         AND lines_gt.tax_date BETWEEN start_date_active
4122                                             AND nvl(end_date_active,lines_gt.tax_date))
4123                        THEN 'Y'
4124                        ELSE
4125                          CASE WHEN lines_gt.input_tax_classification_code IS NOT NULL
4126                                    AND NOT EXISTS (SELECT 1
4127                                                      FROM zx_input_classifications_v
4128                                                      WHERE lookup_code = lines_gt.input_tax_classification_code
4129                                                      AND org_id in (header.internal_organization_id, -99)
4130                                                      AND lines_gt.tax_date BETWEEN start_date_active
4131                                                          AND nvl(end_date_active,lines_gt.tax_date))
4132                           THEN 'Y'
4133                           ELSE NULL END
4134              END TAX_RATE_CODE_NOT_EFFECTIVE,
4135 
4136              -- Check Rate Code is Active
4137              CASE WHEN lines_gt.output_tax_classification_code IS NOT NULL
4138                        AND NOT EXISTS (SELECT 1
4139                                         FROM zx_output_classifications_v
4140                                         WHERE lookup_code = lines_gt.output_tax_classification_code
4141                                         AND org_id in (header.internal_organization_id, -99)
4142                                         AND enabled_flag = 'Y')
4143                        THEN 'Y'
4144                        ELSE
4145                          CASE WHEN lines_gt.input_tax_classification_code IS NOT NULL
4146                                    AND NOT EXISTS (SELECT 1
4147                                                      FROM zx_input_classifications_v
4148                                                      WHERE lookup_code = lines_gt.input_tax_classification_code
4149                                                      AND org_id in (header.internal_organization_id, -99)
4150                                                      AND enabled_flag = 'Y')
4151                           THEN 'Y'
4152                           ELSE NULL END
4153              END TAX_RATE_CODE_NOT_ACTIVE
4154   FROM
4155     ZX_TRX_HEADERS_GT             header,
4156     ZX_EVNT_CLS_MAPPINGS          evntmap,
4157     ZX_TRANSACTION_LINES_GT       lines_gt,
4158     ZX_FC_PRODUCT_CATEGORIES_V    fc_prodcat,
4159     ZX_FC_CODES_B                 fc_user,
4160     ZX_FC_DOCUMENT_FISCAL_V       fc_doc,
4161     ZX_FC_BUSINESS_CATEGORIES_V   fc_trx,
4162     ZX_FC_CODES_B                 fc_int,
4163     FND_LOOKUPS                   fnd,
4164     ZX_FC_PRODUCT_FISCAL_V        fc_product
4165     --ZX_RATES_B                  rates       --Commented for Bug#7504455--
4166   WHERE
4167     lines_gt.trx_id = header.trx_id
4168     and fc_product.classification_code(+) =    lines_gt.product_fisc_classification
4169     and fc_prodcat.classification_code(+) =    lines_gt.product_category
4170     and fc_user.classification_type_code(+) =  'USER_DEFINED'
4171     and fc_user.classification_code(+) =       lines_gt.user_defined_fisc_class
4172     and fc_doc.classification_code(+) =        header.document_sub_type
4173     and fc_trx.classification_code(+) =        lines_gt.trx_business_category
4174     and fc_trx.application_id(+)      =        lines_gt.application_id
4175     and fc_trx.entity_code(+)         =        lines_gt.entity_code
4176     and fc_trx.event_class_code(+)    =        lines_gt.event_class_code
4177     and fc_int.classification_type_code(+) =   'INTENDED_USE'
4178     and fc_int.classification_code(+)      =   lines_gt.line_intended_use
4179     and header.application_id    =       evntmap.application_id (+)
4180     and header.entity_code       =             evntmap.entity_code (+)
4181     and header.event_class_code  =             evntmap.event_class_code(+)
4182     and fnd.lookup_type(+)    =      'ZX_PRODUCT_TYPE'
4183     and fnd.lookup_code(+) =                   lines_gt.product_type;
4184     --Commented for Bug#7504455--
4185     --and rates.tax_rate_code(+) = NVL(lines_gt.output_tax_classification_code,
4186     --                                 lines_gt.input_tax_classification_code);
4187 
4188         -- Bug 4902521 : Added Message to check no. of rows inserted .
4189   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4190 
4191   IF ( g_level_statement >= g_current_runtime_level) THEN
4192     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4193     'No. of Rows inserted for Line Related Validations : '|| to_char(sql%ROWCOUNT) );
4194   END IF;
4195 
4196 /******************** End of Logic for Header/Line Validations *************************/
4197 
4198         -- Validations for Imported tax Lines.
4199         g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4200     IF ( g_level_event >= g_current_runtime_level) THEN
4201       FND_LOG.STRING(g_level_event,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4202       'Validations for Imported tax Lines.');
4203     END IF;
4204 
4205   -- Select the key columns and write into fnd log for debug purpose
4206   IF ( g_level_statement >= g_current_runtime_level) THEN
4207     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4208       'Before opening the cursor - get_import_tax_line_info_csr');
4209 
4210     OPEN get_import_tax_line_info_csr;
4211 
4212     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4213       'After opening the cursor - get_import_tax_line_info_csr');
4214 
4215     LOOP
4216       FETCH get_import_tax_line_info_csr BULK COLLECT INTO
4217       l_application_id_tbl,
4218       l_entity_code_tbl,
4219       l_event_class_code_tbl,
4220       l_trx_id_tbl,
4221       l_trx_line_id_tbl,
4222       l_trx_level_type_tbl,
4223       l_summary_tax_line_number_tbl
4224 
4225         LIMIT C_LINES_PER_COMMIT;
4226 
4227 --        EXIT WHEN get_import_tax_line_info_csr%notfound;
4228 
4229       l_count := nvl(l_trx_line_id_tbl.COUNT,0);
4230 
4231     FND_LOG.STRING(g_level_statement,
4232              'ZX.PLSQL.ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4233              'number of rows fetched = ' || to_char(l_count));
4234 
4235       IF l_count > 0 THEN
4236 
4237         FOR i IN 1.. l_count LOOP
4238 
4239     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4240     'Row Number = ' || to_char(i) );
4241 
4242     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4243     'l_application_id = ' || to_char(l_application_id_tbl(i)) );
4244 
4245     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4246     'l_entity_code = ' || l_entity_code_tbl(i) );
4247 
4248     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4249     'l_event_class_code = ' || l_event_class_code_tbl(i) );
4250 
4251     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4252     'l_trx_id = ' || to_char(l_trx_id_tbl(i)) );
4253 
4254     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4255     'l_trx_line_id = ' || to_char(l_trx_line_id_tbl(i)) );
4256 
4257     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4258     'l_trx_level_type = ' || l_trx_level_type_tbl(i) );
4259 
4260     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4261     'l_summary_tax_line_number = ' || to_char(l_summary_tax_line_number_tbl(i)) );
4262 
4263 
4264         END LOOP;
4265        ELSE
4266          EXIT ;
4267 
4268       END IF; -- end of count checking
4269 
4270     END LOOP;
4271 
4272     CLOSE get_import_tax_line_info_csr;
4273 
4274           -- Clear the records
4275     l_application_id_tbl.delete;
4276     l_entity_code_tbl.delete;
4277     l_event_class_code_tbl.delete;
4278     l_trx_id_tbl.delete;
4279     l_trx_line_id_tbl.delete;
4280     l_trx_level_type_tbl.delete;
4281     l_summary_tax_line_number_tbl.delete;
4282 
4283   END IF; -- End of debug checking
4284 
4285   IF ( g_level_statement >= g_current_runtime_level) THEN
4286     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4287     'Before insertion into ZX_VALIDATION_ERRORS_GT for Imported Tax Lines Validations');
4288   END IF;
4289 
4290   IF ( g_level_statement >= g_current_runtime_level) THEN
4291     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
4292     'Before insertion into ZX_VALIDATION_ERRORS_GT for Regime,Tax,Status and Jurisdiction related Imported Tax Lines Validations');
4293   END IF;
4294 
4295   INSERT ALL
4296     WHEN (REGIME_NOT_EXISTS = 'Y') THEN
4297 
4298       INTO ZX_VALIDATION_ERRORS_GT(
4299         application_id,
4300         entity_code,
4301         event_class_code,
4302         trx_id,
4303         trx_line_id,
4304         summary_tax_line_number,
4305         message_name,
4306         message_text,
4307         trx_level_type,
4308         interface_tax_entity_code,
4309         interface_tax_line_id
4310         )
4311       VALUES(
4312         application_id,
4313         entity_code,
4314         event_class_code,
4315         trx_id,
4316         NULL,
4317         summary_tax_line_number,
4318         'ZX_REGIME_NOT_EXIST',
4319         l_regime_not_exists,
4320         NULL,
4321         interface_tax_entity_code,
4322         interface_tax_line_id
4323          )
4324     WHEN (ZX_REGIME_NOT_EFF_IN_SUBSCR = 'Y') THEN
4325 
4326       INTO ZX_VALIDATION_ERRORS_GT(
4327         application_id,
4328         entity_code,
4329         event_class_code,
4330         trx_id,
4331         trx_line_id,
4332         summary_tax_line_number,
4333         message_name,
4334         message_text,
4335         trx_level_type,
4336         interface_tax_entity_code,
4337         interface_tax_line_id
4338         )
4339       VALUES(
4340         application_id,
4341         entity_code,
4342         event_class_code,
4343         trx_id,
4344         NULL,
4345         summary_tax_line_number,
4346         'ZX_REGIME_NOT_EFF_IN_SUBSCR',
4347         l_regime_not_eff_in_subscrptn,
4348         NULL,
4349         interface_tax_entity_code,
4350         interface_tax_line_id
4351          )
4352      WHEN (REGIME_NOT_EFFECTIVE = 'Y')  THEN
4353 
4354       INTO ZX_VALIDATION_ERRORS_GT(
4355         application_id,
4356         entity_code,
4357         event_class_code,
4358         trx_id,
4359         trx_line_id,
4360         summary_tax_line_number,
4361         message_name,
4362         message_text,
4363         trx_level_type,
4364         interface_tax_entity_code,
4365         interface_tax_line_id
4366         )
4367       VALUES(
4368         application_id,
4369         entity_code,
4370         event_class_code,
4371         trx_id,
4372         NULL,
4373         summary_tax_line_number,
4374         'ZX_REGIME_NOT_EFFECTIVE',
4375         l_regime_not_effective,
4376         NULL,
4377         interface_tax_entity_code,
4378         interface_tax_line_id
4379          )
4380     WHEN (TAX_NOT_EXISTS = 'Y')  THEN
4381 
4382         INTO ZX_VALIDATION_ERRORS_GT(
4383           application_id,
4384           entity_code,
4385           event_class_code,
4386           trx_id,
4387           trx_line_id,
4388           summary_tax_line_number,
4389           message_name,
4390           message_text,
4391           trx_level_type,
4392           interface_tax_entity_code,
4393           interface_tax_line_id
4394           )
4395         VALUES(
4396           application_id,
4397           entity_code,
4398           event_class_code,
4399           trx_id,
4400           NULL,
4401           summary_tax_line_number,
4402           'ZX_TAX_NOT_EXIST',
4403           l_tax_not_exists,
4404           NULL,
4405           interface_tax_entity_code,
4406           interface_tax_line_id
4407            )
4408     WHEN (TAX_NOT_LIVE = 'Y')  THEN
4409 
4410         INTO ZX_VALIDATION_ERRORS_GT(
4411           application_id,
4412           entity_code,
4413           event_class_code,
4414           trx_id,
4415           trx_line_id,
4416           summary_tax_line_number,
4417           message_name,
4418           message_text,
4419           trx_level_type,
4420           interface_tax_entity_code,
4421           interface_tax_line_id
4422           )
4423         VALUES(
4424           application_id,
4425           entity_code,
4426           event_class_code,
4427           trx_id,
4428           NULL,
4429           summary_tax_line_number,
4430           'ZX_TAX_NOT_LIVE',
4431           l_tax_not_live,
4432           NULL,
4433           interface_tax_entity_code,
4434           interface_tax_line_id
4435            )
4436     WHEN (TAX_NOT_EFFECTIVE = 'Y')  THEN
4437         INTO ZX_VALIDATION_ERRORS_GT(
4438           application_id,
4439           entity_code,
4440           event_class_code,
4441           trx_id,
4442           trx_line_id,
4443           summary_tax_line_number,
4444           message_name,
4445           message_text,
4446           trx_level_type,
4447           interface_tax_entity_code,
4448           interface_tax_line_id
4449           )
4450         VALUES(
4451           application_id,
4452           entity_code,
4453           event_class_code,
4454           trx_id,
4455           NULL,
4456           summary_tax_line_number,
4457           'ZX_TAX_NOT_EFFECTIVE',
4458           l_tax_not_effective,
4459           NULL,
4460           interface_tax_entity_code,
4461           interface_tax_line_id
4462            )
4463          WHEN (TAX_STATUS_NOT_EXISTS = 'Y')  THEN
4464         INTO ZX_VALIDATION_ERRORS_GT(
4465           application_id,
4466           entity_code,
4467           event_class_code,
4468           trx_id,
4469           trx_line_id,
4470           summary_tax_line_number,
4471           message_name,
4472           message_text,
4473           trx_level_type,
4474           interface_tax_entity_code,
4475           interface_tax_line_id
4476           )
4477         VALUES(
4478           application_id,
4479           entity_code,
4480           event_class_code,
4481           trx_id,
4482           NULL,
4483           summary_tax_line_number,
4484           'ZX_TAX_STATUS_NOT_EXIST',
4485           l_tax_status_not_exists,
4486           NULL,
4487           interface_tax_entity_code,
4488           interface_tax_line_id
4489            )
4490     WHEN (TAX_STATUS_NOT_EFFECTIVE = 'Y')  THEN
4491 
4492         INTO ZX_VALIDATION_ERRORS_GT(
4493           application_id,
4494           entity_code,
4495           event_class_code,
4496           trx_id,
4497           trx_line_id,
4498           summary_tax_line_number,
4499           message_name,
4500           message_text,
4501           trx_level_type,
4502           interface_tax_entity_code,
4503           interface_tax_line_id
4504           )
4505         VALUES(
4506           application_id,
4507           entity_code,
4508           event_class_code,
4509           trx_id,
4510           NULL,
4511           summary_tax_line_number,
4512           'ZX_TAX_STATUS_NOT_EFFECTIVE',
4513           l_tax_status_not_effective,
4514           NULL,
4515           interface_tax_entity_code,
4516           interface_tax_line_id
4517            )
4518     WHEN (JUR_CODE_NOT_EXISTS = 'Y')  THEN
4519 
4520         INTO ZX_VALIDATION_ERRORS_GT(
4521           application_id,
4522           entity_code,
4523           event_class_code,
4524           trx_id,
4525           trx_line_id,
4526           summary_tax_line_number,
4527           message_name,
4528           message_text,
4529           trx_level_type,
4530           interface_tax_entity_code,
4531           interface_tax_line_id
4532           )
4533         VALUES(
4534           application_id,
4535           entity_code,
4536           event_class_code,
4537           trx_id,
4538           NULL,
4539           summary_tax_line_number,
4540           'ZX_JUR_CODE_NOT_EXIST',
4541           l_jur_code_not_exists,
4542           NULL,
4543           interface_tax_entity_code,
4544           interface_tax_line_id
4545            )
4546 
4547     WHEN (JUR_CODE_NOT_EFFECTIVE = 'Y')  THEN
4548 
4549         INTO ZX_VALIDATION_ERRORS_GT(
4550           application_id,
4551           entity_code,
4552           event_class_code,
4553           trx_id,
4554           trx_line_id,
4555           summary_tax_line_number,
4556           message_name,
4557           message_text,
4558           trx_level_type,
4559           interface_tax_entity_code,
4560           interface_tax_line_id
4561           )
4562         VALUES(
4563           application_id,
4564           entity_code,
4565           event_class_code,
4566           trx_id,
4567           NULL,
4568           summary_tax_line_number,
4569           'ZX_JUR_CODE_NOT_EFFECTIVE',
4570           l_jur_code_not_effective,
4571           NULL,
4572           interface_tax_entity_code,
4573           interface_tax_line_id
4574            )
4575 
4576     WHEN (DEFAULT_STATUS_NOT_EXISTS = 'Y')  THEN
4577 
4578         INTO ZX_VALIDATION_ERRORS_GT(
4579           application_id,
4580           entity_code,
4581           event_class_code,
4582           trx_id,
4583           trx_line_id,
4584           summary_tax_line_number,
4585           message_name,
4586           message_text,
4587           trx_level_type,
4588           interface_tax_entity_code,
4589           interface_tax_line_id
4590           )
4591         VALUES(
4592           application_id,
4593           entity_code,
4594           event_class_code,
4595           trx_id,
4596           NULL,
4597           summary_tax_line_number,
4598           'ZX_DEFAULT_STATUS_NOT_EXIST',
4599           l_default_status_not_exists,
4600           NULL,
4601           interface_tax_entity_code,
4602           interface_tax_line_id
4603            )
4604 
4605     WHEN (TAX_AMT_MISSING = 'Y') THEN
4606 
4607          INTO zx_validation_errors_gt(
4608          application_id,
4609          entity_code,
4610          event_class_code,
4611          trx_id,
4612          summary_tax_line_number,
4613          message_name,
4614          message_text,
4615          trx_level_type,
4616          interface_tax_entity_code,
4617          interface_tax_line_id
4618          )
4619           VALUES
4620         (
4621          application_id,
4622          entity_code,
4623          event_class_code,
4624          trx_id,
4625          summary_tax_line_number,
4626          'ZX_TAX_AMT_MISSING',
4627          l_tax_amt_missing,
4628          NULL,
4629          interface_tax_entity_code,
4630          interface_tax_line_id
4631          )
4632 
4633          WHEN (ZX_TAX_LINE_ALLOC_FLAG_INVALID = 'Y')  THEN
4634 
4635       INTO ZX_VALIDATION_ERRORS_GT(
4636         application_id,
4637         entity_code,
4638         event_class_code,
4639         trx_id,
4640         --trx_line_id,
4641         summary_tax_line_number,
4642         message_name,
4643         message_text,
4644         trx_level_type,
4645         interface_line_entity_code,
4646         interface_line_id
4647         )
4648       VALUES(
4649         application_id,
4650         entity_code,
4651         event_class_code,
4652         trx_id,
4653         --trx_line_id,
4654         summary_tax_line_number,
4655         'ZX_TAX_LINE_ALLOC_FLAG_INVALID',
4656         l_tax_line_alloc_flag_invalid,
4657         NULL,
4658         interface_tax_entity_code,
4659         interface_tax_line_id
4660        )
4661       WHEN (ZX_INVALID_TAX_ALLOC_FLAG = 'Y')  THEN
4662 
4663       INTO ZX_VALIDATION_ERRORS_GT(
4664         application_id,
4665         entity_code,
4666         event_class_code,
4667         trx_id,
4668         summary_tax_line_number,
4669         message_name,
4670         message_text,
4671         trx_level_type,
4672         interface_line_entity_code,
4673         interface_line_id
4674         )
4675       VALUES(
4676         application_id,
4677         entity_code,
4678         event_class_code,
4679         trx_id,
4680         summary_tax_line_number,
4681         'ZX_INVALID_TAX_ALLOC_FLAG',
4682         l_invalid_tax_line_alloc_flag,
4683         NULL,
4684         interface_tax_entity_code,
4685         interface_tax_line_id
4686         )
4687       WHEN (SAMETAX_MULTIALLOC_TO_SAMELN = 'Y') THEN
4688 
4689         INTO zx_validation_errors_gt(
4690          application_id,
4691          entity_code,
4692          event_class_code,
4693          trx_id,
4694          trx_line_id,
4695          summary_tax_line_number,
4696          message_name,
4697          message_text,
4698          trx_level_type,
4699          interface_tax_entity_code,
4700          interface_tax_line_id
4701           )
4702         VALUES (
4703          application_id,
4704          entity_code,
4705          event_class_code,
4706          trx_id,
4707          trx_line_id,
4708          summary_tax_line_number,
4709          'ZX_TAX_MULTIALLOC_TO_SAMELN',
4710          l_tax_multialloc_to_sameln,
4711          trx_level_type,
4712          interface_tax_entity_code,
4713          interface_tax_line_id
4714          )
4715       WHEN (TAX_ONLY_LINE_MULTI_ALLOCATED = 'Y') THEN
4716 
4717         INTO zx_validation_errors_gt(
4718          application_id,
4719          entity_code,
4720          event_class_code,
4721          trx_id,
4722          trx_line_id,
4723          summary_tax_line_number,
4724          message_name,
4725          message_text,
4726          trx_level_type,
4727          interface_line_entity_code,
4728          interface_line_id
4729          )
4730         VALUES (
4731          application_id,
4732          entity_code,
4733          event_class_code,
4734          trx_id,
4735          trx_line_id,
4736          summary_tax_line_number,
4737          'ZX_TAX_ONLY_LINE_MULTI_ALLOCAT',
4738          l_tax_only_line_multi_allocate,
4739          trx_level_type,
4740          interface_line_entity_code,
4741          interface_line_id
4742          )
4743       WHEN (PSEUDO_LINE_HAS_MULTI_TAXALLOC = 'Y') THEN
4744 
4745         INTO zx_validation_errors_gt(
4746          application_id,
4747          entity_code,
4748          event_class_code,
4749          trx_id,
4750          trx_line_id,
4751          summary_tax_line_number,
4752          message_name,
4753          message_text,
4754          trx_level_type,
4755          interface_line_entity_code,
4756          interface_line_id
4757           )
4758         VALUES (
4759          application_id,
4760          entity_code,
4761          event_class_code,
4762          trx_id,
4763          trx_line_id,
4764          summary_tax_line_number,
4765          'ZX_PSEUDO_LINE_HAS_MULTI_TAX',
4766          l_pseudo_line_has_multi_taxall,
4767          trx_level_type,
4768          interface_line_entity_code,
4769          interface_line_id
4770          )
4771 
4772       WHEN (TAX_LN_TYP_LOC_NOT_ALLW_F_AR = 'Y' ) THEN
4773 
4774           INTO zx_validation_errors_gt(
4775          application_id,
4776          entity_code,
4777          event_class_code,
4778          trx_id,
4779          trx_line_id,
4780          summary_tax_line_number,
4781          message_name,
4782          message_text,
4783          trx_level_type,
4784          interface_tax_entity_code,
4785          interface_tax_line_id
4786           )
4787           VALUES (
4788          application_id,
4789          entity_code,
4790          event_class_code,
4791          trx_id,
4792          trx_line_id,
4793          summary_tax_line_number,
4794          'ZX_TAX_LN_TYP_LOC_N_ALLW_F_AR',
4795          l_tax_ln_typ_loc_not_allw_f_ar,
4796          trx_level_type,
4797          interface_tax_entity_code,
4798          interface_tax_line_id
4799           )
4800       WHEN (TAX_INCL_FLAG_MISMATCH = 'Y' ) THEN
4801 
4802           INTO zx_validation_errors_gt(
4803          application_id,
4804          entity_code,
4805          event_class_code,
4806          trx_id,
4807          trx_line_id,
4808          summary_tax_line_number,
4809          message_name,
4810          message_text,
4811          trx_level_type,
4812          interface_tax_entity_code,
4813          interface_tax_line_id
4814           )
4815           VALUES (
4816          application_id,
4817          entity_code,
4818          event_class_code,
4819          trx_id,
4820          trx_line_id,
4821          summary_tax_line_number,
4822          'ZX_TAX_INCL_FLAG_MISMATCH',
4823          l_tax_incl_flag_mismatch,
4824          trx_level_type,
4825          interface_tax_entity_code,
4826          interface_tax_line_id
4827         )
4828 
4829 
4830 
4831       WHEN (ZX_TAX_MISSING_IN_APPLIED_FRM = 'Y') THEN
4832 
4833           INTO zx_validation_errors_gt(
4834          application_id,
4835          entity_code,
4836          event_class_code,
4837          trx_id,
4838          trx_line_id,
4839          summary_tax_line_number,
4840          message_name,
4841          message_text,
4842          trx_level_type,
4843          interface_line_entity_code,
4844          interface_line_id
4845           )
4846           VALUES(
4847          application_id,
4848          entity_code,
4849          event_class_code,
4850          trx_id,
4851          trx_line_id,
4852          summary_tax_line_number,
4853          'ZX_TAX_MISSING_IN_APPLIED_FRM',
4854          l_imp_tax_missing_in_appld_frm,
4855          trx_level_type,
4856          interface_line_entity_code,
4857          interface_line_id
4858          )
4859 
4860       WHEN (ZX_TAX_MISSING_IN_ADJUSTED_TO = 'Y') THEN
4861 
4862           INTO zx_validation_errors_gt(
4863          application_id,
4864          entity_code,
4865          event_class_code,
4866          trx_id,
4867          trx_line_id,
4868          summary_tax_line_number,
4869          message_name,
4870          message_text,
4871          trx_level_type,
4872          interface_line_entity_code,
4873          interface_line_id
4874           )
4875           VALUES(
4876          application_id,
4877          entity_code,
4878          event_class_code,
4879          trx_id,
4880          trx_line_id,
4881          summary_tax_line_number,
4882          'ZX_TAX_MISSING_IN_ADJUSTED_TO',
4883          l_imp_tax_missing_in_adjust_to,
4884          trx_level_type,
4885          interface_line_entity_code,
4886          interface_line_id
4887          )
4888 
4889       WHEN (ZX_IMP_TAX_RATE_AMT_MISMATCH = 'Y') THEN
4890 
4891           INTO zx_validation_errors_gt(
4892          application_id,
4893          entity_code,
4894          event_class_code,
4895          trx_id,
4896          trx_line_id,
4897          summary_tax_line_number,
4898          message_name,
4899          message_text,
4900          trx_level_type,
4901          interface_line_entity_code,
4902          interface_line_id,
4903          interface_tax_line_id
4904           )
4905           VALUES(
4906          application_id,
4907          entity_code,
4908          event_class_code,
4909          trx_id,
4910          trx_line_id,
4911          summary_tax_line_number,
4912          'ZX_IMP_TAX_RATE_AMT_MISMATCH',
4913          l_imp_tax_rate_amt_mismatch,
4914          trx_level_type,
4915          interface_line_entity_code,
4916          interface_line_id,
4917          interface_tax_line_id
4918          )
4919   SELECT
4920       header.application_id,
4921       header.entity_code,
4922       header.event_class_code,
4923       header.trx_id,
4924       taxlines_gt.summary_tax_line_number,
4925       taxlines_gt.summary_tax_line_number interface_tax_line_id,
4926       taxlines_gt.entity_code             interface_tax_entity_code,
4927       lines_gt.trx_line_id     interface_line_id,
4928       lines_gt.entity_code     interface_line_entity_code,
4929       lines_gt.trx_line_id,
4930       lines_gt.trx_level_type,
4931 
4932       -- Check for Regime Existence
4933       CASE WHEN taxlines_gt.tax_regime_code IS NOT NULL AND
4934           regime.tax_regime_code IS NULL
4935            THEN
4936           'Y'
4937            ELSE 'N'
4938            END  REGIME_NOT_EXISTS,
4939 
4940       -- Check for Regime Effectivity in surscription detail table
4941       CASE WHEN taxlines_gt.tax_regime_code IS NOT NULL
4942           AND regime.tax_regime_code IS NOT NULL
4943            THEN
4944         CASE WHEN sd_reg.tax_regime_code IS NULL
4945              THEN 'Y'
4946              ELSE 'N' END
4947            ELSE 'N'
4948            END ZX_REGIME_NOT_EFF_IN_SUBSCR,
4949 
4950 
4951       -- Check for Regime Effectivity
4952       CASE WHEN taxlines_gt.tax_regime_code IS NOT NULL
4953           AND regime.tax_regime_code IS NOT NULL
4954           AND sd_reg.tax_regime_code IS NOT NULL
4955            THEN
4956         CASE WHEN lines_gt.subscription_date
4957             BETWEEN regime.effective_from
4958                 AND NVL(regime.effective_to,
4959                   lines_gt.subscription_date)
4960             THEN 'N'
4961             ELSE 'Y' END
4962            ELSE 'N'
4963            END  REGIME_NOT_EFFECTIVE,
4964 
4965          -- Check for Tax Existence
4966          nvl2(taxlines_gt.tax,
4967         CASE WHEN (sd_tax.tax_regime_code IS NOT NULL AND
4968               /*tax.tax_regime_code = regime.tax_regime_code AND*/ --Bug 4902521
4969               tax.tax is not null)
4970         THEN NULL
4971         ELSE 'Y' END,
4972         'N') TAX_NOT_EXISTS,
4973 
4974          -- Check for Tax Live flag
4975          nvl2(taxlines_gt.tax,
4976         CASE WHEN (sd_tax.tax_regime_code IS NOT NULL AND
4977              /*tax.tax_regime_code=regime.tax_regime_code AND*/ --Bug 4902521
4978              tax.tax is not NULL )
4979              THEN
4980            CASE WHEN tax.live_for_processing_flag = 'Y'
4981                 THEN 'N'
4982                 ELSE 'Y'
4983            END
4984              ELSE 'N' END,
4985         'N') TAX_NOT_LIVE,
4986 
4987       -- Check for Tax Effectivity
4988            nvl2(taxlines_gt.tax,
4989              CASE WHEN (sd_tax.tax_regime_code IS NOT NULL AND
4990             /*tax.tax_regime_code=regime.tax_regime_code AND*/ --Bug 4902521
4991             tax.tax is not null)
4992             THEN
4993               CASE WHEN lines_gt.tax_date --Bug 5018766
4994               BETWEEN tax.effective_from AND
4995                 NVL(tax.effective_to,
4996               lines_gt.tax_date
4997               )
4998              THEN 'N'
4999              ELSE 'Y' END
5000           ELSE 'N' END ,
5001          'N')  TAX_NOT_EFFECTIVE,
5002 
5003        -- Check for Status Existence
5004       --Bug 4703541
5005       nvl2(taxlines_gt.tax_status_code,
5006            CASE WHEN(sd_status.tax_regime_code IS NOT NULL AND
5007         /*  status.tax_regime_code = regime.tax_regime_code AND
5008           status.tax             = tax.tax AND*/ --Bug 4902521
5009           status.tax_status_code is not null)
5010            THEN NULL
5011            ELSE 'Y'
5012            END,
5013            null) TAX_STATUS_NOT_EXISTS,
5014 
5015       -- Check for Status Effectivity
5016       --Bug 4703541
5017        CASE WHEN(taxlines_gt.tax_status_code IS NOT NULL AND
5018                (sd_status.tax_regime_code IS NOT NULL AND
5019                /*status.tax_regime_code = regime.tax_regime_code
5020                AND status.tax         = tax.tax AND*/ --Bug 4902521
5021                status.tax_status_code is not null)
5022           )
5023              THEN  CASE WHEN lines_gt.tax_date --Bug 5018766
5024             BETWEEN status.effective_from AND
5025               nvl(status.effective_to,
5026             lines_gt.tax_date)
5027               THEN 'N'
5028               ELSE 'Y' END
5029         ELSE 'N' END TAX_STATUS_NOT_EFFECTIVE,
5030             -- Check for Jurisdiction Code Existence
5031       --Bug 4703541
5032       nvl2(taxlines_gt.tax_jurisdiction_code,
5033            CASE WHEN (/*jur.tax_regime_code = regime.tax_regime_code AND
5034            jur.tax             = tax.tax AND*/ -- Bug 4902521
5035            jur.tax_jurisdiction_code is not null)
5036           THEN NULL
5037           ELSE 'Y' END,
5038            null) JUR_CODE_NOT_EXISTS,
5039 
5040       -- Check for Jurisdiction Code Effectivity
5041       --Bug 4703541
5042            CASE WHEN (taxlines_gt.tax_jurisdiction_code IS NOT NULL AND
5043           /*jur.tax_regime_code = regime.tax_regime_code AND
5044           jur.tax             = tax.tax AND*/ -- Bug 4902521
5045           jur.tax_jurisdiction_code is not null)
5046           THEN
5047            CASE WHEN lines_gt.tax_date
5048                BETWEEN jur.effective_from AND
5049                  nvl(jur.effective_to,
5050               lines_gt.tax_date
5051                )
5052           THEN 'N'
5053           ELSE 'Y' END
5054            ELSE 'N' END JUR_CODE_NOT_EFFECTIVE,
5055 
5056       -- Check for Default Tax Status check for partner tax lines
5057       CASE WHEN  (taxlines_gt.tax_provider_id is not null)
5058            THEN CASE WHEN
5059          (/*status.tax_regime_code  = regime.tax_regime_code AND
5060           status.tax              = tax.tax AND*/ --Bug 4902521
5061           status.tax_status_code is not null AND
5062           status.default_status_flag = 'Y' AND
5063           lines_gt.tax_date
5064           BETWEEN status.effective_from AND
5065           nvl(status.effective_to,
5066               lines_gt.tax_date))
5067           THEN NULL
5068           ELSE 'Y'
5069           END
5070             ELSE NULL
5071        END  DEFAULT_STATUS_NOT_EXISTS,
5072 
5073            -- If Tax amount is null
5074            -- Bug 4703541 : Changed the taxlines_gt.tax_amt to to_char(taxlines_gt.tax_amt)
5075         NVL(to_char(taxlines_gt.tax_amt), 'Y') TAX_AMT_MISSING,
5076 
5077            CASE WHEN (taxlines_gt.tax_line_allocation_flag IS NULL OR
5078            taxlines_gt.tax_line_allocation_flag NOT IN ('Y', 'N'))
5079            THEN 'Y'
5080            ELSE  NULL
5081       END  ZX_TAX_LINE_ALLOC_FLAG_INVALID ,
5082 
5083       -- Tax lines with Tax Line Allocation flag as Y should have at least one allocation
5084       -- line in the Link GTT
5085            CASE WHEN (taxlines_gt.tax_line_allocation_flag = 'Y' AND
5086            NOT EXISTS (SELECT 1
5087                  FROM zx_trx_tax_link_gt
5088                 WHERE application_id = taxlines_gt.application_id
5089             AND entity_code = taxlines_gt.entity_code
5090             AND event_class_code = taxlines_gt.event_class_code
5091             AND trx_id = taxlines_gt.trx_id
5092             AND summary_tax_line_number =
5093                taxlines_gt.summary_tax_line_number)
5094            )
5095            THEN 'Y'
5096            ELSE  NULL
5097       END ZX_INVALID_TAX_ALLOC_FLAG,
5098 
5099       -- The same tax regime and tax cannot be allocated to the same
5100       -- transaction line multi times
5101       --
5102       CASE
5103         WHEN  taxlines_gt.tax_regime_code IS NOT NULL AND
5104          taxlines_gt.tax IS NOT NULL AND
5105          EXISTS
5106         (SELECT /*+ INDEX(imptaxes_gt1 ZX_IMPORT_TAX_LINES_GT_U1) */
5107           1
5108            FROM zx_import_tax_lines_gt imptaxes_gt1
5109           WHERE imptaxes_gt1.application_id= taxlines_gt.application_id
5110             AND imptaxes_gt1.entity_code = taxlines_gt.entity_code
5111             AND imptaxes_gt1.event_class_code = taxlines_gt.event_class_code
5112             AND imptaxes_gt1.trx_id = taxlines_gt.trx_id
5113             AND imptaxes_gt1.summary_tax_line_number <>
5114               taxlines_gt.summary_tax_line_number
5115             AND imptaxes_gt1.tax_regime_code = taxlines_gt.tax_regime_code
5116             AND imptaxes_gt1.tax = taxlines_gt.tax
5117             AND (
5118            --imptaxes_gt1 is all alloc
5119             (imptaxes_gt1.trx_line_id IS NULL AND
5120              imptaxes_gt1.tax_line_allocation_flag = 'N')
5121 
5122            OR
5123            --taxlines_gt is all alloc
5124             (taxlines_gt.trx_line_id IS NULL AND
5125              taxlines_gt.tax_line_allocation_flag = 'N')
5126 
5127            OR
5128            --imptaxes_gt1 is one to one alloc
5129              ( imptaxes_gt1.trx_line_id IS NOT NULL AND
5130                ( --taxlines_gt is one to one alloc
5131                                        (imptaxes_gt1.trx_line_id = taxlines_gt.trx_line_id)
5132                                          OR
5133                  --taxlines_gt is multi alloc
5134                  (taxlines_gt.trx_line_id IS NULL AND
5135             taxlines_gt.tax_line_allocation_flag = 'Y' AND
5136             EXISTS (SELECT 1
5137               FROM zx_trx_tax_link_gt link_gt
5138               WHERE link_gt.trx_id         = taxlines_gt.trx_id
5139               AND link_gt.application_id   = taxlines_gt.application_id
5140               AND link_gt.entity_code      = taxlines_gt.entity_code
5141               AND link_gt.event_class_code = taxlines_gt.event_class_code
5142               AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
5143               AND link_gt.trx_line_id = imptaxes_gt1.trx_line_id))
5144                )
5145              )
5146 
5147            OR
5148            --imptaxes_gt1 is multi-alloc
5149              (imptaxes_gt1.trx_line_id IS NULL AND
5150               imptaxes_gt1.tax_line_allocation_flag = 'Y' AND
5151               (  --taxlines_gt is one to one alloc
5152                  (taxlines_gt.trx_line_id IS NOT NULL AND
5153             EXISTS (SELECT 1
5154               FROM zx_trx_tax_link_gt link_gt
5155               WHERE link_gt.trx_id         = imptaxes_gt1.trx_id
5156               AND link_gt.application_id   = imptaxes_gt1.application_id
5157               AND link_gt.entity_code      = imptaxes_gt1.entity_code
5158               AND link_gt.event_class_code = imptaxes_gt1.event_class_code
5159               AND link_gt.summary_tax_line_number = imptaxes_gt1.summary_tax_line_number
5160               AND link_gt.trx_line_id = taxlines_gt.trx_line_id))
5161             OR
5162                  --taxlines_gt is multi alloc
5163                  (taxlines_gt.trx_line_id IS NULL AND
5164             taxlines_gt.tax_line_allocation_flag = 'Y' AND
5165             EXISTS (SELECT 1
5166               FROM zx_trx_tax_link_gt link_gt1,
5167                    zx_trx_tax_link_gt link_gt2
5168               WHERE link_gt1.trx_id = imptaxes_gt1.trx_id
5169                    AND link_gt1.application_id   = imptaxes_gt1.application_id
5170                    AND link_gt1.entity_code      = imptaxes_gt1.entity_code
5171                    AND link_gt1.event_class_code = imptaxes_gt1.event_class_code
5172                    AND link_gt1.summary_tax_line_number = imptaxes_gt1.summary_tax_line_number
5173                    AND link_gt1.trx_line_id = imptaxes_gt1.trx_line_id
5174                    AND link_gt2.trx_id = taxlines_gt.trx_id
5175                    AND link_gt2.application_id   = taxlines_gt.application_id
5176                    AND link_gt2.entity_code      = taxlines_gt.entity_code
5177                    AND link_gt2.event_class_code = taxlines_gt.event_class_code
5178                    AND link_gt2.summary_tax_line_number = taxlines_gt.summary_tax_line_number
5179                    AND link_gt2.trx_line_id = taxlines_gt.trx_line_id
5180                    AND link_gt2.trx_line_id = link_gt1.trx_line_id))
5181               )
5182              )
5183           )
5184         )
5185          THEN
5186              'Y'
5187          ELSE
5188              'N'
5189         END SAMETAX_MULTIALLOC_TO_SAMELN,
5190 
5191        -- Each tax only tax line can only be allocated to one pseudo trx line
5192        --
5193        CASE
5194          WHEN lines_gt.line_level_action = 'LINE_INFO_TAX_ONLY'
5195           AND EXISTS
5196         (SELECT /*+ INDEX(zx_trx_tax_link_gt ZX_TRX_TAX_LINK_GT_U1) */
5197           1
5198            FROM zx_trx_tax_link_gt
5199           WHERE application_id = taxlines_gt.application_id
5200             AND entity_code = taxlines_gt.entity_code
5201             AND event_class_code = taxlines_gt.event_class_code
5202             AND trx_id = taxlines_gt.trx_id
5203             AND summary_tax_line_number =
5204                taxlines_gt.summary_tax_line_number
5205             AND (trx_line_id <> lines_gt.trx_line_id OR
5206            trx_level_type <> lines_gt.trx_level_type)
5207         )
5208           THEN
5209         'Y'
5210           ELSE
5211         'N'
5212        END TAX_ONLY_LINE_MULTI_ALLOCATED,
5213 
5214        -- Each pseudo trx line can only be allocated with one tax_only tax line
5215        --
5216        CASE
5217          WHEN lines_gt.line_level_action = 'LINE_INFO_TAX_ONLY'
5218           AND EXISTS
5219         (SELECT /*+ INDEX(zx_trx_tax_link_gt ZX_TRX_TAX_LINK_GT_U1) */
5220           1
5221            FROM zx_trx_tax_link_gt
5222           WHERE application_id = taxlines_gt.application_id
5223             AND entity_code = taxlines_gt.entity_code
5224             AND event_class_code = taxlines_gt.event_class_code
5225             AND trx_id = taxlines_gt.trx_id
5226             AND summary_tax_line_number <>
5227                   taxlines_gt.summary_tax_line_number
5228             AND trx_line_id = lines_gt.trx_line_id
5229             AND trx_level_type = lines_gt.trx_level_type
5230         )
5231          THEN
5232             'Y'
5233          ELSE
5234             'N'
5235        END PSEUDO_LINE_HAS_MULTI_TAXALLOC,
5236 
5237 
5238       -- Manual tax lines of tax oode 'LOCATION' is not allowed to be imported
5239       -- in Receivables
5240       CASE
5241          WHEN taxlines_gt.application_id = 222 AND taxlines_gt.tax = 'LOCATION'
5242          THEN
5243         'Y'
5244          ELSE
5245         'N'
5246       END  TAX_LN_TYP_LOC_NOT_ALLW_F_AR,
5247 
5248       -- If the imported tax line has inclusive_flag = 'N' but the tax
5249       -- is defined as inclusive in ZX_TAXES and allow inclusive override is N
5250       -- or vice versa, then raise error
5251       CASE WHEN  tax.def_inclusive_tax_flag <> taxlines_gt.tax_amt_included_flag
5252            AND tax.tax_inclusive_override_flag = 'N'
5253            THEN
5254          'Y'
5255            ELSE
5256          'N'
5257       END TAX_INCL_FLAG_MISMATCH,
5258 
5259 
5260 
5261       -- Bug 3676878: Imported tax lines found missing in other document
5262       --
5263       CASE
5264          WHEN lines_gt.applied_from_application_id IS NOT NULL
5265           AND NOT EXISTS
5266         (SELECT 1
5267            FROM zx_lines zl
5268           WHERE zl.application_id = lines_gt.applied_from_application_id
5269             AND zl.entity_code = lines_gt.applied_from_entity_code
5270             AND zl.event_class_code = lines_gt.applied_from_event_class_code
5271             AND zl.trx_id = lines_gt.applied_from_trx_id
5272             AND zl.trx_line_id = lines_gt.applied_from_line_id
5273             AND zl.trx_level_type = lines_gt.applied_from_trx_level_type
5274             AND zl.tax_regime_code = taxlines_gt.tax_regime_code
5275             AND zl.tax = taxlines_gt.tax
5276         )
5277           AND NOT EXISTS
5278         (SELECT 1
5279          FROM   zx_import_tax_lines_gt  tax_gt
5280          WHERE tax_gt.application_id = lines_gt.applied_from_application_id
5281          AND tax_gt.entity_code = lines_gt.applied_from_entity_code
5282          AND tax_gt.event_class_code = lines_gt.applied_from_event_class_code
5283          AND tax_gt.trx_id = lines_gt.applied_from_trx_id
5284          AND tax_gt.tax_regime_code = taxlines_gt.tax_regime_code
5285          AND tax_gt.tax = taxlines_gt.tax
5286          AND (--One to One Alloc
5287               (tax_gt.trx_line_id = lines_gt.applied_from_line_id)
5288 
5289               OR
5290               --Multi Alloc
5291               (tax_gt.trx_line_id IS NULL AND
5292                tax_gt.tax_line_allocation_flag = 'Y' AND
5293                EXISTS (SELECT 1
5294                  FROM zx_trx_tax_link_gt link_gt
5295                  WHERE link_gt.trx_id = tax_gt.trx_id
5296                  AND link_gt.application_id   = tax_gt.application_id
5297                  AND link_gt.entity_code      = tax_gt.entity_code
5298                  AND link_gt.event_class_code = tax_gt.event_class_code
5299                  AND link_gt.summary_tax_line_number = tax_gt.summary_tax_line_number
5300                  AND link_gt.trx_level_type = lines_gt.applied_from_trx_level_type
5301                  AND link_gt.trx_line_id = lines_gt.applied_from_line_id)
5302               )
5303 
5304               OR
5305               --All Alloc
5306               (tax_gt.trx_line_id IS NULL AND
5307                tax_gt.tax_line_allocation_flag = 'N' AND
5308                EXISTS (SELECT 1
5309                  FROM zx_transaction_lines_gt trans_line_gt
5310                  WHERE trans_line_gt.trx_id         = tax_gt.trx_id
5311                  AND trans_line_gt.application_id   = tax_gt.application_id
5312                  AND trans_line_gt.entity_code = tax_gt.entity_code
5313                  AND trans_line_gt.event_class_code = tax_gt.event_class_code
5314                  AND trans_line_gt.trx_level_type = lines_gt.applied_from_trx_level_type
5315                  AND trans_line_gt.trx_line_id = lines_gt.applied_from_line_id)
5316               )
5317              )
5318         )
5319          THEN
5320              'Y'
5321          ELSE
5322              'N'
5323       END ZX_TAX_MISSING_IN_APPLIED_FRM,
5324 
5325       CASE
5326          WHEN lines_gt.adjusted_doc_application_id IS NOT NULL
5327           AND NOT EXISTS
5328         (SELECT 1
5329            FROM zx_lines zl
5330           WHERE zl.application_id = lines_gt.adjusted_doc_application_id
5331             AND zl.entity_code = lines_gt.adjusted_doc_entity_code
5332             AND zl.event_class_code = lines_gt.adjusted_doc_event_class_code
5333             AND zl.trx_id = lines_gt.adjusted_doc_trx_id
5334             AND zl.trx_line_id = lines_gt.adjusted_doc_line_id
5335             AND zl.trx_level_type = lines_gt.adjusted_doc_trx_level_type
5336             AND zl.tax_regime_code = taxlines_gt.tax_regime_code
5337             AND zl.tax = taxlines_gt.tax
5338         )
5339           AND NOT EXISTS
5340         (SELECT 1
5341          FROM   zx_import_tax_lines_gt  tax_gt
5342          WHERE tax_gt.application_id = lines_gt.adjusted_doc_application_id
5343          AND tax_gt.entity_code = lines_gt.adjusted_doc_entity_code
5344          AND tax_gt.event_class_code = lines_gt.adjusted_doc_event_class_code
5345          AND tax_gt.trx_id = lines_gt.adjusted_doc_trx_id
5346          AND tax_gt.tax_regime_code = taxlines_gt.tax_regime_code
5347          AND tax_gt.tax = taxlines_gt.tax
5348          AND (--One to One Alloc
5349               (tax_gt.trx_line_id = lines_gt.adjusted_doc_line_id)
5350 
5351               OR
5352               --Multi Alloc
5353               (tax_gt.trx_line_id IS NULL AND
5354                tax_gt.tax_line_allocation_flag = 'Y' AND
5355                EXISTS (SELECT 1
5356                  FROM zx_trx_tax_link_gt link_gt
5357                  WHERE link_gt.trx_id = tax_gt.trx_id
5358                  AND link_gt.application_id   = tax_gt.application_id
5359                  AND link_gt.entity_code      = tax_gt.entity_code
5360                  AND link_gt.event_class_code = tax_gt.event_class_code
5361                  AND link_gt.summary_tax_line_number = tax_gt.summary_tax_line_number
5362                  AND link_gt.trx_level_type = lines_gt.adjusted_doc_trx_level_type
5363                  AND link_gt.trx_line_id = lines_gt.adjusted_doc_line_id)
5364               )
5365 
5366               OR
5367               --All Alloc
5368               (tax_gt.trx_line_id IS NULL AND
5369                tax_gt.tax_line_allocation_flag = 'N' AND
5370                EXISTS (SELECT 1
5371                  FROM zx_transaction_lines_gt trans_line_gt
5372                  WHERE trans_line_gt.trx_id         = tax_gt.trx_id
5373                  AND trans_line_gt.application_id   = tax_gt.application_id
5374                  AND trans_line_gt.entity_code = tax_gt.entity_code
5375                  AND trans_line_gt.event_class_code = tax_gt.event_class_code
5376                  AND trans_line_gt.trx_level_type = lines_gt.adjusted_doc_trx_level_type
5377                  AND trans_line_gt.trx_line_id = lines_gt.adjusted_doc_line_id)
5378               )
5379              )
5380         )
5381          THEN
5382              'Y'
5383          ELSE
5384              'N'
5385       END ZX_TAX_MISSING_IN_ADJUSTED_TO ,
5386 
5387       CASE WHEN (taxlines_gt.tax_amt <> 0 AND
5388             taxlines_gt.tax_rate = 0
5389            )
5390            THEN 'Y'
5391            ELSE  NULL
5392       END ZX_IMP_TAX_RATE_AMT_MISMATCH
5393 
5394       /* end bug 3676878  */
5395   FROM ZX_TRX_HEADERS_GT header,
5396       ZX_REGIMES_B regime ,
5397       ZX_TAXES_B tax ,
5398       ZX_STATUS_B status ,
5399   --    ZX_RATES_B rate ,
5400   --    zx_rates_b off_rate,
5401   --    zx_import_tax_lines_gt temp_gt,
5402       ZX_IMPORT_TAX_LINES_GT taxlines_gt,
5403       zx_transaction_lines_gt lines_gt,
5404       ZX_JURISDICTIONS_B jur,
5405       zx_subscription_details sd_reg,
5406       zx_subscription_details sd_tax,
5407       zx_subscription_details sd_status
5408   --    zx_subscription_details sd_rates
5409   WHERE taxlines_gt.trx_id = header.trx_id
5410       AND taxlines_gt.application_id = Header.application_id
5411       AND taxlines_gt.entity_code = Header.entity_code
5412       AND taxlines_gt.event_class_code = Header.event_class_code
5413             --AND (taxlines_gt.tax_rate_code IS NOT NULL OR taxlines_gt.tax_rate_id IS NOT NULL)
5414       AND jur.tax_jurisdiction_code(+) = taxlines_gt.tax_jurisdiction_code
5415       AND jur.tax_regime_code(+) = taxlines_gt.tax_regime_code  -- Bug 4902521
5416       AND jur.tax(+) = taxlines_gt.tax  -- Bug 4902521
5417       AND
5418       (
5419     lines_gt.tax_date
5420     BETWEEN
5421          nvl(jur.effective_from,
5422       lines_gt.tax_date
5423        ) AND
5424          nvl(jur.effective_to,
5425        lines_gt.tax_date
5426        )
5427     /*OR jur.effective_from =
5428     (
5429     SELECT
5430         min(effective_from)
5431     FROM ZX_JURISDICTIONS_B
5432     WHERE tax_jurisdiction_code = jur.tax_jurisdiction_code
5433     ) */
5434       )
5435       AND lines_gt.application_id = header.application_id
5436       AND lines_gt.entity_code = header.entity_code
5437       AND lines_gt.event_class_code = header.event_class_code
5438       AND lines_gt.trx_id = header.trx_id
5439       AND
5440       (-- One to One Alloc
5441     (
5442         lines_gt.trx_line_id = taxlines_gt.trx_line_id
5443     )
5444     OR
5445     --Multi Alloc
5446     (
5447         taxlines_gt.trx_line_id IS NULL
5448         AND taxlines_gt.tax_line_allocation_flag = 'Y'
5449         AND lines_gt.trx_line_id =
5450         (
5451         SELECT
5452       MIN(trx_line_id)
5453         FROM zx_trx_tax_link_gt link_gt
5454         WHERE link_gt.TRX_ID = taxlines_gt.trx_id
5455       AND link_gt.application_id = taxlines_gt.application_id
5456       AND link_gt.entity_code = taxlines_gt.entity_code
5457       AND link_gt.event_class_code = taxlines_gt.event_class_code
5458       AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
5459         )
5460     )
5461     OR
5462     --All Alloc
5463     (
5464         taxlines_gt.trx_line_id IS NULL
5465         AND taxlines_gt.tax_line_allocation_flag = 'N'
5466         AND lines_gt.trx_line_id =
5467         (
5468         SELECT
5469       MIN(trx_line_id)
5470         FROM zx_transaction_lines_gt trans_line_gt
5471         WHERE trans_line_gt.trx_id = taxlines_gt.trx_id
5472       AND trans_line_gt.application_id = taxlines_gt.application_id
5473       AND trans_line_gt.entity_code = taxlines_gt.entity_code
5474       AND trans_line_gt.event_class_code = taxlines_gt.event_class_code
5475         )
5476     )
5477       )
5478       --* for regime
5479       AND regime.tax_regime_code(+) = taxlines_gt.tax_regime_code
5480       AND regime.TAX_REGIME_CODE = sd_reg.tax_regime_code (+)
5481       AND sd_reg.first_pty_org_id(+) = g_first_pty_org_id
5482       AND nvl(sd_reg.view_options_code,'NONE') in ('NONE', 'VFC') -- Bug 4902521
5483       AND (
5484     lines_gt.subscription_date
5485     BETWEEN
5486     NVL(sd_reg.effective_from,
5487         lines_gt.subscription_date
5488         )
5489     AND
5490     NVL(sd_reg.effective_to,
5491         lines_gt.subscription_date
5492         )
5493        /* OR regime.effective_from =
5494         (
5495         SELECT
5496       MIN(effective_from)
5497         FROM zx_regimes_b
5498         WHERE tax_regime_code = regime.tax_regime_code
5499         ) */
5500     )
5501       --* for taxes
5502       AND tax.tax(+) = taxlines_gt.tax
5503       AND tax.tax_regime_code(+) = taxlines_gt.tax_regime_code
5504       AND tax.tax_regime_code = sd_tax.tax_regime_code (+)
5505       AND (
5506      tax.content_owner_id = sd_tax.parent_first_pty_org_id
5507      OR
5508      sd_tax.parent_first_pty_org_id is NULL
5509     )
5510       AND sd_tax.first_pty_org_id(+) = g_first_pty_org_id
5511       AND
5512       (
5513     lines_gt.subscription_date
5514     BETWEEN
5515     nvl(sd_tax.effective_from,
5516         lines_gt.subscription_date
5517        )
5518         AND
5519         NVL(sd_tax.effective_to,
5520       lines_gt.subscription_date
5521            )
5522     /*OR tax.effective_from =
5523     (
5524     SELECT
5525         min(effective_from)
5526     FROM ZX_TAXES_B
5527     WHERE tax_regime_code = tax.tax_regime_code
5528         AND tax = tax.tax
5529         AND content_owner_id = tax.content_owner_id
5530     ) */
5531       )
5532       AND
5533       (
5534     nvl(sd_tax.view_options_code,'NONE') in ('NONE', 'VFC')
5535     OR
5536     (
5537         nvl(sd_tax.view_options_code,'VFR') = 'VFR'
5538         AND not exists
5539         (
5540         SELECT
5541       1
5542         FROM zx_taxes_b b
5543         WHERE tax.tax_regime_code = b.tax_regime_code
5544       AND tax.tax = b.tax
5545       AND sd_tax.first_pty_org_id = b.content_owner_id
5546         )
5547     )
5548       )
5549       --* for status
5550       AND status.tax_status_code(+) = taxlines_gt.tax_status_code
5551       AND status.tax(+) = taxlines_gt.tax
5552       AND status.tax_regime_code(+) = taxlines_gt.tax_regime_code
5553       AND status.tax_regime_code = sd_status.tax_regime_code (+)
5554       AND
5555          (
5556     status.content_owner_id = sd_status.parent_first_pty_org_id
5557     OR
5558      sd_status.parent_first_pty_org_id is NULL
5559          )
5560       AND sd_status.first_pty_org_id(+) = g_first_pty_org_id
5561       AND
5562       (
5563     lines_gt.subscription_date
5564     BETWEEN
5565     nvl( sd_status.effective_from,
5566          lines_gt.subscription_date
5567        )
5568        AND
5569        nvl(sd_status.effective_to,
5570            lines_gt.subscription_date
5571       )
5572     /*OR status.effective_from =
5573     (
5574     SELECT
5575         min(effective_from)
5576     FROM ZX_STATUS_B
5577     WHERE tax_regime_code = status.tax_regime_code
5578         AND tax = status.tax
5579         AND tax_status_code = status.tax_status_code
5580         AND content_owner_id = status.content_owner_id
5581     ) */
5582       )
5583       AND
5584       (
5585     NVL(sd_status.view_options_code,'NONE') in ('NONE', 'VFC')
5586     OR
5587     (
5588         NVL(sd_status.view_options_code,'VFR') = 'VFR'
5589         AND not exists
5590         (
5591         SELECT
5592       1
5593         FROM zx_status_vl b
5594         WHERE b.tax_regime_code = status.tax_regime_code
5595       AND b.tax = status.tax
5596       AND b.tax_status_code = status.tax_status_code
5597       AND b.content_owner_id = sd_status.first_pty_org_id
5598         )
5599     )
5600       ) ;
5601 
5602   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5603 
5604   IF ( g_level_statement >= g_current_runtime_level) THEN
5605     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
5606     'No. of Rows inserted for Import Tax Line Validations : Regime,Tax,Status '|| to_char(sql%ROWCOUNT) );
5607   END IF;
5608 
5609 -- Bug 5018766
5610   INSERT ALL
5611     WHEN (REG_SUBSCR_NOT_EFFECTIVE = 'Y') THEN
5612 
5613       INTO ZX_VALIDATION_ERRORS_GT(
5614         application_id,
5615         entity_code,
5616         event_class_code,
5617         trx_id,
5618         trx_line_id,
5619         summary_tax_line_number,
5620         message_name,
5621         message_text,
5622         trx_level_type,
5623         interface_tax_entity_code,
5624         interface_tax_line_id
5625         )
5626       VALUES(
5627         application_id,
5628         entity_code,
5629         event_class_code,
5630         trx_id,
5631         NULL,
5632         summary_tax_line_number,
5633         'ZX_REGIME_NOT_EFF_IN_SUBSCR',
5634         l_regime_not_eff_in_subscrptn,
5635         NULL,
5636         interface_tax_entity_code,
5637         interface_tax_line_id
5638          )
5639     WHEN (TAX_SUBSCR_NOT_EFFECTIVE = 'Y')  THEN
5640         INTO ZX_VALIDATION_ERRORS_GT(
5641           application_id,
5642           entity_code,
5643           event_class_code,
5644           trx_id,
5645           trx_line_id,
5646           summary_tax_line_number,
5647           message_name,
5648           message_text,
5649           trx_level_type,
5650           interface_tax_entity_code,
5651           interface_tax_line_id
5652           )
5653         VALUES(
5654           application_id,
5655           entity_code,
5656           event_class_code,
5657           trx_id,
5658           NULL,
5659           summary_tax_line_number,
5660           'ZX_TAX_NOT_EFFECTIVE',
5661           l_tax_not_effective,
5662           NULL,
5663           interface_tax_entity_code,
5664           interface_tax_line_id
5665            )
5666     WHEN (STATUS_SUBSCR_NOT_EFFECTIVE = 'Y')  THEN
5667 
5668         INTO ZX_VALIDATION_ERRORS_GT(
5669           application_id,
5670           entity_code,
5671           event_class_code,
5672           trx_id,
5673           trx_line_id,
5674           summary_tax_line_number,
5675           message_name,
5676           message_text,
5677           trx_level_type,
5678           interface_tax_entity_code,
5679           interface_tax_line_id
5680           )
5681         VALUES(
5682           application_id,
5683           entity_code,
5684           event_class_code,
5685           trx_id,
5686           NULL,
5687           summary_tax_line_number,
5688           'ZX_TAX_STATUS_NOT_EFFECTIVE',
5689           l_tax_status_not_effective,
5690           NULL,
5691           interface_tax_entity_code,
5692           interface_tax_line_id
5693            )
5694     SELECT
5695       header.application_id,
5696       header.entity_code,
5697       header.event_class_code,
5698       header.trx_id,
5699       taxlines_gt.summary_tax_line_number,
5700       taxlines_gt.summary_tax_line_number interface_tax_line_id,
5701       taxlines_gt.entity_code             interface_tax_entity_code,
5702       lines_gt.trx_line_id     interface_line_id,
5703       lines_gt.entity_code     interface_line_entity_code,
5704       lines_gt.trx_line_id,
5705       lines_gt.trx_level_type,
5706             --regime effectivity
5707              CASE WHEN taxlines_gt.TAX_REGIME_CODE IS NOT NULL AND REGIME.TAX_REGIME_CODE IS NOT NULL
5708        THEN
5709           CASE WHEN (   SD_REG.TAX_REGIME_CODE IS NULL
5710             OR
5711             ( lines_gt.subscription_date NOT BETWEEN
5712                   NVL(sd_REG.effective_from,lines_gt.subscription_date)
5713                   AND NVL(sd_REG.effective_to, lines_gt.subscription_date)
5714               AND NOT EXISTS (
5715                 SELECT 1 FROM ZX_SUBSCRIPTION_DETAILS ZSD
5716                   WHERE ZSD.TAX_REGIME_CODE = REGIME.TAX_REGIME_CODE
5717                   AND ZSD.FIRST_PTY_ORG_ID = g_first_pty_org_id
5718                   AND lines_gt.subscription_date BETWEEN
5719                      NVL(ZSD.effective_from,lines_gt.subscription_date)
5720                      AND NVL(ZSD.effective_to, lines_gt.subscription_date)
5721                    )
5722             )
5723               ) THEN 'Y' ELSE 'N' END
5724       ELSE 'N' END REG_SUBSCR_NOT_EFFECTIVE,
5725       --tax effectivty
5726              CASE WHEN taxlines_gt.tax IS NOT NULL AND TAX.TAX IS NOT NULL
5727        THEN
5728           CASE WHEN (   SD_TAX.TAX_REGIME_CODE IS NULL
5729             OR
5730             (
5731             lines_gt.subscription_date NOT BETWEEN
5732               NVL(sd_tax.effective_from,lines_gt.subscription_date)
5733               AND NVL(sd_tax.effective_to, lines_gt.subscription_date)
5734               AND NOT EXISTS (
5735                 SELECT 1 FROM ZX_SUBSCRIPTION_DETAILS ZSD
5736                   WHERE ZSD.TAX_REGIME_CODE = tax.TAX_REGIME_CODE
5737                   AND ZSD.parent_first_pty_org_id = tax.content_owner_id
5738                   AND ZSD.FIRST_PTY_ORG_ID =  g_first_pty_org_id
5739                   AND lines_gt.subscription_date BETWEEN
5740                      NVL(ZSD.effective_from,lines_gt.subscription_date)
5741                      AND NVL(ZSD.effective_to, lines_gt.subscription_date)
5742                    )
5743             )
5744               ) THEN 'Y' ELSE 'N' END
5745       ELSE 'N' END TAX_SUBSCR_NOT_EFFECTIVE,
5746       --status effectivty
5747              CASE WHEN taxlines_gt.tax_status_code IS NOT NULL AND status.tax_status_code IS NOT NULL
5748        THEN
5749           CASE WHEN (   SD_status.TAX_REGIME_CODE IS NULL
5750             OR
5751             (
5752             lines_gt.subscription_date NOT BETWEEN
5753               NVL(sd_status.effective_from,lines_gt.subscription_date)
5754               AND NVL(sd_status.effective_to, lines_gt.subscription_date)
5755               AND NOT EXISTS (
5756                 SELECT 1 FROM ZX_SUBSCRIPTION_DETAILS ZSD
5757                   WHERE ZSD.TAX_REGIME_CODE = status.TAX_REGIME_CODE
5758                   AND ZSD.parent_first_pty_org_id = status.content_owner_id
5759                   AND ZSD.FIRST_PTY_ORG_ID =  g_first_pty_org_id
5760                   AND lines_gt.subscription_date BETWEEN
5761                      NVL(ZSD.effective_from,lines_gt.subscription_date)
5762                      AND NVL(ZSD.effective_to, lines_gt.subscription_date)
5763                    )
5764             )
5765               ) THEN 'Y' ELSE 'N' END
5766       ELSE 'N' END STATUS_SUBSCR_NOT_EFFECTIVE
5767         from
5768       zx_trx_headers_gt header,
5769       zx_transaction_lines_gt lines_gt,
5770       ZX_IMPORT_TAX_LINES_GT taxlines_gt,
5771       ZX_REGIMES_B regime ,
5772       ZX_TAXES_B tax ,
5773       ZX_STATUS_B status ,
5774       zx_subscription_details sd_reg,
5775       zx_subscription_details sd_tax,
5776       zx_subscription_details sd_status
5777     where   taxlines_gt.trx_id = header.trx_id
5778       AND taxlines_gt.application_id = Header.application_id
5779       AND taxlines_gt.entity_code = Header.entity_code
5780       AND taxlines_gt.event_class_code = Header.event_class_code
5781       AND lines_gt.application_id = header.application_id
5782       AND lines_gt.entity_code = header.entity_code
5783       AND lines_gt.event_class_code = header.event_class_code
5784       AND lines_gt.trx_id = header.trx_id
5785       AND
5786       (-- One to One Alloc
5787     (
5788         lines_gt.trx_line_id = taxlines_gt.trx_line_id
5789     )
5790     OR
5791     --Multi Alloc
5792     (
5793         taxlines_gt.trx_line_id IS NULL
5794         AND taxlines_gt.tax_line_allocation_flag = 'Y'
5795         AND lines_gt.trx_line_id =
5796         (
5797         SELECT
5798       MIN(trx_line_id)
5799         FROM zx_trx_tax_link_gt link_gt
5800         WHERE link_gt.TRX_ID = taxlines_gt.trx_id
5801       AND link_gt.application_id = taxlines_gt.application_id
5802       AND link_gt.entity_code = taxlines_gt.entity_code
5803       AND link_gt.event_class_code = taxlines_gt.event_class_code
5804       AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
5805         )
5806     )
5807     OR
5808     --All Alloc
5809     (
5810         taxlines_gt.trx_line_id IS NULL
5811         AND taxlines_gt.tax_line_allocation_flag = 'N'
5812         AND lines_gt.trx_line_id =
5813         (
5814         SELECT
5815       MIN(trx_line_id)
5816         FROM zx_transaction_lines_gt trans_line_gt
5817         WHERE trans_line_gt.trx_id = taxlines_gt.trx_id
5818       AND trans_line_gt.application_id = taxlines_gt.application_id
5819       AND trans_line_gt.entity_code = taxlines_gt.entity_code
5820       AND trans_line_gt.event_class_code = taxlines_gt.event_class_code
5821         )
5822     )
5823       )
5824       --* for regime
5825       AND regime.tax_regime_code(+) = taxlines_gt.tax_regime_code
5826       AND regime.TAX_REGIME_CODE = sd_reg.tax_regime_code (+)
5827       AND sd_reg.first_pty_org_id(+) = g_first_pty_org_id
5828       AND nvl(sd_reg.view_options_code,'NONE') in ('NONE', 'VFC')
5829       --* for taxes
5830       AND tax.tax(+) = taxlines_gt.tax
5831             AND tax.tax_regime_code(+) = taxlines_gt.tax_regime_code
5832       AND tax.tax_regime_code = sd_tax.tax_regime_code (+)
5833       AND (
5834      tax.content_owner_id = sd_tax.parent_first_pty_org_id
5835      OR
5836      sd_tax.parent_first_pty_org_id is NULL
5837     )
5838       AND sd_tax.first_pty_org_id(+) = g_first_pty_org_id
5839       AND
5840       (
5841     nvl(sd_tax.view_options_code,'NONE') in ('NONE', 'VFC')
5842     OR
5843     (
5844         nvl(sd_tax.view_options_code,'VFR') = 'VFR'
5845         AND not exists
5846         (
5847         SELECT
5848       1
5849         FROM zx_taxes_b b
5850         WHERE tax.tax_regime_code = b.tax_regime_code
5851       AND tax.tax = b.tax
5852       AND sd_tax.first_pty_org_id = b.content_owner_id
5853         )
5854     )
5855       )
5856       --* for status
5857       AND status.tax_status_code(+) = taxlines_gt.tax_status_code
5858       AND status.tax(+) = taxlines_gt.tax
5859       AND status.tax_regime_code(+) = taxlines_gt.tax_regime_code
5860       AND status.tax_regime_code = sd_status.tax_regime_code (+)
5861       AND
5862          (
5863     status.content_owner_id = sd_status.parent_first_pty_org_id
5864     OR
5865      sd_status.parent_first_pty_org_id is NULL
5866          )
5867       AND sd_status.first_pty_org_id(+) = g_first_pty_org_id
5868       AND
5869       (
5870     NVL(sd_status.view_options_code,'NONE') in ('NONE', 'VFC')
5871     OR
5872     (
5873         NVL(sd_status.view_options_code,'VFR') = 'VFR'
5874         AND not exists
5875         (
5876         SELECT
5877       1
5878         FROM zx_status_vl b
5879         WHERE b.tax_regime_code = status.tax_regime_code
5880       AND b.tax = status.tax
5881       AND b.tax_status_code = status.tax_status_code
5882       AND b.content_owner_id = sd_status.first_pty_org_id
5883         )
5884     )
5885       );
5886 
5887 --Bug 5018766 : Delete any duplicate rows that might get inserted for that trx_id , trx_line_id from the above insert stmt.
5888   DELETE FROM ZX_VALIDATION_ERRORS_GT A
5889   WHERE A.ROWID < ( SELECT MAX(B.ROWID) FROM ZX_VALIDATION_ERRORS_GT B
5890       WHERE A.APPLICATION_ID = B.APPLICATION_ID
5891       AND A.ENTITY_CODE = B.ENTITY_CODE
5892       AND A.EVENT_CLASS_CODE = B.EVENT_CLASS_CODE
5893       AND A.TRX_ID = B.TRX_ID
5894       AND A.TRX_LINE_ID = B.TRX_LINE_ID
5895       AND A.TRX_LEVEL_TYPE = B.TRX_LEVEL_TYPE
5896       AND A.SUMMARY_TAX_LINE_NUMBER = B.SUMMARY_TAX_LINE_NUMBER
5897       AND A.MESSAGE_NAME = B.MESSAGE_NAME );
5898 
5899   IF ( g_level_statement >= g_current_runtime_level) THEN
5900     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
5901     'Before insertion into ZX_VALIDATION_ERRORS_GT for RateCode related Imported Tax Lines Validations');
5902   END IF;
5903 
5904   INSERT ALL
5905         WHEN (TAX_RATE_CODE_NOT_EXISTS = 'Y')  THEN
5906 
5907                         INTO ZX_VALIDATION_ERRORS_GT(
5908                                 application_id,
5909                                 entity_code,
5910                                 event_class_code,
5911                                 trx_id,
5912                                 trx_line_id,
5913                                 summary_tax_line_number,
5914                                 message_name,
5915                                 message_text,
5916                                 trx_level_type,
5917                                 interface_tax_entity_code,
5918                                 interface_tax_line_id
5919                                 )
5920                         VALUES(
5921                                 application_id,
5922                                 entity_code,
5923                                 event_class_code,
5924                                 trx_id,
5925                                 NULL,
5926                                 summary_tax_line_number,
5927                                 'ZX_TAX_RATE_CODE_NOT_EXIST', --4703541
5928                                 l_tax_rate_code_not_exists,
5929                                 NULL,
5930                                 interface_tax_entity_code,
5931                                 interface_tax_line_id
5932                                  )
5933 
5934         WHEN (TAX_RATE_CODE_NOT_EFFECTIVE = 'Y')  THEN
5935 
5936                         INTO ZX_VALIDATION_ERRORS_GT(
5937                                 application_id,
5938                                 entity_code,
5939                                 event_class_code,
5940                                 trx_id,
5941                                 trx_line_id,
5942                                 summary_tax_line_number,
5943                                 message_name,
5944                                 message_text,
5945                                 trx_level_type,
5946                                 interface_tax_entity_code,
5947                                 interface_tax_line_id
5948                                 )
5949                         VALUES(
5950                                 application_id,
5951                                 entity_code,
5952                                 event_class_code,
5953                                 trx_id,
5954                                 NULL,
5955                                 summary_tax_line_number,
5956                                 'ZX_TAX_RATE_NOT_EFFECTIVE',
5957                                 l_tax_rate_not_effective,
5958                                 NULL,
5959                                 interface_tax_entity_code,
5960                                 interface_tax_line_id
5961                                 )
5962 
5963         WHEN (TAX_RATE_CODE_NOT_ACTIVE = 'Y')  THEN
5964 
5965                         INTO ZX_VALIDATION_ERRORS_GT(
5966                                 application_id,
5967                                 entity_code,
5968                                 event_class_code,
5969                                 trx_id,
5970                                 trx_line_id,
5971                                 summary_tax_line_number,
5972                                 message_name,
5973                                 message_text,
5974                                 trx_level_type,
5975                                 interface_tax_entity_code,
5976                                 interface_tax_line_id
5977                                 )
5978                         VALUES(
5979                                 application_id,
5980                                 entity_code,
5981                                 event_class_code,
5982                                 trx_id,
5983                                 NULL,
5984                                 summary_tax_line_number,
5985                                 'ZX_TAX_RATE_NOT_ACTIVE',
5986                                 l_tax_rate_not_active,
5987                                 NULL,
5988                                 interface_tax_entity_code,
5989                                 interface_tax_line_id
5990                                  )
5991 
5992         WHEN (TAX_RATE_PERCENTAGE_INVALID = 'Y')  THEN
5993 
5994                         INTO ZX_VALIDATION_ERRORS_GT(
5995                                 application_id,
5996                                 entity_code,
5997                                 event_class_code,
5998                                 trx_id,
5999                                 trx_line_id,
6000                                 summary_tax_line_number,
6001                                 message_name,
6002                                 message_text,
6003                                 trx_level_type,
6004                                 interface_tax_entity_code,
6005                                 interface_tax_line_id
6006                                 )
6007                         VALUES(
6008                                 application_id,
6009                                 entity_code,
6010                                 event_class_code,
6011                                 trx_id,
6012                                 NULL,
6013                                 summary_tax_line_number,
6014                                 'ZX_TAX_RATE_PERCENTAGE_INVALID',
6015                                 l_tax_rate_percentage_invalid,
6016                                 NULL,
6017                                 interface_tax_entity_code,
6018                                 interface_tax_line_id
6019                                  )
6020         WHEN (TAX_RECOV_OR_OFFSET = 'Y')  THEN
6021                         INTO ZX_VALIDATION_ERRORS_GT(
6022                                 application_id,
6023                                 entity_code,
6024                                 event_class_code,
6025                                 trx_id,
6026                                 trx_line_id,
6027                                 summary_tax_line_number,
6028                                 message_name,
6029                                 message_text,
6030                                 trx_level_type,
6031                                 interface_tax_entity_code,
6032                                 interface_tax_line_id
6033                                 )
6034                         VALUES(
6035                                 application_id,
6036                                 entity_code,
6037                                 event_class_code,
6038                                 trx_id,
6039                                 NULL,
6040                                 summary_tax_line_number,
6041                                 'ZX_TAX_RECOV_OR_OFFSET',
6042                                 l_tax_recov_or_offset,
6043                                 NULL,
6044                                 interface_tax_entity_code,
6045                                 interface_tax_line_id
6046                                  )
6047         WHEN (DEFAULT_RATE_CODE_NOT_EXISTS = 'Y')  THEN
6048 
6049                         INTO ZX_VALIDATION_ERRORS_GT(
6050                                 application_id,
6051                                 entity_code,
6052                                 event_class_code,
6053                                 trx_id,
6054                                 trx_line_id,
6055                                 summary_tax_line_number,
6056                                 message_name,
6057                                 message_text,
6058                                 trx_level_type,
6059                                 interface_tax_entity_code,
6060                                 interface_tax_line_id
6061                                 )
6062                         VALUES(
6063                                 application_id,
6064                                 entity_code,
6065                                 event_class_code,
6066                                 trx_id,
6067                                 NULL,
6068                                 summary_tax_line_number,
6069                                 'ZX_DEFAULT_RATE_CODE_NOT_EXIST',
6070                                 l_default_rate_code_not_exists,
6071                                 NULL,
6072                                 interface_tax_entity_code,
6073                                 interface_tax_line_id
6074                                  )
6075   SELECT
6076     application_id,
6077     entity_code,
6078     event_class_code,
6079     trx_id,
6080     summary_tax_line_number,
6081     interface_tax_line_id,
6082     interface_tax_entity_code,
6083     interface_line_id,
6084     interface_line_entity_code,
6085     trx_line_id,
6086     trx_level_type,
6087     TAX_RATE_CODE_NOT_EXISTS,
6088     DECODE(TAX_RATE_CODE_NOT_EXISTS,'Y','N',TAX_RATE_CODE_NOT_EFFECTIVE) TAX_RATE_CODE_NOT_EFFECTIVE,
6089     DECODE(TAX_RATE_CODE_NOT_EXISTS,'Y','N',TAX_RATE_CODE_NOT_ACTIVE) TAX_RATE_CODE_NOT_ACTIVE,
6090     DECODE(TAX_RATE_CODE_NOT_EXISTS,'Y','N',TAX_RATE_PERCENTAGE_INVALID) TAX_RATE_PERCENTAGE_INVALID,
6091     DECODE(TAX_RATE_CODE_NOT_EXISTS,'Y','N',TAX_RECOV_OR_OFFSET) TAX_RECOV_OR_OFFSET,
6092     DECODE(TAX_RATE_CODE_NOT_EXISTS,'Y','N',DEFAULT_RATE_CODE_NOT_EXISTS) DEFAULT_RATE_CODE_NOT_EXISTS
6093   FROM
6094   (SELECT
6095       header.application_id application_id,
6096       header.entity_code entity_code,
6097       header.event_class_code,
6098       header.trx_id trx_id,
6099       taxlines_gt.summary_tax_line_number summary_tax_line_number,
6100       taxlines_gt.summary_tax_line_number interface_tax_line_id,
6101       taxlines_gt.entity_code             interface_tax_entity_code,
6102       lines_gt.trx_line_id     interface_line_id,
6103       lines_gt.entity_code     interface_line_entity_code,
6104       lines_gt.trx_line_id trx_line_id,
6105       lines_gt.trx_level_type trx_level_type,
6106       -- Check for Rate Code Existence
6107       --Bug 4703541
6108       CASE WHEN (sd_rates.tax_regime_code is not null and
6109         rate.tax_rate_code is not NULL )
6110            THEN CASE WHEN taxlines_gt.tax_rate_id IS NOT NULL
6111            AND NOT EXISTS ( SELECT 1 FROM zx_rates_b
6112                 WHERE tax_rate_id = taxlines_gt.tax_rate_id)
6113                THEN 'Y'
6114                ELSE 'N' END
6115            ELSE 'Y' END TAX_RATE_CODE_NOT_EXISTS,
6116       --Bug 4703541
6117       CASE WHEN
6118           lines_gt.tax_date
6119           BETWEEN rate.effective_from AND
6120             nvl(rate.effective_to,
6121            lines_gt.tax_date)
6122            THEN 'N'
6123            ELSE 'Y' END TAX_RATE_CODE_NOT_EFFECTIVE,
6124       -- Check Rate Code is Active
6125          CASE WHEN rate.active_flag = 'Y'
6126         THEN 'N'
6127         ELSE 'Y' END TAX_RATE_CODE_NOT_ACTIVE,
6128       -- Check for Rate Percentage
6129       CASE WHEN  taxlines_gt.tax_rate IS NOT NULL
6130            AND rate.percentage_rate <> taxlines_gt.tax_rate
6131            AND nvl(rate.allow_adhoc_tax_rate_flag,'N') <> 'Y'
6132            AND lines_gt.tax_date
6133            BETWEEN rate.effective_from AND
6134              nvl(rate.effective_to,
6135                  lines_gt.tax_date
6136                  )
6137           THEN 'Y'
6138           ELSE 'N' END TAX_RATE_PERCENTAGE_INVALID,
6139         -- Check for 'Recovery' or 'Offset' Tax
6140           CASE WHEN ((off_rate.tax_rate_code is not null and temp_gt.tax_rate_code is null) --Bug 4902521
6141                  OR
6142                  rate.rate_type_code = 'RECOVERY'
6143                 )
6144          THEN 'Y'
6145          ELSE NULL END TAX_RECOV_OR_OFFSET,
6146       -- Check for Default Tax Rate Code check for partner tax lines
6147       CASE WHEN ( taxlines_gt.tax_provider_id is not NULL )
6148            THEN CASE WHEN
6149           --Bug#3600626
6150           rate.default_rate_flag = 'Y' AND
6151           lines_gt.tax_date
6152           BETWEEN
6153           rate.effective_from AND
6154           nvl(rate.effective_to,
6155              lines_gt.tax_date
6156               )
6157              THEN NULL
6158              ELSE 'Y' END
6159             ELSE NULL
6160        END DEFAULT_RATE_CODE_NOT_EXISTS
6161   FROM ZX_TRX_HEADERS_GT header,
6162       ZX_RATES_B rate ,
6163       zx_rates_b off_rate,
6164       zx_import_tax_lines_gt temp_gt,
6165       ZX_IMPORT_TAX_LINES_GT taxlines_gt,
6166       zx_transaction_lines_gt lines_gt,
6167       zx_subscription_details sd_rates
6168   WHERE taxlines_gt.trx_id = header.trx_id
6169       AND taxlines_gt.application_id = Header.application_id
6170       AND taxlines_gt.entity_code = Header.entity_code
6171       AND taxlines_gt.event_class_code = Header.event_class_code
6172           AND (taxlines_gt.tax_rate_code IS NOT NULL OR taxlines_gt.tax_rate_id IS NOT NULL)
6173           AND (temp_gt.tax_rate_code IS NOT NULL OR temp_gt.tax_rate_id IS NOT NULL)
6174       AND lines_gt.application_id = header.application_id
6175       AND lines_gt.entity_code = header.entity_code
6176       AND lines_gt.event_class_code = header.event_class_code
6177       AND lines_gt.trx_id = header.trx_id
6178       AND
6179       (-- One to One Alloc
6180     (
6181         lines_gt.trx_line_id = taxlines_gt.trx_line_id
6182     )
6183     OR
6184     --Multi Alloc
6185     (
6186         taxlines_gt.trx_line_id IS NULL
6187         AND taxlines_gt.tax_line_allocation_flag = 'Y'
6188         AND lines_gt.trx_line_id =
6189         (
6190         SELECT
6191       MIN(trx_line_id)
6192         FROM zx_trx_tax_link_gt link_gt
6193         WHERE link_gt.TRX_ID = taxlines_gt.trx_id
6194       AND link_gt.application_id = taxlines_gt.application_id
6195       AND link_gt.entity_code = taxlines_gt.entity_code
6196       AND link_gt.event_class_code = taxlines_gt.event_class_code
6197       AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
6198         )
6199     )
6200     OR
6201     --All Alloc
6202     (
6203         taxlines_gt.trx_line_id IS NULL
6204         AND taxlines_gt.tax_line_allocation_flag = 'N'
6205         AND lines_gt.trx_line_id =
6206         (
6207         SELECT
6208       MIN(trx_line_id)
6209         FROM zx_transaction_lines_gt trans_line_gt
6210         WHERE trans_line_gt.trx_id = taxlines_gt.trx_id
6211       AND trans_line_gt.application_id = taxlines_gt.application_id
6212       AND trans_line_gt.entity_code = taxlines_gt.entity_code
6213       AND trans_line_gt.event_class_code = taxlines_gt.event_class_code
6214         )
6215     )
6216       )
6217       --* for rates
6218       --AND rate.tax_rate_id(+) = taxlines_gt.tax_rate_id
6219       AND ( taxlines_gt.tax_rate_code IS NOT NULL AND
6220             rate.tax_rate_code (+) = taxlines_gt.tax_rate_code )
6221       AND rate.tax_status_code(+) = taxlines_gt.tax_status_code
6222       AND rate.tax(+) = taxlines_gt.tax
6223       AND rate.tax_regime_code(+) = taxlines_gt.tax_regime_code
6224       AND rate.tax_regime_code = sd_rates.tax_regime_code (+)
6225       AND
6226     (
6227     rate.content_owner_id = sd_rates.parent_first_pty_org_id
6228     OR
6229      sd_rates.parent_first_pty_org_id is NULL
6230     )
6231       AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
6232       AND
6233       (
6234     lines_gt.subscription_date
6235     BETWEEN
6236     nvl( sd_rates.effective_from,
6237          lines_gt.subscription_date
6238         )
6239     AND
6240     nvl(sd_rates.effective_to,
6241        lines_gt.subscription_date
6242         )
6243          /* OR rate.effective_from =
6244     (
6245     SELECT
6246         min(effective_from)
6247     FROM ZX_RATES_B
6248     WHERE tax_regime_code = rate.tax_regime_code
6249         AND tax = rate.tax
6250         AND tax_status_code = rate.tax_status_code
6251         AND tax_rate_code = rate.tax_rate_code
6252         AND content_owner_id = rate.content_owner_id
6253     )*/
6254       )
6255       AND
6256       (
6257     NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC')
6258     OR
6259     (
6260         NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
6261         AND NOT EXISTS
6262         (
6263         SELECT
6264       1
6265         FROM zx_rates_b b
6266         WHERE b.tax_regime_code = rate.tax_regime_code
6267       AND b.tax = rate.tax
6268       AND b.tax_status_code = rate.tax_status_code
6269       AND b.tax_rate_code = rate.tax_rate_code
6270       AND b.content_owner_id = sd_rates.first_pty_org_id
6271         )
6272     )
6273       )
6274       AND rate.tax_rate_code = off_rate.offset_tax_rate_code(+)
6275       AND off_rate.tax_rate_code = temp_gt.tax_rate_code(+)
6276   );
6277 
6278   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6279 
6280   IF ( g_level_statement >= g_current_runtime_level) THEN
6281     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6282     'No. of Rows inserted for Import Tax Line Validations : Rate Code '|| to_char(sql%ROWCOUNT) );
6283   END IF;
6284 
6285   IF ( g_level_statement >= g_current_runtime_level) THEN
6286     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6287     'Before insertion into ZX_VALIDATION_ERRORS_GT for Rate Imported Tax Lines Validations based on tax_rate_id');
6288   END IF;
6289 
6290   INSERT ALL
6291         WHEN (TAX_RATE_NOT_EXISTS = 'Y')  THEN
6292                         INTO ZX_VALIDATION_ERRORS_GT(
6293                                 application_id,
6294                                 entity_code,
6295                                 event_class_code,
6296                                 trx_id,
6297                                 trx_line_id,
6298                                 summary_tax_line_number,
6299                                 message_name,
6300                                 message_text,
6301                                 trx_level_type,
6302                                 interface_tax_entity_code,
6303                                 interface_tax_line_id
6304                                 )
6305                         VALUES(
6306                                 application_id,
6307                                 entity_code,
6308                                 event_class_code,
6309                                 trx_id,
6310                                 NULL,
6311                                 summary_tax_line_number,
6312                                 'ZX_TAX_RATE_NOT_EXIST',
6313                                 l_tax_rate_not_exists,
6314                                 NULL,
6315                                 interface_tax_entity_code,
6316                                 interface_tax_line_id
6317                          )
6318         WHEN (TAX_RATE_NOT_EFFECTIVE = 'Y')  THEN
6319                                 INTO ZX_VALIDATION_ERRORS_GT(
6320                                 application_id,
6321                                 entity_code,
6322                                 event_class_code,
6323                                 trx_id,
6324                                 trx_line_id,
6325                                 summary_tax_line_number,
6326                                 message_name,
6327                                 message_text,
6328                                 trx_level_type,
6329                                 interface_tax_entity_code,
6330                                 interface_tax_line_id
6331                                 )
6332                         VALUES(
6333                                 application_id,
6334                                 entity_code,
6335                                 event_class_code,
6336                                 trx_id,
6337                                 NULL,
6338                                 summary_tax_line_number,
6339                                 'ZX_TAX_RATE_NOT_EFFECTIVE',
6340                                 l_tax_rate_not_effective,
6341                                 NULL,
6342                                 interface_tax_entity_code,
6343                                 interface_tax_line_id
6344                                 )
6345         WHEN (TAX_RATE_NOT_ACTIVE = 'Y')  THEN
6346                         INTO ZX_VALIDATION_ERRORS_GT(
6347                                 application_id,
6348                                 entity_code,
6349                                 event_class_code,
6350                                 trx_id,
6351                                 trx_line_id,
6352                                 summary_tax_line_number,
6353                                 message_name,
6354                                 message_text,
6355                                 trx_level_type,
6356                                 interface_tax_entity_code,
6357                                 interface_tax_line_id
6358                                 )
6359                         VALUES(
6360                                 application_id,
6361                                 entity_code,
6362                                 event_class_code,
6363                                 trx_id,
6364                                 NULL,
6365                                 summary_tax_line_number,
6366                                 'ZX_TAX_RATE_NOT_ACTIVE',
6367                                 l_tax_rate_not_active,
6368                                 NULL,
6369                                 interface_tax_entity_code,
6370                                 interface_tax_line_id
6371                                 )
6372   SELECT
6373     application_id,
6374     entity_code,
6375     event_class_code,
6376     trx_id,
6377     summary_tax_line_number,
6378     interface_tax_line_id,
6379     interface_tax_entity_code,
6380     interface_line_id,
6381     interface_line_entity_code,
6382     trx_line_id,
6383     trx_level_type,
6384     TAX_RATE_NOT_EXISTS,
6385     DECODE(TAX_RATE_NOT_EXISTS,'Y','N',TAX_RATE_NOT_EFFECTIVE) TAX_RATE_NOT_EFFECTIVE,
6386     DECODE(TAX_RATE_NOT_EXISTS,'Y','N',TAX_RATE_NOT_ACTIVE) TAX_RATE_NOT_ACTIVE
6387   FROM
6388   (SELECT
6389       header.application_id application_id,
6390       header.entity_code entity_code,
6391       header.event_class_code,
6392       header.trx_id trx_id,
6393       taxlines_gt.summary_tax_line_number summary_tax_line_number,
6394       taxlines_gt.summary_tax_line_number interface_tax_line_id,
6395       taxlines_gt.entity_code             interface_tax_entity_code,
6396       lines_gt.trx_line_id     interface_line_id,
6397       lines_gt.entity_code     interface_line_entity_code,
6398       lines_gt.trx_line_id trx_line_id,
6399       lines_gt.trx_level_type trx_level_type,
6400       -- Check for Rate Code Existence
6401       --Bug 4703541
6402        CASE WHEN ( sd_rates.tax_regime_code IS NOT NULL
6403                    AND rate.tax_rate_id IS NOT NULL )
6404             THEN CASE WHEN taxlines_gt.tax_rate_code IS NOT NULL
6405                 AND NOT EXISTS ( SELECT 1 FROM zx_rates_b
6406                      WHERE tax_rate_code = taxlines_gt.tax_rate_code)
6407           THEN 'Y'
6408           ELSE 'N' END
6409             ELSE 'Y' END TAX_RATE_NOT_EXISTS,
6410       -- Check for Rate Id Date Effectivity
6411            CASE WHEN lines_gt.tax_date
6412             BETWEEN rate.effective_from AND
6413               NVL(rate.effective_to,
6414             lines_gt.tax_date)
6415           THEN 'N'
6416           ELSE 'Y' END TAX_RATE_NOT_EFFECTIVE,
6417       -- Check Rate Code is Active
6418          CASE WHEN rate.tax_rate_id IS NOT NULL AND rate.active_flag = 'Y'
6419           THEN 'N'
6420           ELSE 'Y' END TAX_RATE_NOT_ACTIVE
6421   FROM ZX_TRX_HEADERS_GT header,
6422       ZX_RATES_B rate ,
6423       zx_rates_b off_rate,
6424       zx_import_tax_lines_gt temp_gt,
6425       ZX_IMPORT_TAX_LINES_GT taxlines_gt,
6426       zx_transaction_lines_gt lines_gt,
6427       zx_subscription_details sd_rates
6428   WHERE taxlines_gt.trx_id = header.trx_id
6429       AND taxlines_gt.application_id = Header.application_id
6430       AND taxlines_gt.entity_code = Header.entity_code
6431       AND taxlines_gt.event_class_code = Header.event_class_code
6432       AND (taxlines_gt.tax_rate_code IS NOT NULL OR taxlines_gt.tax_rate_id IS NOT NULL)
6433       AND (temp_gt.tax_rate_code IS NOT NULL OR temp_gt.tax_rate_id IS NOT NULL)
6434       AND lines_gt.application_id = header.application_id
6435       AND lines_gt.entity_code = header.entity_code
6436       AND lines_gt.event_class_code = header.event_class_code
6437       AND lines_gt.trx_id = header.trx_id
6438       AND
6439       (-- One to One Alloc
6440     (
6441         lines_gt.trx_line_id = taxlines_gt.trx_line_id
6442     )
6443     OR
6444     --Multi Alloc
6445     (
6446         taxlines_gt.trx_line_id IS NULL
6447         AND taxlines_gt.tax_line_allocation_flag = 'Y'
6448         AND lines_gt.trx_line_id =
6449         (
6450         SELECT
6451       MIN(trx_line_id)
6452         FROM zx_trx_tax_link_gt link_gt
6453         WHERE link_gt.TRX_ID = taxlines_gt.trx_id
6454       AND link_gt.application_id = taxlines_gt.application_id
6455       AND link_gt.entity_code = taxlines_gt.entity_code
6456       AND link_gt.event_class_code = taxlines_gt.event_class_code
6457       AND link_gt.summary_tax_line_number = taxlines_gt.summary_tax_line_number
6458         )
6459     )
6460     OR
6461     --All Alloc
6462     (
6463         taxlines_gt.trx_line_id IS NULL
6464         AND taxlines_gt.tax_line_allocation_flag = 'N'
6465         AND lines_gt.trx_line_id =
6466         (
6467         SELECT
6468       MIN(trx_line_id)
6469         FROM zx_transaction_lines_gt trans_line_gt
6470         WHERE trans_line_gt.trx_id = taxlines_gt.trx_id
6471       AND trans_line_gt.application_id = taxlines_gt.application_id
6472       AND trans_line_gt.entity_code = taxlines_gt.entity_code
6473       AND trans_line_gt.event_class_code = taxlines_gt.event_class_code
6474         )
6475     )
6476       )
6477       --* for rates
6478       AND ( taxlines_gt.tax_rate_id IS NOT NULL AND
6479             rate.tax_rate_id (+) = taxlines_gt.tax_rate_id )
6480       AND rate.tax_status_code(+) = taxlines_gt.tax_status_code
6481       AND rate.tax(+) = taxlines_gt.tax
6482       AND rate.tax_regime_code(+) = taxlines_gt.tax_regime_code
6483       AND rate.tax_regime_code = sd_rates.tax_regime_code (+)
6484       AND
6485     (
6486     rate.content_owner_id = sd_rates.parent_first_pty_org_id
6487     OR
6488      sd_rates.parent_first_pty_org_id is NULL
6489     )
6490       AND sd_rates.first_pty_org_id(+) = g_first_pty_org_id
6491       AND
6492       (
6493     lines_gt.subscription_date
6494     BETWEEN
6495     nvl( sd_rates.effective_from,
6496          lines_gt.subscription_date
6497         )
6498     AND
6499     nvl(sd_rates.effective_to,
6500         lines_gt.subscription_date
6501         )
6502          /* OR rate.effective_from =
6503     (
6504     SELECT
6505         min(effective_from)
6506     FROM ZX_RATES_B
6507     WHERE tax_regime_code = rate.tax_regime_code
6508         AND tax = rate.tax
6509         AND tax_status_code = rate.tax_status_code
6510         AND tax_rate_code = rate.tax_rate_code
6511         AND content_owner_id = rate.content_owner_id
6512     )*/
6513       )
6514       AND
6515       (
6516     NVL(sd_rates.view_options_code,'NONE') in ('NONE', 'VFC')
6517     OR
6518     (
6519         NVL(sd_rates.view_options_code, 'VFR') = 'VFR'
6520         AND NOT EXISTS
6521         (
6522         SELECT
6523       1
6524         FROM zx_rates_b b
6525         WHERE b.tax_regime_code = rate.tax_regime_code
6526       AND b.tax = rate.tax
6527       AND b.tax_status_code = rate.tax_status_code
6528       AND b.tax_rate_code = rate.tax_rate_code
6529       AND b.content_owner_id = sd_rates.first_pty_org_id
6530         )
6531     )
6532       )
6533       AND rate.tax_rate_code = off_rate.offset_tax_rate_code(+)
6534       AND off_rate.tax_rate_code = temp_gt.tax_rate_code(+)
6535   );
6536 
6537         -- Bug 4902521 : Added Message to check no. of rows inserted .
6538   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6539 
6540   IF ( g_level_statement >= g_current_runtime_level) THEN
6541     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6542     'No. of Rows inserted for Import Tax Line Validations : Rate ID '|| to_char(sql%ROWCOUNT) );
6543   END IF;
6544 
6545   -- Validations for zx_trx_tax_link_gt link_gt
6546   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6547     IF ( g_level_event >= g_current_runtime_level) THEN
6548       FND_LOG.STRING(g_level_event,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6549       'Validations for zx_trx_tax_link_gt link_gt');
6550     END IF;
6551 
6552   -- Select the key columns and write into fnd log for debug purpose
6553   IF ( g_level_statement >= g_current_runtime_level) THEN
6554     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6555       'Before opening the cursor - get_tax_link_gt_info_csr');
6556 
6557     OPEN get_tax_link_gt_info_csr;
6558     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6559       'After opening the cursor - get_tax_link_gt_info_csr');
6560     LOOP
6561       FETCH get_tax_link_gt_info_csr BULK COLLECT INTO
6562       l_application_id_tbl,
6563       l_entity_code_tbl,
6564       l_event_class_code_tbl,
6565       l_trx_id_tbl,
6566       l_trx_line_id_tbl,
6567       l_trx_level_type_tbl,
6568       l_summary_tax_line_number_tbl
6569 
6570         LIMIT C_LINES_PER_COMMIT;
6571 
6572 --        EXIT WHEN get_tax_link_gt_info_csr%notfound;
6573 
6574       l_count := nvl(l_trx_line_id_tbl.COUNT,0);
6575 
6576           FND_LOG.STRING(g_level_statement,
6577              'ZX.PLSQL.ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6578              'number of rows fetched = ' || to_char(l_count));
6579 
6580       IF l_count > 0 THEN
6581 
6582         FOR i IN 1.. l_count LOOP
6583 
6584     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6585     'Row Number = ' || to_char(i) );
6586 
6587     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6588     'l_application_id = ' || to_char(l_application_id_tbl(i)) );
6589 
6590     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6591     'l_entity_code = ' || l_entity_code_tbl(i) );
6592 
6593     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6594     'l_event_class_code = ' || l_event_class_code_tbl(i) );
6595 
6596     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6597     'l_trx_id = ' || to_char(l_trx_id_tbl(i)) );
6598 
6599     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6600     'l_trx_line_id = ' || to_char(l_trx_line_id_tbl(i)) );
6601 
6602     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6603     'l_trx_level_type = ' || l_trx_level_type_tbl(i) );
6604 
6605     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6606     'l_summary_tax_line_number = ' || to_char(l_summary_tax_line_number_tbl(i)) );
6607 
6608 
6609         END LOOP;
6610        ELSE
6611          EXIT ;
6612 
6613       END IF; -- end of count checking
6614 
6615     END LOOP;
6616 
6617     CLOSE get_tax_link_gt_info_csr;
6618 
6619           -- Clear the records
6620     l_application_id_tbl.delete;
6621     l_entity_code_tbl.delete;
6622     l_event_class_code_tbl.delete;
6623     l_trx_id_tbl.delete;
6624     l_trx_line_id_tbl.delete;
6625     l_trx_level_type_tbl.delete;
6626     l_summary_tax_line_number_tbl.delete;
6627 
6628   END IF; -- End of debug checking
6629 
6630   IF ( g_level_statement >= g_current_runtime_level) THEN
6631     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6632     'Before insertion into ZX_VALIDATION_ERRORS_GT - Validations for zx_trx_tax_link_gt link_gt');
6633   END IF;
6634 
6635 
6636         INSERT ALL
6637         WHEN (ZX_INVALID_TRX_LINE_ID = 'Y') THEN
6638                 INTO ZX_VALIDATION_ERRORS_GT(
6639                         application_id,
6640                         entity_code,
6641                         event_class_code,
6642                         trx_id,
6643                         trx_line_id,
6644                         summary_tax_line_number,
6645                         message_name,
6646                         message_text,
6647                         trx_level_type,
6648       interface_tax_entity_code,
6649       interface_tax_line_id
6650                         )
6651                 VALUES(
6652                         application_id,
6653                         entity_code,
6654                         event_class_code,
6655                         trx_id,
6656                         trx_line_id, -- Bug 4703541
6657                         summary_tax_line_number,
6658                         'ZX_INVALID_TRX_LINE_ID',
6659                         l_invd_trx_line_id_in_link_gt,
6660                         trx_level_type,
6661       interface_tax_entity_code,
6662       interface_tax_line_id
6663                          )
6664         WHEN (ZX_INVALID_SUMMARY_TAX_LINE_ID = 'Y')  THEN
6665                 INTO ZX_VALIDATION_ERRORS_GT(
6666                         application_id,
6667                         entity_code,
6668                         event_class_code,
6669                         trx_id,
6670                         trx_line_id,
6671                         summary_tax_line_number,
6672                         message_name,
6673                         message_text,
6674                         trx_level_type,
6675       interface_tax_entity_code,
6676       interface_tax_line_id
6677                         )
6678                 VALUES(
6679                         application_id,
6680                         entity_code,
6681                         event_class_code,
6682                         trx_id,
6683                         trx_line_id, -- Bug 4703541
6684                         summary_tax_line_number,
6685                         'ZX_INVALID_SUMMARY_TAX_LINE_ID',
6686                         l_invalid_summary_tax_line_id,
6687                         trx_level_type,
6688       interface_tax_entity_code,
6689       interface_tax_line_id
6690                          )
6691          SELECT
6692            application_id,
6693            entity_code,
6694            event_class_code,
6695            trx_id,
6696      trx_line_id,
6697            summary_tax_line_number,
6698            trx_level_type,
6699      interface_tax_entity_code,
6700      interface_tax_line_id,
6701            -- Check if the Trx Lines present in Link GTT are also present in ZX_TRANSACTION_LINES_GT or not
6702            CASE WHEN NOT EXISTS (SELECT 1
6703                                    FROM zx_transaction_lines_gt
6704                                   WHERE application_id = link_gt.application_id
6705                                     AND entity_code = link_gt.entity_code
6706                                     AND event_class_code = link_gt.event_class_code
6707                                     AND trx_id = link_gt.trx_id
6708                                     AND trx_line_id = link_gt.trx_line_id
6709                                     AND trx_level_type = link_gt.trx_level_type)
6710                 THEN 'Y'
6711                   ELSE NULL
6712            END ZX_INVALID_TRX_LINE_ID,
6713            --Check if the Summary Tax Lines present in Link GTT are also present in Import Tax Lines GTT or not
6714            CASE WHEN NOT EXISTS (SELECT 1
6715                                    FROM zx_import_tax_lines_gt
6716                                   WHERE application_id = link_gt.application_id
6717                                     AND entity_code = link_gt.entity_code
6718                                     AND event_class_code = link_gt.event_class_code
6719                                     AND trx_id = link_gt.trx_id
6720                                     AND summary_tax_line_number = link_gt.summary_tax_line_number )
6721                                     /*AND trx_line_id = link_gt.trx_line_id
6722                                     AND trx_level_type = link_gt.trx_level_type*/  -- Bug 4703541
6723                 THEN 'Y'
6724                      ELSE NULL
6725            END ZX_INVALID_SUMMARY_TAX_LINE_ID
6726          FROM zx_trx_tax_link_gt link_gt;
6727 
6728         -- Bug 4902521 : Added Message to check no. of rows inserted .
6729   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6730 
6731   IF ( g_level_statement >= g_current_runtime_level) THEN
6732     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6733     'No. of Rows inserted for Link_gt Realted Validations '|| to_char(sql%ROWCOUNT) );
6734   END IF;
6735 
6736   -- Bug Fix # 4184091
6737   -- As per the email communication from vidya, changed the flag value from Y to N
6738   update zx_trx_headers_gt set validation_check_flag = 'N' where
6739     trx_id in (select trx_id from zx_validation_errors_gt);
6740 
6741   IF ( SQL%ROWCOUNT > 0 ) THEN
6742                 g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6743     IF ( g_level_statement >= g_current_runtime_level) THEN
6744       FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6745       'Updated the validation_check_flag to N in zx_trx_headers_gt for '||to_char(SQL%ROWCOUNT)||' trx_ids ');
6746     END IF;
6747   END IF ;
6748 
6749         IF (g_level_procedure >= g_current_runtime_level ) THEN
6750                 FND_LOG.STRING(g_level_procedure,
6751                         'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR.END',
6752                         'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR(-)');
6753         END IF;
6754 
6755 
6756 EXCEPTION
6757          WHEN OTHERS THEN
6758               IF (g_level_unexpected >= g_current_runtime_level ) THEN
6759                   FND_LOG.STRING(g_level_unexpected,
6760                           'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
6761                            sqlerrm);
6762               END IF;
6763 
6764          x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6765          app_exception.raise_exception;
6766 
6767 
6768 
6769 END Validate_Tax_Attr;
6770 
6771 
6772 ------------------ Procedure For Validating Other Documents  -----------------
6773 
6774 PROCEDURE Validate_Other_Documents(x_return_status  OUT NOCOPY VARCHAR2) IS
6775 
6776   l_trx_id_tbl                        TRX_ID_TBL;
6777   l_trx_line_id_tbl                   TRX_LINE_ID_TBL;
6778   l_trx_level_type_tbl                TRX_LEVEL_TYPE_TBL;
6779   l_event_class_code_tbl              EVENT_CLASS_CODE_TBL;
6780   l_entity_code_tbl                   ENTITY_CODE_TBL;
6781   l_application_id_tbl                APPLICATION_ID_TBL;
6782   l_summary_tax_line_number_tbl       SUMMARY_TAX_LINE_NUMBER_TBL;
6783   l_count                             NUMBER;
6784   l_error_buffer                      VARCHAR2(240);
6785 
6786   c_lines_per_commit CONSTANT NUMBER := ZX_TDS_CALC_SERVICES_PUB_PKG.G_LINES_PER_COMMIT;
6787 
6788   CURSOR get_other_doc_info_csr
6789   IS
6790   SELECT
6791   header.application_id,
6792   header.entity_code,
6793   header.event_class_code,
6794   header.trx_id,
6795   lines_gt.trx_line_id,
6796   lines_gt.trx_level_type
6797 
6798         FROM ZX_TRX_HEADERS_GT             header,
6799              ZX_TRANSACTION_LINES_GT       lines_gt
6800 
6801         WHERE lines_gt.application_id = header.application_id
6802         AND   lines_gt.entity_code = header.entity_code
6803         AND   lines_gt.event_class_code = header.event_class_code
6804         AND   lines_gt.trx_id = header.trx_id;
6805 
6806 BEGIN
6807 
6808   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6809 
6810   IF (g_level_event >= g_current_runtime_level ) THEN
6811   FND_LOG.STRING(g_level_event,
6812        'ZX.PLSQL.ZX_VALIDATE_API_PKG.Validate_Other_Documents.BEGIN',
6813        'ZX_VALIDATE_API_PKG: Validate_Other_Documents(+)');
6814   END IF;
6815 
6816   -- Select the key columns and write into fnd log for debug purpose
6817   IF ( g_level_statement >= g_current_runtime_level) THEN
6818       FND_LOG.STRING(g_level_statement,
6819              'ZX.PLSQL.ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6820              'Before opening the cursor - get_other_doc_info_csr');
6821 
6822     OPEN get_other_doc_info_csr;
6823     FND_LOG.STRING(g_level_statement,
6824              'ZX.PLSQL.ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6825              'After opening the cursor - get_other_doc_info_csr');
6826 
6827     LOOP
6828       FETCH get_other_doc_info_csr BULK COLLECT INTO
6829       l_application_id_tbl,
6830       l_entity_code_tbl,
6831       l_event_class_code_tbl,
6832       l_trx_id_tbl,
6833       l_trx_line_id_tbl,
6834       l_trx_level_type_tbl
6835 
6836         LIMIT C_LINES_PER_COMMIT;
6837 
6838 
6839 --        EXIT WHEN get_other_doc_info_csr%notfound;
6840 
6841       l_count := nvl(l_trx_line_id_tbl.COUNT,0);
6842 
6843         FND_LOG.STRING(g_level_statement,
6844              'ZX.PLSQL.ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6845              'number of rows fetched = ' || to_char(l_count));
6846 
6847       IF l_count > 0 THEN
6848 
6849         FOR i IN 1.. l_count LOOP
6850 
6851     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6852     'Row Number = ' || to_char(i) );
6853 
6854     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6855     'l_application_id = ' || to_char(l_application_id_tbl(i)) );
6856 
6857     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6858     'l_entity_code = ' || l_entity_code_tbl(i) );
6859 
6860     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6861     'l_event_class_code = ' || l_event_class_code_tbl(i) );
6862 
6863     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6864     'l_trx_id = ' || to_char(l_trx_id_tbl(i)) );
6865 
6866     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6867     'l_trx_line_id = ' || to_char(l_trx_line_id_tbl(i)) );
6868 
6869     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6870     'l_trx_level_type = ' || l_trx_level_type_tbl(i) );
6871 
6872         END LOOP;
6873        ELSE
6874        EXIT ;
6875       END IF; -- end of count checking
6876 
6877     END LOOP;
6878 
6879     CLOSE get_other_doc_info_csr;
6880 
6881           -- Clear the records
6882     l_application_id_tbl.delete;
6883     l_entity_code_tbl.delete;
6884     l_event_class_code_tbl.delete;
6885     l_trx_id_tbl.delete;
6886     l_trx_line_id_tbl.delete;
6887     l_trx_level_type_tbl.delete;
6888 
6889   END IF; -- End of debug checking
6890 
6891   IF (g_level_statement >= g_current_runtime_level ) THEN
6892      FND_LOG.STRING(g_level_statement,
6893                    'ZX.PLSQL.ZX_VALIDATE_API_PKG.Validate_Other_Documents',
6894              'Before insertion into ZX_VALIDATION_ERRORS_GT for Validate_Other_Documents');
6895   END IF;
6896 
6897         INSERT ALL
6898         WHEN (ZX_REF_DOC_MISSING = 'Y')  THEN
6899 
6900                         INTO ZX_VALIDATION_ERRORS_GT(
6901                                 application_id,
6902                                 entity_code,
6903                                 event_class_code,
6904                                 trx_id,
6905                                 trx_line_id,
6906                                 message_name,
6907                                 message_text,
6908                                 trx_level_type,
6909                                 other_doc_application_id,
6910                                 other_doc_entity_code,
6911                                 other_doc_event_class_code,
6912                                 other_doc_trx_id,
6913                                 interface_line_entity_code,
6914                                 interface_line_id
6915                                 )
6916 
6917                         VALUES(
6918                                 application_id,
6919                                 entity_code,
6920                                 event_class_code,
6921                                 trx_id,
6922                                 trx_line_id,
6923                                 'ZX_REF_DOC_MISSING',
6924                                 l_ref_doc_missing,
6925                                 trx_level_type,
6926                                 ref_doc_application_id,
6927                                 ref_doc_entity_code,
6928                                 ref_doc_event_class_code,
6929                                 ref_doc_trx_id,
6930                                 interface_line_entity_code,
6931                                 interface_line_id
6932                                )
6933         WHEN (ZX_REL_DOC_MISSING = 'Y')  THEN
6934 
6935                         INTO ZX_VALIDATION_ERRORS_GT(
6936                                 application_id,
6937                                 entity_code,
6938                                 event_class_code,
6939                                 trx_id,
6940                                 message_name,
6941                                 message_text,
6942                                 other_doc_application_id,
6943                                 other_doc_entity_code,
6944                                 other_doc_event_class_code,
6945                                 other_doc_trx_id
6946                                 )
6947 
6948                         VALUES(
6949                                 application_id,
6950                                 entity_code,
6951                                 event_class_code,
6952                                 trx_id,
6953                                 'ZX_REL_DOC_MISSING',
6954                                 l_rel_doc_missing,
6955                                 rel_doc_application_id,
6956                                 rel_doc_entity_code,
6957                                 rel_doc_event_class_code,
6958                                 rel_doc_trx_id
6959                                )
6960         WHEN (ZX_APP_FROM_DOC_MISSING = 'Y')  THEN
6961 
6962                         INTO ZX_VALIDATION_ERRORS_GT(
6963                                 application_id,
6964                                 entity_code,
6965                                 event_class_code,
6966                                 trx_id,
6967                                 trx_line_id,
6968                                 message_name,
6969                                 message_text,
6970                                 trx_level_type,
6971                                 other_doc_application_id,
6972                                 other_doc_entity_code,
6973                                 other_doc_event_class_code,
6974                                 other_doc_trx_id,
6975                                 interface_line_entity_code,
6976                                 interface_line_id
6977                                 )
6978 
6979                         VALUES(
6980                                 application_id,
6981                                 entity_code,
6982                                 event_class_code,
6983                                 trx_id,
6984                                 trx_line_id,
6985                                 'ZX_APP_FROM_DOC_MISSING',
6986                                 l_app_from_doc_missing,
6987                                 trx_level_type,
6988                                 app_from_application_id,
6989                                 app_from_entity_code,
6990                                 app_from_event_class_code,
6991                                 app_from_trx_id,
6992                                 interface_line_entity_code,
6993                                 interface_line_id
6994                                )
6995 
6996 /*  Since we do not store applied to document (receipt), we should
6997     not check whether the doc exists in eTax repository
6998 
6999         WHEN (ZX_APP_TO_DOC_MISSING = 'Y')  THEN
7000 
7001                         INTO ZX_VALIDATION_ERRORS_GT(
7002                                 application_id,
7003                                 entity_code,
7004                                 event_class_code,
7005                                 trx_id,
7006                                 trx_line_id,
7007                                 message_name,
7008                                 message_text,
7009                                 trx_level_type,
7010                                 other_doc_application_id,
7011                                 other_doc_entity_code,
7012                                 other_doc_event_class_code,
7013                                 other_doc_trx_id,
7014                                 interface_line_entity_code,
7015                                 interface_line_id
7016                                 )
7017 
7018                         VALUES(
7019                                 application_id,
7020                                 entity_code,
7021                                 event_class_code,
7022                                 trx_id,
7023                                 trx_line_id,
7024                                 'ZX_APP_TO_DOC_MISSING',
7025                                 l_app_to_doc_missing,
7026                                 trx_level_type,
7027                                 app_to_application_id,
7028                                 app_to_entity_code,
7029                                 app_to_event_class_code,
7030                                 app_to_trx_id,
7031                                 interface_line_entity_code,
7032                                 interface_line_id
7033                                )
7034 */
7035         WHEN (ZX_ADJ_DOC_MISSING = 'Y')  THEN
7036 
7037                         INTO ZX_VALIDATION_ERRORS_GT(
7038                                 application_id,
7039                                 entity_code,
7040                                 event_class_code,
7041                                 trx_id,
7042                                 trx_line_id,
7043                                 message_name,
7044                                 message_text,
7045                                 trx_level_type,
7046                                 other_doc_application_id,
7047                                 other_doc_entity_code,
7048                                 other_doc_event_class_code,
7049                                 other_doc_trx_id,
7050                                 interface_line_entity_code,
7051                                 interface_line_id
7052                                 )
7053 
7054                         VALUES(
7055                                 application_id,
7056                                 entity_code,
7057                                 event_class_code,
7058                                 trx_id,
7059                                 trx_line_id,
7060                                 'ZX_ADJ_DOC_MISSING',
7061                                 l_adj_doc_missing,
7062                                 trx_level_type,
7063                                 adj_doc_application_id,
7064                                 adj_doc_entity_code,
7065                                 adj_doc_event_class_code,
7066                                 adj_doc_trx_id,
7067                                 interface_line_entity_code,
7068                                 interface_line_id
7069                                )
7070         WHEN (ZX_SOURCE_DOC_MISSING = 'Y')  THEN
7071 
7072                         INTO ZX_VALIDATION_ERRORS_GT(
7073                                 application_id,
7074                                 entity_code,
7075                                 event_class_code,
7076                                 trx_id,
7077                                 trx_line_id,
7078                                 message_name,
7079                                 message_text,
7080                                 trx_level_type,
7081                                 other_doc_application_id,
7082                                 other_doc_entity_code,
7083                                 other_doc_event_class_code,
7084                                 other_doc_trx_id,
7085                                 interface_line_entity_code,
7086                                 interface_line_id
7087                                 )
7088 
7089                         VALUES(
7090                                 application_id,
7091                                 entity_code,
7092                                 event_class_code,
7093                                 trx_id,
7094                                 trx_line_id,
7095                                 'ZX_SOURCE_DOC_MISSING',
7096                                 l_source_doc_missing,
7097                                 trx_level_type,
7098                                 src_doc_application_id,
7099                                 src_doc_entity_code,
7100                                 src_doc_event_class_code,
7101                                 src_doc_trx_id,
7102                                 interface_line_entity_code,
7103                                 interface_line_id
7104                                )
7105         SELECT  header.application_id                application_id,
7106                 header.entity_code                   entity_code,
7107                 header.event_class_code              event_class_code,
7108                 header.trx_id                        trx_id,
7109                 header.related_doc_application_id    rel_doc_application_id,
7110                 header.related_doc_entity_code       rel_doc_entity_code,
7111                 header.related_doc_event_class_code  rel_doc_event_class_code,
7112                 header.related_doc_trx_id            rel_doc_trx_id,
7113                 lines_gt.trx_line_id                 trx_line_id,
7114                 lines_gt.trx_level_type              trx_level_type,
7115                 lines_gt.interface_line_id           interface_line_id,
7116                 lines_gt.interface_entity_code       interface_line_entity_code,
7117                 lines_gt.source_application_id       src_doc_application_id,
7118                 lines_gt.source_entity_code          src_doc_entity_code,
7119                 lines_gt.source_event_class_code     src_doc_event_class_code,
7120                 lines_gt.source_trx_id               src_doc_trx_id,
7121                 lines_gt.ref_doc_application_id      ref_doc_application_id,
7122                 lines_gt.ref_doc_entity_code         ref_doc_entity_code,
7123                 lines_gt.ref_doc_event_class_code    ref_doc_event_class_code,
7124                 lines_gt.ref_doc_trx_id              ref_doc_trx_id,
7125                 lines_gt.applied_from_application_id app_from_application_id,
7126                 lines_gt.applied_from_entity_code    app_from_entity_code,
7127                 lines_gt.applied_from_event_class_code app_from_event_class_code,
7128                 lines_gt.applied_from_trx_id         app_from_trx_id,
7129                 lines_gt.applied_to_application_id   app_to_application_id,
7130                 lines_gt.applied_to_entity_code      app_to_entity_code,
7131                 lines_gt.applied_to_event_class_code app_to_event_class_code,
7132                 lines_gt.applied_to_trx_id           app_to_trx_id,
7133                 lines_gt.adjusted_doc_application_id adj_doc_application_id,
7134                 lines_gt.adjusted_doc_entity_code    adj_doc_entity_code,
7135                 lines_gt.adjusted_doc_event_class_code adj_doc_event_class_code,
7136                 lines_gt.adjusted_doc_trx_id         adj_doc_trx_id,
7137 
7138                 -- Check for existence of related documents in zx lines det factors table
7139                 -- Since the Selection is at the granularity of the transaction lines, also check for existence of
7140                 -- error record in validaiton errors gt to avoid inserting header level errors multiple times
7141                 -- Also check in zx trx headers gt if this doc is already present
7142                 nvl2( header.related_doc_trx_id,
7143                       CASE WHEN ((NOT EXISTS
7144                                       (SELECT 1 FROM ZX_LINES_DET_FACTORS
7145                                        WHERE application_id = header.related_doc_application_id
7146                                        AND   entity_code = header.related_doc_entity_code
7147                                        AND   event_class_code = header.related_doc_event_class_code
7148                                        AND   trx_id = header.related_doc_trx_id))
7149                                  AND ( NOT EXISTS
7150                                       (SELECT 1 FROM ZX_TRANSACTION_LINES_GT
7151                                        WHERE application_id = lines_gt.application_id
7152                                        AND   entity_code = lines_gt.entity_code
7153                                        AND   event_class_code = lines_gt.event_class_code
7154                                        AND   trx_id = lines_gt.trx_id
7155                                        AND   trx_line_id < lines_gt.trx_line_id
7156                                        AND   trx_level_type = lines_gt.trx_level_type))
7157                                  AND ( NOT EXISTS
7158                                       (SELECT 1 FROM ZX_TRX_HEADERS_GT
7159                                        WHERE application_id = header.related_doc_application_id
7160                                        AND   entity_code = header.related_doc_entity_code
7161                                        AND   event_class_code = header.related_doc_event_class_code
7162                                        AND   trx_id = header.related_doc_trx_id)))
7163                            THEN 'Y'
7164                            ELSE NULL END,
7165                            NULL)  ZX_REL_DOC_MISSING,
7166 
7167                 -- Check for existence of reference documents in zx lines det factors table and zx trx lines gt
7168                 nvl2( lines_gt.ref_doc_trx_id,
7169                       CASE WHEN ((NOT EXISTS
7170                                       (SELECT 1 FROM ZX_LINES_DET_FACTORS
7171                                        WHERE application_id = lines_gt.ref_doc_application_id
7172                                        AND   entity_code = lines_gt.ref_doc_entity_code
7173                                        AND   event_class_code = lines_gt.ref_doc_event_class_code
7174                                        AND   trx_id = lines_gt.ref_doc_trx_id
7175                                        AND   trx_line_id = lines_gt.ref_doc_line_id
7176                                        AND   trx_level_type = lines_gt.ref_doc_trx_level_type))
7177                                  AND ( NOT EXISTS
7178                                       (SELECT 1 FROM ZX_TRANSACTION_LINES_GT
7179                WHERE application_id = lines_gt.ref_doc_application_id
7180                AND   entity_code = lines_gt.ref_doc_entity_code
7181                AND   event_class_code = lines_gt.ref_doc_event_class_code
7182                AND   trx_id = lines_gt.ref_doc_trx_id
7183                AND   trx_line_id = lines_gt.ref_doc_line_id
7184                                        AND   trx_level_type = lines_gt.ref_doc_trx_level_type)))
7185                            THEN 'Y'
7186                            ELSE NULL END,
7187                            NULL)  ZX_REF_DOC_MISSING,
7188 
7189                 -- Check for applied from documents in zx lines det factors table and zx trx lines gt
7190                 nvl2( lines_gt.applied_from_trx_id,
7191                       CASE WHEN ((NOT EXISTS
7192                                       (SELECT 1 FROM ZX_LINES_DET_FACTORS
7193                                        WHERE application_id = lines_gt.applied_from_application_id
7194                                        AND   entity_code = lines_gt.applied_from_entity_code
7195                                        AND   event_class_code = lines_gt.applied_from_event_class_code
7196                                        AND   trx_id = lines_gt.applied_from_trx_id
7197                                        AND   trx_line_id = lines_gt.applied_from_line_id
7198                                        AND   trx_level_type = lines_gt.applied_from_trx_level_type))
7199                                  AND ( NOT EXISTS
7200                                       (SELECT 1 FROM ZX_TRANSACTION_LINES_GT
7201                WHERE application_id = lines_gt.applied_from_application_id
7202                AND   entity_code = lines_gt.applied_from_entity_code
7203                AND   event_class_code = lines_gt.applied_from_event_class_code
7204                AND   trx_id = lines_gt.applied_from_trx_id
7205                AND   trx_line_id = lines_gt.applied_from_line_id
7206                                        AND   trx_level_type = lines_gt.applied_from_trx_level_type)))
7207                            THEN 'Y'
7208                            ELSE NULL END,
7209                            NULL) ZX_APP_FROM_DOC_MISSING,
7210 
7211                 -- Check for adjusted document in zx lines det factors table and zx trx lines gt
7212                 nvl2( lines_gt.adjusted_doc_trx_id,
7213                       CASE WHEN ((NOT EXISTS
7214                                       (SELECT 1 FROM ZX_LINES_DET_FACTORS
7215                                        WHERE application_id = lines_gt.adjusted_doc_application_id
7216                                        AND   entity_code = lines_gt.adjusted_doc_entity_code
7217                                        AND   event_class_code = lines_gt.adjusted_doc_event_class_code
7218                                        AND   trx_id = lines_gt.adjusted_doc_trx_id
7219                                        AND   trx_line_id = lines_gt.adjusted_doc_line_id
7220                                        AND   trx_level_type = lines_gt.adjusted_doc_trx_level_type))
7221                                  AND ( NOT EXISTS
7222                                       (SELECT 1 FROM ZX_TRANSACTION_LINES_GT
7223                WHERE application_id = lines_gt.adjusted_doc_application_id
7224                AND   entity_code = lines_gt.adjusted_doc_entity_code
7225                AND   event_class_code = lines_gt.adjusted_doc_event_class_code
7226                AND   trx_id = lines_gt.adjusted_doc_trx_id
7227                AND   trx_line_id = lines_gt.adjusted_doc_line_id
7228                                        AND   trx_level_type = lines_gt.adjusted_doc_trx_level_type)))
7229                            THEN 'Y'
7230                            ELSE NULL END,
7231                            NULL) ZX_ADJ_DOC_MISSING,
7232 
7233                 -- Check for applied to documents in zx lines det factors table and zx trx lines gt
7234 
7235 /*      Since we do not store applied to document (receipt), we should
7236         not check whether the doc exists in eTax repository
7237 
7238                 nvl2( lines_gt.applied_to_trx_id,
7239                       CASE WHEN ((NOT EXISTS
7240                                       (SELECT 1 FROM ZX_LINES_DET_FACTORS
7241                                        WHERE application_id = lines_gt.applied_to_application_id
7242                                        AND   entity_code = lines_gt.applied_to_entity_code
7243                                        AND   event_class_code = lines_gt.applied_to_event_class_code
7244                                        AND   trx_id = lines_gt.applied_to_trx_id
7245                                        AND   trx_line_id = lines_gt.applied_to_trx_line_id
7246                                        AND   trx_level_type = lines_gt.applied_to_trx_level_type))
7247                                  AND ( NOT EXISTS
7248                                       (SELECT 1 FROM ZX_TRANSACTION_LINES_GT
7249                WHERE application_id = lines_gt.applied_to_application_id
7250                AND   entity_code = lines_gt.applied_to_entity_code
7251                AND   event_class_code = lines_gt.applied_to_event_class_code
7252                AND   trx_id = lines_gt.applied_to_trx_id
7253                AND   trx_line_id = lines_gt.applied_to_trx_line_id
7254                                        AND   trx_level_type = lines_gt.applied_to_trx_level_type)))
7255                            THEN 'Y'
7256                            ELSE NULL END,
7257                            NULL) ZX_APP_TO_DOC_MISSING,
7258 */
7259 
7260                 -- Check for source documents in zx lines det factors table and zx trx lines gt
7261                 nvl2( lines_gt.source_trx_id,
7262           CASE WHEN ((NOT EXISTS
7263               (SELECT 1
7264                FROM  ZX_LINES_DET_FACTORS line,
7265                ZX_EVNT_CLS_MAPPINGS map
7266                WHERE lines_gt.application_id   = map.application_id
7267                AND   lines_gt.entity_code      = map.entity_code
7268                AND   lines_gt.event_class_code = map.event_class_code
7269                AND   line.application_id       = decode(lines_gt.source_event_class_code,
7270                    'INTERCOMPANY_TRX', map.intrcmp_src_appln_id,
7271                    lines_gt.source_application_id)
7272                AND   line.entity_code          = decode(lines_gt.source_event_class_code,
7273                    'INTERCOMPANY_TRX', map.intrcmp_src_entity_code,
7274                    lines_gt.source_entity_code)
7275                AND   line.event_class_code     = decode(lines_gt.source_event_class_code,
7276                                                  'INTERCOMPANY_TRX',
7277                                                  decode(lines_gt.line_class,
7278                                                         'AP_CREDIT_MEMO', 'CREDIT_MEMO',
7279                                                         'AP_DEBIT_MEMO','DEBIT_MEMO',
7280                                                         map.intrcmp_src_evnt_cls_code),
7281                                                  lines_gt.source_event_class_code)
7282                AND   line.trx_id               = lines_gt.source_trx_id
7283                AND   line.trx_line_id          = lines_gt.source_line_id
7284                AND   line.trx_level_type       = lines_gt.source_trx_level_type))
7285          AND ( NOT EXISTS
7286               (SELECT 1 FROM ZX_TRANSACTION_LINES_GT line,
7287                zx_evnt_cls_mappings map
7288                WHERE lines_gt.application_id   = map.application_id
7289                AND   lines_gt.entity_code      = map.entity_code
7290                AND   lines_gt.event_class_code = map.event_class_code
7291                AND   line.application_id       = decode(lines_gt.source_event_class_code,
7292                    'INTERCOMPANY_TRX', map.intrcmp_src_appln_id,
7293                    lines_gt.source_application_id)
7294                AND   line.entity_code          = decode(lines_gt.source_event_class_code,
7295                    'INTERCOMPANY_TRX', map.intrcmp_src_entity_code,
7296                    lines_gt.source_entity_code)
7297                AND   line.event_class_code     = decode(lines_gt.source_event_class_code,
7298                                                  'INTERCOMPANY_TRX',
7299                                                  decode(lines_gt.line_class,
7300                                                         'AP_CREDIT_MEMO', 'CREDIT_MEMO',
7301                                                         'AP_DEBIT_MEMO','DEBIT_MEMO',
7302                                                         map.intrcmp_src_evnt_cls_code),
7303                                                  lines_gt.source_event_class_code)
7304                AND   trx_id                    = lines_gt.source_trx_id
7305                AND   trx_line_id               = lines_gt.source_line_id
7306                AND   trx_level_type            = lines_gt.source_trx_level_type)))
7307                            THEN 'Y'
7308                            ELSE NULL END,
7309                            NULL) ZX_SOURCE_DOC_MISSING
7310 
7311         FROM ZX_TRX_HEADERS_GT             header,
7312              ZX_TRANSACTION_LINES_GT       lines_gt
7313 
7314         WHERE lines_gt.application_id = header.application_id
7315         AND   lines_gt.entity_code = header.entity_code
7316         AND   lines_gt.event_class_code = header.event_class_code
7317         AND   lines_gt.trx_id = header.trx_id;
7318 
7319   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
7320 
7321   IF ( g_level_statement >= g_current_runtime_level) THEN
7322     FND_LOG.STRING(g_level_statement,'ZX_VALIDATE_API_PKG.VALIDATE_TAX_ATTR',
7323     'No. of Rows inserted for Header Realted Validations '|| to_char(sql%ROWCOUNT) );
7324   END IF;
7325 
7326   IF ( g_level_event >= g_current_runtime_level) THEN
7327     FND_LOG.STRING(g_level_event,
7328        'ZX.PLSQL.ZX_VALIDATE_API_PKG.Validate_Other_Documents.END',
7329        'ZX_VALIDATE_API_PKG: Validate_Other_Documents(-)');
7330   END IF;
7331 
7332 EXCEPTION
7333          WHEN OTHERS THEN
7334               IF (g_level_unexpected >= g_current_runtime_level ) THEN
7335                   FND_LOG.STRING(g_level_unexpected,
7336                           'ZX_VALIDATE_API_PKG.Validate_Other_Documents',
7337                            sqlerrm);
7338               END IF;
7339 
7340          x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7341          app_exception.raise_exception;
7342 END Validate_Other_Documents;
7343 
7344 
7345 ------------------ Procedure For pop_def_tax_classif_code  -----------------
7346 
7347 --  PUBLIC PROCEDURE
7348 --  pop_def_tax_classif_code
7349 --
7350 --  DESCRIPTION
7351 --  This procedure populates the parameters need to pass to
7352 --  ZX_TAX_DEFAULT_PKG.get_default_tax_classification to get the
7353 --  default tax classification code, and updates each transaction
7354 --  line with the default tax classification code found
7355 --
7356 
7357 -- Bug#3910168
7358 
7359 PROCEDURE pop_def_tax_classif_code(
7360     x_return_status            OUT NOCOPY  VARCHAR2)
7361 IS
7362   l_trx_line_id_tbl                   TRX_LINE_ID_TBL;
7363   l_trx_level_type_tbl                TRX_LEVEL_TYPE_TBL;
7364   -- bug#5066122- rm ship_from_party/site id
7365   --l_ship_from_party_id_tbl            SHIP_FROM_PARTY_ID_TBL;
7366   --l_ship_from_party_site_id_tbl       SHIP_FROM_PARTY_SITE_ID_TBL;
7367   l_account_ccid_tbl                  ACCOUNT_CCID_TBL;
7368   l_account_string_tbl                ACCOUNT_STRING_TBL;
7369   l_ship_to_location_id_tbl           SHIP_TO_LOCATION_ID_TBL;
7370   l_product_id_tbl                    PRODUCT_ID_TBL;
7371   l_product_type_tbl                  PRODUCT_TYPE_TBL;
7372   l_product_org_id_tbl                PRODUCT_ORG_ID_TBL;
7373   l_event_class_code_tbl              EVENT_CLASS_CODE_TBL;
7374   l_entity_code_tbl                   ENTITY_CODE_TBL;
7375   l_ship_to_cust_acct_su_id_tbl       SHIPTO_CUST_ACCT_SITEUSEID_TBL;
7376   l_bill_to_cust_acct_su_id_tbl       BILLTO_CUST_ACCT_SITEUSEID_TBL;
7377   l_internal_organization_id_tbl      INTERNAL_ORGANIZATION_ID_TBL;
7378   l_ledger_id_tbl                     LEDGER_ID_TBL;
7379   l_trx_date_tbl                      TRX_DATE_TBL;
7380   l_receivables_trx_type_id_tbl       RECEIVABLES_TRX_TYPE_ID_TBL;
7381   l_trx_id_tbl                        TRX_ID_TBL;
7382   l_application_id_tbl                APPLICATION_ID_TBL;
7383   l_ship_third_pty_acct_id_tbl        SHIP_THIRD_PTY_ACCT_ID_TBL;
7384   l_bill_third_pty_acct_id_tbl        BILL_THIRD_PTY_ACCT_ID_TBL;
7385   l_defaulting_attribute1_tbl         DEFAULTING_ATTRIBUTE1_TBL;
7386   l_defaulting_attribute2_tbl         DEFAULTING_ATTRIBUTE2_TBL;
7387   l_defaulting_attribute3_tbl         DEFAULTING_ATTRIBUTE3_TBL;
7388   l_defaulting_attribute4_tbl         DEFAULTING_ATTRIBUTE4_TBL;
7389   l_defaulting_attribute5_tbl         DEFAULTING_ATTRIBUTE5_TBL;
7390   l_defaulting_attribute6_tbl         DEFAULTING_ATTRIBUTE6_TBL;
7391   l_defaulting_attribute7_tbl         DEFAULTING_ATTRIBUTE7_TBL;
7392   l_defaulting_attribute8_tbl         DEFAULTING_ATTRIBUTE8_TBL;
7393   l_defaulting_attribute9_tbl         DEFAULTING_ATTRIBUTE9_TBL;
7394   l_defaulting_attribute10_tbl        DEFAULTING_ATTRIBUTE10_TBL;
7395 
7396   l_input_tax_classif_code_tbl        INPUT_TAX_CLASSIF_CODE_TBL;
7397   l_output_tax_classif_code_tbl       OUTPUT_TAX_CLASSIF_CODE_TBL;
7398 
7399   l_ref_doc_application_id_tbl        REF_DOC_APPLICATION_ID_TBL;
7400   l_ref_doc_entity_code_tbl           REF_DOC_ENTITY_CODE_TBL;
7401   l_ref_doc_event_class_code_tbl      REF_DOC_EVENT_CLASS_CODE_TBL;
7402   l_ref_doc_trx_id_tbl                REF_DOC_TRX_ID_TBL;
7403   l_ref_doc_line_id_tbl               REF_DOC_LINE_ID_TBL;
7404   l_ref_doc_trx_level_type_tbl        REF_DOC_TRX_LEVEL_TYPE_TBL;
7405 
7406   -- Bug#4868489
7407   l_legal_entity_id_tbl               LEGAL_ENTITY_ID_TBL;
7408 
7409   -- Bug#5066122
7410   -- add structures here to avoid changing spec
7411   --
7412   TYPE ship_thd_pty_acct_ste_id_tbl IS TABLE OF
7413     ZX_TRX_HEADERS_GT.ship_third_pty_acct_site_id%TYPE
7414     INDEX BY BINARY_INTEGER;
7415 
7416   TYPE bill_thd_pty_acct_ste_id_tbl IS TABLE OF
7417     ZX_TRX_HEADERS_GT.bill_third_pty_acct_site_id%TYPE
7418     INDEX BY BINARY_INTEGER;
7419 
7420   l_ship_thd_pty_acct_ste_id_tbl      SHIP_THD_PTY_ACCT_STE_ID_TBL;
7421   l_bill_thd_pty_acct_ste_id_tbl      BILL_THD_PTY_ACCT_STE_ID_TBL;
7422 
7423   l_definforec                        ZX_API_PUB.def_tax_cls_code_info_rec_type;
7424   l_definforec_null                   ZX_API_PUB.def_tax_cls_code_info_rec_type;
7425   l_count                             NUMBER;
7426   l_error_buffer                      VARCHAR2(240);
7427 
7428   c_lines_per_commit CONSTANT NUMBER := ZX_TDS_CALC_SERVICES_PUB_PKG.G_LINES_PER_COMMIT;
7429 
7430  CURSOR get_parm_info_for_def_tax_csr
7431   IS
7432     SELECT
7433       L.trx_line_id,
7434       L.trx_level_type,
7435       -- L.ship_from_party_id,        -- bug#5066122
7436       -- L.ship_from_party_site_id,   -- bug#5066122
7437       L.account_ccid,
7438       L.account_string,
7439       L.ship_to_location_id,
7440       L.product_id,
7441       L.product_type,
7442       L.product_org_id,
7443       H.event_class_code,
7444       H.entity_code,
7445       NVL(L.ship_to_cust_acct_site_use_id, H.ship_to_cust_acct_site_use_id),
7446       NVL(L.bill_to_cust_acct_site_use_id, H.bill_to_cust_acct_site_use_id),
7447       H.internal_organization_id,
7448       H.ledger_id,
7449       H.trx_date,
7450       NVL(L.receivables_trx_type_id, H.receivables_trx_type_id),
7451       H.trx_id,
7452       H.application_id,
7453       H.legal_entity_id,
7454       NVL(L.ship_third_pty_acct_id, H.ship_third_pty_acct_id),
7455       NVL(L.bill_third_pty_acct_id, H.bill_third_pty_acct_id),
7456       NVL(L.ship_third_pty_acct_site_id, H.ship_third_pty_acct_site_id),
7457       NVL(L.bill_third_pty_acct_site_id, H.bill_third_pty_acct_site_id),
7458       L.ref_doc_application_id,
7459       L.ref_doc_entity_code,
7460       L.ref_doc_event_class_code,
7461       L.ref_doc_trx_id,
7462       L.ref_doc_line_id,
7463       L.ref_doc_trx_level_type,
7464       L.defaulting_attribute1,
7465       L.defaulting_attribute2,
7466       L.defaulting_attribute3,
7467       L.defaulting_attribute4,
7468       L.defaulting_attribute5,
7469       L.defaulting_attribute6,
7470       L.defaulting_attribute7,
7471       L.defaulting_attribute8,
7472       L.defaulting_attribute9,
7473       L.defaulting_attribute10
7474      -- L.input_tax_classification_code, --Bug 4919842
7475 --      L.output_tax_classification_code --Bug 4919842
7476   FROM ZX_TRX_HEADERS_GT H,
7477        ZX_TRANSACTION_LINES_GT L
7478   WHERE L.application_id = H.application_id
7479     AND L.entity_code = H.entity_code
7480     AND L.event_class_code = H.event_class_code
7481     AND L.trx_id = H.trx_id
7482     AND L.line_level_action = 'CREATE'
7483     AND L.input_tax_classification_code IS NULL
7484     AND L.output_tax_classification_code IS NULL ;
7485 
7486 BEGIN
7487 
7488   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
7489 
7490   IF (g_level_statement >= g_current_runtime_level ) THEN
7491     FND_LOG.STRING(g_level_statement,
7492                    'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code.BEGIN',
7493                    'ZX_VALIDATE_API_PKG: pop_def_tax_classif_code(+)');
7494   END IF;
7495 
7496   --
7497   -- init error buffer and return status
7498   --
7499   x_return_status  := FND_API.G_RET_STS_SUCCESS;
7500   l_error_buffer   := NULL;
7501 
7502   OPEN get_parm_info_for_def_tax_csr;
7503 
7504   IF (g_level_statement >= g_current_runtime_level ) THEN
7505       FND_LOG.STRING(g_level_statement,
7506      'ZX.PLSQL.ZX_VALIDATE_API_PKG.Validate_Other_Documents',
7507      'After opening the cursor - get_parm_info_for_def_tax_csr');
7508   END IF;
7509 
7510   LOOP
7511     FETCH get_parm_info_for_def_tax_csr BULK COLLECT INTO
7512                 l_trx_line_id_tbl,
7513                 l_trx_level_type_tbl,
7514                 -- l_ship_from_party_id_tbl,     -- bug#5066122
7515                 -- l_ship_from_party_site_id_tbl,-- bug#5066122
7516                 l_account_ccid_tbl,
7517                 l_account_string_tbl,
7518                 l_ship_to_location_id_tbl,
7519                 l_product_id_tbl,
7520                 l_product_type_tbl,
7521                 l_product_org_id_tbl,
7522                 l_event_class_code_tbl,
7523                 l_entity_code_tbl,
7524                 l_ship_to_cust_acct_su_id_tbl,
7525                 l_bill_to_cust_acct_su_id_tbl,
7526                 l_internal_organization_id_tbl,
7527                 l_ledger_id_tbl,
7528                 l_trx_date_tbl,
7529                 l_receivables_trx_type_iD_tbl,
7530                 l_trx_id_tbl,
7531                 l_application_id_tbl,
7532                 l_legal_entity_id_tbl,
7533                 l_ship_third_pty_acct_id_tbl,
7534                 l_bill_third_pty_acct_id_tbl,
7535                 l_ship_thd_pty_acct_ste_id_tbl,
7536                 l_bill_thd_pty_acct_ste_id_tbl,
7537                 l_ref_doc_application_id_tbl,
7538                 l_ref_doc_entity_code_tbl,
7539                 l_ref_doc_event_class_code_tbl,
7540                 l_ref_doc_trx_id_tbl,
7541                 l_ref_doc_line_id_tbl,
7542                 l_ref_doc_trx_level_type_tbl,
7543                 l_defaulting_attribute1_tbl,
7544                 l_defaulting_attribute2_tbl,
7545                 l_defaulting_attribute3_tbl,
7546                 l_defaulting_attribute4_tbl,
7547                 l_defaulting_attribute5_tbl,
7548                 l_defaulting_attribute6_tbl,
7549                 l_defaulting_attribute7_tbl,
7550                 l_defaulting_attribute8_tbl,
7551                 l_defaulting_attribute9_tbl,
7552                 l_defaulting_attribute10_tbl
7553 --    l_input_tax_classif_code_tbl,  --Bug 4919842
7554 --    l_output_tax_classif_code_tbl  --Bug 4919842
7555       LIMIT C_LINES_PER_COMMIT;
7556 
7557 
7558     l_count := l_trx_line_id_tbl.COUNT;
7559 
7560     IF (g_level_procedure >= g_current_runtime_level ) THEN
7561         FND_LOG.STRING(g_level_procedure,
7562                        'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code',
7563                        'number of rows fetched = ' || to_char(l_count));
7564     END IF;
7565 
7566     IF l_count > 0 THEN
7567 
7568       FOR i IN 1.. l_count LOOP
7569 
7570         --
7571         -- init l_definforec
7572         --
7573         l_definforec := l_definforec_null;
7574 
7575         --
7576         -- populate fields in the record with values
7577         -- from zx_trx_headers_gt and zx_transaction_lines_gt
7578         --
7579         -- Bug#4310278- replace line_location_id with
7580         -- ref_doc columns
7581 
7582         l_definforec.ref_doc_application_id := l_ref_doc_application_id_tbl(i);
7583         l_definforec.ref_doc_entity_code := l_ref_doc_entity_code_tbl(i);
7584         l_definforec.ref_doc_event_class_code := l_ref_doc_event_class_code_tbl(i);
7585         l_definforec.ref_doc_trx_id := l_ref_doc_trx_id_tbl(i);
7586         l_definforec.ref_doc_line_id := l_ref_doc_line_id_tbl(i);
7587         l_definforec.ref_doc_trx_level_type := l_ref_doc_trx_level_type_tbl(i);
7588 
7589         -- bug#5066122
7590         --l_definforec.ship_third_pty_acct_id := l_ship_from_party_id_tbl(i);
7591         --l_definforec.ship_third_pty_acct_site_id :=  l_ship_from_party_site_id_tbl(i);
7592 
7593         l_definforec.account_ccid := l_account_ccid_tbl(i);
7594 
7595         l_definforec.account_string := l_account_string_tbl(i);
7596         l_definforec.ship_to_location_id := l_ship_to_location_id_tbl(i);
7597         l_definforec.product_id :=  l_product_id_tbl(i);
7598         l_definforec.product_org_id := l_product_org_id_tbl(i);
7599         l_definforec.application_id := l_application_id_tbl(i);
7600         l_definforec.internal_organization_id := l_internal_organization_id_tbl(i);
7601         l_definforec.event_class_code := l_event_class_code_tbl(i);
7602         l_definforec.entity_code := l_entity_code_tbl(i);
7603         l_definforec.ship_to_cust_acct_site_use_id := l_ship_to_cust_acct_su_id_tbl(i);
7604         l_definforec.bill_to_cust_acct_site_use_id := l_bill_to_cust_acct_su_id_tbl(i);
7605         l_definforec.ledger_id := l_ledger_id_tbl(i);
7606         l_definforec.trx_date := l_trx_date_tbl(i);
7607         l_definforec.receivables_trx_type_id := l_receivables_trx_type_id_tbl(i);
7608         l_definforec.trx_id := l_trx_id_tbl(i);
7609         l_definforec.trx_line_id := l_trx_line_id_tbl(i);
7610         l_definforec.ship_third_pty_acct_id := l_ship_third_pty_acct_id_tbl(i);
7611         l_definforec.bill_third_pty_acct_id :=  l_bill_third_pty_acct_id_tbl(i);
7612         --
7613         -- Bug#5066122- added ship/bill third_pty_acct_site_id
7614         --
7615         l_definforec.ship_third_pty_acct_site_id := l_ship_thd_pty_acct_ste_id_tbl(i);
7616         l_definforec.bill_third_pty_acct_site_id := l_bill_thd_pty_acct_ste_id_tbl(i);
7617         -- Bug#4868489-  add legal_entity_id
7618         l_definforec.legal_entity_id := l_legal_entity_id_tbl(i);
7619 
7620         --
7621         -- Bug#4868489- remove call to map_parm_for_def_tax_classif
7622         --
7623         l_definforec.defaulting_attribute1  :=  l_defaulting_attribute1_tbl(i);
7624         l_definforec.defaulting_attribute2  :=  l_defaulting_attribute2_tbl(i);
7625         l_definforec.defaulting_attribute3  :=  l_defaulting_attribute3_tbl(i);
7626         l_definforec.defaulting_attribute4  :=  l_defaulting_attribute4_tbl(i);
7627         l_definforec.defaulting_attribute5  :=  l_defaulting_attribute5_tbl(i);
7628         l_definforec.defaulting_attribute6  :=  l_defaulting_attribute6_tbl(i);
7629         l_definforec.defaulting_attribute7  :=  l_defaulting_attribute7_tbl(i);
7630         l_definforec.defaulting_attribute8  :=  l_defaulting_attribute8_tbl(i);
7631         l_definforec.defaulting_attribute9  :=  l_defaulting_attribute9_tbl(i);
7632         l_definforec.defaulting_attribute10 :=  l_defaulting_attribute10_tbl(i);
7633 
7634         --
7635         -- get default tax classification code
7636         --
7637     IF (g_level_statement >= g_current_runtime_level ) THEN
7638         FND_LOG.STRING(g_level_statement,
7639        'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code',
7640        'Calling ZX_TAX_DEFAULT_PKG.get_default_tax_classification for record '||to_char(i));
7641     END IF;
7642         /* Bug 4919842 : Conditionally Call ZX_TAX_DEFAULT_PKG.get_default_tax_classification if both input
7643   AND output tax classification codes are passed as null */
7644 
7645        /* Removed the conditional check and included in the 'get_parm_info_for_def_tax_csr' cursor itself
7646        IF ( l_input_tax_classif_code_tbl(i) IS NULL AND
7647        l_output_tax_classif_code_tbl(i) IS NULL ) THEN */
7648     ZX_TAX_DEFAULT_PKG.get_default_tax_classification(
7649             l_definforec,
7650             x_return_status,
7651             l_error_buffer);
7652 
7653     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7654       EXIT;
7655     END IF;
7656 
7657     --
7658     -- store returned tax classification code for update to
7659     -- zx_transaction_lines_gt later
7660     --
7661     l_input_tax_classif_code_tbl(i)  := l_definforec.input_tax_classification_code;
7662     l_output_tax_classif_code_tbl(i) := l_definforec.output_tax_classification_code;
7663        -- END IF ; -- end if for the conditional call
7664       END LOOP;
7665 
7666       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7667         EXIT;
7668       END IF;
7669 
7670       --
7671       -- update zx_transaction_lines_gt with the default
7672       -- tax classification code found
7673       --
7674     IF (g_level_statement >= g_current_runtime_level ) THEN
7675         FND_LOG.STRING(g_level_statement,
7676        'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code',
7677        'update zx_transaction_lines_gt with the default tax classification code found ');
7678     END IF;
7679 
7680       FORALL i IN 1 .. l_count
7681         UPDATE ZX_TRANSACTION_LINES_GT
7682           SET input_tax_classification_code =
7683                     l_input_tax_classif_code_tbl(i),
7684               output_tax_classification_code =
7685                     l_output_tax_classif_code_tbl(i)
7686           WHERE application_id = l_application_id_tbl(i)
7687             AND entity_code = l_entity_code_tbl(i)
7688             AND event_class_code = l_event_class_code_tbl(i)
7689             AND trx_id = l_trx_id_tbl(i)
7690             AND trx_line_id = l_trx_line_id_tbl(i)
7691             AND trx_level_type = l_trx_level_type_tbl(i);
7692 
7693       IF (g_level_procedure >= g_current_runtime_level ) THEN
7694         FND_LOG.STRING(g_level_procedure,
7695                        'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code',
7696                        'fetch next set of records for defaulting ....');
7697       END IF;
7698     ELSE
7699       --
7700       -- no more records to process
7701       --
7702       CLOSE get_parm_info_for_def_tax_csr;
7703       EXIT;
7704     END IF;
7705   END LOOP;
7706 
7707   IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7708     CLOSE get_parm_info_for_def_tax_csr;
7709     RETURN;
7710   END IF;
7711 
7712   IF (g_level_procedure >= g_current_runtime_level ) THEN
7713     FND_LOG.STRING(g_level_procedure,
7714                    'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code',
7715                    'x_return_status = ' || x_return_status);
7716     FND_LOG.STRING(g_level_procedure,
7717                    'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code',
7718                    'l_error_buffer  = ' || l_error_buffer);
7719     FND_LOG.STRING(g_level_procedure,
7720                    'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code.END',
7721                    'ZX_VALIDATE_API_PKG: pop_def_tax_classif_code(-)');
7722   END IF;
7723 
7724 EXCEPTION
7725   WHEN OTHERS THEN
7726     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7727     l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7728     IF get_parm_info_for_def_tax_csr%ISOPEN THEN
7729       CLOSE get_parm_info_for_def_tax_csr;
7730     END IF;
7731     FND_MESSAGE.SET_NAME('ZX','GENERIC_MESSAGE');
7732     FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','pop_def_tax_classif_code- '|| l_error_buffer);
7733     FND_MSG_PUB.Add;
7734 
7735     IF (g_level_unexpected >= g_current_runtime_level ) THEN
7736       FND_LOG.STRING(g_level_unexpected,
7737                      'ZX.PLSQL.ZX_VALIDATE_API_PKG.pop_def_tax_classif_code',
7738                       l_error_buffer);
7739     END IF;
7740 
7741 END pop_def_tax_classif_code;
7742 
7743 
7744 /* This procedure is used to default the additional tax attributes
7745    Internally we are calling the default automation api to populate the values.
7746 */
7747 
7748 PROCEDURE def_additional_tax_attribs IS
7749 
7750    c_lines_per_commit CONSTANT NUMBER := ZX_TDS_CALC_SERVICES_PUB_PKG.G_LINES_PER_COMMIT;
7751 
7752    CURSOR gtt_to_glb_strctr_csr
7753    IS
7754 
7755   SELECT
7756 
7757   INTERNAL_ORGANIZATION_ID ,
7758   header.APPLICATION_ID APPLICATION_ID,
7759   header.ENTITY_CODE    ENTITY_CODE,
7760   header.EVENT_CLASS_CODE EVENT_CLASS_CODE,
7761   EVENT_TYPE_CODE               ,
7762   header.TRX_ID    TRX_ID       ,
7763   TRX_LEVEL_TYPE                ,
7764   TRX_LINE_ID                   ,
7765   LINE_LEVEL_ACTION             ,
7766   LINE_CLASS                    ,
7767   TRX_DATE                      ,
7768   TRX_DOC_REVISION              ,
7769   LEDGER_ID                     ,
7770   TRX_CURRENCY_CODE             ,
7771   CURRENCY_CONVERSION_DATE      ,
7772   CURRENCY_CONVERSION_RATE      ,
7773   CURRENCY_CONVERSION_TYPE      ,
7774   MINIMUM_ACCOUNTABLE_UNIT      ,
7775   PRECISION                     ,
7776   TRX_SHIPPING_DATE             ,
7777   TRX_RECEIPT_DATE              ,
7778   LEGAL_ENTITY_ID               ,
7779   ROUNDING_SHIP_TO_PARTY_ID     ,
7780   ROUNDING_SHIP_FROM_PARTY_ID   ,
7781   ROUNDING_BILL_TO_PARTY_ID     ,
7782   ROUNDING_BILL_FROM_PARTY_ID   ,
7783   RNDG_SHIP_TO_PARTY_SITE_ID    ,
7784   RNDG_SHIP_FROM_PARTY_SITE_ID  ,
7785   RNDG_BILL_TO_PARTY_SITE_ID    ,
7786   RNDG_BILL_FROM_PARTY_SITE_ID  ,
7787   ESTABLISHMENT_ID              ,
7788   TRX_LINE_TYPE                 ,
7789   TRX_LINE_DATE                 ,
7790   TRX_BUSINESS_CATEGORY         ,
7791   LINE_INTENDED_USE             ,
7792   USER_DEFINED_FISC_CLASS       ,
7793   LINE_AMT                      ,
7794   TRX_LINE_QUANTITY             ,
7795   UNIT_PRICE                    ,
7796   EXEMPT_CERTIFICATE_NUMBER     ,
7797   EXEMPT_REASON                 ,
7798   CASH_DISCOUNT                 ,
7799   VOLUME_DISCOUNT               ,
7800   TRADING_DISCOUNT              ,
7801   TRANSFER_CHARGE               ,
7802   TRANSPORTATION_CHARGE         ,
7803   INSURANCE_CHARGE              ,
7804   OTHER_CHARGE                  ,
7805   PRODUCT_ID                    ,
7806   PRODUCT_FISC_CLASSIFICATION,
7807   PRODUCT_ORG_ID             ,
7808   UOM_CODE                   ,
7809   PRODUCT_TYPE               ,
7810   PRODUCT_CODE               ,
7811   PRODUCT_CATEGORY           ,
7812   TRX_SIC_CODE               ,
7813   FOB_POINT                  ,
7814   SHIP_TO_PARTY_ID           ,
7815   SHIP_FROM_PARTY_ID         ,
7816   POA_PARTY_ID               ,
7817   POO_PARTY_ID               ,
7818   BILL_TO_PARTY_ID           ,
7819   BILL_FROM_PARTY_ID         ,
7820   MERCHANT_PARTY_ID          ,
7821   SHIP_TO_PARTY_SITE_ID      ,
7822   SHIP_FROM_PARTY_SITE_ID    ,
7823   POA_PARTY_SITE_ID          ,
7824   POO_PARTY_SITE_ID          ,
7825   BILL_TO_PARTY_SITE_ID      ,
7826   BILL_FROM_PARTY_SITE_ID    ,
7827   SHIP_TO_LOCATION_ID        ,
7828   SHIP_FROM_LOCATION_ID      ,
7829   POA_LOCATION_ID            ,
7830   POO_LOCATION_ID            ,
7831   BILL_TO_LOCATION_ID        ,
7832   BILL_FROM_LOCATION_ID      ,
7833   ACCOUNT_CCID               ,
7834   ACCOUNT_STRING             ,
7835   MERCHANT_PARTY_COUNTRY     ,
7836   NVL(lines.RECEIVABLES_TRX_TYPE_ID, header.RECEIVABLES_TRX_TYPE_ID),
7837   REF_DOC_APPLICATION_ID     ,
7838   REF_DOC_ENTITY_CODE        ,
7839   REF_DOC_EVENT_CLASS_CODE   ,
7840   REF_DOC_TRX_ID             ,
7841   -- REF_DOC_HDR_TRX_USER_KEY1  ,
7842   -- REF_DOC_HDR_TRX_USER_KEY2  ,
7843   -- REF_DOC_HDR_TRX_USER_KEY3  ,
7844   -- REF_DOC_HDR_TRX_USER_KEY4  ,
7845   -- REF_DOC_HDR_TRX_USER_KEY5  ,
7846   -- REF_DOC_HDR_TRX_USER_KEY6  ,
7847   REF_DOC_LINE_ID            ,
7848   -- REF_DOC_LIN_TRX_USER_KEY1  ,
7849   -- REF_DOC_LIN_TRX_USER_KEY2  ,
7850   -- REF_DOC_LIN_TRX_USER_KEY3  ,
7851   -- REF_DOC_LIN_TRX_USER_KEY4  ,
7852   -- REF_DOC_LIN_TRX_USER_KEY5  ,
7853   -- REF_DOC_LIN_TRX_USER_KEY6  ,
7854   REF_DOC_LINE_QUANTITY      ,
7855   RELATED_DOC_APPLICATION_ID ,
7856   RELATED_DOC_ENTITY_CODE    ,
7857   RELATED_DOC_EVENT_CLASS_CODE,
7858   RELATED_DOC_TRX_ID         ,
7859   -- REL_DOC_HDR_TRX_USER_KEY1  ,
7860   -- REL_DOC_HDR_TRX_USER_KEY2  ,
7861   -- REL_DOC_HDR_TRX_USER_KEY3  ,
7862   -- REL_DOC_HDR_TRX_USER_KEY4  ,
7863   -- REL_DOC_HDR_TRX_USER_KEY5  ,
7864   -- REL_DOC_HDR_TRX_USER_KEY6  ,
7865   RELATED_DOC_NUMBER         ,
7866   RELATED_DOC_DATE           ,
7867   APPLIED_FROM_APPLICATION_ID,
7868   APPLIED_FROM_ENTITY_CODE   ,
7869   APPLIED_FROM_EVENT_CLASS_CODE,
7870   APPLIED_FROM_TRX_ID        ,
7871   -- APP_FROM_HDR_TRX_USER_KEY1 ,
7872   -- APP_FROM_HDR_TRX_USER_KEY2 ,
7873   -- APP_FROM_HDR_TRX_USER_KEY3 ,
7874   -- APP_FROM_HDR_TRX_USER_KEY4 ,
7875   -- APP_FROM_HDR_TRX_USER_KEY5 ,
7876   -- APP_FROM_HDR_TRX_USER_KEY6 ,
7877   APPLIED_FROM_LINE_ID       ,
7878   APPLIED_FROM_TRX_NUMBER    ,
7879   -- APP_FROM_LIN_TRX_USER_KEY1 ,
7880   -- APP_FROM_LIN_TRX_USER_KEY2 ,
7881   -- APP_FROM_LIN_TRX_USER_KEY3 ,
7882   -- APP_FROM_LIN_TRX_USER_KEY4 ,
7883   -- APP_FROM_LIN_TRX_USER_KEY5 ,
7884   -- APP_FROM_LIN_TRX_USER_KEY6 ,
7885   ADJUSTED_DOC_APPLICATION_ID,
7886   ADJUSTED_DOC_ENTITY_CODE   ,
7887   ADJUSTED_DOC_EVENT_CLASS_CODE,
7888   ADJUSTED_DOC_TRX_ID        ,
7889   -- ADJ_DOC_HDR_TRX_USER_KEY1  ,
7890   -- ADJ_DOC_HDR_TRX_USER_KEY2  ,
7891   -- ADJ_DOC_HDR_TRX_USER_KEY3  ,
7892   -- ADJ_DOC_HDR_TRX_USER_KEY4  ,
7893   -- ADJ_DOC_HDR_TRX_USER_KEY5  ,
7894   -- ADJ_DOC_HDR_TRX_USER_KEY6  ,
7895   ADJUSTED_DOC_LINE_ID       ,
7896   -- ADJ_DOC_LIN_TRX_USER_KEY1  ,
7897   -- ADJ_DOC_LIN_TRX_USER_KEY2  ,
7898   -- ADJ_DOC_LIN_TRX_USER_KEY3  ,
7899   -- ADJ_DOC_LIN_TRX_USER_KEY4  ,
7900   -- ADJ_DOC_LIN_TRX_USER_KEY5  ,
7901   -- ADJ_DOC_LIN_TRX_USER_KEY6  ,
7902   ADJUSTED_DOC_NUMBER        ,
7903   ADJUSTED_DOC_DATE          ,
7904   APPLIED_TO_APPLICATION_ID  ,
7905   APPLIED_TO_ENTITY_CODE     ,
7906   APPLIED_TO_EVENT_CLASS_CODE,
7907   APPLIED_TO_TRX_ID          ,
7908   -- APP_TO_HDR_TRX_USER_KEY1   ,
7909   -- APP_TO_HDR_TRX_USER_KEY2   ,
7910   -- APP_TO_HDR_TRX_USER_KEY3   ,
7911   -- APP_TO_HDR_TRX_USER_KEY4   ,
7912   -- APP_TO_HDR_TRX_USER_KEY5   ,
7913   -- APP_TO_HDR_TRX_USER_KEY6   ,
7914   APPLIED_TO_TRX_LINE_ID     ,
7915   -- APP_TO_LIN_TRX_USER_KEY1   ,
7916   -- APP_TO_LIN_TRX_USER_KEY2   ,
7917   -- APP_TO_LIN_TRX_USER_KEY3   ,
7918   -- APP_TO_LIN_TRX_USER_KEY4   ,
7919   -- APP_TO_LIN_TRX_USER_KEY5   ,
7920   -- APP_TO_LIN_TRX_USER_KEY6   ,
7921   TRX_ID_LEVEL2              ,
7922   TRX_ID_LEVEL3              ,
7923   TRX_ID_LEVEL4              ,
7924   TRX_ID_LEVEL5              ,
7925   TRX_ID_LEVEL6              ,
7926   -- header.HDR_TRX_USER_KEY1       HDR_TRX_USER_KEY1 ,
7927   -- header.HDR_TRX_USER_KEY2       HDR_TRX_USER_KEY2 ,
7928   -- header.HDR_TRX_USER_KEY3       HDR_TRX_USER_KEY3 ,
7929   -- header.HDR_TRX_USER_KEY4       HDR_TRX_USER_KEY4 ,
7930   -- header.HDR_TRX_USER_KEY5       HDR_TRX_USER_KEY5 ,
7931   -- header.HDR_TRX_USER_KEY6       HDR_TRX_USER_KEY6 ,
7932   -- LINE_TRX_USER_KEY1         ,
7933   -- LINE_TRX_USER_KEY2         ,
7934   -- LINE_TRX_USER_KEY3         ,
7935   -- LINE_TRX_USER_KEY4         ,
7936   -- LINE_TRX_USER_KEY5         ,
7937   -- LINE_TRX_USER_KEY6         ,
7938   TRX_NUMBER                 ,
7939   TRX_DESCRIPTION            ,
7940   TRX_LINE_NUMBER            ,
7941   TRX_LINE_DESCRIPTION       ,
7942   PRODUCT_DESCRIPTION        ,
7943   TRX_WAYBILL_NUMBER         ,
7944   TRX_COMMUNICATED_DATE      ,
7945   TRX_LINE_GL_DATE           ,
7946   BATCH_SOURCE_ID            ,
7947   BATCH_SOURCE_NAME          ,
7948   DOC_SEQ_ID                 ,
7949   DOC_SEQ_NAME               ,
7950   DOC_SEQ_VALUE              ,
7951   TRX_DUE_DATE               ,
7952   TRX_TYPE_DESCRIPTION       ,
7953   MERCHANT_PARTY_NAME        ,
7954   MERCHANT_PARTY_DOCUMENT_NUMBER,
7955   MERCHANT_PARTY_REFERENCE   ,
7956   MERCHANT_PARTY_TAXPAYER_ID ,
7957   MERCHANT_PARTY_TAX_REG_NUMBER,
7958   PAYING_PARTY_ID            ,
7959   OWN_HQ_PARTY_ID            ,
7960   TRADING_HQ_PARTY_ID        ,
7961   POI_PARTY_ID               ,
7962   POD_PARTY_ID               ,
7963   TITLE_TRANSFER_PARTY_ID    ,
7964   PAYING_PARTY_SITE_ID       ,
7965   OWN_HQ_PARTY_SITE_ID       ,
7966   TRADING_HQ_PARTY_SITE_ID   ,
7967   POI_PARTY_SITE_ID          ,
7968   POD_PARTY_SITE_ID          ,
7969   TITLE_TRANSFER_PARTY_SITE_ID,
7970   PAYING_LOCATION_ID         ,
7971   OWN_HQ_LOCATION_ID         ,
7972   TRADING_HQ_LOCATION_ID     ,
7973   POC_LOCATION_ID            ,
7974   POI_LOCATION_ID            ,
7975   POD_LOCATION_ID            ,
7976   TITLE_TRANSFER_LOCATION_ID ,
7977   ASSESSABLE_VALUE           ,
7978   ASSET_FLAG                 ,
7979   ASSET_NUMBER               ,
7980   ASSET_ACCUM_DEPRECIATION   ,
7981   ASSET_TYPE                 ,
7982   ASSET_COST                 ,
7983   -- NUMERIC1                   ,
7984   -- NUMERIC2                   ,
7985   -- NUMERIC3                   ,
7986   -- NUMERIC4                   ,
7987   -- NUMERIC5                   ,
7988   -- NUMERIC6                   ,
7989   -- NUMERIC7                   ,
7990   -- NUMERIC8                   ,
7991   -- NUMERIC9                   ,
7992   -- NUMERIC10                  ,
7993   -- CHAR1                      ,
7994   -- CHAR2                      ,
7995   -- CHAR3                      ,
7996   -- CHAR4                      ,
7997   -- CHAR5                      ,
7998   -- CHAR6                      ,
7999   -- CHAR7                      ,
8000   -- CHAR8                      ,
8001   -- CHAR9                      ,
8002   -- CHAR10                     ,
8003   -- DATE1                      ,
8004   -- DATE2                      ,
8005   -- DATE3                      ,
8006   -- DATE4                      ,
8007   -- DATE5                      ,
8008   -- DATE6                      ,
8009   -- DATE7                      ,
8010   -- DATE8                      ,
8011   -- DATE9                      ,
8012   -- DATE10                     ,
8013   FIRST_PTY_ORG_ID           ,
8014   TAX_EVENT_CLASS_CODE       ,
8015   TAX_EVENT_TYPE_CODE        ,
8016   DOC_EVENT_STATUS               ,
8017   -- RDNG_SHIP_TO_PTY_TX_PROF_ID    ,
8018   -- RDNG_SHIP_FROM_PTY_TX_PROF_ID  ,
8019   -- RDNG_BILL_TO_PTY_TX_PROF_ID    ,
8020   -- RDNG_BILL_FROM_PTY_TX_PROF_ID  ,
8021   -- RDNG_SHIP_TO_PTY_TX_P_ST_ID    ,
8022   -- RDNG_SHIP_FROM_PTY_TX_P_ST_ID  ,
8023   -- RDNG_BILL_TO_PTY_TX_P_ST_ID    ,
8024   -- RDNG_BILL_FROM_PTY_TX_P_ST_ID  ,
8025   SHIP_TO_PARTY_TAX_PROF_ID      ,
8026   SHIP_FROM_PARTY_TAX_PROF_ID    ,
8027   POA_PARTY_TAX_PROF_ID          ,
8028   POO_PARTY_TAX_PROF_ID          ,
8029   PAYING_PARTY_TAX_PROF_ID       ,
8030   OWN_HQ_PARTY_TAX_PROF_ID       ,
8031   TRADING_HQ_PARTY_TAX_PROF_ID   ,
8032   POI_PARTY_TAX_PROF_ID          ,
8033   POD_PARTY_TAX_PROF_ID          ,
8034   BILL_TO_PARTY_TAX_PROF_ID      ,
8035   BILL_FROM_PARTY_TAX_PROF_ID    ,
8036   TITLE_TRANS_PARTY_TAX_PROF_ID  ,
8037   SHIP_TO_SITE_TAX_PROF_ID       ,
8038   SHIP_FROM_SITE_TAX_PROF_ID     ,
8039   POA_SITE_TAX_PROF_ID           ,
8040   POO_SITE_TAX_PROF_ID           ,
8041   PAYING_SITE_TAX_PROF_ID        ,
8042   OWN_HQ_SITE_TAX_PROF_ID        ,
8043   TRADING_HQ_SITE_TAX_PROF_ID    ,
8044   POI_SITE_TAX_PROF_ID           ,
8045   POD_SITE_TAX_PROF_ID           ,
8046   BILL_TO_SITE_TAX_PROF_ID       ,
8047   BILL_FROM_SITE_TAX_PROF_ID     ,
8048   TITLE_TRANS_SITE_TAX_PROF_ID   ,
8049   MERCHANT_PARTY_TAX_PROF_ID     ,
8050   HQ_ESTB_PARTY_TAX_PROF_ID      ,
8051   DOCUMENT_SUB_TYPE              ,
8052   SUPPLIER_TAX_INVOICE_NUMBER    ,
8053   SUPPLIER_TAX_INVOICE_DATE      ,
8054   SUPPLIER_EXCHANGE_RATE         ,
8055   TAX_INVOICE_DATE               ,
8056   TAX_INVOICE_NUMBER             ,
8057   LINE_AMT_INCLUDES_TAX_FLAG     ,
8058   QUOTE_FLAG                     ,
8059   DEFAULT_TAXATION_COUNTRY       ,
8060   HISTORICAL_FLAG                ,
8061   INTERNAL_ORG_LOCATION_ID       ,
8062   CTRL_HDR_TX_APPL_FLAG          ,
8063   CTRL_TOTAL_HDR_TX_AMT          ,
8064   CTRL_TOTAL_LINE_TX_AMT         ,
8065   --NULL DIST_LEVEL_ACTION       ,
8066   --NULL APPLIED_FROM_TAX_DIST_ID,
8067   --NULL ADJUSTED_DOC_TAX_DIST_ID,
8068   --NULL TASK_ID,
8069   --NULL AWARD_ID,
8070   --NULL PROJECT_ID,
8071   --NULL EXPENDITURE_TYPE,
8072   --NULL EXPENDITURE_ORGANIZATION_ID,
8073   --NULL EXPENDITURE_ITEM_DATE,
8074   --NULL TRX_LINE_DIST_AMT,
8075   --NULL TRX_LINE_DIST_QUANTITY,
8076   --NULL REF_DOC_CURR_CONV_RATE,
8077   --NULL ITEM_DIST_NUMBER,
8078   --NULL REF_DOC_DIST_ID,
8079   --NULL TRX_LINE_DIST_TAX_AMT,
8080   --NULL TRX_LINE_DIST_ID ,
8081   --NULL DIST_TRX_USER_KEY1,
8082   --NULL DIST_TRX_USER_KEY2,
8083   --NULL DIST_TRX_USER_KEY3,
8084   --NULL DIST_TRX_USER_KEY4,
8085   --NULL DIST_TRX_USER_KEY5,
8086   --NULL DIST_TRX_USER_KEY6,
8087   --NULL APPLIED_FROM_DIST_ID,
8088   --NULL APP_FROM_DST_TRX_USER_KEY1 ,
8089   --NULL APP_FROM_DST_TRX_USER_KEY2,
8090   --NULL APP_FROM_DST_TRX_USER_KEY3,
8091   --NULL APP_FROM_DST_TRX_USER_KEY4,
8092   --NULL APP_FROM_DST_TRX_USER_KEY5,
8093   --NULL APP_FROM_DST_TRX_USER_KEY6,
8094   --NULL ADJUSTED_DOC_DIST_ID,
8095   --NULL ADJ_DOC_DST_TRX_USER_KEY1,
8096   --NULL ADJ_DOC_DST_TRX_USER_KEY2,
8097   --NULL ADJ_DOC_DST_TRX_USER_KEY3,
8098   --NULL ADJ_DOC_DST_TRX_USER_KEY4,
8099   --NULL ADJ_DOC_DST_TRX_USER_KEY5,
8100   --NULL ADJ_DOC_DST_TRX_USER_KEY6,
8101   INPUT_TAX_CLASSIFICATION_CODE   ,
8102   OUTPUT_TAX_CLASSIFICATION_CODE  ,
8103   PORT_OF_ENTRY_CODE              ,
8104   TAX_REPORTING_FLAG              ,
8105   --NULL TAX_AMT_INCLUDED_FLAG    ,
8106   --NULL COMP0UNDING_TAX_FLAG     ,
8107   NVL(lines.SHIP_THIRD_PTY_ACCT_SITE_ID, header.SHIP_THIRD_PTY_ACCT_SITE_ID),
8108   NVL(lines.BILL_THIRD_PTY_ACCT_SITE_ID, header.BILL_THIRD_PTY_ACCT_SITE_ID),
8109   NVL(lines.SHIP_TO_CUST_ACCT_SITE_USE_ID, header.SHIP_TO_CUST_ACCT_SITE_USE_ID),
8110   NVL(lines.BILL_TO_CUST_ACCT_SITE_USE_ID, header.BILL_TO_CUST_ACCT_SITE_USE_ID),
8111   PROVNL_TAX_DETERMINATION_DATE   ,
8112   NVL(lines.SHIP_THIRD_PTY_ACCT_ID, header.SHIP_THIRD_PTY_ACCT_ID),
8113   NVL(lines.BILL_THIRD_PTY_ACCT_ID, header.BILL_THIRD_PTY_ACCT_ID),
8114   SOURCE_APPLICATION_ID           ,
8115   SOURCE_ENTITY_CODE              ,
8116   SOURCE_EVENT_CLASS_CODE         ,
8117   SOURCE_TRX_ID                   ,
8118   SOURCE_LINE_ID                  ,
8119   SOURCE_TRX_LEVEL_TYPE           ,
8120   --NULL INSERT_UPDATE_FLAG       ,
8121   header.APPLIED_TO_TRX_NUMBER     APPLIED_TO_TRX_NUMBER        ,
8122   START_EXPENSE_DATE              ,
8123   TRX_BATCH_ID                    ,
8124   --NULL RECORD_TYPE_CODE         ,
8125   REF_DOC_TRX_LEVEL_TYPE          ,
8126   APPLIED_FROM_TRX_LEVEL_TYPE     ,
8127   APPLIED_TO_TRX_LEVEL_TYPE       ,
8128   ADJUSTED_DOC_TRX_LEVEL_TYPE     ,
8129   DEFAULTING_ATTRIBUTE1           ,
8130   DEFAULTING_ATTRIBUTE2           ,
8131   DEFAULTING_ATTRIBUTE3           ,
8132   DEFAULTING_ATTRIBUTE4           ,
8133   DEFAULTING_ATTRIBUTE5           ,
8134   DEFAULTING_ATTRIBUTE6           ,
8135   DEFAULTING_ATTRIBUTE7           ,
8136   DEFAULTING_ATTRIBUTE8           ,
8137   DEFAULTING_ATTRIBUTE9           ,
8138   DEFAULTING_ATTRIBUTE10          ,
8139   --NULL TAX_PROCESSING_COMPLETED_FLAG,
8140   APPLICATION_DOC_STATUS          ,
8141   --NULL OVERRIDE_RECOVERY_RATE   ,
8142   --NULL TAX_CALCULATION_DONE_FLAG,
8143   SOURCE_TAX_LINE_ID              ,
8144   --NULL REVERSED_APPLN_ID        ,
8145   --NULL REVERSED_ENTITY_CODE,
8146   --NULL REVERSED_EVNT_CLS_CODE,
8147   --NULL REVERSED_TRX_ID,
8148   --NULL REVERSED_TRX_LEVEL_TYPE,
8149   --NULL REVERSED_TRX_LINE_ID,
8150   EXEMPTION_CONTROL_FLAG          ,
8151   EXEMPT_REASON_CODE              ,
8152   INTERFACE_ENTITY_CODE           ,
8153   INTERFACE_LINE_ID               ,
8154   HISTORICAL_TAX_CODE_ID    ,
8155   USER_UPD_DET_FACTORS_FLAG -- Bug 4703541
8156   FROM
8157      ZX_TRANSACTION_LINES_GT Lines,
8158      ZX_TRX_HEADERS_GT Header
8159 
8160   WHERE
8161 
8162       Lines.application_id = Header.application_id
8163   AND Lines.entity_code = Header.entity_code
8164   AND Lines.event_class_code = Header.event_class_code
8165   AND Lines.trx_id = Header.trx_id;
8166 
8167   x_return_status       VARCHAR2(20);
8168   l_error_buffer        VARCHAR2(240);
8169   l_event_class_rec     ZX_API_PUB.event_class_rec_type;
8170 
8171         l_prev_trx_id             ZX_TRX_HEADERS_GT.TRX_ID%TYPE;
8172         l_prev_application_id     ZX_TRX_HEADERS_GT.APPLICATION_ID%TYPE;
8173         l_prev_entity_code        ZX_TRX_HEADERS_GT.ENTITY_CODE%TYPE;
8174         l_prev_event_class_code   ZX_TRX_HEADERS_GT.EVENT_CLASS_CODE%TYPE;
8175 
8176         l_cur_trx_id              ZX_TRX_HEADERS_GT.TRX_ID%TYPE;
8177         l_cur_application_id      ZX_TRX_HEADERS_GT.APPLICATION_ID%TYPE;
8178         l_cur_entity_code         ZX_TRX_HEADERS_GT.ENTITY_CODE%TYPE;
8179         l_cur_event_class_code    ZX_TRX_HEADERS_GT.EVENT_CLASS_CODE%TYPE;
8180 
8181 --   Bug 4703541
8182 --  global_structure_rec  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_rec_type;
8183 
8184 
8185 BEGIN
8186 
8187   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
8188 
8189   IF (g_level_event >= g_current_runtime_level ) THEN
8190   FND_LOG.STRING(g_level_event,
8191        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs.BEGIN',
8192        'ZX_VALIDATE_API_PKG: def_additional_tax_attribs(+)');
8193   END IF;
8194 
8195 /** Bug 4703541 :
8196 Change Made : Replace global_structure_rec with ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl
8197 as this is being directly referred in ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS **/
8198     IF (g_level_statement >= g_current_runtime_level ) THEN
8199         FND_LOG.STRING(g_level_statement,
8200        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8201        'Before opening the cursor - gtt_to_glb_strctr_csr');
8202     END IF;
8203 
8204         x_return_status := FND_API.G_RET_STS_SUCCESS;
8205   OPEN gtt_to_glb_strctr_csr;
8206 
8207     IF (g_level_statement >= g_current_runtime_level ) THEN
8208         FND_LOG.STRING(g_level_statement,
8209        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8210        'After opening the cursor - gtt_to_glb_strctr_csr');
8211     END IF;
8212 
8213     LOOP
8214   FETCH gtt_to_glb_strctr_csr
8215   BULK COLLECT INTO
8216   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID,
8217   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID,
8218   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE,
8219   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE,
8220   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE ,
8221   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID,
8222   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LEVEL_TYPE,
8223   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_ID ,
8224   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_LEVEL_ACTION,
8225   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_CLASS ,
8226   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE,
8227   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DOC_REVISION,
8228   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID,
8229   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE,
8230   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE,
8231   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE ,
8232   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE,
8233   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MINIMUM_ACCOUNTABLE_UNIT,
8234   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRECISION,
8235   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_SHIPPING_DATE ,
8236   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_RECEIPT_DATE,
8237   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID ,
8238   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_TO_PARTY_ID,
8239   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_FROM_PARTY_ID,
8240   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID,
8241   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_FROM_PARTY_ID,
8242   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_TO_PARTY_SITE_ID,
8243   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_FROM_PARTY_SITE_ID,
8244   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_TO_PARTY_SITE_ID,
8245   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_FROM_PARTY_SITE_ID ,
8246   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ESTABLISHMENT_ID ,
8247   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_TYPE ,
8248   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_DATE,
8249   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BUSINESS_CATEGORY,
8250   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_INTENDED_USE,
8251   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS,
8252   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_AMT,
8253   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_QUANTITY  ,
8254   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.UNIT_PRICE,
8255   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EXEMPT_CERTIFICATE_NUMBER,
8256   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EXEMPT_REASON,
8257   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CASH_DISCOUNT,
8258   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.VOLUME_DISCOUNT,
8259   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRADING_DISCOUNT,
8260   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRANSFER_CHARGE,
8261   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRANSPORTATION_CHARGE,
8262   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INSURANCE_CHARGE,
8263   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OTHER_CHARGE,
8264   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_ID ,
8265   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_FISC_CLASSIFICATION,
8266   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_ORG_ID             ,
8267   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.UOM_CODE,
8268   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE ,
8269   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CODE,
8270   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_CATEGORY,
8271   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_SIC_CODE ,
8272   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.FOB_POINT,
8273   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_PARTY_ID,
8274   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_PARTY_ID,
8275   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POA_PARTY_ID ,
8276   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POO_PARTY_ID,
8277   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_PARTY_ID,
8278   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_FROM_PARTY_ID,
8279   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_ID,
8280   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_PARTY_SITE_ID,
8281   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_PARTY_SITE_ID ,
8282   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POA_PARTY_SITE_ID ,
8283   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POO_PARTY_SITE_ID,
8284   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_PARTY_SITE_ID,
8285   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_FROM_PARTY_SITE_ID,
8286   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_LOCATION_ID ,
8287   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_LOCATION_ID,
8288   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POA_LOCATION_ID ,
8289   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POO_LOCATION_ID  ,
8290   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_LOCATION_ID,
8291   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_FROM_LOCATION_ID,
8292   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ACCOUNT_CCID  ,
8293   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ACCOUNT_STRING   ,
8294   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_COUNTRY ,
8295   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RECEIVABLES_TRX_TYPE_ID ,
8296   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_APPLICATION_ID ,
8297   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_ENTITY_CODE,
8298   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_EVENT_CLASS_CODE,
8299   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_TRX_ID  ,
8300 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_HDR_TRX_USER_KEY1,
8301 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_HDR_TRX_USER_KEY2,
8302 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_HDR_TRX_USER_KEY3,
8303 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_HDR_TRX_USER_KEY4,
8304 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_HDR_TRX_USER_KEY5,
8305 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_HDR_TRX_USER_KEY6,
8306   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LINE_ID   ,
8307 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LIN_TRX_USER_KEY1,
8308 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LIN_TRX_USER_KEY2,
8309 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LIN_TRX_USER_KEY3,
8310 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LIN_TRX_USER_KEY4,
8311 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LIN_TRX_USER_KEY5,
8312 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LIN_TRX_USER_KEY6,
8313   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_LINE_QUANTITY,
8314   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_APPLICATION_ID ,
8315   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_ENTITY_CODE ,
8316   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_EVENT_CLASS_CODE,
8317   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_TRX_ID,
8318 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REL_DOC_HDR_TRX_USER_KEY1 ,
8319 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REL_DOC_HDR_TRX_USER_KEY2 ,
8320 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REL_DOC_HDR_TRX_USER_KEY3 ,
8321 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REL_DOC_HDR_TRX_USER_KEY4 ,
8322 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REL_DOC_HDR_TRX_USER_KEY5 ,
8323 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REL_DOC_HDR_TRX_USER_KEY6 ,
8324   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_NUMBER,
8325   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_DATE  ,
8326   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_FROM_APPLICATION_ID,
8327   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_FROM_ENTITY_CODE   ,
8328   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_FROM_EVENT_CLASS_CODE,
8329   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_FROM_TRX_ID        ,
8330 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_HDR_TRX_USER_KEY1 ,
8331 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_HDR_TRX_USER_KEY2 ,
8332 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_HDR_TRX_USER_KEY3 ,
8333 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_HDR_TRX_USER_KEY4 ,
8334 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_HDR_TRX_USER_KEY5 ,
8335 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_HDR_TRX_USER_KEY6 ,
8336   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_FROM_LINE_ID ,
8337   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_FROM_TRX_NUMBER    ,
8338 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_LIN_TRX_USER_KEY1 ,
8339 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_LIN_TRX_USER_KEY2 ,
8340 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_LIN_TRX_USER_KEY3 ,
8341 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_LIN_TRX_USER_KEY4 ,
8342 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_LIN_TRX_USER_KEY5 ,
8343 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_FROM_LIN_TRX_USER_KEY6 ,
8344   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_APPLICATION_ID,
8345   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_ENTITY_CODE   ,
8346   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_EVENT_CLASS_CODE,
8347   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_TRX_ID        ,
8348 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_HDR_TRX_USER_KEY1  ,
8349 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_HDR_TRX_USER_KEY2  ,
8350 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_HDR_TRX_USER_KEY3  ,
8351 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_HDR_TRX_USER_KEY4  ,
8352 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_HDR_TRX_USER_KEY5  ,
8353 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_HDR_TRX_USER_KEY6  ,
8354   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_LINE_ID       ,
8355 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_LIN_TRX_USER_KEY1  ,
8356 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_LIN_TRX_USER_KEY2  ,
8357 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_LIN_TRX_USER_KEY3  ,
8358 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_LIN_TRX_USER_KEY4  ,
8359 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_LIN_TRX_USER_KEY5  ,
8360 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJ_DOC_LIN_TRX_USER_KEY6  ,
8361   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_NUMBER        ,
8362   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_DATE          ,
8363   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_TO_APPLICATION_ID  ,
8364   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_TO_ENTITY_CODE     ,
8365   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_TO_EVENT_CLASS_CODE,
8366   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_TO_TRX_ID          ,
8367 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_HDR_TRX_USER_KEY1   ,
8368 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_HDR_TRX_USER_KEY2   ,
8369 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_HDR_TRX_USER_KEY3   ,
8370 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_HDR_TRX_USER_KEY4   ,
8371 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_HDR_TRX_USER_KEY5   ,
8372 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_HDR_TRX_USER_KEY6   ,
8373   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_TO_TRX_LINE_ID     ,
8374 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_LIN_TRX_USER_KEY1   ,
8375 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_LIN_TRX_USER_KEY2   ,
8376 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_LIN_TRX_USER_KEY3   ,
8377 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_LIN_TRX_USER_KEY4   ,
8378 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_LIN_TRX_USER_KEY5   ,
8379 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APP_TO_LIN_TRX_USER_KEY6   ,
8380   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID_LEVEL2              ,
8381   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID_LEVEL3              ,
8382   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID_LEVEL4              ,
8383   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID_LEVEL5              ,
8384   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID_LEVEL6              ,
8385 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HDR_TRX_USER_KEY1 ,
8386 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HDR_TRX_USER_KEY2 ,
8387 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HDR_TRX_USER_KEY3 ,
8388 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HDR_TRX_USER_KEY4 ,
8389 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HDR_TRX_USER_KEY5 ,
8390 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HDR_TRX_USER_KEY6 ,
8391 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_TRX_USER_KEY1,
8392 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_TRX_USER_KEY2,
8393 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_TRX_USER_KEY3,
8394 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_TRX_USER_KEY4,
8395 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_TRX_USER_KEY5,
8396 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_TRX_USER_KEY6,
8397   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_NUMBER,
8398   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DESCRIPTION,
8399   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_NUMBER            ,
8400   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_DESCRIPTION       ,
8401   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_DESCRIPTION        ,
8402   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_WAYBILL_NUMBER         ,
8403   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_COMMUNICATED_DATE      ,
8404   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_GL_DATE           ,
8405   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BATCH_SOURCE_ID            ,
8406   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BATCH_SOURCE_NAME          ,
8407   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOC_SEQ_ID                 ,
8408   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOC_SEQ_NAME               ,
8409   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOC_SEQ_VALUE              ,
8410   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DUE_DATE               ,
8411   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_TYPE_DESCRIPTION       ,
8412   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_NAME        ,
8413   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_DOCUMENT_NUMBER,
8414   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_REFERENCE   ,
8415   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_TAXPAYER_ID ,
8416   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_TAX_REG_NUMBER,
8417   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PAYING_PARTY_ID            ,
8418   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OWN_HQ_PARTY_ID            ,
8419   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRADING_HQ_PARTY_ID        ,
8420   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POI_PARTY_ID               ,
8421   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POD_PARTY_ID               ,
8422   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TITLE_TRANSFER_PARTY_ID    ,
8423   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PAYING_PARTY_SITE_ID       ,
8424   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OWN_HQ_PARTY_SITE_ID       ,
8425   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRADING_HQ_PARTY_SITE_ID   ,
8426   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POI_PARTY_SITE_ID          ,
8427   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POD_PARTY_SITE_ID          ,
8428   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TITLE_TRANSFER_PARTY_SITE_ID,
8429   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PAYING_LOCATION_ID         ,
8430   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OWN_HQ_LOCATION_ID         ,
8431   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRADING_HQ_LOCATION_ID     ,
8432   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POC_LOCATION_ID            ,
8433   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POI_LOCATION_ID            ,
8434   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POD_LOCATION_ID            ,
8435   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TITLE_TRANSFER_LOCATION_ID ,
8436   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSESSABLE_VALUE           ,
8437   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSET_FLAG                 ,
8438   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSET_NUMBER               ,
8439   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSET_ACCUM_DEPRECIATION   ,
8440   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSET_TYPE                 ,
8441   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ASSET_COST                 ,
8442 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC1                   ,
8443 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC2                   ,
8444 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC3                   ,
8445 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC4                   ,
8446 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC5                   ,
8447 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC6                   ,
8448 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC7                   ,
8449 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC8                   ,
8450 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC9                   ,
8451 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.NUMERIC10                   ,
8452 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR1                      ,
8453 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR2                      ,
8454 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR3                      ,
8455 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR4                      ,
8456 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR5                      ,
8457 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR6                      ,
8458 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR7                      ,
8459 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR8                      ,
8460 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR9                      ,
8461 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CHAR10                      ,
8462 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE1                      ,
8463 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE2                      ,
8464 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE3                      ,
8465 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE4                     ,
8466 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE5                      ,
8467 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE6                      ,
8468 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE7                      ,
8469 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE8                      ,
8470 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE9                      ,
8471 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DATE10                      ,
8472   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.FIRST_PTY_ORG_ID           ,
8473   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_EVENT_CLASS_CODE       ,
8474   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_EVENT_TYPE_CODE        ,
8475   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOC_EVENT_STATUS               ,
8476 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_SHIP_TO_PTY_TX_PROF_ID    ,
8477 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_SHIP_FROM_PTY_TX_PROF_ID  ,
8478 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_BILL_TO_PTY_TX_PROF_ID    ,
8479 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_BILL_FROM_PTY_TX_PROF_ID  ,
8480 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_SHIP_TO_PTY_TX_P_ST_ID    ,
8481 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_SHIP_FROM_PTY_TX_P_ST_ID  ,
8482 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_BILL_TO_PTY_TX_P_ST_ID    ,
8483 --  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RDNG_BILL_FROM_PTY_TX_P_ST_ID  ,
8484   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_PARTY_TAX_PROF_ID      ,
8485   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_PARTY_TAX_PROF_ID    ,
8486   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POA_PARTY_TAX_PROF_ID          ,
8487   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POO_PARTY_TAX_PROF_ID          ,
8488   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PAYING_PARTY_TAX_PROF_ID       ,
8489   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OWN_HQ_PARTY_TAX_PROF_ID       ,
8490   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRADING_HQ_PARTY_TAX_PROF_ID   ,
8491   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POI_PARTY_TAX_PROF_ID          ,
8492   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POD_PARTY_TAX_PROF_ID          ,
8493   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_PARTY_TAX_PROF_ID      ,
8494   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_FROM_PARTY_TAX_PROF_ID    ,
8495   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TITLE_TRANS_PARTY_TAX_PROF_ID  ,
8496   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_SITE_TAX_PROF_ID       ,
8497   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_FROM_SITE_TAX_PROF_ID     ,
8498   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POA_SITE_TAX_PROF_ID           ,
8499   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POO_SITE_TAX_PROF_ID           ,
8500   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PAYING_SITE_TAX_PROF_ID        ,
8501   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OWN_HQ_SITE_TAX_PROF_ID        ,
8502   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRADING_HQ_SITE_TAX_PROF_ID    ,
8503   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POI_SITE_TAX_PROF_ID           ,
8504   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.POD_SITE_TAX_PROF_ID           ,
8505   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_SITE_TAX_PROF_ID       ,
8506   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_FROM_SITE_TAX_PROF_ID     ,
8507   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TITLE_TRANS_SITE_TAX_PROF_ID   ,
8508   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.MERCHANT_PARTY_TAX_PROF_ID     ,
8509   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HQ_ESTB_PARTY_TAX_PROF_ID      ,
8510   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE              ,
8511   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SUPPLIER_TAX_INVOICE_NUMBER    ,
8512   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SUPPLIER_TAX_INVOICE_DATE      ,
8513   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SUPPLIER_EXCHANGE_RATE         ,
8514   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_DATE               ,
8515   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_NUMBER             ,
8516   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LINE_AMT_INCLUDES_TAX_FLAG     ,
8517   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.QUOTE_FLAG                     ,
8518   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY       ,
8519   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HISTORICAL_FLAG                ,
8520   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORG_LOCATION_ID       ,
8521   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_HDR_TX_APPL_FLAG          ,
8522   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT          ,
8523   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_LINE_TX_AMT         ,
8524   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INPUT_TAX_CLASSIFICATION_CODE   ,
8525   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.OUTPUT_TAX_CLASSIFICATION_CODE  ,
8526   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PORT_OF_ENTRY_CODE              ,
8527   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_REPORTING_FLAG              ,
8528   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_THIRD_PTY_ACCT_SITE_ID     ,
8529   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_THIRD_PTY_ACCT_SITE_ID     ,
8530   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_TO_CUST_ACCT_SITE_USE_ID   ,
8531   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_TO_CUST_ACCT_SITE_USE_ID   ,
8532   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PROVNL_TAX_DETERMINATION_DATE   ,
8533   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SHIP_THIRD_PTY_ACCT_ID          ,
8534   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.BILL_THIRD_PTY_ACCT_ID          ,
8535   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_APPLICATION_ID           ,
8536   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_ENTITY_CODE              ,
8537   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_EVENT_CLASS_CODE         ,
8538   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_TRX_ID                   ,
8539   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_LINE_ID                  ,
8540   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_TRX_LEVEL_TYPE           ,
8541   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_TO_TRX_NUMBER        ,
8542   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.START_EXPENSE_DATE              ,
8543   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_BATCH_ID                    ,
8544   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.REF_DOC_TRX_LEVEL_TYPE          ,
8545   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_FROM_TRX_LEVEL_TYPE     ,
8546   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLIED_TO_TRX_LEVEL_TYPE       ,
8547   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ADJUSTED_DOC_TRX_LEVEL_TYPE     ,
8548   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE1           ,
8549   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE2           ,
8550   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE3           ,
8551   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE4           ,
8552   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE5           ,
8553   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE6           ,
8554   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE7           ,
8555   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE8           ,
8556   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE9           ,
8557   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULTING_ATTRIBUTE10           ,
8558   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_DOC_STATUS          ,
8559   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.SOURCE_TAX_LINE_ID              ,
8560   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EXEMPTION_CONTROL_FLAG          ,
8561   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EXEMPT_REASON_CODE              ,
8562   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERFACE_ENTITY_CODE           ,
8563   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERFACE_LINE_ID               ,
8564   ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.HISTORICAL_TAX_CODE_ID    ,
8565         ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_UPD_DET_FACTORS_FLAG -- Bug 4703541
8566         LIMIT C_LINES_PER_COMMIT;
8567 
8568   FOR i in 1..nvl(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID.last,0)
8569 
8570   LOOP
8571 
8572             l_cur_trx_id             := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(i);
8573             l_cur_application_id     := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(i);
8574             l_cur_entity_code        := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(i);
8575             l_cur_event_class_code   := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(i);
8576 
8577             -- If current document Information is different from previous document information
8578             -- then store it in the event class rec.
8579             IF ( i = 1 ) OR  NOT ( l_prev_trx_id = l_cur_trx_id AND l_prev_application_id = l_cur_application_id AND
8580                      l_prev_entity_code = l_cur_entity_code AND l_prev_event_class_code = l_cur_event_class_code ) THEN
8581 
8582               l_prev_trx_id             := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(i);
8583               l_prev_application_id     := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(i);
8584               l_prev_entity_code        := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(i);
8585               l_prev_event_class_code   := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(i);
8586 
8587     l_event_class_rec.INTERNAL_ORGANIZATION_ID     :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID(i) ;
8588     l_event_class_rec.LEGAL_ENTITY_ID              :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEGAL_ENTITY_ID(i) ;
8589     l_event_class_rec.LEDGER_ID                    :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.LEDGER_ID(i) ;
8590     l_event_class_rec.APPLICATION_ID               :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(i) ;
8591     l_event_class_rec.ENTITY_CODE                  :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(i) ;
8592     l_event_class_rec.EVENT_CLASS_CODE             :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(i) ;
8593     l_event_class_rec.EVENT_TYPE_CODE              :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_TYPE_CODE(i) ;
8594     l_event_class_rec.CTRL_TOTAL_HDR_TX_AMT        :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CTRL_TOTAL_HDR_TX_AMT(i) ;
8595     l_event_class_rec.TRX_ID                       :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(i) ;
8596     l_event_class_rec.TRX_DATE                     :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_DATE(i) ;
8597     l_event_class_rec.REL_DOC_DATE                 :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RELATED_DOC_DATE(i) ;
8598     l_event_class_rec.TRX_CURRENCY_CODE            :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_CURRENCY_CODE(i) ;
8599     l_event_class_rec.CURRENCY_CONVERSION_TYPE     :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_TYPE(i) ;
8600     l_event_class_rec.CURRENCY_CONVERSION_RATE     :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_RATE(i) ;
8601     l_event_class_rec.CURRENCY_CONVERSION_DATE     :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.CURRENCY_CONVERSION_DATE(i) ;
8602     l_event_class_rec.ROUNDING_SHIP_TO_PARTY_ID    :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_TO_PARTY_ID(i) ;
8603     l_event_class_rec.ROUNDING_SHIP_FROM_PARTY_ID  :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_SHIP_FROM_PARTY_ID(i) ;
8604     l_event_class_rec.ROUNDING_BILL_TO_PARTY_ID    :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_TO_PARTY_ID(i) ;
8605     l_event_class_rec.ROUNDING_BILL_FROM_PARTY_ID  :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ROUNDING_BILL_FROM_PARTY_ID(i) ;
8606     l_event_class_rec.RNDG_SHIP_TO_PARTY_SITE_ID   :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_TO_PARTY_SITE_ID(i) ;
8607     l_event_class_rec.RNDG_SHIP_FROM_PARTY_SITE_ID :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_SHIP_FROM_PARTY_SITE_ID(i) ;
8608     l_event_class_rec.RNDG_BILL_TO_PARTY_SITE_ID   :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_TO_PARTY_SITE_ID(i) ;
8609     l_event_class_rec.RNDG_BILL_FROM_PARTY_SITE_ID :=  ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.RNDG_BILL_FROM_PARTY_SITE_ID(i) ;
8610 
8611 
8612           IF ( G_LEVEL_EVENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8613             FND_LOG.STRING(G_LEVEL_EVENT,
8614                         'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8615                   'Validating Transaction: '||
8616                   to_char(l_event_class_rec.trx_id)||
8617                   ' of Application: '||
8618                   to_char(l_event_class_rec.application_id) ||
8619                   ' and Event Class: '||
8620                   l_event_class_rec.event_class_code
8621                   );
8622           END IF;
8623           -- Bug # 5094766. This procedure validates the parameter and populate the tax event class info.
8624           ZX_VALID_INIT_PARAMS_PKG.get_default_tax_det_attrs(
8625                                     p_event_class_rec => l_event_class_rec,
8626                         x_return_status   => l_return_status
8627                    );
8628 
8629      IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8630        IF (g_level_procedure >= g_current_runtime_level ) THEN
8631          FND_LOG.STRING(g_level_procedure,
8632        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8633        'x_return_status = ' || x_return_status);
8634          FND_LOG.STRING(g_level_procedure,
8635        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8636        'l_error_buffer  = ' || l_error_buffer);
8637          FND_LOG.STRING(g_level_procedure,
8638        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs.END',
8639        'ZX_VALIDATE_API_PKG: def_additional_tax_attribs(-)');
8640        END IF;
8641 
8642        RETURN;
8643 
8644      END IF;
8645          END IF;
8646 
8647 
8648           IF (g_level_statement >= g_current_runtime_level ) THEN
8649         FND_LOG.STRING(g_level_statement,
8650        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8651        'Before Calling ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS for record '||to_char(i));
8652     END IF;
8653 
8654      ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_DET_FACTORS
8655      (
8656        i,
8657        l_event_class_rec,
8658        NULL, --p_taxation_country
8659        NULL, --p_document_sub_type
8660        x_return_status
8661      );
8662 
8663     IF (g_level_statement >= g_current_runtime_level ) THEN
8664         FND_LOG.STRING(g_level_statement,
8665        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8666        'Before Calling ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_REPORTING_ATTRIBS for record '||to_char(i));
8667     END IF;
8668 
8669      ZX_DEFAULT_AUTOMATION_PKG.DEFAULT_TAX_REPORTING_ATTRIBS
8670      (
8671        i,
8672        NULL, --p_tax_invoice_number
8673        NULL, --p_tax_invoice_date
8674        x_return_status
8675      );
8676 
8677      IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8678        IF (g_level_procedure >= g_current_runtime_level ) THEN
8679          FND_LOG.STRING(g_level_procedure,
8680        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8681        'x_return_status = ' || x_return_status);
8682          FND_LOG.STRING(g_level_procedure,
8683        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8684        'l_error_buffer  = ' || l_error_buffer);
8685          FND_LOG.STRING(g_level_procedure,
8686        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs.END',
8687        'ZX_VALIDATE_API_PKG: def_additional_tax_attribs(-)');
8688        END IF;
8689 
8690        RETURN;
8691 
8692      END IF;
8693 
8694         END LOOP;
8695         -- update zx_transaction_lines_gt with the default
8696         -- tax attributes found
8697 
8698     IF (g_level_statement >= g_current_runtime_level ) THEN
8699         FND_LOG.STRING(g_level_statement,
8700        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8701        'updating zx_transaction_lines_gt with tax attributes found');
8702     END IF;
8703 
8704         FORALL i IN 1..nvl(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID.last,0)
8705 
8706           UPDATE /*+ INDEX (z,ZX_TRANSACTION_LINES_GT_U1) */ ZX_TRANSACTION_LINES_GT z
8707           SET trx_business_category =
8708                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_business_category(i),
8709               product_category =
8710                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(i),
8711               product_fisc_classification =
8712                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_fisc_classification(i),
8713               assessable_value =
8714                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.assessable_value(i),
8715               product_type =
8716                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.PRODUCT_TYPE(i),
8717               user_defined_fisc_class =
8718                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.USER_DEFINED_FISC_CLASS(i),
8719               line_intended_use =
8720                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_intended_use(i)
8721 
8722            WHERE z.application_id    = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(i)
8723             AND z.entity_code       = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(i)
8724             AND z.event_class_code  = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(i)
8725             AND z.trx_id            = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(i)
8726             AND z.trx_line_id       = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_LINE_ID(i);
8727 
8728         FORALL i IN 1..nvl(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.INTERNAL_ORGANIZATION_ID.last,0)
8729           UPDATE ZX_TRX_HEADERS_GT
8730           SET TAX_INVOICE_NUMBER =
8731                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_NUMBER(i),
8732               TAX_INVOICE_DATE =
8733                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TAX_INVOICE_DATE(i),
8734               DEFAULT_TAXATION_COUNTRY =
8735                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DEFAULT_TAXATION_COUNTRY(i),
8736               DOCUMENT_SUB_TYPE =
8737                     ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.DOCUMENT_SUB_TYPE(i)
8738 
8739            WHERE application_id   = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.APPLICATION_ID(i)
8740             AND entity_code       = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ENTITY_CODE(i)
8741             AND event_class_code  = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.EVENT_CLASS_CODE(i)
8742             AND trx_id            = ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.TRX_ID(i);
8743 
8744             EXIT WHEN gtt_to_glb_strctr_csr%NOTFOUND;
8745 
8746       END LOOP;
8747       CLOSE gtt_to_glb_strctr_csr;
8748 
8749       IF (g_level_event >= g_current_runtime_level ) THEN
8750     FND_LOG.STRING(g_level_event,
8751        'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs.END',
8752        'ZX_VALIDATE_API_PKG: def_additional_tax_attribs(-)');
8753       END IF;
8754 
8755 EXCEPTION
8756 
8757   WHEN OTHERS THEN
8758     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8759     l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
8760     IF gtt_to_glb_strctr_csr%ISOPEN THEN
8761       CLOSE gtt_to_glb_strctr_csr;
8762     END IF;
8763     FND_MESSAGE.SET_NAME('ZX','GENERIC_MESSAGE');
8764     FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','def_additional_tax_attribs- '|| l_error_buffer);
8765     FND_MSG_PUB.Add;
8766 
8767     IF (g_level_unexpected >= g_current_runtime_level ) THEN
8768       FND_LOG.STRING(g_level_unexpected,
8769                      'ZX.PLSQL.ZX_VALIDATE_API_PKG.def_additional_tax_attribs',
8770                       l_error_buffer);
8771     END IF;
8772 
8773 END def_additional_tax_attribs;
8774 
8775 
8776 
8777 --Constructor
8778 BEGIN
8779 
8780   l_regime_not_exists           :=fnd_message.get_string('ZX','ZX_REGIME_NOT_EXIST' );
8781   l_regime_not_effective        :=fnd_message.get_string('ZX','ZX_REGIME_NOT_EFFECTIVE' );
8782   l_tax_not_exists              :=fnd_message.get_string('ZX','ZX_TAX_NOT_EXIST' );
8783   l_tax_not_live                :=fnd_message.get_string('ZX','ZX_TAX_NOT_LIVE' );
8784   l_tax_not_effective           :=fnd_message.get_string('ZX','ZX_TAX_NOT_EFFECTIVE' );
8785   l_tax_recov_or_offset         :=fnd_message.get_string('ZX','ZX_TAX_RECOV_OR_OFFSET' );
8786   l_tax_status_not_exists       :=fnd_message.get_string('ZX','ZX_TAX_STATUS_NOT_EXIST' );
8787   l_tax_status_not_effective    :=fnd_message.get_string('ZX','ZX_TAX_STATUS_NOT_EFFECTIVE' );
8788   l_tax_rate_not_exists         :=fnd_message.get_string('ZX','ZX_TAX_RATE_NOT_EXIST' );
8789   l_tax_rate_not_effective      :=fnd_message.get_string('ZX','ZX_TAX_RATE_NOT_EFFECTIVE' );
8790   l_tax_rate_not_active         :=fnd_message.get_string('ZX','ZX_TAX_RATE_NOT_ACTIVE' );
8791 --l_tax_rate_code_not_effective :=fnd_message.get_string('ZX','ZX_TAX_RATE_NOT_EFFECTIVE' );
8792 --l_tax_rate_code_not_active    :=fnd_message.get_string('ZX','ZX_TAX_RATE_NOT_ACTIVE' );
8793   l_tax_rate_percentage_invalid :=fnd_message.get_string('ZX','ZX_TAX_RATE_PERCENTAGE_INVALID' );
8794   l_jur_code_not_exists         :=fnd_message.get_string('ZX','ZX_JUR_CODE_NOT_EXIST' );
8795   l_jur_code_not_effective      :=fnd_message.get_string('ZX','ZX_JUR_CODE_NOT_EFFECTIVE' );
8796   l_ref_doc_missing             :=fnd_message.get_string('ZX','ZX_REF_DOC_MISSING' );
8797   l_rel_doc_missing             :=fnd_message.get_string('ZX','ZX_REL_DOC_MISSING' );
8798   l_app_from_doc_missing        :=fnd_message.get_string('ZX','ZX_APP_FROM_DOC_MISSING' );
8799 --l_app_to_doc_missing          :=fnd_message.get_string('ZX','ZX_APP_TO_DOC_MISSING' );
8800   l_adj_doc_missing             :=fnd_message.get_string('ZX','ZX_ADJ_DOC_MISSING' );
8801   l_source_doc_missing          :=fnd_message.get_string('ZX','ZX_SOURCE_DOC_MISSING' );
8802   l_round_party_missing         :=fnd_message.get_string('ZX','ZX_ROUND_PARTY_MISSING' );
8803   l_location_missing            :=fnd_message.get_string('ZX','ZX_LOCATION_MISSING' );
8804   l_ctrl_flag_missing           :=fnd_message.get_string('ZX','ZX_CTRFLAG_MISSING' );
8805   l_line_class_invalid          :=fnd_message.get_string('ZX','ZX_LINE_CLASS_INVALID' );
8806   l_trx_line_type_invalid       :=fnd_message.get_string('ZX','ZX_TRX_LINE_TYPE_INVALID' );
8807   l_line_amt_incl_tax_invalid   :=fnd_message.get_string('ZX','ZX_LINE_AMT_INCTAX_INVALID' );
8808   l_default_status_not_exists   :=fnd_message.get_string('ZX','ZX_DEFAULT_STATUS_NOT_EXIST' );
8809   l_default_rate_code_not_exists:=fnd_message.get_string('ZX','ZX_DEFAULT_RATE_CODE_NOT_EXIST' );
8810   l_taxation_country_not_exists :=fnd_message.get_string('ZX','ZX_TAXATION_COUNTRY_NOT_EXIST' );
8811   l_prd_categ_not_exists        :=fnd_message.get_string('ZX','ZX_PRODUCT_CATEG_NOT_EXIST' );
8812   l_prd_categ_not_effective     :=fnd_message.get_string('ZX','ZX_PRODUCT_CATEG_NOT_EFFECTIVE' );
8813   l_prd_categ_country_inconsis  :=fnd_message.get_string('ZX','ZX_PRODUCT_CATEG_COUNTRY_INCON' );
8814   l_usr_df_fc_code_not_exists   :=fnd_message.get_string('ZX','ZX_USER_DEF_FC_CODE_NOT_EXIST' );
8815   l_usr_df_fc_code_not_effective:=fnd_message.get_string('ZX','ZX_USER_DEF_FC_CODE_NOT_EFFECT' );
8816   l_usr_df_country_inconsis     :=fnd_message.get_string('ZX','ZX_USER_DEF_COUNTRY_INCONSIS' );
8817   l_doc_fc_code_not_exists      :=fnd_message.get_string('ZX','ZX_DOC_FC_CODE_NOT_EXIST' );
8818   l_doc_fc_code_not_effective   :=fnd_message.get_string('ZX','ZX_DOC_FC_CODE_NOT_EFFECTIVE' );
8819   l_doc_fc_country_inconsis     :=fnd_message.get_string('ZX','ZX_DOC_FC_COUNTRY_INCONSIS' );
8820   l_trx_biz_fc_code_not_exists  :=fnd_message.get_string('ZX','ZX_TRX_BIZ_FC_CODE_NOT_EXIST' );
8821   l_trx_biz_fc_code_not_effect  :=fnd_message.get_string('ZX','ZX_TRX_BIZ_FC_CODE_NOT_EFFECT' );
8822   l_trx_biz_fc_country_inconsis :=fnd_message.get_string('ZX','ZX_TRX_BIZ_FC_COUNTRY_INCONSIS' );
8823   l_intended_use_code_not_exists:=fnd_message.get_string('ZX','ZX_INTENDED_USE_CODE_NOT_EXIST' );
8824   l_intended_use_not_effective  :=fnd_message.get_string('ZX','ZX_INTENDED_USE_NOT_EFFECTIVE' );
8825   l_intended_use_contry_inconsis:=fnd_message.get_string('ZX','ZX_INTENDED_USE_COUNTRY_INCON' );
8826   l_prd_type_code_not_exists    :=fnd_message.get_string('ZX','ZX_PRODUCT_TYPE_CODE_NOT_EXIST' );
8827   l_prd_type_not_effective      :=fnd_message.get_string('ZX','ZX_PRODUCT_TYPE_NOT_EFFECTIVE' );
8828   l_prd_fc_code_not_exists      :=fnd_message.get_string('ZX','ZX_PRODUCT_FC_CODE_NOT_EXIST' );
8829   l_party_not_exists            :=fnd_message.get_string('ZX','ZX_PARTY_NOT_EXISTS' );
8830   l_ship_to_party_not_exists    :=fnd_message.get_string('ZX','ZX_SHIP_TO_PARTY_NOT_EXIST' );
8831   l_ship_frm_party_not_exits    :=fnd_message.get_string('ZX','ZX_SHIP_FROM_PARTY_NOT_EXIST' );
8832   l_bill_to_party_not_exists    :=fnd_message.get_string('ZX','ZX_BILTO_PARTY_NOT_EXIST' );
8833   l_bill_frm_party_not_exists   :=fnd_message.get_string('ZX','ZX_BILFROM_PARTY_NOT_EXIST' );
8834   l_shipto_party_site_not_exists:=fnd_message.get_string('ZX','ZX_SHIPTO_PARTY_SITE_NOT_EXIST' );
8835   l_shipfrm_party_site_not_exits:=fnd_message.get_string('ZX','ZX_SHIPFROM_PARTYSITE_NOTEXIST' );
8836   l_billto_party_site_not_exists:=fnd_message.get_string('ZX','ZX_BILLTO_PARTY_SITE_NOT_EXIST' );
8837   l_billfrm_party_site_not_exist:=fnd_message.get_string('ZX','ZX_BILLFROM_PARTYSITE_NOTEXIST' );
8838   l_tax_multialloc_to_sameln    :=fnd_message.get_string('ZX','ZX_TAX_MULTIALLOC_TO_SAMELN' );
8839   l_imptax_multialloc_to_sameln :=fnd_message.get_string('ZX','ZX_IMPTAX_MULTIALLOC_TO_SAMELN' );
8840   l_tax_only_line_multi_allocate:=fnd_message.get_string('ZX','ZX_TAX_ONLY_LINE_MULTI_ALLOCAT' );
8841   l_pseudo_line_has_multi_taxall:=fnd_message.get_string('ZX','ZX_PSEUDO_LINE_HAS_MULTI_TAX' );
8842   l_tax_amt_missing             :=fnd_message.get_string('ZX','ZX_TAX_AMT_MISSING' );
8843   l_tax_ln_typ_loc_not_allw_f_ar:=fnd_message.get_string('ZX','ZX_TAX_LN_TYP_LOC_N_ALLW_F_AR' );
8844   l_tax_incl_flag_mismatch      :=fnd_message.get_string('ZX','ZX_TAX_INCL_FLAG_MISMATCH' );
8845   l_imp_tax_missing_in_appld_frm:=fnd_message.get_string('ZX','ZX_TAX_MISSING_IN_APPLIED_FRM');
8846   l_imp_tax_missing_in_adjust_to:=fnd_message.get_string('ZX','ZX_TAX_MISSING_IN_ADJUSTED_TO');
8847   l_currency_info_reqd          :=fnd_message.get_string('ZX','ZX_CURRENCY_INFO_REQD' );
8848   l_line_ctrl_amt_invalid       :=fnd_message.get_string('ZX','ZX_LINE_CTRL_AMT_INVALID' );
8849   l_line_ctrl_amt_not_null      :=fnd_message.get_string('ZX','ZX_LINE_CTRL_AMT_NOT_NULL' );
8850   l_unit_price_missing          :=fnd_message.get_string('ZX','ZX_UNIT_PRICE_REQD' );
8851   l_line_quantity_missing       :=fnd_message.get_string('ZX','ZX_TRX_LINE_QUANTITY_REQD' );
8852   l_exemption_ctrl_flag_invalid :=fnd_message.get_string('ZX','ZX_EXEMPTION_CTRL_FLAG_INVALID' );
8853   l_product_type_invalid        :=fnd_message.get_string('ZX','ZX_PRODUCT_TYPE_INVALID' );
8854   l_quote_flag_invalid          :=fnd_message.get_string('ZX','ZX_QUOTE_FLAG_INVALID' );
8855   l_doc_lvl_recalc_flag_invalid :=fnd_message.get_string('ZX','ZX_DOC_LVL_RECALC_FLAG_INVALID' );
8856   l_tax_line_alloc_flag_invalid :=fnd_message.get_string('ZX','ZX_TAX_LINE_ALLOC_FLAG_INVALID' );
8857   l_inval_tax_lines_for_ctrl_flg:=fnd_message.get_string('ZX','ZX_INVALID_TAX_LINES' );
8858   l_invald_line_for_ctrl_tot_amt:=fnd_message.get_string('ZX','ZX_INVALID_LINE_TAX_AMT' );
8859   l_inval_tax_line_for_alloc_flg:=fnd_message.get_string('ZX','ZX_INVALID_TAX_FOR_ALLOC_FLG' );
8860   l_invalid_tax_only_tax_lines  :=fnd_message.get_string('ZX','ZX_INVALID_TAX_ONLY_TAX_LINES' );
8861   l_invalid_tax_line_alloc_flag :=fnd_message.get_string('ZX','ZX_INVALID_TAX_ALLOC_FLAG' );
8862   l_invd_trx_line_id_in_link_gt :=fnd_message.get_string('ZX','ZX_INVALID_TRX_LINE_ID' );
8863   l_invalid_summary_tax_line_id :=fnd_message.get_string('ZX','ZX_INVALID_SUMMARY_TAX_LINE_ID' );
8864   l_regime_not_eff_in_subscrptn :=fnd_message.get_string('ZX','ZX_REGIME_NOT_EFF_IN_SUBSCR' );
8865   l_tax_rate_code_not_exists    :=fnd_message.get_string('ZX','ZX_TAX_RATE_CODE_NOT_EXIST' ); -- 4703541
8866   l_tax_rate_id_code_missing    :=fnd_message.get_string('ZX','ZX_TAX_RATE_ID_CODE_MISSING' ); -- 4917256
8867   l_imp_tax_rate_amt_mismatch   :=fnd_message.get_string('ZX','ZX_IMP_TAX_RATE_AMT_MISMATCH');
8868 
8869 
8870 END Zx_Validate_Api_Pkg;