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