DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_TRL_MANAGE_TAX_PKG

Source


1 PACKAGE BODY ZX_TRL_MANAGE_TAX_PKG AS
2 /* $Header: zxrilnrepsrvpvtb.pls 120.143.12020000.6 2013/03/07 07:43:51 msakalab ship $ */
3 
4   g_current_runtime_level           NUMBER;
5   g_level_statement       CONSTANT  NUMBER  := FND_LOG.LEVEL_STATEMENT;
6   g_level_procedure       CONSTANT  NUMBER  := FND_LOG.LEVEL_PROCEDURE;
7   g_level_event           CONSTANT  NUMBER  := FND_LOG.LEVEL_EVENT;
8   g_level_unexpected      CONSTANT  NUMBER  := FND_LOG.LEVEL_UNEXPECTED;
9   g_level_error           CONSTANT  NUMBER  := FND_LOG.LEVEL_ERROR;
10 
11   NUMBER_DUMMY    CONSTANT NUMBER(15)     := -999999999999999;
12 
13   TYPE num_tbl_type     IS TABLE OF NUMBER        INDEX BY BINARY_INTEGER;
14   TYPE date_tbl_type    IS TABLE OF DATE          INDEX BY BINARY_INTEGER;
15   TYPE char_tbl_type    IS TABLE OF VARCHAR2(1)   INDEX BY BINARY_INTEGER;
16   TYPE char30_tbl_type  IS TABLE OF VARCHAR2(30)  INDEX BY BINARY_INTEGER;
17   TYPE char80_tbl_type  IS TABLE OF VARCHAR2(80)  INDEX BY BINARY_INTEGER;
18   TYPE char150_tbl_type IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
19   TYPE char240_tbl_type IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
20 
21 
22   pg_summary_tax_line_id_tbl       num_tbl_type;
23   pg_internal_org_id_tbl           num_tbl_type;
24   pg_application_id_tbl            num_tbl_type;
25   pg_entity_code_tbl               char30_tbl_type;
26   pg_event_class_code_tbl          char30_tbl_type;
27   pg_trx_id_tbl                    num_tbl_type;
28   pg_trx_number_tbl                char150_tbl_type;
29   pg_app_from_app_id_tbl           num_tbl_type;
30   pg_app_from_evnt_cls_code_tbl    char30_tbl_type;
31   pg_app_from_entity_code_tbl      char30_tbl_type;
32   pg_app_from_trx_id_tbl           num_tbl_type;
33   pg_adj_doc_app_id_tbl            num_tbl_type;
34   pg_adj_doc_entity_code_tbl       char30_tbl_type;
35   pg_adj_doc_evnt_cls_code_tbl     char30_tbl_type;
36   pg_adj_doc_trx_id_tbl            num_tbl_type;
37   pg_summary_tax_line_num_tbl      num_tbl_type;
38   pg_content_owner_id_tbl          num_tbl_type;
39   pg_tax_regime_code_tbl           char30_tbl_type;
40   pg_tax_tbl                       char30_tbl_type;
41   pg_tax_status_code_tbl           char30_tbl_type;
42   pg_tax_rate_id_tbl               num_tbl_type;
43   pg_tax_rate_code_tbl             char150_tbl_type;
44   pg_tax_rate_tbl                  num_tbl_type;
45   pg_tax_amt_tbl                   num_tbl_type;
46   pg_tax_amt_tax_curr_tbl          num_tbl_type;
47   pg_tax_amt_funcl_curr_tbl        num_tbl_type;
48   pg_tax_jurisdiction_code_tbl     char30_tbl_type;
49   pg_ttl_rec_tax_amt_tbl           num_tbl_type;
50   pg_ttl_rec_tx_amt_fnc_crr_tbl    num_tbl_type;
51   pg_ttl_nrec_tax_amt_tbl          num_tbl_type;
52   pg_ttl_nrec_tx_amt_fnc_crr_tbl   num_tbl_type;
53   pg_ledger_id_tbl                 num_tbl_type;
54   pg_legal_entity_id_tbl           num_tbl_type;
55   pg_establishment_id_tbl          num_tbl_type;
56   pg_currency_convrsn_date_tbl     date_tbl_type;
57   pg_currency_convrsn_type_tbl     char30_tbl_type;
58   pg_currency_convrsn_rate_tbl     num_tbl_type;
59   pg_summarization_tmplt_id_tbl    num_tbl_type;
60   pg_taxable_basis_formula_tbl     char30_tbl_type;
61   pg_tax_calculation_formula_tbl   char30_tbl_type;
62   pg_historical_flag_tbl           char_tbl_type;
63   pg_cancel_flag_tbl               char_tbl_type;
64   pg_delete_flag_tbl               char_tbl_type;
65   pg_tax_amt_included_flag_tbl     char_tbl_type;
66   pg_compounding_tax_flag_tbl      char_tbl_type;
67   pg_self_assessed_flag_tbl        char_tbl_type;
68   pg_overridden_flag_tbl           char_tbl_type;
69   pg_reporting_only_flag_tbl       char_tbl_type;
70   pg_assoctd_child_frz_flag_tbl    char_tbl_type;
71   pg_cpd_from_other_doc_flag_tbl   char_tbl_type;
72   pg_manually_entered_flag_tbl     char_tbl_type;
73   pg_last_manual_entry_tbl         char30_tbl_type;
74   pg_record_type_code_tbl          char30_tbl_type;
75   pg_tax_provider_id_tbl           num_tbl_type;
76   pg_tax_only_line_flag_tbl        char_tbl_type;
77   pg_created_by_tbl                num_tbl_type;
78   pg_creation_date_tbl             date_tbl_type;
79   pg_last_updated_by_tbl           num_tbl_type;
80   pg_last_update_date_tbl          date_tbl_type;
81   pg_last_update_login_tbl         num_tbl_type;
82   pg_app_from_line_id_tbl           num_tbl_type;
83   pg_app_to_app_id_tbl             num_tbl_type;
84   pg_app_to_evnt_cls_code_tbl      char30_tbl_type;
85   pg_app_to_entity_code_tbl        char30_tbl_type;
86   pg_app_to_trx_id_tbl             num_tbl_type;
87   pg_app_to_line_id_tbl            num_tbl_type;
88   pg_tax_xmptn_id_tbl              num_tbl_type;
89   pg_tax_rate_bf_xmptn_tbl         num_tbl_type;
90   pg_tax_rate_name_bf_xmptn_tbl    char80_tbl_type;
91   pg_xmpt_rate_modifier_tbl        num_tbl_type;
92   pg_xmpt_certificate_number_tbl   char80_tbl_type;
93   pg_xmpt_reason_tbl               char240_tbl_type;
94   pg_xmpt_reason_code_tbl          char30_tbl_type;
95   pg_tax_rate_bf_xeptn_tbl         num_tbl_type;
96   pg_tax_rate_name_bf_xeptn_tbl    char80_tbl_type;
97   pg_tax_xeptn_id_tbl              num_tbl_type;
98   pg_xeptn_rate_tbl                num_tbl_type;
99   pg_ttl_rec_tx_amt_tx_crr_tbl     num_tbl_type;
100   pg_ttl_nrec_tx_amt_tx_crr_tbl    num_tbl_type;
101   pg_mrc_tax_line_flag_tbl         char_tbl_type;
102   pg_app_from_trx_level_type_tbl   char30_tbl_type;
103   pg_adj_doc_trx_level_type_tbl    char30_tbl_type;
104   pg_app_to_trx_level_type_tbl     char30_tbl_type;
105   pg_trx_level_type_tbl            char30_tbl_type;
106   pg_adjust_tax_amt_flag_tbl       char_tbl_type;
107   pg_object_version_number_tbl     num_tbl_type;
108 
109   pg_count_detail_tax_line_tbl     num_tbl_type;
110   pg_tax_line_id_tbl               num_tbl_type;
111   pg_detail_tax_smry_line_id_tbl   num_tbl_type;
112 
113   tax_line_id_tbl                  num_tbl_type;
114   tax_rate_id_tbl                  num_tbl_type;
115   pg_trx_id_tab                    num_tbl_type;
116   pg_trx_line_id_tab               num_tbl_type;
117   pg_trx_level_type_tab            char30_tbl_type;
118 
119   pg_count_detail_cancel_tbl       num_tbl_type;
120 
121 /* ===========================================================================*
122  | PRIVATE PROCEDURE print_summary_columns : To print the summary columns     |
123  * ===========================================================================*/
124   PROCEDURE print_summary_columns
125     (p_application_id   IN   NUMBER,
126      p_entity_code      IN   VARCHAR2,
127      p_event_class_code IN   VARCHAR2,
128      p_trx_id           IN   NUMBER);
129 
130 /* ===========================================================================*
131  | PROCEDURE Create_Detail_Lines : Insert tax lines into ZX_LINES table.      |
132  * ===========================================================================*/
133 
134   PROCEDURE  Create_Detail_Lines (
135         p_event_class_rec   IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE,
136         x_return_status     OUT NOCOPY VARCHAR2
137   ) IS
138 
139     l_row_count    NUMBER;
140     l_error_buffer VARCHAR2(100);
141     l_msg_context_info_rec         ZX_API_PUB.CONTEXT_INFO_REC_TYPE;
142 
143     -- Variables added for Preventive checks --
144     l_trx_id               NUMBER;
145     l_trx_line_exist       VARCHAR2(1);
146 
147   BEGIN
148 
149     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
150 
151     l_row_count := 0;
152     IF (g_level_procedure >= g_current_runtime_level ) THEN
153       FND_LOG.STRING(g_level_procedure,
154                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines.BEGIN',
155                      'ZX_TRL_MANAGE_TAX_PKG: Create_Detail_Lines (+)');
156     END IF;
157 
158     x_return_status := FND_API.G_RET_STS_SUCCESS;
159 
160     --
161     -- bug#4893261- populate message structure
162     --
163     l_msg_context_info_rec.application_id :=
164               p_event_class_rec.application_id;
165     l_msg_context_info_rec.entity_code :=
166               p_event_class_rec.entity_code;
167     l_msg_context_info_rec.event_class_code :=
168               p_event_class_rec.event_class_code;
169     l_msg_context_info_rec.trx_id :=
170               p_event_class_rec.trx_id;
171     l_msg_context_info_rec.trx_line_id := NULL;
172     l_msg_context_info_rec.trx_level_type := NULL;
173     l_msg_context_info_rec.summary_tax_line_number := NULL;
174     l_msg_context_info_rec.tax_line_id := NULL;
175     l_msg_context_info_rec.trx_line_dist_id := NULL;
176 
177     -- Start : Preventive checks add to avoid data corruption --
178     l_trx_id := NULL;
179     l_trx_line_exist := 'N';
180 
181     -- Run the preventive check for Payables only Application_Id 200
182     IF p_event_class_rec.application_id = 200 THEN
183       -- Check : Trx Line should exist in ZX_Lines_Det_Factors --
184       IF (g_level_statement >= g_current_runtime_level ) THEN
185          FND_LOG.STRING(g_level_statement,
186                         'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
187                         'Executing Trx Line Exists Validation : '||TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MM:SS'));
188       END IF;
189 
190       BEGIN
191         -- Set l_trx_line_exist to N if the trx_line_id does not exist --
192         SELECT /*first_rows(1)*/
193                'N' trx_line_exist,
194                trx_id
195           INTO l_trx_line_exist,
196                l_trx_id
197           FROM zx_detail_tax_lines_gt zlgt
198          WHERE NOT EXISTS (SELECT /*first_rows(1)*/ 1
199                              FROM zx_lines_det_factors zldf
200                             WHERE zldf.application_id = zlgt.application_id
201                               AND zldf.entity_code = zlgt.entity_code
202                               AND zldf.event_class_code = zlgt.event_class_code
203                               AND zldf.trx_id = zlgt.trx_id
204                               AND zldf.trx_line_id = zlgt.trx_line_id
205                               AND zldf.trx_level_type = zlgt.trx_level_type
206                               AND ROWNUM = 1)
207            AND ROWNUM = 1;
208 
209       EXCEPTION
210         WHEN NO_DATA_FOUND THEN
211           l_trx_line_exist := 'Y';
212         WHEN OTHERS THEN
213           NULL;
214       END;
215 
216       IF l_trx_line_exist = 'N' THEN
217         IF l_trx_id IS NOT NULL THEN
218           l_msg_context_info_rec.trx_id := l_trx_id;
219         END IF;
220         IF (g_level_statement >= g_current_runtime_level ) THEN
221           FND_LOG.STRING(g_level_statement,
222                          'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
223                          'Trx Line Exists Validation FAILED : '||TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MM:SS'));
224           FND_LOG.STRING(g_level_statement,
225                          'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
226                          'Cannot create tax line without transaction line');
227         END IF;
228         FND_MESSAGE.SET_NAME('ZX','ZX_GENERIC_TEXT');
229         FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','Cannot create tax line without transaction line');
230         ZX_API_PUB.Add_Msg(l_msg_context_info_rec);
231         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
232       ELSE
233         IF (g_level_statement >= g_current_runtime_level ) THEN
234            FND_LOG.STRING(g_level_statement,
235                           'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
236                           'Trx Line Exists Validation PASSED : '||TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MM:SS'));
237         END IF;
238       END IF;
239 
240     END IF; -- application_id = 200
241     -- End : Preventive check added to avoid data corruption --
242 
243     INSERT INTO ZX_LINES (TAX_LINE_ID,
244                           INTERNAL_ORGANIZATION_ID,
245                           APPLICATION_ID,
246                           ENTITY_CODE,
247                           EVENT_CLASS_CODE,
248                           EVENT_TYPE_CODE,
249                           TRX_ID,
250                           TRX_LINE_ID,
251                           TRX_LEVEL_TYPE,
252                           TRX_LINE_NUMBER,
253                           DOC_EVENT_STATUS,
254                           TAX_EVENT_CLASS_CODE,
255                           TAX_EVENT_TYPE_CODE,
256                           TAX_LINE_NUMBER,
257                           CONTENT_OWNER_ID,
258                           TAX_REGIME_ID,
259                           TAX_REGIME_CODE,
260                           TAX_ID,
261                           TAX,
262                           TAX_STATUS_ID,
263                           TAX_STATUS_CODE,
264                           TAX_RATE_ID,
265                           TAX_RATE_CODE,
266                           TAX_RATE,
267                           TAX_RATE_TYPE,
268                           TAX_APPORTIONMENT_LINE_NUMBER,
269                           TRX_ID_LEVEL2,
270                           TRX_ID_LEVEL3,
271                           TRX_ID_LEVEL4,
272                           TRX_ID_LEVEL5,
273                           TRX_ID_LEVEL6,
274                           TRX_USER_KEY_LEVEL1,
275                           TRX_USER_KEY_LEVEL2,
276                           TRX_USER_KEY_LEVEL3,
277                           TRX_USER_KEY_LEVEL4,
278                           TRX_USER_KEY_LEVEL5,
279                           TRX_USER_KEY_LEVEL6,
280                           MRC_TAX_LINE_FLAG,
281                           LEDGER_ID,
282                           ESTABLISHMENT_ID,
283                           LEGAL_ENTITY_ID,
284                           LEGAL_ENTITY_TAX_REG_NUMBER,
285                           HQ_ESTB_REG_NUMBER,
286                           HQ_ESTB_PARTY_TAX_PROF_ID,
287                           CURRENCY_CONVERSION_DATE,
288                           CURRENCY_CONVERSION_TYPE,
289                           CURRENCY_CONVERSION_RATE,
290                           TAX_CURRENCY_CONVERSION_DATE,
291                           TAX_CURRENCY_CONVERSION_TYPE,
292                           TAX_CURRENCY_CONVERSION_RATE,
293                           TRX_CURRENCY_CODE,
294                           REPORTING_CURRENCY_CODE,
295                           MINIMUM_ACCOUNTABLE_UNIT,
296                           PRECISION,
297                           TRX_NUMBER,
298                           TRX_DATE,
299                           UNIT_PRICE,
300                           LINE_AMT,
301                           TRX_LINE_QUANTITY,
302                           TAX_BASE_MODIFIER_RATE,
303                           REF_DOC_APPLICATION_ID,
304                           REF_DOC_ENTITY_CODE,
305                           REF_DOC_EVENT_CLASS_CODE,
306                           REF_DOC_TRX_ID,
307                           REF_DOC_TRX_LEVEL_TYPE,
308                           REF_DOC_LINE_ID,
309                           REF_DOC_LINE_QUANTITY,
310                           OTHER_DOC_LINE_AMT,
311                           OTHER_DOC_LINE_TAX_AMT,
312                           OTHER_DOC_LINE_TAXABLE_AMT,
313                           UNROUNDED_TAXABLE_AMT,
314                           UNROUNDED_TAX_AMT,
315                           RELATED_DOC_APPLICATION_ID,
316                           RELATED_DOC_ENTITY_CODE,
317                           RELATED_DOC_EVENT_CLASS_CODE,
318                           RELATED_DOC_TRX_ID,
319                           RELATED_DOC_TRX_LEVEL_TYPE,
320                           RELATED_DOC_NUMBER,
321                           RELATED_DOC_DATE,
322                           APPLIED_FROM_APPLICATION_ID,
323                           APPLIED_FROM_EVENT_CLASS_CODE,
324                           APPLIED_FROM_ENTITY_CODE,
325                           APPLIED_FROM_TRX_ID,
326                           APPLIED_FROM_TRX_LEVEL_TYPE,
327                           APPLIED_FROM_LINE_ID,
328                           APPLIED_FROM_TRX_NUMBER,
329                           ADJUSTED_DOC_APPLICATION_ID,
330                           ADJUSTED_DOC_ENTITY_CODE,
331                           ADJUSTED_DOC_EVENT_CLASS_CODE,
332                           ADJUSTED_DOC_TRX_ID,
333                           ADJUSTED_DOC_TRX_LEVEL_TYPE,
334                           ADJUSTED_DOC_LINE_ID,
335                           ADJUSTED_DOC_NUMBER,
336                           ADJUSTED_DOC_DATE,
337                           APPLIED_TO_APPLICATION_ID,
338                           APPLIED_TO_EVENT_CLASS_CODE,
339                           APPLIED_TO_ENTITY_CODE,
340                           APPLIED_TO_TRX_ID,
341                           APPLIED_TO_TRX_LEVEL_TYPE,
342                           APPLIED_TO_LINE_ID,
343                           APPLIED_TO_TRX_NUMBER,
344                           SUMMARY_TAX_LINE_ID,
345                           OFFSET_LINK_TO_TAX_LINE_ID,
346                           OFFSET_FLAG,
347                           PROCESS_FOR_RECOVERY_FLAG,
348                           TAX_JURISDICTION_ID,
349                           TAX_JURISDICTION_CODE,
350                           PLACE_OF_SUPPLY,
351                           PLACE_OF_SUPPLY_TYPE_CODE,
352                           PLACE_OF_SUPPLY_RESULT_ID,
353                           TAX_DATE_RULE_ID,
354                           TAX_DATE,
355                           TAX_DETERMINE_DATE,
356                           TAX_POINT_DATE,
357                           TRX_LINE_DATE,
358                           TAX_TYPE_CODE,
359                           TAX_CODE,
360                           TAX_REGISTRATION_ID,
361                           TAX_REGISTRATION_NUMBER,
362                           REGISTRATION_PARTY_TYPE,
363                           ROUNDING_LEVEL_CODE,
364                           ROUNDING_RULE_CODE,
365                           ROUNDING_LVL_PARTY_TAX_PROF_ID,
366                           ROUNDING_LVL_PARTY_TYPE,
367                           COMPOUNDING_TAX_FLAG,
368                           ORIG_TAX_STATUS_ID,
369                           ORIG_TAX_STATUS_CODE,
370                           ORIG_TAX_RATE_ID,
371                           ORIG_TAX_RATE_CODE,
372                           ORIG_TAX_RATE,
373                           ORIG_TAX_JURISDICTION_ID,
374                           ORIG_TAX_JURISDICTION_CODE,
375                           ORIG_TAX_AMT_INCLUDED_FLAG,
376                           ORIG_SELF_ASSESSED_FLAG,
377                           TAX_CURRENCY_CODE,
378                           TAX_AMT,
379                           TAX_AMT_TAX_CURR,
380                           TAX_AMT_FUNCL_CURR,
381                           TAXABLE_AMT,
382                           TAXABLE_AMT_TAX_CURR,
383                           TAXABLE_AMT_FUNCL_CURR,
384                           ORIG_TAXABLE_AMT,
385                           ORIG_TAXABLE_AMT_TAX_CURR,
386                           CAL_TAX_AMT,
387                           CAL_TAX_AMT_TAX_CURR,
388                           CAL_TAX_AMT_FUNCL_CURR,
389                           ORIG_TAX_AMT,
390                           ORIG_TAX_AMT_TAX_CURR,
391                           REC_TAX_AMT,
392                           REC_TAX_AMT_TAX_CURR,
393                           REC_TAX_AMT_FUNCL_CURR,
394                           NREC_TAX_AMT,
395                           NREC_TAX_AMT_TAX_CURR,
396                           NREC_TAX_AMT_FUNCL_CURR,
397                           TAX_EXEMPTION_ID,
398                           TAX_RATE_BEFORE_EXEMPTION,
399                           TAX_RATE_NAME_BEFORE_EXEMPTION,
400                           EXEMPT_RATE_MODIFIER,
401                           EXEMPT_CERTIFICATE_NUMBER,
402                           EXEMPT_REASON,
403                           EXEMPT_REASON_CODE,
404                           TAX_EXCEPTION_ID,
405                           TAX_RATE_BEFORE_EXCEPTION,
406                           TAX_RATE_NAME_BEFORE_EXCEPTION,
407                           EXCEPTION_RATE,
408                           TAX_APPORTIONMENT_FLAG,
409                           HISTORICAL_FLAG,
410                           TAXABLE_BASIS_FORMULA,
411                           TAX_CALCULATION_FORMULA,
412                           CANCEL_FLAG,
413                           PURGE_FLAG,
414                           DELETE_FLAG,
415                           TAX_AMT_INCLUDED_FLAG,
416                           SELF_ASSESSED_FLAG,
417                           OVERRIDDEN_FLAG,
418                           MANUALLY_ENTERED_FLAG,
419                           REPORTING_ONLY_FLAG,
420                           FREEZE_UNTIL_OVERRIDDEN_FLAG,
421                           COPIED_FROM_OTHER_DOC_FLAG,
422                           RECALC_REQUIRED_FLAG,
423                           SETTLEMENT_FLAG,
424                           ITEM_DIST_CHANGED_FLAG,
425                           ASSOCIATED_CHILD_FROZEN_FLAG,
426                           TAX_ONLY_LINE_FLAG,
427                           COMPOUNDING_TAX_MISS_FLAG,
428                           COMPOUNDING_DEP_TAX_FLAG,
429                           SYNC_WITH_PRVDR_FLAG,
430                           LAST_MANUAL_ENTRY,
431                           TAX_PROVIDER_ID,
432                           RECORD_TYPE_CODE,
433                           REPORTING_PERIOD_ID,
434                           LEGAL_JUSTIFICATION_TEXT1,
435                           LEGAL_JUSTIFICATION_TEXT2,
436                           LEGAL_JUSTIFICATION_TEXT3,
437                           LEGAL_MESSAGE_APPL_2,
438                           LEGAL_MESSAGE_STATUS,
439                           LEGAL_MESSAGE_RATE,
440                           LEGAL_MESSAGE_BASIS,
441                           LEGAL_MESSAGE_CALC,
442                           LEGAL_MESSAGE_THRESHOLD,
443                           LEGAL_MESSAGE_POS,
444                           LEGAL_MESSAGE_TRN,
445                           LEGAL_MESSAGE_EXMPT,
446                           LEGAL_MESSAGE_EXCPT,
447                           TAX_REGIME_TEMPLATE_ID,
448                           TAX_APPLICABILITY_RESULT_ID,
449                           DIRECT_RATE_RESULT_ID,
450                           STATUS_RESULT_ID,
451                           RATE_RESULT_ID,
452                           BASIS_RESULT_ID,
453                           THRESH_RESULT_ID,
454                           CALC_RESULT_ID,
455                           TAX_REG_NUM_DET_RESULT_ID,
456                           EVAL_EXMPT_RESULT_ID,
457                           EVAL_EXCPT_RESULT_ID,
458                           ENFORCE_FROM_NATURAL_ACCT_FLAG,
459                           TAX_HOLD_CODE,
460                           TAX_HOLD_RELEASED_CODE,
461                           PRD_TOTAL_TAX_AMT,
462                           PRD_TOTAL_TAX_AMT_TAX_CURR,
463                           PRD_TOTAL_TAX_AMT_FUNCL_CURR,
464                           TRX_LINE_INDEX,
465                           OFFSET_TAX_RATE_CODE,
466                           PRORATION_CODE,
467                           OTHER_DOC_SOURCE,
468                           INTERNAL_ORG_LOCATION_ID,
469                           LINE_ASSESSABLE_VALUE,
470                           CTRL_TOTAL_LINE_TX_AMT,
471                           ATTRIBUTE_CATEGORY,
472                           ATTRIBUTE1,
473                           ATTRIBUTE2,
474                           ATTRIBUTE3,
475                           ATTRIBUTE4,
476                           ATTRIBUTE5,
477                           ATTRIBUTE6,
478                           ATTRIBUTE7,
479                           ATTRIBUTE8,
480                           ATTRIBUTE9,
481                           ATTRIBUTE10,
482                           ATTRIBUTE11,
483                           ATTRIBUTE12,
484                           ATTRIBUTE13,
485                           ATTRIBUTE14,
486                           ATTRIBUTE15,
487                           GLOBAL_ATTRIBUTE_CATEGORY,
488                           GLOBAL_ATTRIBUTE1,
489                           GLOBAL_ATTRIBUTE2,
490                           GLOBAL_ATTRIBUTE3,
491                           GLOBAL_ATTRIBUTE4,
492                           GLOBAL_ATTRIBUTE5,
493                           GLOBAL_ATTRIBUTE6,
494                           GLOBAL_ATTRIBUTE7,
495                           GLOBAL_ATTRIBUTE8,
496                           GLOBAL_ATTRIBUTE9,
497                           GLOBAL_ATTRIBUTE10,
498                           GLOBAL_ATTRIBUTE11,
499                           GLOBAL_ATTRIBUTE12,
500                           GLOBAL_ATTRIBUTE13,
501                           GLOBAL_ATTRIBUTE14,
502                           GLOBAL_ATTRIBUTE15,
503                           NUMERIC1,
504                           NUMERIC2,
505                           NUMERIC3,
506                           NUMERIC4,
507                           NUMERIC5,
508                           NUMERIC6,
509                           NUMERIC7,
510                           NUMERIC8,
511                           NUMERIC9,
512                           NUMERIC10,
513                           CHAR1,
514                           CHAR2,
515                           CHAR3,
516                           CHAR4,
517                           CHAR5,
518                           CHAR6,
519                           CHAR7,
520                           CHAR8,
521                           CHAR9,
522                           CHAR10,
523                           DATE1,
524                           DATE2,
525                           DATE3,
526                           DATE4,
527                           DATE5,
528                           DATE6,
529                           DATE7,
530                           DATE8,
531                           DATE9,
532                           DATE10,
533                           INTERFACE_ENTITY_CODE,
534                           INTERFACE_TAX_LINE_ID,
535                           TAXING_JURIS_GEOGRAPHY_ID,
536                           ADJUSTED_DOC_TAX_LINE_ID,
537                           OBJECT_VERSION_NUMBER,
538                           CREATED_BY,
539                           CREATION_DATE,
540                           LAST_UPDATED_BY,
541                           LAST_UPDATE_DATE,
542                           LAST_UPDATE_LOGIN,
543                           MULTIPLE_JURISDICTIONS_FLAG,
544                           LEGAL_REPORTING_STATUS,
545                           ACCOUNT_SOURCE_TAX_RATE_ID)
546                    -- bug#7504604: remove the index hint
547                    --SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1) */
548                    --
549                 SELECT
550                        TAX_LINE_ID,
551                        INTERNAL_ORGANIZATION_ID,
552                        APPLICATION_ID,
553                        ENTITY_CODE,
554                        EVENT_CLASS_CODE,
555                        EVENT_TYPE_CODE,
556                        TRX_ID,
557                        TRX_LINE_ID,
558                        TRX_LEVEL_TYPE,
559                        TRX_LINE_NUMBER,
560                        DOC_EVENT_STATUS,
561                        TAX_EVENT_CLASS_CODE,
562                        TAX_EVENT_TYPE_CODE,
563                        TAX_LINE_NUMBER,
564                        CONTENT_OWNER_ID,
565                        TAX_REGIME_ID,
566                        TAX_REGIME_CODE,
567                        TAX_ID,
568                        TAX,
569                        TAX_STATUS_ID,
570                        TAX_STATUS_CODE,
571                        TAX_RATE_ID,
572                        TAX_RATE_CODE,
573                        TAX_RATE,
574                        TAX_RATE_TYPE,
575                        TAX_APPORTIONMENT_LINE_NUMBER,
576                        TRX_ID_LEVEL2,
577                        TRX_ID_LEVEL3,
578                        TRX_ID_LEVEL4,
579                        TRX_ID_LEVEL5,
580                        TRX_ID_LEVEL6,
581                        TRX_USER_KEY_LEVEL1,
582                        TRX_USER_KEY_LEVEL2,
583                        TRX_USER_KEY_LEVEL3,
584                        TRX_USER_KEY_LEVEL4,
585                        TRX_USER_KEY_LEVEL5,
586                        TRX_USER_KEY_LEVEL6,
587                        MRC_TAX_LINE_FLAG,
588                        LEDGER_ID,
589                        ESTABLISHMENT_ID,
590                        LEGAL_ENTITY_ID,
591                        LEGAL_ENTITY_TAX_REG_NUMBER,
592                        HQ_ESTB_REG_NUMBER,
593                        HQ_ESTB_PARTY_TAX_PROF_ID,
594                        CURRENCY_CONVERSION_DATE,
595                        CURRENCY_CONVERSION_TYPE,
596                        CURRENCY_CONVERSION_RATE,
597                        TAX_CURRENCY_CONVERSION_DATE,
598                        TAX_CURRENCY_CONVERSION_TYPE,
599                        TAX_CURRENCY_CONVERSION_RATE,
600                        TRX_CURRENCY_CODE,
601                        REPORTING_CURRENCY_CODE,
602                        MINIMUM_ACCOUNTABLE_UNIT,
603                        PRECISION,
604                        TRX_NUMBER,
605                        TRX_DATE,
606                        UNIT_PRICE,
607                        LINE_AMT,
608                        TRX_LINE_QUANTITY,
609                        TAX_BASE_MODIFIER_RATE,
610                        REF_DOC_APPLICATION_ID,
611                        REF_DOC_ENTITY_CODE,
612                        REF_DOC_EVENT_CLASS_CODE,
613                        REF_DOC_TRX_ID,
614                        REF_DOC_TRX_LEVEL_TYPE,
615                        REF_DOC_LINE_ID,
616                        REF_DOC_LINE_QUANTITY,
617                        OTHER_DOC_LINE_AMT,
618                        OTHER_DOC_LINE_TAX_AMT,
619                        OTHER_DOC_LINE_TAXABLE_AMT,
620                        UNROUNDED_TAXABLE_AMT,
621                        UNROUNDED_TAX_AMT,
622                        RELATED_DOC_APPLICATION_ID,
623                        RELATED_DOC_ENTITY_CODE,
624                        RELATED_DOC_EVENT_CLASS_CODE,
625                        RELATED_DOC_TRX_ID,
626                        RELATED_DOC_TRX_LEVEL_TYPE,
627                        RELATED_DOC_NUMBER,
628                        RELATED_DOC_DATE,
629                        APPLIED_FROM_APPLICATION_ID,
630                        APPLIED_FROM_EVENT_CLASS_CODE,
631                        APPLIED_FROM_ENTITY_CODE,
632                        APPLIED_FROM_TRX_ID,
633                        APPLIED_FROM_TRX_LEVEL_TYPE,
634                        APPLIED_FROM_LINE_ID,
635                        APPLIED_FROM_TRX_NUMBER,
636                        ADJUSTED_DOC_APPLICATION_ID,
637                        ADJUSTED_DOC_ENTITY_CODE,
638                        ADJUSTED_DOC_EVENT_CLASS_CODE,
639                        ADJUSTED_DOC_TRX_ID,
640                        ADJUSTED_DOC_TRX_LEVEL_TYPE,
641                        ADJUSTED_DOC_LINE_ID,
642                        ADJUSTED_DOC_NUMBER,
643                        ADJUSTED_DOC_DATE,
644                        APPLIED_TO_APPLICATION_ID,
645                        APPLIED_TO_EVENT_CLASS_CODE,
646                        APPLIED_TO_ENTITY_CODE,
647                        APPLIED_TO_TRX_ID,
648                        APPLIED_TO_TRX_LEVEL_TYPE,
649                        APPLIED_TO_LINE_ID,
650                        APPLIED_TO_TRX_NUMBER,
651                        SUMMARY_TAX_LINE_ID,
652                        OFFSET_LINK_TO_TAX_LINE_ID,
653                        OFFSET_FLAG,
654                        PROCESS_FOR_RECOVERY_FLAG,
655                        TAX_JURISDICTION_ID,
656                        TAX_JURISDICTION_CODE,
657                        PLACE_OF_SUPPLY,
658                        PLACE_OF_SUPPLY_TYPE_CODE,
659                        PLACE_OF_SUPPLY_RESULT_ID,
660                        TAX_DATE_RULE_ID,
661                        TAX_DATE,
662                        TAX_DETERMINE_DATE,
663                        TAX_POINT_DATE,
664                        TRX_LINE_DATE,
665                        TAX_TYPE_CODE,
666                        TAX_CODE,
667                        TAX_REGISTRATION_ID,
668                        TAX_REGISTRATION_NUMBER,
669                        REGISTRATION_PARTY_TYPE,
670                        ROUNDING_LEVEL_CODE,
671                        ROUNDING_RULE_CODE,
672                        ROUNDING_LVL_PARTY_TAX_PROF_ID,
673                        ROUNDING_LVL_PARTY_TYPE,
674                        COMPOUNDING_TAX_FLAG,
675                        ORIG_TAX_STATUS_ID,
676                        ORIG_TAX_STATUS_CODE,
677                        ORIG_TAX_RATE_ID,
678                        ORIG_TAX_RATE_CODE,
679                        ORIG_TAX_RATE,
680                        ORIG_TAX_JURISDICTION_ID,
681                        ORIG_TAX_JURISDICTION_CODE,
682                        ORIG_TAX_AMT_INCLUDED_FLAG,
683                        ORIG_SELF_ASSESSED_FLAG,
684                        TAX_CURRENCY_CODE,
685                        TAX_AMT,
686                        TAX_AMT_TAX_CURR,
687                        TAX_AMT_FUNCL_CURR,
688                        TAXABLE_AMT,
689                        TAXABLE_AMT_TAX_CURR,
690                        TAXABLE_AMT_FUNCL_CURR,
691                        ORIG_TAXABLE_AMT,
692                        ORIG_TAXABLE_AMT_TAX_CURR,
693                        CAL_TAX_AMT,
694                        CAL_TAX_AMT_TAX_CURR,
695                        CAL_TAX_AMT_FUNCL_CURR,
696                        ORIG_TAX_AMT,
697                        ORIG_TAX_AMT_TAX_CURR,
698                        REC_TAX_AMT,
699                        REC_TAX_AMT_TAX_CURR,
700                        REC_TAX_AMT_FUNCL_CURR,
701                        NREC_TAX_AMT,
702                        NREC_TAX_AMT_TAX_CURR,
703                        NREC_TAX_AMT_FUNCL_CURR,
704                        TAX_EXEMPTION_ID,
705                        TAX_RATE_BEFORE_EXEMPTION,
706                        TAX_RATE_NAME_BEFORE_EXEMPTION,
707                        EXEMPT_RATE_MODIFIER,
708                        EXEMPT_CERTIFICATE_NUMBER,
709                        EXEMPT_REASON,
710                        EXEMPT_REASON_CODE,
711                        TAX_EXCEPTION_ID,
712                        TAX_RATE_BEFORE_EXCEPTION,
713                        TAX_RATE_NAME_BEFORE_EXCEPTION,
714                        EXCEPTION_RATE,
715                        TAX_APPORTIONMENT_FLAG,
716                        HISTORICAL_FLAG,
717                        TAXABLE_BASIS_FORMULA,
718                        TAX_CALCULATION_FORMULA,
719                        CANCEL_FLAG,
720                        PURGE_FLAG,
721                        DELETE_FLAG,
722                        TAX_AMT_INCLUDED_FLAG,
723                        SELF_ASSESSED_FLAG,
724                        OVERRIDDEN_FLAG,
725                        MANUALLY_ENTERED_FLAG,
726                        REPORTING_ONLY_FLAG,
727                        FREEZE_UNTIL_OVERRIDDEN_FLAG,
728                        COPIED_FROM_OTHER_DOC_FLAG,
729                        RECALC_REQUIRED_FLAG,
730                        SETTLEMENT_FLAG,
731                        ITEM_DIST_CHANGED_FLAG,
732                        ASSOCIATED_CHILD_FROZEN_FLAG,
733                        TAX_ONLY_LINE_FLAG,
734                        COMPOUNDING_TAX_MISS_FLAG,
735                        COMPOUNDING_DEP_TAX_FLAG,
736                        'N',            --SYNC_WITH_PRVDR_FLAG,  -- TSRM will look into GT for provider synchronization
737                        LAST_MANUAL_ENTRY,
738                        TAX_PROVIDER_ID,
739                        RECORD_TYPE_CODE,
740                        REPORTING_PERIOD_ID,
741                        LEGAL_JUSTIFICATION_TEXT1,
742                        LEGAL_JUSTIFICATION_TEXT2,
743                        LEGAL_JUSTIFICATION_TEXT3,
744                        LEGAL_MESSAGE_APPL_2,
745                        LEGAL_MESSAGE_STATUS,
746                        LEGAL_MESSAGE_RATE,
747                        LEGAL_MESSAGE_BASIS,
748                        LEGAL_MESSAGE_CALC,
749                        LEGAL_MESSAGE_THRESHOLD,
750                        LEGAL_MESSAGE_POS,
751                        LEGAL_MESSAGE_TRN,
752                        LEGAL_MESSAGE_EXMPT,
753                        LEGAL_MESSAGE_EXCPT,
754                        TAX_REGIME_TEMPLATE_ID,
755                        TAX_APPLICABILITY_RESULT_ID,
756                        DIRECT_RATE_RESULT_ID,
757                        STATUS_RESULT_ID,
758                        RATE_RESULT_ID,
759                        BASIS_RESULT_ID,
760                        THRESH_RESULT_ID,
761                        CALC_RESULT_ID,
762                        TAX_REG_NUM_DET_RESULT_ID,
763                        EVAL_EXMPT_RESULT_ID,
764                        EVAL_EXCPT_RESULT_ID,
765                        ENFORCE_FROM_NATURAL_ACCT_FLAG,
766                        TAX_HOLD_CODE,
767                        TAX_HOLD_RELEASED_CODE,
768                        PRD_TOTAL_TAX_AMT,
769                        PRD_TOTAL_TAX_AMT_TAX_CURR,
770                        PRD_TOTAL_TAX_AMT_FUNCL_CURR,
771                        TRX_LINE_INDEX,
772                        OFFSET_TAX_RATE_CODE,
773                        PRORATION_CODE,
774                        OTHER_DOC_SOURCE,
775                        INTERNAL_ORG_LOCATION_ID,
776                        LINE_ASSESSABLE_VALUE,
777                        CTRL_TOTAL_LINE_TX_AMT,
778                        ATTRIBUTE_CATEGORY,
779                        ATTRIBUTE1,
780                        ATTRIBUTE2,
781                        ATTRIBUTE3,
782                        ATTRIBUTE4,
783                        ATTRIBUTE5,
784                        ATTRIBUTE6,
785                        ATTRIBUTE7,
786                        ATTRIBUTE8,
787                        ATTRIBUTE9,
788                        ATTRIBUTE10,
789                        ATTRIBUTE11,
790                        ATTRIBUTE12,
791                        ATTRIBUTE13,
792                        ATTRIBUTE14,
793                        ATTRIBUTE15,
794                        GLOBAL_ATTRIBUTE_CATEGORY,
795                        GLOBAL_ATTRIBUTE1,
796                        GLOBAL_ATTRIBUTE2,
797                        GLOBAL_ATTRIBUTE3,
798                        GLOBAL_ATTRIBUTE4,
799                        GLOBAL_ATTRIBUTE5,
800                        GLOBAL_ATTRIBUTE6,
801                        GLOBAL_ATTRIBUTE7,
802                        GLOBAL_ATTRIBUTE8,
803                        GLOBAL_ATTRIBUTE9,
804                        GLOBAL_ATTRIBUTE10,
805                        GLOBAL_ATTRIBUTE11,
806                        GLOBAL_ATTRIBUTE12,
807                        GLOBAL_ATTRIBUTE13,
808                        GLOBAL_ATTRIBUTE14,
809                        GLOBAL_ATTRIBUTE15,
810                        NUMERIC1,
811                        NUMERIC2,
812                        NUMERIC3,
813                        NUMERIC4,
814                        NUMERIC5,
815                        NUMERIC6,
816                        NUMERIC7,
817                        NUMERIC8,
818                        NUMERIC9,
819                        NUMERIC10,
820                        CHAR1,
821                        CHAR2,
822                        CHAR3,
823                        CHAR4,
824                        CHAR5,
825                        CHAR6,
826                        CHAR7,
827                        CHAR8,
828                        CHAR9,
829                        CHAR10,
830                        DATE1,
831                        DATE2,
832                        DATE3,
833                        DATE4,
834                        DATE5,
835                        DATE6,
836                        DATE7,
837                        DATE8,
838                        DATE9,
839                        DATE10,
840                        INTERFACE_ENTITY_CODE,
841                        INTERFACE_TAX_LINE_ID,
842                        TAXING_JURIS_GEOGRAPHY_ID,
843                        ADJUSTED_DOC_TAX_LINE_ID,
844                        1,      --OBJECT_VERSION_NUMBER,
845                        CREATED_BY,
846                        CREATION_DATE,
847                        LAST_UPDATED_BY,
848                        LAST_UPDATE_DATE,
849                        LAST_UPDATE_LOGIN,
850                        MULTIPLE_JURISDICTIONS_FLAG,
851                        LEGAL_REPORTING_STATUS,
852                        ACCOUNT_SOURCE_TAX_RATE_ID
853                   FROM ZX_DETAIL_TAX_LINES_GT;
854 
855     l_row_count := SQL%ROWCOUNT;
856 
857     IF (g_level_procedure >= g_current_runtime_level ) THEN
858       FND_LOG.STRING(g_level_procedure,'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
859                      'Rows Inserted : '||l_row_count);
860     END IF;
861 
862     IF (g_level_procedure >= g_current_runtime_level ) THEN
863       FND_LOG.STRING(g_level_procedure,'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines.END',
864                      'ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines (-)');
865     END IF;
866 
867   EXCEPTION
868     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
869       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
870       IF (g_level_procedure >= g_current_runtime_level ) THEN
871         FND_LOG.STRING(g_level_procedure,
872                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
873                        'Exception:' ||SQLCODE||':'||SQLERRM);
874 
875         FND_LOG.STRING(g_level_procedure,
876                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
877                        'Return Status = '||x_return_status);
878       END IF;
879 
880     WHEN DUP_VAL_ON_INDEX THEN
881       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR; -- bug 8568734
882       IF (g_level_procedure >= g_current_runtime_level ) THEN
883         FND_LOG.STRING(g_level_procedure,
884                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
885                        'Exception:' ||SQLCODE||':'||SQLERRM);
886 
887         FND_LOG.STRING(g_level_procedure,
888                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
889                        'Return Status = '||x_return_status);
890       END IF;
891       -- FND_MESSAGE.SET_NAME('ZX','ZX_TRL_RECORD_ALREADY_EXISTS');
892       -- ZX_API_PUB.add_msg(l_msg_context_info_rec);
893 
894     WHEN OTHERS THEN
895       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
896       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
897 
898       IF (g_level_unexpected >= g_current_runtime_level ) THEN
899         FND_LOG.STRING(g_level_unexpected,
900                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Detail_Lines',
901                         l_error_buffer);
902       END IF;
903 
904   END Create_Detail_Lines;
905 
906 /*============================================================================*
907  | PROCEDURE Summarization_For_Freeze_Event: Performs summarization and       |
908  | records summary tax lines in tax repository . called during                |
909  | Update_Freeze_Flag event                                                   |
910  * ===========================================================================*/
911 
912   PROCEDURE Summarization_For_Freeze_Event
913        (p_event_class_rec   IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE,
914         x_return_status     OUT NOCOPY VARCHAR2) IS
915 
916     l_error_buffer              VARCHAR2(100);
917     l_use_null_summary_id_flag  VARCHAR2(1);
918     l_summary_lines_count       NUMBER;
919     l_row_count                 NUMBER;
920 
921   BEGIN
922 
923     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
924 
925     IF (g_level_procedure >= g_current_runtime_level ) THEN
926       FND_LOG.STRING(g_level_procedure,
927                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event.BEGIN',
928                      'ZX_TRL_MANAGE_TAX_PKG: Summarization_For_Freeze_Event (+)');
929     END IF;
930 
931     --  Initialize API return status to success
932     x_return_status := FND_API.G_RET_STS_SUCCESS;
933 
934     -- Set summary_tax_line id to Null for unfrozen tax lines who share the same
935     -- summary tax_line id as the one who has associated children frozen flag as 'Y'.
936     --
937     --  set SUMMARY_TAX_LINE_ID to NULL in ZX_LINES for
938     --  those tax lines have Associated_Child_Frozen_Flag = 'N'
939     --  belonged to the same summary line
940     --
941 
942     -- Performance Bug 5908610 - Query has been modified
943  /*    UPDATE ZX_LINES
944         SET SUMMARY_TAX_LINE_ID = NULL
945         WHERE SUMMARY_TAX_LINE_ID IN
946         (SELECT summary_tax_line_id
947          FROM ZX_LINES
948          WHERE TAX_LINE_ID  IN (SELECT ZD.TAX_LINE_ID
949                   FROM ZX_REC_NREC_DIST  ZD,
950                        ZX_TAX_DIST_ID_GT ZGT
951                   WHERE ZD.REC_NREC_TAX_DIST_ID   = ZGT.TAX_DIST_ID))
952          AND Associated_Child_Frozen_Flag = 'N';
953 
954  */
955 
956    -- NEW query for the above
957 
958     UPDATE ZX_LINES
959     SET SUMMARY_TAX_LINE_ID = NULL
960     WHERE TAX_LINE_ID IN (SELECT ZD.TAX_LINE_ID
961                       FROM ZX_REC_NREC_DIST ZD,
962                            ZX_TAX_DIST_ID_GT ZGT
963                       WHERE ZD.REC_NREC_TAX_DIST_ID = ZGT.TAX_DIST_ID)
964      AND ASSOCIATED_CHILD_FROZEN_FLAG = 'N';
965     --
966     -- re-perform summarization for all  tax lines
967     -- in the document, for tax lines that have
968     -- Associated_Child_Frozen_Flag = 'N', generate a
969     -- new summary_tax_line_id, for tax lines that
970     -- have Associated_Child_Frozen_Flag = 'Y', keep
971     -- the orignal summary_tax_line_id
972     --
973 
974     create_summary_lines_upd_evnt(
975       p_event_class_rec   => p_event_class_rec,
976       x_return_status     => x_return_status );
977 
978     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
979       IF (g_level_error >= g_current_runtime_level ) THEN
980         FND_LOG.STRING(g_level_error,
981                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event',
982                'MRC Lines: Incorrect return_status after calling ' ||
983                'ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt()');
984         FND_LOG.STRING(g_level_error,
985                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event',
986                'RETURN_STATUS = ' || x_return_status);
987         FND_LOG.STRING(g_level_error,
988                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event.END',
989                'ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event(-)');
990       END IF;
991       RETURN;
992     END IF;
993 
994     IF (g_level_procedure >= g_current_runtime_level ) THEN
995       FND_LOG.STRING(g_level_procedure,
996                     'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event.END',
997                     'ZX_TRL_MANAGE_TAX_PKG: Summarization_For_Freeze_Event (-)');
998     END IF;
999 
1000   EXCEPTION
1001     WHEN FND_API.G_EXC_ERROR THEN
1002       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1003       IF (g_level_procedure >= g_current_runtime_level ) THEN
1004         FND_LOG.STRING(g_level_procedure,
1005                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event',
1006                        'Unexpected error ...');
1007       END IF;
1008 
1009     WHEN OTHERS THEN
1010       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1011       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1012 
1013       IF (g_level_unexpected >= g_current_runtime_level ) THEN
1014         FND_LOG.STRING(g_level_unexpected,
1015                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Summarization_For_Freeze_Event',
1016                         l_error_buffer);
1017       END IF;
1018   END Summarization_For_Freeze_Event;
1019 
1020 /*============================================================================*
1021  | PROCEDURE Delete_Detail_TaxLines: Deletes the transaction from ZX_LINES for|
1022  | given transaction details                                                  |
1023  *============================================================================*/
1024 
1025   PROCEDURE Delete_Detail_Lines
1026        (x_return_status   OUT    NOCOPY VARCHAR2,
1027         p_event_class_rec     IN        ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1028 
1029     l_row_count    NUMBER;
1030     l_error_buffer VARCHAR2(100);
1031 
1032   BEGIN
1033 
1034     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1035 
1036     l_row_count := 0;
1037 
1038     IF (g_level_procedure >= g_current_runtime_level ) THEN
1039       FND_LOG.STRING(g_level_procedure,
1040                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines.BEGIN',
1041                      'ZX_TRL_MANAGE_TAX_PKG: Delete_Detail_Lines (+)');
1042     END IF;
1043 
1044     --  Initialize API return status to success
1045     x_return_status := FND_API.G_RET_STS_SUCCESS;
1046 
1047     -- bug fix 5417887
1048     -- IF p_event_class_rec.tax_event_type_code = 'UPDATE' THEN
1049     IF ZX_GLOBAL_STRUCTURES_PKG.g_update_event_process_flag = 'Y' THEN
1050 
1051       /* -- rewrote for bug fix 5417887
1052       DELETE FROM ZX_LINES
1053         WHERE APPLICATION_ID  = p_event_class_rec.application_id
1054         AND  ENTITY_CODE      = p_event_class_rec.entity_code
1055         AND  EVENT_CLASS_CODE = p_event_class_rec.event_class_code
1056         AND  TRX_ID           = p_event_class_rec.trx_id
1057         AND  (DELETE_FLAG     = 'Y' OR
1058               (TRX_LINE_ID, trx_level_type) IN
1059               (SELECT TRX_LINE_ID, trx_level_type
1060                  FROM zx_lines_det_factors
1061                 WHERE application_id = p_event_class_rec.application_id
1062                   AND entity_code      = p_event_class_rec.entity_code
1063                   AND event_class_code = p_event_class_rec.event_class_code
1064                   AND trx_id           = p_event_class_rec.trx_id
1065                   AND event_id         = p_event_class_rec.event_id
1066                   AND line_level_action NOT IN ('SYNCHRONIZE', 'NO_CHANGE')
1067                )
1068              ); */
1069       -- bug fix 5417887
1070       DELETE FROM ZX_LINES tax
1071         WHERE EXISTS (SELECT 1
1072                  FROM zx_lines_det_factors
1073                 WHERE application_id = tax.application_id
1074                   AND entity_code      = tax.entity_code
1075                   AND event_class_code = tax.event_class_code
1076                   AND trx_id           = tax.trx_id
1077                   AND event_id         = p_event_class_rec.event_id
1078                )
1079           AND (tax.DELETE_FLAG     = 'Y' OR
1080               (tax.TRX_LINE_ID, tax.trx_level_type) IN
1081               (SELECT TRX_LINE_ID, trx_level_type
1082                  FROM zx_lines_det_factors
1083                 WHERE application_id = tax.application_id
1084                   AND entity_code      = tax.entity_code
1085                   AND event_class_code = tax.event_class_code
1086                   AND trx_id           = tax.trx_id
1087                   AND event_id         = p_event_class_rec.event_id
1088                   AND line_level_action NOT IN ('SYNCHRONIZE', 'NO_CHANGE')
1089                )
1090              );
1091 
1092       l_row_count := SQL%ROWCOUNT;
1093 
1094     ELSIF p_event_class_rec.tax_event_type_code = 'OVERRIDE_TAX' THEN
1095 
1096       DELETE FROM zx_lines
1097        WHERE application_id   = p_event_class_rec.application_id
1098         AND  entity_code      = p_event_class_rec.entity_code
1099         AND  event_class_code = p_event_class_rec.event_class_code
1100         AND  trx_id           = p_event_class_rec.trx_id
1101         AND  (tax_line_id IN
1102               (SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1) */
1103                       tax_line_id
1104                  FROM zx_detail_tax_lines_gt
1105                 WHERE application_id   = p_event_class_rec.application_id
1106                   AND entity_code      = p_event_class_rec.entity_code
1107                   AND event_class_code = p_event_class_rec.event_class_code
1108                   AND trx_id           = p_event_class_rec.trx_id
1109               ) OR
1110               delete_flag = 'Y'
1111              );
1112 
1113       l_row_count := SQL%ROWCOUNT;
1114 
1115       IF p_event_class_rec.allow_offset_tax_calc_flag ='Y' THEN
1116         -- delete old offset tax lines
1117         --
1118         DELETE FROM zx_lines
1119          WHERE application_id   = p_event_class_rec.application_id
1120           AND  entity_code      = p_event_class_rec.entity_code
1121           AND  event_class_code = p_event_class_rec.event_class_code
1122           AND  trx_id           = p_event_class_rec.trx_id
1123           AND  offset_link_to_tax_line_id IN
1124                (SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1) */
1125                        tax_line_id
1126                   FROM zx_detail_tax_lines_gt
1127                  WHERE application_id   = p_event_class_rec.application_id
1128                    AND entity_code      = p_event_class_rec.entity_code
1129                    AND event_class_code = p_event_class_rec.event_class_code
1130                    AND trx_id           = p_event_class_rec.trx_id
1131                    AND offset_flag = 'Y'
1132                    AND offset_link_to_tax_line_id IS NULL );
1133 
1134         l_row_count := SQL%ROWCOUNT + l_row_count;
1135       END IF;
1136 
1137       -- May need to be changes if  mrc_link_to_tax_line_id is added
1138       --
1139       -- Delete old MRC related detail tax lines
1140       --
1141       IF p_event_class_rec.enable_mrc_flag = 'Y' THEN
1142         DELETE FROM zx_lines zl
1143          WHERE application_id = p_event_class_rec.application_id
1144           AND  entity_code = p_event_class_rec.entity_code
1145           AND  event_class_code = p_event_class_rec.event_class_code
1146           AND  trx_id = p_event_class_rec.trx_id
1147           AND  mrc_tax_line_flag = 'Y'
1148           AND  (trx_line_id, trx_level_type, tax_line_number) IN
1149                (SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1) */
1150                        trx_line_id, trx_level_type, tax_line_number
1151                   FROM zx_detail_tax_lines_gt
1152                  WHERE application_id = p_event_class_rec.application_id
1153                    AND entity_code = p_event_class_rec.entity_code
1154                    AND event_class_code = p_event_class_rec.event_class_code
1155                    AND trx_id = p_event_class_rec.trx_id
1156                    AND mrc_tax_line_flag = 'N');
1157 
1158         l_row_count := l_row_count + SQL%ROWCOUNT;
1159 
1160       END IF;
1161     END IF;
1162 
1163     IF (g_level_procedure >= g_current_runtime_level ) THEN
1164       FND_LOG.STRING(g_level_procedure,
1165                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines.END',
1166                      'ZX_TRL_MANAGE_TAX_PKG: Delete_Detail_Lines (-)'||
1167                      l_row_count||' rows deleted');
1168     END IF;
1169 
1170   EXCEPTION
1171 
1172     WHEN FND_API.G_EXC_ERROR THEN
1173       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1174       IF (g_level_procedure >= g_current_runtime_level ) THEN
1175         FND_LOG.STRING(g_level_procedure,
1176                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines',
1177                        'Unexpected error ...');
1178       END IF;
1179 
1180     WHEN OTHERS THEN
1181       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1182       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1183 
1184       IF (g_level_unexpected >= g_current_runtime_level ) THEN
1185         FND_LOG.STRING(g_level_unexpected,
1186                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Detail_Lines',
1187                         l_error_buffer);
1188       END IF;
1189   END Delete_Detail_Lines;
1190 
1191 /* ===========================================================================*
1192  | PROCEDURE Delete_Summary_TaxLines: Deletes the transaction from            |
1193  | ZX_LINES_SUMMARY for a given transaction details                           |
1194  * ===========================================================================*/
1195   PROCEDURE Delete_Summary_Lines
1196        (x_return_status      OUT NOCOPY VARCHAR2,
1197         p_event_class_rec IN            ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1198 
1199     l_row_count    NUMBER;
1200     l_error_buffer VARCHAR2(100);
1201     l_trx_id       NUMBER;
1202 
1203   BEGIN
1204 
1205     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1206 
1207     l_row_count := 0;
1208 
1209     IF (g_level_procedure >= g_current_runtime_level ) THEN
1210       FND_LOG.STRING(g_level_procedure,
1211                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines.BEGIN',
1212                      'ZX_TRL_MANAGE_TAX_PKG: DELETE_SUMMARY_LINES (+)');
1213     END IF;
1214 
1215     --  Initialize API return status to success
1216     x_return_status := FND_API.G_RET_STS_SUCCESS;
1217 
1218    -- rewrote the following query for bug fix 5417887
1219     /*
1220     DELETE FROM ZX_LINES_SUMMARY
1221     WHERE APPLICATION_ID = p_event_class_rec.APPLICATION_ID
1222     AND ENTITY_CODE      = p_event_class_rec.ENTITY_CODE
1223     AND EVENT_CLASS_CODE = p_event_class_rec.EVENT_CLASS_CODE
1224     AND TRX_ID           = p_event_class_rec.TRX_ID;
1225     */
1226 
1227     DELETE FROM zx_lines_summary tax
1228     WHERE EXISTS (SELECT 1
1229                     FROM zx_lines_det_factors line
1230                    WHERE tax.application_id = line.application_id
1231                      AND tax.event_class_code = line.event_class_code
1232                      AND tax.entity_code = line.entity_code
1233                      AND tax.trx_id = line.trx_id
1234                      AND line.event_id = p_event_class_rec.event_id
1235                  );
1236 
1237     l_row_count := SQL%ROWCOUNT;
1238 
1239     /* bug#4374237
1240     IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
1241       FND_MESSAGE.SET_NAME('FND','ZX_TRL_ROWS_DELETED');
1242       FND_MESSAGE.SET_TOKEN('ROWS_DELETED',l_row_count);
1243       FND_MSG_PUB.Add;
1244     END IF;
1245     */
1246 
1247     IF (g_level_procedure >= g_current_runtime_level ) THEN
1248       FND_LOG.STRING(g_level_procedure,
1249                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines.END',
1250                      'ZX_TRL_MANAGE_TAX_PKG: DELETE_SUMMARY_LINES (-)'||
1251                      l_row_count||' rows deleted');
1252     END IF;
1253 
1254   EXCEPTION
1255     WHEN FND_API.G_EXC_ERROR THEN
1256       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1257       IF (g_level_procedure >= g_current_runtime_level ) THEN
1258         FND_LOG.STRING(g_level_procedure,
1259                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines',
1260                        'Unexpected error ...');
1261       END IF;
1262 
1263     WHEN OTHERS THEN
1264       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1265       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1266 
1267       IF (g_level_unexpected >= g_current_runtime_level ) THEN
1268         FND_LOG.STRING(g_level_unexpected,
1269                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Summary_Lines',
1270                         l_error_buffer);
1271       END IF;
1272   END Delete_Summary_Lines;
1273 
1274 /* ===========================================================================*
1275  | PROCEDURE Delete_Loose_Tax_Distributions: Deletes tax distributions from   |
1276  | ZX_REC_NREC_DIST for given tax line                                        |
1277  * ===========================================================================*/
1278 
1279   PROCEDURE Delete_Loose_Tax_Distributions
1280        (x_return_status   OUT NOCOPY VARCHAR2,
1281         p_event_class_rec IN  ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1282 
1283     l_row_count         NUMBER;
1284     l_error_buffer      VARCHAR2(200);
1285     l_prev_trx_id       NUMBER;
1286     l_context_info_rec  ZX_API_PUB.context_info_rec_type;
1287 
1288     -- Cursors added for Frozen Tax Deleted Check --
1289     -- bug 14198788 driving queries from zx_trx_headers_gt
1290     CURSOR get_deleted_frzn_dist IS
1291     SELECT /*+ leading(headers_gt) use_nl(AID) */
1292            aid.invoice_id           trx_id,
1293            aid.detail_tax_dist_id   tax_dist_id,
1294            aid.summary_tax_line_id  summary_tax_line_id
1295       FROM ap_invoice_distributions_all aid,
1296            zx_trx_headers_gt headers_gt
1297      WHERE headers_gt.event_class_code = p_event_class_rec.event_class_code
1298        AND headers_gt.entity_code = p_event_class_rec.entity_code
1299        AND headers_gt.application_id = p_event_class_rec.application_id
1300        AND aid.invoice_id = headers_gt.trx_id
1301        AND aid.line_type_lookup_code IN ('NONREC_TAX','REC_TAX','TRV','TERV','TIPV')
1302        AND (aid.accounting_event_id IS NOT NULL
1303             OR NVL(aid.match_status_flag,'N') IN ('A','T')
1304             OR NVL(aid.posted_flag,'N') = 'Y'
1305             OR NVL(aid.encumbered_flag, 'N') IN ('Y','D','W','X'))
1306        AND NOT EXISTS(SELECT /*+ NO_UNNEST  */ 'Tax Distributions'
1307                         FROM zx_rec_nrec_dist zd
1308                        WHERE zd.rec_nrec_tax_dist_id = aid.detail_tax_dist_id
1309                          AND NVL(zd.self_assessed_flag, 'N') = 'N');
1310 
1311     -- bug 14198788 driving queries from zx_trx_headers_gt
1312     CURSOR get_deleted_frzn_sa_dist IS
1313     SELECT /*+ leading(headers_gt) use_nl(ASAD) */
1314            asad.invoice_id           trx_id,
1315            asad.detail_tax_dist_id   tax_dist_id,
1316            asad.summary_tax_line_id  summary_tax_line_id
1317       FROM ap_self_assessed_tax_dist_all asad,
1318            zx_trx_headers_gt headers_gt
1319      WHERE headers_gt.event_class_code = p_event_class_rec.event_class_code
1320        AND headers_gt.entity_code = p_event_class_rec.entity_code
1321        AND headers_gt.application_id = p_event_class_rec.application_id
1322        AND asad.invoice_id = headers_gt.trx_id
1323        AND asad.line_type_lookup_code IN ('NONREC_TAX','REC_TAX')
1324        AND (asad.accounting_event_id IS NOT NULL
1325             OR NVL(asad.match_status_flag,'N') IN ('A','T')
1326             OR NVL(asad.posted_flag,'N') = 'Y'
1327             OR NVL(asad.encumbered_flag, 'N') IN ('Y','D','W','X'))
1328        AND NOT EXISTS(SELECT /*+ NO_UNNEST */ 'Tax Distributions'
1329                         FROM zx_rec_nrec_dist zd
1330                        WHERE zd.rec_nrec_tax_dist_id = asad.detail_tax_dist_id
1331                          AND NVL(zd.self_assessed_flag, 'N') = 'Y');
1332 
1333     TYPE num_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
1334     l_trx_id_tbl               num_tbl_type;
1335     l_tax_dist_id_tbl          num_tbl_type;
1336     l_summary_tax_line_id_tbl  num_tbl_type;
1337 
1338   BEGIN
1339 
1340     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1341 
1342     l_row_count := 0;
1343 
1344     IF (g_level_procedure >= g_current_runtime_level ) THEN
1345       FND_LOG.STRING(g_level_procedure,
1346              'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions.BEGIN',
1347              'ZX_TRL_MANAGE_TAX_PKG: Delete_Loose_Tax_Distributions (+)');
1348     END IF;
1349 
1350     --  Initialize API return status to success
1351     x_return_status := FND_API.G_RET_STS_SUCCESS;
1352 
1353     l_context_info_rec.application_id          := p_event_class_rec.application_id;
1354     l_context_info_rec.entity_code             := p_event_class_rec.entity_code;
1355     l_context_info_rec.event_class_code        := p_event_class_rec.event_class_code;
1356     l_context_info_rec.trx_id                  := TO_NUMBER(NULL);
1357     l_context_info_rec.trx_line_id             := TO_NUMBER(NULL);
1358     l_context_info_rec.trx_level_type          := TO_CHAR(NULL);
1359     l_context_info_rec.summary_tax_line_number := TO_NUMBER(NULL);
1360     l_context_info_rec.tax_line_id             := TO_NUMBER(NULL);
1361     l_context_info_rec.trx_line_dist_id        := TO_NUMBER(NULL);
1362 
1363     IF p_event_class_rec.application_id IS NULL OR
1364        p_event_class_rec.entity_code IS NULL OR
1365        p_event_class_rec.event_class_code IS NULL
1366     THEN
1367       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1368 
1369       IF (g_level_procedure >= g_current_runtime_level ) THEN
1370         FND_LOG.STRING(g_level_procedure,
1371                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1372                        'p_event_class_rec cannot be NULL.');
1373       END IF;
1374       RAISE FND_API.G_EXC_ERROR;
1375     END IF;
1376 
1377     -- rewrote the following query for bug fix 5417887
1378     /*
1379     DELETE FROM ZX_REC_NREC_DIST
1380     WHERE APPLICATION_ID = p_event_class_rec.application_id
1381     AND ENTITY_CODE      = p_event_class_rec.entity_code
1382     AND EVENT_CLASS_CODE = p_event_class_rec.event_class_code
1383     AND TRX_ID           = p_event_class_rec.trx_id
1384     AND TAX_LINE_ID NOT IN
1385         (SELECT ZX_LINES.TAX_LINE_ID
1386            FROM ZX_LINES
1387           WHERE zx_lines.application_id = p_event_class_rec.application_id
1388             AND zx_lines.entity_code = p_event_class_rec.entity_code
1389             AND zx_lines.event_class_code = p_event_class_rec.event_class_code
1390             AND zx_lines.trx_id = p_event_class_rec.trx_id);
1391     */
1392 
1393     DELETE FROM zx_rec_nrec_dist dist
1394     WHERE EXISTS (
1395             SELECT 1
1396               FROM zx_lines_det_factors
1397              WHERE application_id   = dist.application_id
1398                AND entity_code      = dist.entity_code
1399                AND event_class_code = dist.event_class_code
1400                AND trx_id           = dist.trx_id
1401                AND event_id         = p_event_class_rec.event_id )
1402     AND tax_line_id NOT IN
1403         (SELECT tax_line_id
1404            FROM zx_lines zx_lines
1405           WHERE zx_lines.application_id = dist.application_id
1406             AND zx_lines.entity_code = dist.entity_code
1407             AND zx_lines.event_class_code = dist.event_class_code
1408             AND zx_lines.trx_id = dist.trx_id);
1409 
1410     l_row_count := SQL%ROWCOUNT;
1411 
1412     IF (g_level_procedure >= g_current_runtime_level ) THEN
1413       FND_LOG.STRING(g_level_procedure,
1414              'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1415              'Rows Deleted : '||l_row_count);
1416     END IF;
1417 
1418     -- Added preventive check to find whether the tax --
1419     -- distributions deleted are frozen or not --
1420     -- Start --
1421     IF l_row_count > 0 AND p_event_class_rec.application_id = 200 THEN
1422       IF (g_level_procedure >= g_current_runtime_level ) THEN
1423         FND_LOG.STRING(g_level_procedure,
1424                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1425                'Start : Frozen Tax Distributions deleted Validation : '||TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS'));
1426       END IF;
1427       l_prev_trx_id := -99;
1428       l_trx_id_tbl.DELETE;
1429       l_tax_dist_id_tbl.DELETE;
1430       l_summary_tax_line_id_tbl.DELETE;
1431 
1432       -- Frozen dist deleted check for Normal Tax Distributions
1433       OPEN get_deleted_frzn_dist;
1434       FETCH get_deleted_frzn_dist BULK COLLECT
1435        INTO l_trx_id_tbl,
1436             l_tax_dist_id_tbl,
1437             l_summary_tax_line_id_tbl;
1438       CLOSE get_deleted_frzn_dist;
1439 
1440       IF l_trx_id_tbl.COUNT > 0 THEN
1441         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1442         l_error_buffer := 'System is trying to delete frozen tax distributions. '||
1443                           'Unable to complete Tax Processing.';
1444 
1445         IF (g_level_unexpected >= g_current_runtime_level ) THEN
1446           FND_LOG.STRING(g_level_unexpected,
1447                          'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1448                          'ERROR: '||l_error_buffer);
1449           FND_LOG.STRING(g_level_unexpected,
1450                          'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1451                          'Following frozen tax distributions deleted from ZX_REC_NREC_DIST:');
1452         END IF;
1453 
1454         FOR i IN NVL(l_trx_id_tbl.FIRST,0)..NVL(l_trx_id_tbl.LAST,-99) LOOP
1455           IF l_prev_trx_id <> l_trx_id_tbl(i) THEN
1456             l_context_info_rec.trx_id := l_trx_id_tbl(i);
1457 
1458             FND_MESSAGE.SET_NAME('ZX','ZX_GENERIC_TEXT');
1459             FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',l_error_buffer);
1460             ZX_API_PUB.Add_Msg(l_context_info_rec);
1461           END IF;
1462           l_prev_trx_id := l_trx_id_tbl(i);
1463 
1464           IF (g_level_unexpected >= g_current_runtime_level ) THEN
1465              FND_LOG.STRING(g_level_unexpected,
1466                             'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1467                             TO_CHAR(i)||'. Trx_Id: '||TO_CHAR(l_trx_id_tbl(i))||
1468                             ', Rec_Nrec_Tax_Dist_Id: '||TO_CHAR(l_tax_dist_id_tbl(i))||
1469                             ', Summary_Tax_Line_Id: '||TO_CHAR(l_summary_tax_line_id_tbl(i)));
1470           END IF;
1471 
1472         END LOOP;
1473       END IF;
1474 
1475       l_prev_trx_id := -99;
1476       l_trx_id_tbl.DELETE;
1477       l_tax_dist_id_tbl.DELETE;
1478       l_summary_tax_line_id_tbl.DELETE;
1479 
1480       -- Frozen dist deleted check for Self-Assessed Tax Distributions
1481       OPEN get_deleted_frzn_sa_dist;
1482       FETCH get_deleted_frzn_sa_dist BULK COLLECT
1483        INTO l_trx_id_tbl,
1484             l_tax_dist_id_tbl,
1485             l_summary_tax_line_id_tbl;
1486       CLOSE get_deleted_frzn_sa_dist;
1487 
1488       IF l_trx_id_tbl.COUNT > 0 THEN
1489         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1490         l_error_buffer := 'System is trying to delete self-assessed frozen tax distributions. '||
1491                           'Unable to complete Tax Processing.';
1492 
1493         IF (g_level_unexpected >= g_current_runtime_level ) THEN
1494           FND_LOG.STRING(g_level_unexpected,
1495                          'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1496                          'ERROR: '||l_error_buffer);
1497           FND_LOG.STRING(g_level_unexpected,
1498                          'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1499                          'Following self-assessed frozen tax distributions deleted from ZX_REC_NREC_DIST:');
1500         END IF;
1501 
1502         FOR i IN NVL(l_trx_id_tbl.FIRST,0)..NVL(l_trx_id_tbl.LAST,-99) LOOP
1503           IF l_prev_trx_id <> l_trx_id_tbl(i) THEN
1504             l_context_info_rec.trx_id := l_trx_id_tbl(i);
1505 
1506             FND_MESSAGE.SET_NAME('ZX','ZX_GENERIC_TEXT');
1507             FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',l_error_buffer);
1508             ZX_API_PUB.Add_Msg(l_context_info_rec);
1509           END IF;
1510           l_prev_trx_id := l_trx_id_tbl(i);
1511 
1512           IF (g_level_unexpected >= g_current_runtime_level ) THEN
1513              FND_LOG.STRING(g_level_unexpected,
1514                             'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1515                             TO_CHAR(i)||'. Trx_Id: '||TO_CHAR(l_trx_id_tbl(i))||
1516                             ', Rec_Nrec_Tax_Dist_Id: '||TO_CHAR(l_tax_dist_id_tbl(i))||
1517                             ', Summary_Tax_Line_Id: '||TO_CHAR(l_summary_tax_line_id_tbl(i)));
1518           END IF;
1519 
1520         END LOOP;
1521       END IF;
1522 
1523       IF (g_level_procedure >= g_current_runtime_level ) THEN
1524         FND_LOG.STRING(g_level_procedure,
1525                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1526                'End : Frozen Tax Distributions deleted Validation : '||TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS'));
1527       END IF;
1528 
1529       IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1530         RAISE FND_API.G_EXC_ERROR;
1531       END IF;
1532     END IF;
1533     -- End --
1534 
1535     IF (g_level_procedure >= g_current_runtime_level ) THEN
1536       FND_LOG.STRING(g_level_procedure,
1537              'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions.END',
1538              'ZX_TRL_MANAGE_TAX_PKG: Delete_Loose_Tax_Distributions (-)');
1539     END IF;
1540 
1541   EXCEPTION
1542     WHEN FND_API.G_EXC_ERROR THEN
1543       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1544       IF (g_level_unexpected >= g_current_runtime_level ) THEN
1545         FND_LOG.STRING(g_level_unexpected,
1546                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1547                'Unexpected Error. Return_Status = '||x_return_status);
1548         FND_LOG.STRING(g_level_unexpected,
1549                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions.END',
1550                'ZX_TRL_MANAGE_TAX_PKG: Delete_Loose_Tax_Distributions (-)');
1551       END IF;
1552 
1553     WHEN OTHERS THEN
1554       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1555       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1556 
1557       IF (g_level_unexpected >= g_current_runtime_level ) THEN
1558         FND_LOG.STRING(g_level_unexpected,
1559                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions',
1560                 l_error_buffer);
1561         FND_LOG.STRING(g_level_unexpected,
1562                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Loose_Tax_Distributions.END',
1563                'ZX_TRL_MANAGE_TAX_PKG: Delete_Loose_Tax_Distributions (-)');
1564       END IF;
1565   END Delete_Loose_Tax_Distributions;
1566 
1567 /* ===========================================================================*
1568  | PROCEDURE Delete_Tax_Distributions: Deletes old tax distributions from     |
1569  | ZX_REC_NREC_DIST when new tax distributions are created in                 |
1570  | ZX_REC_NREC_DIST_GT                                                        |
1571  * ===========================================================================*/
1572 
1573 PROCEDURE Delete_Tax_Distributions(
1574   x_return_status      OUT NOCOPY VARCHAR2,
1575   p_event_class_rec IN            ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1576 
1577   l_row_count      NUMBER;
1578   l_error_buffer   VARCHAR2(100);
1579 
1580   BEGIN
1581 
1582     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1583 
1584     l_row_count := 0;
1585 
1586     IF (g_level_procedure >= g_current_runtime_level ) THEN
1587       FND_LOG.STRING(g_level_procedure,
1588                     'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Tax_Distributions.BEGIN',
1589                     'ZX_TRL_MANAGE_TAX_PKG: DELETE_TAX_DISTRIBUTIONS (+)');
1590     END IF;
1591 
1592     --  Initialize API return status to success
1593     x_return_status := FND_API.G_RET_STS_SUCCESS;
1594 
1595     DELETE FROM zx_rec_nrec_dist
1596      WHERE application_id = p_event_class_rec.application_id
1597        AND entity_code = p_event_class_rec.entity_code
1598        AND event_class_code = p_event_class_rec.event_class_code
1599        AND trx_id = p_event_class_rec.trx_id
1600        AND NVL(freeze_flag, 'N') = 'N'
1601        AND NVL(reverse_flag, 'N') = 'N'
1602        AND tax_line_id IN
1603            (SELECT tax_line_id
1604               FROM zx_lines
1605              WHERE  trx_id = p_event_class_rec.trx_id
1606                AND  application_id = p_event_class_rec.application_id
1607                AND  entity_code = p_event_class_rec.entity_code
1608                AND  event_class_code = p_event_class_rec.event_class_code
1609                AND  reporting_only_flag = 'N'
1610                AND  process_for_recovery_flag = 'Y'
1611            );
1612 
1613     l_row_count := SQL%ROWCOUNT;
1614 
1615     /* bug#4374237
1616     IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
1617       FND_MESSAGE.SET_NAME('FND','ZX_TRL_ROWS_DELETED');
1618       FND_MESSAGE.SET_TOKEN('ROWS_DELETED',l_row_count);
1619       FND_MSG_PUB.Add;
1620     END IF;
1621     */
1622 
1623     IF (g_level_procedure >= g_current_runtime_level ) THEN
1624       FND_LOG.STRING(g_level_procedure,
1625                     'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Tax_Distributions.END',
1626                     'ZX_TRL_MANAGE_TAX_PKG: DELETE_TAX_DISTRIBUTIONS (-)'||
1627                        l_row_count||' rows deleted');
1628     END IF;
1629 
1630   EXCEPTION
1631     WHEN FND_API.G_EXC_ERROR THEN
1632       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1633       IF (g_level_procedure >= g_current_runtime_level ) THEN
1634         FND_LOG.STRING(g_level_procedure,
1635                     'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Tax_Distributions',
1636                     'Unexpected error ...');
1637       END IF;
1638 
1639   WHEN OTHERS THEN
1640     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1641     l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1642 
1643     IF (g_level_unexpected >= g_current_runtime_level ) THEN
1644       FND_LOG.STRING(g_level_unexpected,
1645                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Tax_Distributions',
1646                       l_error_buffer);
1647     END IF;
1648 END Delete_Tax_Distributions;
1649 
1650 /* ===========================================================================*
1651  | PROCEDURE Delete_Transaction: Deletes the tax lines in the repository      |
1652  * ===========================================================================*/
1653   PROCEDURE Delete_Transaction
1654        (x_return_status    OUT NOCOPY VARCHAR2,
1655         p_event_class_rec  IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1656 
1657     l_api_version CONSTANT NUMBER  := 1.0;
1658     l_api_name    CONSTANT VARCHAR2(30) := 'Delete_Transaction';
1659     l_row_count            NUMBER;
1660     l_error_buffer         VARCHAR2(100);
1661 
1662     l_msg_context_info_rec         ZX_API_PUB.CONTEXT_INFO_REC_TYPE;
1663 
1664     -- This cursor will check if any tax lines has frozen distributions
1665     CURSOR check_frozen_child IS
1666       SELECT TAX_LINE_ID
1667       FROM ZX_LINES
1668       WHERE APPLICATION_ID               = p_event_class_rec.APPLICATION_ID
1669       AND ENTITY_CODE                    = p_event_class_rec.ENTITY_CODE
1670       AND EVENT_CLASS_CODE               = p_event_class_rec.EVENT_CLASS_CODE
1671       AND TRX_ID                         = p_event_class_rec.TRX_ID
1672       AND Associated_Child_Frozen_Flag = 'Y';
1673 
1674     l_tax_line_id ZX_LINES.TAX_LINE_ID%TYPE;
1675 
1676   BEGIN
1677 
1678     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1679 
1680     IF (g_level_procedure >= g_current_runtime_level ) THEN
1681       FND_LOG.STRING(g_level_procedure,
1682                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction.BEGIN',
1683                      'ZX_TRL_MANAGE_TAX_PKG: DELETE_TRANSACTION (+)');
1684     END IF;
1685 
1686     -- Standard Start of API savepoint
1687     SAVEPOINT Delete_Transaction_Pvt;
1688 
1689     --  Initialize API return status to success
1690     x_return_status := FND_API.G_RET_STS_SUCCESS;
1691     --
1692     -- bug#4893261- populate message structure
1693     --
1694     l_msg_context_info_rec.application_id :=
1695               p_event_class_rec.application_id;
1696     l_msg_context_info_rec.entity_code :=
1697               p_event_class_rec.entity_code;
1698     l_msg_context_info_rec.event_class_code :=
1699               p_event_class_rec.event_class_code;
1700     l_msg_context_info_rec.trx_id :=
1701               p_event_class_rec.trx_id;
1702     l_msg_context_info_rec.trx_line_id := NULL;
1703     l_msg_context_info_rec.trx_level_type := NULL;
1704     l_msg_context_info_rec.summary_tax_line_number := NULL;
1705     l_msg_context_info_rec.tax_line_id := NULL;
1706     l_msg_context_info_rec.trx_line_dist_id := NULL;
1707 
1708     --Relaxing the validation for AP as the tax lines are frozen before
1709     --there a Calculate Tax Call from AP in update mode and also all validations
1710     --are being handled by AP if the invoice is allowed to be deleted or not.
1711     IF (p_event_class_rec.tax_event_type_code = 'PURGE') AND
1712        (p_event_class_rec.application_id = 200) THEN
1713        null;
1714     ELSE
1715       -- Check if any lines are frozen for the transaction.
1716       -- If they are frozen then do not delete and raise error.
1717       OPEN check_frozen_child;
1718       FETCH check_frozen_child INTO l_tax_line_id;
1719         IF check_frozen_child%FOUND THEN
1720           CLOSE check_frozen_child;
1721           -- Frozen child exist hence we have to raise error and exit
1722           x_return_status := FND_API.G_RET_STS_ERROR;
1723 
1724 
1725           FND_MESSAGE.SET_NAME('ZX','ZX_CHILD_FROZEN');
1726           ZX_API_PUB.add_msg(l_msg_context_info_rec);
1727           RETURN;
1728         END IF;
1729       CLOSE check_frozen_child;
1730     END IF;
1731 
1732     DELETE FROM  ZX_LINES
1733     WHERE APPLICATION_ID          = p_event_class_rec.APPLICATION_ID
1734     AND   ENTITY_CODE             = p_event_class_rec.ENTITY_CODE
1735     AND   EVENT_CLASS_CODE        = p_event_class_rec.EVENT_CLASS_CODE
1736     AND   TRX_ID                  = p_event_class_rec.TRX_ID;
1737 
1738     IF (g_level_statement >= g_current_runtime_level ) THEN
1739         FND_LOG.STRING(g_level_statement,
1740                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1741                        'Number of rows deleted from zx_lines = '||l_row_count);
1742     END IF;
1743 
1744     IF p_event_class_rec.summarization_flag = 'Y' THEN
1745       -- Delete the summary lines
1746 
1747       DELETE FROM  ZX_LINES_SUMMARY
1748       WHERE APPLICATION_ID          = p_event_class_rec.APPLICATION_ID
1749       AND   ENTITY_CODE             = p_event_class_rec.ENTITY_CODE
1750       AND   EVENT_CLASS_CODE        = p_event_class_rec.EVENT_CLASS_CODE
1751       AND   TRX_ID                  = p_event_class_rec.TRX_ID;
1752 
1753       IF (g_level_statement >= g_current_runtime_level ) THEN
1754         FND_LOG.STRING(g_level_statement,
1755                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1756                        'Number of rows deleted from zx_lines_summary = '||l_row_count);
1757       END IF;
1758 
1759     END IF;
1760 
1761     DELETE FROM ZX_REC_NREC_DIST
1762     WHERE APPLICATION_ID  = p_event_class_rec.APPLICATION_ID
1763     AND ENTITY_CODE       = p_event_class_rec.ENTITY_CODE
1764     AND EVENT_CLASS_CODE  = p_event_class_rec.EVENT_CLASS_CODE
1765     AND TRX_ID            = p_event_class_rec.TRX_ID;
1766 
1767     IF (g_level_statement >= g_current_runtime_level ) THEN
1768         FND_LOG.STRING(g_level_statement,
1769                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1770                        'Number of rows deleted from zx_rec_nrec_dist = '||l_row_count);
1771     END IF;
1772 
1773     IF (g_level_procedure >= g_current_runtime_level ) THEN
1774       FND_LOG.STRING(g_level_procedure,
1775                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction.END',
1776                      'ZX_TRL_MANAGE_TAX_PKG: DELETE_TRANSACTION (-)');
1777     END IF;
1778 
1779   EXCEPTION
1780     WHEN NO_DATA_FOUND THEN
1781       -- x_return_status := FND_API.G_RET_STS_ERROR ;
1782       IF (g_level_procedure >= g_current_runtime_level ) THEN
1783         FND_LOG.STRING(g_level_procedure,
1784                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1785                        'Exception:' ||SQLCODE||';'||SQLERRM);
1786         FND_LOG.STRING(g_level_procedure,
1787                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1788                        'Return Status = '||x_return_status);
1789       END IF;
1790 
1791       /* bug#4374237
1792       IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1793         FND_MESSAGE.SET_NAME('FND','ZX_TRL_ROWS_NOT_FOUND');
1794         FND_MSG_PUB.Add;
1795       END IF;
1796       */
1797 
1798     WHEN FND_API.G_EXC_ERROR THEN
1799       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1800       IF (g_level_procedure >= g_current_runtime_level ) THEN
1801         FND_LOG.STRING(g_level_procedure,
1802                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1803                        'Exception:' ||SQLCODE||';'||SQLERRM);
1804         FND_LOG.STRING(g_level_procedure,
1805                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1806                        'Return Status = '||x_return_status);
1807       END IF;
1808 
1809       IF (g_level_procedure >= g_current_runtime_level ) THEN
1810         FND_LOG.STRING(g_level_procedure,
1811                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Manage_TaxLines',
1812                        'Unexpected error ...');
1813       END IF;
1814 
1815     WHEN OTHERS THEN
1816       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1817       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1818 
1819       IF (g_level_unexpected >= g_current_runtime_level ) THEN
1820         FND_LOG.STRING(g_level_unexpected,
1821                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
1822                         l_error_buffer);
1823       END IF;
1824   END Delete_Transaction;
1825 
1826 /* ===========================================================================*
1827  | PROCEDURE Cancel_Transaction: Marks tax lines in the repository as Cancelled|
1828  * ===========================================================================*/
1829 
1830   PROCEDURE Cancel_Transaction
1831        (x_return_status      OUT NOCOPY VARCHAR2,
1832         p_event_class_rec    IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
1833 
1834     l_row_count    NUMBER;
1835     l_error_buffer VARCHAR2(100);
1836 
1837     l_rec_nrec_tax_dist_id_tbl  num_tbl_type;
1838     l_tax_line_id_tbl           num_tbl_type;
1839     l_trx_line_dist_id_tbl      num_tbl_type;
1840     l_tax_dist_num_tbl          num_tbl_type;
1841     l_org_id_tbl                num_tbl_type;
1842     l_gl_date_tbl               date_tbl_type;
1843 
1844     l_old_tax_line_id       NUMBER;
1845     l_old_trx_line_dist_id  NUMBER;
1846     l_new_tax_dist_num      NUMBER;
1847 
1848     CURSOR  get_max_tax_dist_num_csr(
1849               c_tax_line_id    NUMBER,
1850               c_trx_line_dist_id  NUMBER) IS
1851      SELECT max(rec_nrec_tax_dist_number)
1852        FROM zx_rec_nrec_dist
1853       WHERE tax_line_id = c_tax_line_id
1854         AND trx_line_dist_id = c_trx_line_dist_id;
1855 
1856     CURSOR  get_frozen_tax_dists_csr IS
1857      SELECT rec_nrec_tax_dist_id,
1858             tax_line_id,
1859             trx_line_dist_id,
1860             rec_nrec_tax_dist_number,
1861             internal_organization_id,
1862             gl_date
1863        FROM zx_rec_nrec_dist
1864        WHERE freeze_flag      = 'Y'
1865          AND NVL(reverse_flag, 'N') = 'N'
1866          AND application_id   = p_event_class_rec.application_id
1867          AND entity_code      = p_event_class_rec.entity_code
1868          AND event_class_code = p_event_class_rec.event_class_code
1869          AND trx_id           = p_event_class_rec.trx_id
1870        ORDER BY tax_line_id, trx_line_dist_id, rec_nrec_tax_dist_number;
1871 
1872   BEGIN
1873 
1874     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1875 
1876     IF (g_level_procedure >= g_current_runtime_level ) THEN
1877       FND_LOG.STRING(g_level_procedure,
1878                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction.BEGIN',
1879                      'ZX_TRL_MANAGE_TAX_PKG: Cancel_Transaction (+)');
1880     END IF;
1881 
1882     --  Initialize API return status to success
1883     x_return_status := FND_API.G_RET_STS_SUCCESS;
1884 
1885     UPDATE ZX_LINES
1886       SET Cancel_Flag       = 'Y'
1887       WHERE APPLICATION_ID = p_event_class_rec.APPLICATION_ID
1888       AND ENTITY_CODE      = p_event_class_rec.ENTITY_CODE
1889       AND EVENT_CLASS_CODE = p_event_class_rec.EVENT_CLASS_CODE
1890       AND TRX_ID           = p_event_class_rec.TRX_ID;
1891 
1892     --Add the success or failure message into the stack.
1893 
1894     l_row_count := SQL%ROWCOUNT;
1895 
1896     IF (g_level_statement >= g_current_runtime_level ) THEN
1897         FND_LOG.STRING(g_level_statement,
1898                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction',
1899                        'Number of rows updated in zx_lines = '||l_row_count);
1900     END IF;
1901 
1902     IF p_event_class_rec.summarization_flag = 'Y' THEN
1903 
1904       UPDATE  ZX_LINES_SUMMARY
1905         SET Cancel_Flag = 'Y'
1906         WHERE APPLICATION_ID        = p_event_class_rec.APPLICATION_ID
1907         AND   ENTITY_CODE           = p_event_class_rec.ENTITY_CODE
1908         AND   EVENT_CLASS_CODE      = p_event_class_rec.EVENT_CLASS_CODE
1909         AND   TRX_ID                = p_event_class_rec.TRX_ID;
1910 
1911       l_row_count := SQL%ROWCOUNT;
1912 
1913       IF (g_level_statement >= g_current_runtime_level ) THEN
1914         FND_LOG.STRING(g_level_statement,
1915                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction',
1916                        'Number of rows updated in zx_lines_summary = '||l_row_count);
1917       END IF;
1918 
1919     END IF;
1920 
1921     OPEN  get_frozen_tax_dists_csr;
1922     FETCH get_frozen_tax_dists_csr BULK COLLECT INTO
1923            l_rec_nrec_tax_dist_id_tbl,
1924            l_tax_line_id_tbl,
1925            l_trx_line_dist_id_tbl,
1926            l_tax_dist_num_tbl,
1927            l_org_id_tbl,
1928            l_gl_date_tbl;
1929     CLOSE get_frozen_tax_dists_csr;
1930 
1931     l_old_tax_line_id := NUMBER_DUMMY;
1932     l_old_trx_line_dist_id := NUMBER_DUMMY;
1933     l_new_tax_dist_num := 0;
1934 
1935     IF l_rec_nrec_tax_dist_id_tbl.COUNT > 0 THEN
1936 
1937       FOR i IN NVL(l_rec_nrec_tax_dist_id_tbl.FIRST, 0) ..
1938                NVL(l_rec_nrec_tax_dist_id_tbl.LAST, -1)
1939       LOOP
1940 
1941         IF l_old_tax_line_id = l_tax_line_id_tbl(i) AND
1942            l_old_trx_line_dist_id = l_trx_line_dist_id_tbl(i) THEN
1943           l_new_tax_dist_num := l_new_tax_dist_num + 1;
1944         ELSE
1945 
1946           OPEN  get_max_tax_dist_num_csr(
1947                     l_tax_line_id_tbl(i),
1948                     l_trx_line_dist_id_tbl(i));
1949           FETCH get_max_tax_dist_num_csr INTO l_new_tax_dist_num;
1950           CLOSE get_max_tax_dist_num_csr;
1951 
1952           l_new_tax_dist_num := l_new_tax_dist_num + 1;
1953 
1954           l_old_tax_line_id := l_tax_line_id_tbl(i);
1955           l_old_trx_line_dist_id := l_trx_line_dist_id_tbl(i);
1956 
1957         END IF;
1958 
1959         l_tax_dist_num_tbl(i) := l_new_tax_dist_num;
1960 
1961         -- bug 6706941: populate gl_date for the reversed tax distribution
1962         --
1963         l_gl_date_tbl(i) := AP_UTILITIES_PKG.get_reversal_gl_date(
1964                                             p_date   => l_gl_date_tbl(i),
1965                                             p_org_id => l_org_id_tbl(i));
1966 
1967       END LOOP;
1968 
1969       FORALL i IN NVL(l_rec_nrec_tax_dist_id_tbl.FIRST, 0) ..
1970                    NVL(l_rec_nrec_tax_dist_id_tbl.LAST, -1)
1971 
1972         INSERT INTO ZX_REC_NREC_DIST(
1973                         REC_NREC_TAX_DIST_ID,
1974                         APPLICATION_ID,
1975                         ENTITY_CODE,
1976                         EVENT_CLASS_CODE,
1977                         EVENT_TYPE_CODE,
1978                         TRX_ID,
1979                         TRX_LEVEL_TYPE,
1980                         TRX_NUMBER,
1981                         TRX_LINE_ID,
1982                         TRX_LINE_NUMBER,
1983                         TAX_LINE_ID,
1984                         TAX_LINE_NUMBER,
1985                         TRX_LINE_DIST_ID,
1986                         ITEM_DIST_NUMBER,
1987                         REC_NREC_TAX_DIST_NUMBER,
1988                         REC_NREC_RATE,
1989                         RECOVERABLE_FLAG,
1990                         REC_NREC_TAX_AMT,
1991                         TAX_EVENT_CLASS_CODE,
1992                         TAX_EVENT_TYPE_CODE,
1993                         CONTENT_OWNER_ID,
1994                         TAX_REGIME_ID,
1995                         TAX_REGIME_CODE,
1996                         TAX_ID,
1997                         TAX,
1998                         TAX_STATUS_ID,
1999                         TAX_STATUS_CODE,
2000                         TAX_RATE_ID,
2001                         TAX_RATE_CODE,
2002                         TAX_RATE,
2003                         INCLUSIVE_FLAG,
2004                         RECOVERY_TYPE_ID,
2005                         RECOVERY_TYPE_CODE,
2006                         RECOVERY_RATE_ID,
2007                         RECOVERY_RATE_CODE,
2008                         REC_TYPE_RULE_FLAG,
2009                         NEW_REC_RATE_CODE_FLAG,
2010                         REVERSE_FLAG,
2011                         HISTORICAL_FLAG,
2012                         REVERSED_TAX_DIST_ID,
2013                         REC_NREC_TAX_AMT_TAX_CURR,
2014                         REC_NREC_TAX_AMT_FUNCL_CURR,
2015                         INTENDED_USE,
2016                         PROJECT_ID,
2017                         TASK_ID,
2018                         AWARD_ID,
2019                         EXPENDITURE_TYPE,
2020                         EXPENDITURE_ORGANIZATION_ID,
2021                         EXPENDITURE_ITEM_DATE,
2022                         REC_RATE_DET_RULE_FLAG,
2023                         LEDGER_ID,
2024                         SUMMARY_TAX_LINE_ID,
2025                         RECORD_TYPE_CODE,
2026                         CURRENCY_CONVERSION_DATE,
2027                         CURRENCY_CONVERSION_TYPE,
2028                         CURRENCY_CONVERSION_RATE,
2029                         TAX_CURRENCY_CONVERSION_DATE,
2030                         TAX_CURRENCY_CONVERSION_TYPE,
2031                         TAX_CURRENCY_CONVERSION_RATE,
2032                         TRX_CURRENCY_CODE,
2033                         TAX_CURRENCY_CODE,
2034                         TRX_LINE_DIST_QTY,
2035                         REF_DOC_TRX_LINE_DIST_QTY,
2036                         PRICE_DIFF,
2037                         QTY_DIFF,
2038                         PER_TRX_CURR_UNIT_NR_AMT,
2039                         REF_PER_TRX_CURR_UNIT_NR_AMT,
2040                         REF_DOC_CURR_CONV_RATE,
2041                         UNIT_PRICE,
2042                         REF_DOC_UNIT_PRICE,
2043                         PER_UNIT_NREC_TAX_AMT,
2044                         REF_DOC_PER_UNIT_NREC_TAX_AMT,
2045                         RATE_TAX_FACTOR,
2046                         TAX_APPORTIONMENT_FLAG,
2047                         TRX_LINE_DIST_AMT,
2048                         TRX_LINE_DIST_TAX_AMT,
2049                         ORIG_REC_NREC_RATE,
2050                         ORIG_REC_RATE_CODE,
2051                         ORIG_REC_NREC_TAX_AMT,
2052                         ORIG_REC_NREC_TAX_AMT_TAX_CURR,
2053                         ACCOUNT_CCID,
2054                         ACCOUNT_STRING,
2055                         UNROUNDED_REC_NREC_TAX_AMT,
2056                         APPLICABILITY_RESULT_ID,
2057                         REC_RATE_RESULT_ID,
2058                         BACKWARD_COMPATIBILITY_FLAG,
2059                         OVERRIDDEN_FLAG,
2060                         SELF_ASSESSED_FLAG,
2061                         FREEZE_FLAG,
2062                         POSTING_FLAG,
2063                         ATTRIBUTE_CATEGORY,
2064                         ATTRIBUTE1,
2065                         ATTRIBUTE2,
2066                         ATTRIBUTE3,
2067                         ATTRIBUTE4,
2068                         ATTRIBUTE5,
2069                         ATTRIBUTE6,
2070                         ATTRIBUTE7,
2071                         ATTRIBUTE8,
2072                         ATTRIBUTE9,
2073                         ATTRIBUTE10,
2074                         ATTRIBUTE11,
2075                         ATTRIBUTE12,
2076                         ATTRIBUTE13,
2077                         ATTRIBUTE14,
2078                         ATTRIBUTE15,
2079                         GLOBAL_ATTRIBUTE_CATEGORY,
2080                         GLOBAL_ATTRIBUTE1,
2081                         GLOBAL_ATTRIBUTE2,
2082                         GLOBAL_ATTRIBUTE3,
2083                         GLOBAL_ATTRIBUTE4,
2084                         GLOBAL_ATTRIBUTE5,
2085                         GLOBAL_ATTRIBUTE6,
2086                         GLOBAL_ATTRIBUTE7,
2087                         GLOBAL_ATTRIBUTE8,
2088                         GLOBAL_ATTRIBUTE9,
2089                         GLOBAL_ATTRIBUTE10,
2090                         GLOBAL_ATTRIBUTE11,
2091                         GLOBAL_ATTRIBUTE12,
2092                         GLOBAL_ATTRIBUTE13,
2093                         GLOBAL_ATTRIBUTE14,
2094                         GLOBAL_ATTRIBUTE15,
2095                         GLOBAL_ATTRIBUTE16,
2096                         GLOBAL_ATTRIBUTE17,
2097                         GLOBAL_ATTRIBUTE18,
2098                         GLOBAL_ATTRIBUTE19,
2099                         GLOBAL_ATTRIBUTE20,
2100                         GL_DATE,
2101                         REF_DOC_APPLICATION_ID,
2102                         REF_DOC_ENTITY_CODE,
2103                         REF_DOC_EVENT_CLASS_CODE,
2104                         REF_DOC_TRX_ID,
2105                         REF_DOC_LINE_ID,
2106                         REF_DOC_DIST_ID,
2107                         MINIMUM_ACCOUNTABLE_UNIT,
2108                         PRECISION,
2109                         ROUNDING_RULE_CODE,
2110                         TAXABLE_AMT,
2111                         TAXABLE_AMT_TAX_CURR,
2112                         TAXABLE_AMT_FUNCL_CURR,
2113                         TAX_ONLY_LINE_FLAG,
2114                         UNROUNDED_TAXABLE_AMT,
2115                         LEGAL_ENTITY_ID,
2116                         PRD_TAX_AMT,
2117                         PRD_TAX_AMT_TAX_CURR,
2118                         PRD_TAX_AMT_FUNCL_CURR,
2119                         PRD_TOTAL_TAX_AMT,
2120                         PRD_TOTAL_TAX_AMT_TAX_CURR,
2121                         PRD_TOTAL_TAX_AMT_FUNCL_CURR,
2122                         APPLIED_FROM_TAX_DIST_ID,
2123                         APPLIED_TO_DOC_CURR_CONV_RATE,
2124                         ADJUSTED_DOC_TAX_DIST_ID,
2125                         FUNC_CURR_ROUNDING_ADJUSTMENT,
2126                         TAX_APPORTIONMENT_LINE_NUMBER,
2127                         LAST_MANUAL_ENTRY,
2128                         REF_DOC_TAX_DIST_ID,
2129                         REF_DOC_TRX_LEVEL_TYPE,
2130                         MRC_TAX_DIST_FLAG,
2131                         MRC_LINK_TO_TAX_DIST_ID,
2132                         OBJECT_VERSION_NUMBER,
2133                         CREATED_BY,
2134                         CREATION_DATE,
2135                         LAST_UPDATED_BY,
2136                         LAST_UPDATE_DATE,
2137                         LAST_UPDATE_LOGIN,
2138                         INTERNAL_ORGANIZATION_ID,
2139                         DEF_REC_SETTLEMENT_OPTION_CODE,
2140                         TAX_JURISDICTION_ID,
2141                         ACCOUNT_SOURCE_TAX_RATE_ID)
2142              SELECT ZX_REC_NREC_DIST_S.NEXTVAL,
2143                     APPLICATION_ID,
2144                     ENTITY_CODE,
2145                     EVENT_CLASS_CODE,
2146                     EVENT_TYPE_CODE,
2147                     TRX_ID,
2148                     TRX_LEVEL_TYPE,
2149                     TRX_NUMBER,
2150                     TRX_LINE_ID,
2151                     TRX_LINE_NUMBER,
2152                     TAX_LINE_ID,
2153                     TAX_LINE_NUMBER,
2154                     TRX_LINE_DIST_ID,
2155                     ITEM_DIST_NUMBER,
2156                     l_tax_dist_num_tbl(i),            -- REC_NREC_TAX_DIST_NUMBER,
2157                     REC_NREC_RATE,
2158                     RECOVERABLE_FLAG,
2159                     - REC_NREC_TAX_AMT,
2160                     TAX_EVENT_CLASS_CODE,
2161                     TAX_EVENT_TYPE_CODE,
2162                     CONTENT_OWNER_ID,
2163                     TAX_REGIME_ID,
2164                     TAX_REGIME_CODE,
2165                     TAX_ID,
2166                     TAX,
2167                     TAX_STATUS_ID,
2168                     TAX_STATUS_CODE,
2169                     TAX_RATE_ID,
2170                     TAX_RATE_CODE,
2171                     TAX_RATE,
2172                     INCLUSIVE_FLAG,
2173                     RECOVERY_TYPE_ID,
2174                     RECOVERY_TYPE_CODE,
2175                     RECOVERY_RATE_ID,
2176                     RECOVERY_RATE_CODE,
2177                     REC_TYPE_RULE_FLAG,
2178                     NEW_REC_RATE_CODE_FLAG,
2179                     'Y',                              -- REVERSE_FLAG,
2180                     HISTORICAL_FLAG,
2181                     REC_NREC_TAX_DIST_ID,             -- REVERSED_TAX_DIST_ID,
2182                     - REC_NREC_TAX_AMT_TAX_CURR,
2183                     - REC_NREC_TAX_AMT_FUNCL_CURR,
2184                     INTENDED_USE,
2185                     PROJECT_ID,
2186                     TASK_ID,
2187                     AWARD_ID,
2188                     EXPENDITURE_TYPE,
2189                     EXPENDITURE_ORGANIZATION_ID,
2190                     EXPENDITURE_ITEM_DATE,
2191                     REC_RATE_DET_RULE_FLAG,
2192                     LEDGER_ID,
2193                     SUMMARY_TAX_LINE_ID,
2194                     RECORD_TYPE_CODE,
2195                     CURRENCY_CONVERSION_DATE,
2196                     CURRENCY_CONVERSION_TYPE,
2197                     CURRENCY_CONVERSION_RATE,
2198                     TAX_CURRENCY_CONVERSION_DATE,
2199                     TAX_CURRENCY_CONVERSION_TYPE,
2200                     TAX_CURRENCY_CONVERSION_RATE,
2201                     TRX_CURRENCY_CODE,
2202                     TAX_CURRENCY_CODE,
2203                     - TRX_LINE_DIST_QTY,
2204                     - REF_DOC_TRX_LINE_DIST_QTY,
2205                     PRICE_DIFF,
2206                     - QTY_DIFF,
2207                     - PER_TRX_CURR_UNIT_NR_AMT,
2208                     - REF_PER_TRX_CURR_UNIT_NR_AMT,
2209                     REF_DOC_CURR_CONV_RATE,
2210                     UNIT_PRICE,
2211                     REF_DOC_UNIT_PRICE,
2212                     - PER_UNIT_NREC_TAX_AMT,
2213                     - REF_DOC_PER_UNIT_NREC_TAX_AMT,
2214                     RATE_TAX_FACTOR,
2215                     TAX_APPORTIONMENT_FLAG,
2216                     - TRX_LINE_DIST_AMT,
2217                     - TRX_LINE_DIST_TAX_AMT,
2218                     NULL,                             -- ORIG_REC_NREC_RATE
2219                     NULL,                             -- ORIG_REC_RATE_CODE
2220                     NULL,                             -- ORIG_REC_NREC_TAX_AMT
2221                     NULL,                             -- ORIG_REC_NREC_TAX_AMT_TAX_CURR
2222                     ACCOUNT_CCID,
2223                     ACCOUNT_STRING,
2224                     - UNROUNDED_REC_NREC_TAX_AMT,
2225                     APPLICABILITY_RESULT_ID,
2226                     REC_RATE_RESULT_ID,
2227                     BACKWARD_COMPATIBILITY_FLAG,
2228                     'N',                              -- OVERRIDDEN_FLAG,
2229                     SELF_ASSESSED_FLAG,
2230                     'N',                              -- FREEZE_FLAG,
2231                     POSTING_FLAG,
2232                     ATTRIBUTE_CATEGORY,
2233                     ATTRIBUTE1,
2234                     ATTRIBUTE2,
2235                     ATTRIBUTE3,
2236                     ATTRIBUTE4,
2237                     ATTRIBUTE5,
2238                     ATTRIBUTE6,
2239                     ATTRIBUTE7,
2240                     ATTRIBUTE8,
2241                     ATTRIBUTE9,
2242                     ATTRIBUTE10,
2243                     ATTRIBUTE11,
2244                     ATTRIBUTE12,
2245                     ATTRIBUTE13,
2246                     ATTRIBUTE14,
2247                     ATTRIBUTE15,
2248                     GLOBAL_ATTRIBUTE_CATEGORY,
2249                     GLOBAL_ATTRIBUTE1,
2250                     GLOBAL_ATTRIBUTE2,
2251                     GLOBAL_ATTRIBUTE3,
2252                     GLOBAL_ATTRIBUTE4,
2253                     GLOBAL_ATTRIBUTE5,
2254                     GLOBAL_ATTRIBUTE6,
2255                     GLOBAL_ATTRIBUTE7,
2256                     GLOBAL_ATTRIBUTE8,
2257                     GLOBAL_ATTRIBUTE9,
2258                     GLOBAL_ATTRIBUTE10,
2259                     GLOBAL_ATTRIBUTE11,
2260                     GLOBAL_ATTRIBUTE12,
2261                     GLOBAL_ATTRIBUTE13,
2262                     GLOBAL_ATTRIBUTE14,
2263                     GLOBAL_ATTRIBUTE15,
2264                     GLOBAL_ATTRIBUTE16,
2265                     GLOBAL_ATTRIBUTE17,
2266                     GLOBAL_ATTRIBUTE18,
2267                     GLOBAL_ATTRIBUTE19,
2268                     GLOBAL_ATTRIBUTE20,
2269                     l_gl_date_tbl(i),                 -- GL_DATE,
2270                     REF_DOC_APPLICATION_ID,
2271                     REF_DOC_ENTITY_CODE,
2272                     REF_DOC_EVENT_CLASS_CODE,
2273                     REF_DOC_TRX_ID,
2274                     REF_DOC_LINE_ID,
2275                     REF_DOC_DIST_ID,
2276                     MINIMUM_ACCOUNTABLE_UNIT,
2277                     PRECISION,
2278                     ROUNDING_RULE_CODE,
2279                     - TAXABLE_AMT,
2280                     - TAXABLE_AMT_TAX_CURR,
2281                     - TAXABLE_AMT_FUNCL_CURR,
2282                     TAX_ONLY_LINE_FLAG,
2283                     - UNROUNDED_TAXABLE_AMT,
2284                     LEGAL_ENTITY_ID,
2285                     - PRD_TAX_AMT,
2286                     - PRD_TAX_AMT_TAX_CURR,
2287                     - PRD_TAX_AMT_FUNCL_CURR,
2288                     - PRD_TOTAL_TAX_AMT,
2289                     - PRD_TOTAL_TAX_AMT_TAX_CURR,
2290                     - PRD_TOTAL_TAX_AMT_FUNCL_CURR,
2291                     APPLIED_FROM_TAX_DIST_ID,
2292                     APPLIED_TO_DOC_CURR_CONV_RATE,
2293                     ADJUSTED_DOC_TAX_DIST_ID,
2294                     FUNC_CURR_ROUNDING_ADJUSTMENT,
2295                     TAX_APPORTIONMENT_LINE_NUMBER,
2296                     LAST_MANUAL_ENTRY,
2297                     REF_DOC_TAX_DIST_ID,
2298                     REF_DOC_TRX_LEVEL_TYPE,
2299                     MRC_TAX_DIST_FLAG,
2300                     MRC_LINK_TO_TAX_DIST_ID,
2301                     1,                                --OBJECT_VERSION_NUMBER,
2302                     FND_GLOBAL.USER_ID,               -- CREATED_BY,
2303                     SYSDATE,                          -- CREATION_DATE,
2304                     FND_GLOBAL.USER_ID,               -- LAST_UPDATED_BY,
2305                     SYSDATE,                          -- LAST_UPDATE_DATE,
2306                     FND_GLOBAL.LOGIN_ID,              -- LAST_UPDATE_LOGIN
2307                     INTERNAL_ORGANIZATION_ID,
2308                     DEF_REC_SETTLEMENT_OPTION_CODE,
2309                     TAX_JURISDICTION_ID,
2310                     ACCOUNT_SOURCE_TAX_RATE_ID
2311              FROM ZX_REC_NREC_DIST
2312              WHERE rec_nrec_tax_dist_id = l_rec_nrec_tax_dist_id_tbl(i);
2313 
2314       l_row_count := SQL%ROWCOUNT;
2315 
2316       IF (g_level_statement >= g_current_runtime_level ) THEN
2317         FND_LOG.STRING(g_level_statement,
2318                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction',
2319                        'Number of rows updated in zx_rec_nrec_dist = '||l_row_count);
2320       END IF;
2321 
2322       FORALL i IN NVL(l_rec_nrec_tax_dist_id_tbl.FIRST, 0) ..
2323                   NVL(l_rec_nrec_tax_dist_id_tbl.LAST, -1)
2324         UPDATE zx_rec_nrec_dist
2325            SET reverse_flag = 'Y'
2326          WHERE rec_nrec_tax_dist_id = l_rec_nrec_tax_dist_id_tbl(i);
2327 
2328       l_row_count := SQL%ROWCOUNT;
2329 
2330       IF (g_level_statement >= g_current_runtime_level ) THEN
2331         FND_LOG.STRING(g_level_statement,
2332                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction',
2333                        'Number of rows updated in zx_rec_nrec_dist = '||l_row_count);
2334       END IF;
2335 
2336     END IF;    -- _rec_nrec_tax_dist_id_tbl.COUNT > 0
2337 
2338     IF (g_level_procedure >= g_current_runtime_level ) THEN
2339       FND_LOG.STRING(g_level_procedure,
2340                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction.END',
2341                      'ZX_TRL_MANAGE_TAX_PKG: CANCEL_TRANSACTION (-)');
2342     END IF;
2343 
2344   EXCEPTION
2345 
2346     WHEN FND_API.G_EXC_ERROR THEN
2347       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2348       IF (g_level_procedure >= g_current_runtime_level ) THEN
2349         FND_LOG.STRING(g_level_procedure,
2350                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction',
2351                        'Exception:' ||SQLCODE||';'||SQLERRM);
2352         FND_LOG.STRING(g_level_procedure,
2353                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction',
2354                        'Return Status = '||x_return_status);
2355       END IF;
2356 
2357     WHEN OTHERS THEN
2358       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2359       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2360 
2361       IF (g_level_unexpected >= g_current_runtime_level ) THEN
2362 
2363         FND_LOG.STRING(g_level_unexpected,
2364                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Cancel_Transaction',
2365                         l_error_buffer);
2366       END IF;
2367   END Cancel_Transaction;
2368 
2369 /* ===============================================================================*
2370  | PROCEDURE Purge_Transaction: Deletes tax lines in the repository (in Phase 1a)|
2371  * ===============================================================================*/
2372 
2373   PROCEDURE Purge_Transaction
2374        (x_return_status      OUT NOCOPY VARCHAR2,
2375         p_event_class_rec    IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
2376 
2377     l_return_status   VARCHAR2(1);
2378     l_error_buffer    VARCHAR2(100);
2379 
2380   BEGIN
2381 
2382     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2383 
2384     IF (g_level_procedure >= g_current_runtime_level ) THEN
2385       FND_LOG.STRING(g_level_procedure,
2386                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Purge_Transaction.BEGIN',
2387                      'ZX_TRL_MANAGE_TAX_PKG: PURGE_TRANSACTION (+)');
2388     END IF;
2389 
2390     --  Initialize API return status to success
2391     x_return_status := FND_API.G_RET_STS_SUCCESS;
2392 
2393     Delete_Transaction (x_return_status   => l_return_status,
2394                         p_event_class_rec => p_event_class_rec);
2395 
2396     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2397       IF (g_level_procedure >= g_current_runtime_level ) THEN
2398         FND_LOG.STRING(g_level_procedure,
2399                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Transaction',
2400                        'Return Status = '||l_return_status);
2401       END IF;
2402       RAISE FND_API.G_EXC_ERROR;
2403     END IF;
2404 
2405     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2406       IF (g_level_procedure >= g_current_runtime_level ) THEN
2407         FND_LOG.STRING(g_level_procedure,
2408                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Purge_Transaction',
2409                        'Return Status = '||l_return_status);
2410       END IF;
2411       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2412     END IF;
2413 
2414     IF (g_level_procedure >= g_current_runtime_level ) THEN
2415       FND_LOG.STRING(g_level_procedure,
2416                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Purge_Transaction.END',
2417                      'ZX_TRL_MANAGE_TAX_PKG: PURGE_TRANSACTION (-)');
2418     END IF;
2419 
2420   EXCEPTION
2421     WHEN FND_API.G_EXC_ERROR THEN
2422       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2423       IF (g_level_procedure >= g_current_runtime_level ) THEN
2424         FND_LOG.STRING(g_level_procedure,
2425                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Purge_Transaction',
2426                        'Exception:' ||SQLCODE||';'||SQLERRM);
2427         FND_LOG.STRING(g_level_procedure,
2428                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Purge_Transaction',
2429                        'Return Status = '||x_return_status);
2430       END IF;
2431 
2432     WHEN OTHERS THEN
2433       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2434       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2435 
2436       IF (g_level_procedure >= g_current_runtime_level ) THEN
2437         FND_LOG.STRING(g_level_procedure,
2438                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Purge_Transaction',
2439                        'Return Status = '||x_return_status);
2440       END IF;
2441 
2442       IF (g_level_unexpected >= g_current_runtime_level ) THEN
2443         FND_LOG.STRING(g_level_unexpected,
2444                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Purge_Transaction',
2445                         l_error_buffer);
2446       END IF;
2447 
2448   END Purge_Transaction;
2449 
2450 
2451 /* ===========================================================================*
2452  | PROCEDURE Mark_Detail_Tax_Lines_Delete: Marks tax lines in the repository  |
2453  | as Deleted                                                                 |
2454  * ===========================================================================*/
2455 
2456   PROCEDURE Mark_Detail_Tax_Lines_Delete
2457        (x_return_status        OUT NOCOPY VARCHAR2,
2458         p_transaction_line_rec IN         ZX_API_PUB.TRANSACTION_LINE_REC_TYPE) IS
2459 
2460     l_row_count         NUMBER;
2461     l_freeze_dists_num  NUMBER;
2462     l_error_buffer      VARCHAR2(100);
2463 
2464     CURSOR check_dist IS
2465       SELECT count(*) frozen_rec
2466       FROM ZX_REC_NREC_DIST
2467       WHERE application_id = p_transaction_line_rec.application_id
2468       AND entity_code      = p_transaction_line_rec.entity_code
2469       AND event_class_code = p_transaction_line_rec.event_class_code
2470       AND trx_id           = p_transaction_line_rec.trx_id
2471       AND trx_line_id      = p_transaction_line_rec.trx_line_id
2472       AND trx_level_type   = p_transaction_line_rec.trx_level_type
2473       AND Freeze_Flag = 'Y';
2474 
2475   BEGIN
2476 
2477     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2478 
2479     IF (g_level_procedure >= g_current_runtime_level ) THEN
2480       FND_LOG.STRING(g_level_procedure,
2481                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete.BEGIN',
2482                      'ZX_TRL_MANAGE_TAX_PKG: MARK_DETAIL_TAX_LINES_DELETE (+)');
2483     END IF;
2484 
2485     --  Initialize API return status to success
2486     x_return_status := FND_API.G_RET_STS_SUCCESS;
2487 
2488     --Check if any associated distributions are marked frozen.
2489     OPEN check_dist;
2490     Fetch check_dist INTO l_freeze_dists_num;
2491     CLOSE check_dist;
2492 
2493     IF l_freeze_dists_num > 0 THEN
2494 
2495       APP_EXCEPTION.Raise_Exception;
2496       RAISE FND_API.G_EXC_ERROR;
2497     END IF;
2498 
2499     UPDATE ZX_LINES
2500       SET Delete_Flag       = 'Y'
2501       WHERE APPLICATION_ID = p_transaction_line_rec.APPLICATION_ID
2502       AND ENTITY_CODE      = p_transaction_line_rec.ENTITY_CODE
2503       AND EVENT_CLASS_CODE = p_transaction_line_rec.EVENT_CLASS_CODE
2504       AND TRX_ID           = p_transaction_line_rec.TRX_ID
2505       AND TRX_LINE_ID      = p_transaction_line_rec.TRX_LINE_ID
2506       AND TRX_LEVEL_TYPE   = p_transaction_line_rec.TRX_LEVEL_TYPE;
2507 
2508     --Add the success or failure message into the stack.
2509 
2510     IF (g_level_statement >= g_current_runtime_level ) THEN
2511         FND_LOG.STRING(g_level_statement,
2512                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2513                        'Number of rows updated in zx_lines = '||l_row_count);
2514     END IF;
2515 
2516     IF (g_level_procedure >= g_current_runtime_level ) THEN
2517       FND_LOG.STRING(g_level_procedure,
2518                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete.END',
2519                      'ZX_TRL_MANAGE_TAX_PKG: MARK_DETAIL_TAX_LINES_DELETE (-)');
2520     END IF;
2521 
2522   EXCEPTION
2523     WHEN NO_DATA_FOUND THEN
2524       -- x_return_status := FND_API.G_RET_STS_ERROR ;
2525       IF (g_level_procedure >= g_current_runtime_level ) THEN
2526         FND_LOG.STRING(g_level_procedure,
2527                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2528                        'Exception:' ||SQLCODE||';'||SQLERRM);
2529 
2530         FND_LOG.STRING(g_level_procedure,
2531                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2532                        'Return Status = '||x_return_status);
2533       END IF;
2534 
2535       /* bug#4374237
2536       IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2537         FND_MESSAGE.SET_NAME('FND','ZX_TRL_ROWS_NOT_FOUND');
2538         FND_MSG_PUB.Add;
2539       END IF;
2540       */
2541 
2542     WHEN FND_API.G_EXC_ERROR THEN
2543       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2544       IF (g_level_procedure >= g_current_runtime_level ) THEN
2545         FND_LOG.STRING(g_level_procedure,
2546                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2547                        'Exception:' ||SQLCODE||';'||SQLERRM);
2548 
2549         FND_LOG.STRING(g_level_procedure,
2550                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2551                        'Return Status = '||x_return_status);
2552       END IF;
2553 
2554     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2555       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2556 
2557       IF (g_level_procedure >= g_current_runtime_level ) THEN
2558         FND_LOG.STRING(g_level_procedure,
2559                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2560                        'Unexpected Error:' ||SQLCODE||';'||SQLERRM);
2561         FND_LOG.STRING(g_level_procedure,
2562                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2563                        'Return Status = '||x_return_status);
2564         FND_LOG.STRING(g_level_procedure,
2565                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2566                        'Unexpected error ...');
2567       END IF;
2568 
2569     WHEN OTHERS THEN
2570       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2571       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2572 
2573       IF (g_level_procedure >= g_current_runtime_level ) THEN
2574         FND_LOG.STRING(g_level_procedure,
2575                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2576                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
2577 
2578         FND_LOG.STRING(g_level_procedure,
2579                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Mark_Detail_Tax_Lines_Delete',
2580                        'Return Status = '||x_return_status);
2581       END IF;
2582   END Mark_Detail_Tax_Lines_Delete;
2583 
2584 /*============================================================================*
2585  | PROCEDURE Create_Tax_Distributions: Inserts distribution lines into        |
2586  |                                     ZX_REC_NREC_DIST table.                |
2587  *============================================================================*/
2588 
2589   PROCEDURE Create_Tax_Distributions
2590        (x_return_status OUT NOCOPY VARCHAR2) IS
2591 
2592     l_error_buffer  VARCHAR2(100);
2593 
2594   BEGIN
2595 
2596     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2597 
2598     IF (g_level_procedure >= g_current_runtime_level ) THEN
2599       FND_LOG.STRING(g_level_procedure,
2600                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions.BEGIN',
2601                      'ZX_TRL_MANAGE_TAX_PKG: Create_Tax_Distributions (+)');
2602     END IF;
2603 
2604     --  Initialize API return status to success
2605     x_return_status := FND_API.G_RET_STS_SUCCESS;
2606 
2607     INSERT INTO ZX_REC_NREC_DIST (REC_NREC_TAX_DIST_ID,
2608                                   APPLICATION_ID,
2609                                   ENTITY_CODE,
2610                                   EVENT_CLASS_CODE,
2611                                   EVENT_TYPE_CODE,
2612                                   TRX_ID,
2613                                   TRX_LEVEL_TYPE,
2614                                   TRX_NUMBER,
2615                                   TRX_LINE_ID,
2616                                   TRX_LINE_NUMBER,
2617                                   TAX_LINE_ID,
2618                                   TAX_LINE_NUMBER,
2619                                   TRX_LINE_DIST_ID,
2620                                   ITEM_DIST_NUMBER,
2621                                   REC_NREC_TAX_DIST_NUMBER,
2622                                   REC_NREC_RATE,
2623                                   RECOVERABLE_FLAG,
2624                                   REC_NREC_TAX_AMT,
2625                                   TAX_EVENT_CLASS_CODE,
2626                                   TAX_EVENT_TYPE_CODE,
2627                                   CONTENT_OWNER_ID,
2628                                   TAX_REGIME_ID,
2629                                   TAX_REGIME_CODE,
2630                                   TAX_ID,
2631                                   TAX,
2632                                   TAX_STATUS_ID,
2633                                   TAX_STATUS_CODE,
2634                                   TAX_RATE_ID,
2635                                   TAX_RATE_CODE,
2636                                   TAX_RATE,
2637                                   INCLUSIVE_FLAG,
2638                                   RECOVERY_TYPE_ID,
2639                                   RECOVERY_TYPE_CODE,
2640                                   RECOVERY_RATE_ID,
2641                                   RECOVERY_RATE_CODE,
2642                                   REC_TYPE_RULE_FLAG,
2643                                   NEW_REC_RATE_CODE_FLAG,
2644                                   REVERSE_FLAG,
2645                                   HISTORICAL_FLAG,
2646                                   REVERSED_TAX_DIST_ID,
2647                                   REC_NREC_TAX_AMT_TAX_CURR,
2648                                   REC_NREC_TAX_AMT_FUNCL_CURR,
2649                                   INTENDED_USE,
2650                                   PROJECT_ID,
2651                                   TASK_ID,
2652                                   AWARD_ID,
2653                                   EXPENDITURE_TYPE,
2654                                   EXPENDITURE_ORGANIZATION_ID,
2655                                   EXPENDITURE_ITEM_DATE,
2656                                   REC_RATE_DET_RULE_FLAG,
2657                                   LEDGER_ID,
2658                                   SUMMARY_TAX_LINE_ID,
2659                                   RECORD_TYPE_CODE,
2660                                   CURRENCY_CONVERSION_DATE,
2661                                   CURRENCY_CONVERSION_TYPE,
2662                                   CURRENCY_CONVERSION_RATE,
2663                                   TAX_CURRENCY_CONVERSION_DATE,
2664                                   TAX_CURRENCY_CONVERSION_TYPE,
2665                                   TAX_CURRENCY_CONVERSION_RATE,
2666                                   TRX_CURRENCY_CODE,
2667                                   TAX_CURRENCY_CODE,
2668                                   TRX_LINE_DIST_QTY,
2669                                   REF_DOC_TRX_LINE_DIST_QTY,
2670                                   PRICE_DIFF,
2671                                   QTY_DIFF,
2672                                   PER_TRX_CURR_UNIT_NR_AMT,
2673                                   REF_PER_TRX_CURR_UNIT_NR_AMT,
2674                                   REF_DOC_CURR_CONV_RATE,
2675                                   UNIT_PRICE,
2676                                   REF_DOC_UNIT_PRICE,
2677                                   PER_UNIT_NREC_TAX_AMT,
2678                                   REF_DOC_PER_UNIT_NREC_TAX_AMT,
2679                                   RATE_TAX_FACTOR,
2680                                   TAX_APPORTIONMENT_FLAG,
2681                                   TRX_LINE_DIST_AMT,
2682                                   TRX_LINE_DIST_TAX_AMT,
2683                                   ORIG_REC_NREC_RATE,
2684                                   ORIG_REC_RATE_CODE,
2685                                   ORIG_REC_NREC_TAX_AMT,
2686                                   ORIG_REC_NREC_TAX_AMT_TAX_CURR,
2687                                   ACCOUNT_CCID,
2688                                   ACCOUNT_STRING,
2689                                   UNROUNDED_REC_NREC_TAX_AMT,
2690                                   APPLICABILITY_RESULT_ID,
2691                                   REC_RATE_RESULT_ID,
2692                                   BACKWARD_COMPATIBILITY_FLAG,
2693                                   OVERRIDDEN_FLAG,
2694                                   SELF_ASSESSED_FLAG,
2695                                   FREEZE_FLAG,
2696                                   POSTING_FLAG,
2697                                   ATTRIBUTE_CATEGORY,
2698                                   ATTRIBUTE1,
2699                                   ATTRIBUTE2,
2700                                   ATTRIBUTE3,
2701                                   ATTRIBUTE4,
2702                                   ATTRIBUTE5,
2703                                   ATTRIBUTE6,
2704                                   ATTRIBUTE7,
2705                                   ATTRIBUTE8,
2706                                   ATTRIBUTE9,
2707                                   ATTRIBUTE10,
2708                                   ATTRIBUTE11,
2709                                   ATTRIBUTE12,
2710                                   ATTRIBUTE13,
2711                                   ATTRIBUTE14,
2712                                   ATTRIBUTE15,
2713                                   GLOBAL_ATTRIBUTE_CATEGORY,
2714                                   GLOBAL_ATTRIBUTE1,
2715                                   GLOBAL_ATTRIBUTE2,
2716                                   GLOBAL_ATTRIBUTE3,
2717                                   GLOBAL_ATTRIBUTE4,
2718                                   GLOBAL_ATTRIBUTE5,
2719                                   GLOBAL_ATTRIBUTE6,
2720                                   GLOBAL_ATTRIBUTE7,
2721                                   GLOBAL_ATTRIBUTE8,
2722                                   GLOBAL_ATTRIBUTE9,
2723                                   GLOBAL_ATTRIBUTE10,
2724                                   GLOBAL_ATTRIBUTE11,
2725                                   GLOBAL_ATTRIBUTE12,
2726                                   GLOBAL_ATTRIBUTE13,
2727                                   GLOBAL_ATTRIBUTE14,
2728                                   GLOBAL_ATTRIBUTE15,
2729                                   GLOBAL_ATTRIBUTE16,
2730                                   GLOBAL_ATTRIBUTE17,
2731                                   GLOBAL_ATTRIBUTE18,
2732                                   GLOBAL_ATTRIBUTE19,
2733                                   GLOBAL_ATTRIBUTE20,
2734                                   GL_DATE,
2735                                   REF_DOC_APPLICATION_ID,
2736                                   REF_DOC_ENTITY_CODE,
2737                                   REF_DOC_EVENT_CLASS_CODE,
2738                                   REF_DOC_TRX_ID,
2739                                   REF_DOC_LINE_ID,
2740                                   REF_DOC_DIST_ID,
2741                                   MINIMUM_ACCOUNTABLE_UNIT,
2742                                   PRECISION,
2743                                   ROUNDING_RULE_CODE,
2744                                   TAXABLE_AMT,
2745                                   TAXABLE_AMT_TAX_CURR,
2746                                   TAXABLE_AMT_FUNCL_CURR,
2747                                   TAX_ONLY_LINE_FLAG,
2748                                   UNROUNDED_TAXABLE_AMT,
2749                                   LEGAL_ENTITY_ID,
2750                                   PRD_TAX_AMT,
2751                                   PRD_TAX_AMT_TAX_CURR,
2752                                   PRD_TAX_AMT_FUNCL_CURR,
2753                                   PRD_TOTAL_TAX_AMT,
2754                                   PRD_TOTAL_TAX_AMT_TAX_CURR,
2755                                   PRD_TOTAL_TAX_AMT_FUNCL_CURR,
2756                                   APPLIED_FROM_TAX_DIST_ID,
2757                                   APPLIED_TO_DOC_CURR_CONV_RATE,
2758                                   ADJUSTED_DOC_TAX_DIST_ID,
2759                                   FUNC_CURR_ROUNDING_ADJUSTMENT,
2760                                   TAX_APPORTIONMENT_LINE_NUMBER,
2761                                   LAST_MANUAL_ENTRY,
2762                                   REF_DOC_TAX_DIST_ID,
2763                                   REF_DOC_TRX_LEVEL_TYPE,
2764                                   MRC_TAX_DIST_FLAG,
2765                                   MRC_LINK_TO_TAX_DIST_ID,
2766                                   OBJECT_VERSION_NUMBER,
2767                                   CREATED_BY,
2768                                   CREATION_DATE,
2769                                   LAST_UPDATED_BY,
2770                                   LAST_UPDATE_DATE,
2771                                   LAST_UPDATE_LOGIN,
2772                                   INTERNAL_ORGANIZATION_ID,
2773                                   DEF_REC_SETTLEMENT_OPTION_CODE,
2774                                   TAX_JURISDICTION_ID,
2775                                   ACCOUNT_SOURCE_TAX_RATE_ID)
2776                            SELECT REC_NREC_TAX_DIST_ID,
2777                                   APPLICATION_ID,
2778                                   ENTITY_CODE,
2779                                   EVENT_CLASS_CODE,
2780                                   EVENT_TYPE_CODE,
2781                                   TRX_ID,
2782                                   TRX_LEVEL_TYPE,
2783                                   TRX_NUMBER,
2784                                   TRX_LINE_ID,
2785                                   TRX_LINE_NUMBER,
2786                                   TAX_LINE_ID,
2787                                   TAX_LINE_NUMBER,
2788                                   TRX_LINE_DIST_ID,
2789                                   ITEM_DIST_NUMBER,
2790                                   REC_NREC_TAX_DIST_NUMBER,
2791                                   REC_NREC_RATE,
2792                                   RECOVERABLE_FLAG,
2793                                   REC_NREC_TAX_AMT,
2794                                   TAX_EVENT_CLASS_CODE,
2795                                   TAX_EVENT_TYPE_CODE,
2796                                   CONTENT_OWNER_ID,
2797                                   TAX_REGIME_ID,
2798                                   TAX_REGIME_CODE,
2799                                   TAX_ID,
2800                                   TAX,
2801                                   TAX_STATUS_ID,
2802                                   TAX_STATUS_CODE,
2803                                   TAX_RATE_ID,
2804                                   TAX_RATE_CODE,
2805                                   TAX_RATE,
2806                                   INCLUSIVE_FLAG,
2807                                   RECOVERY_TYPE_ID,
2808                                   RECOVERY_TYPE_CODE,
2809                                   RECOVERY_RATE_ID,
2810                                   RECOVERY_RATE_CODE,
2811                                   REC_TYPE_RULE_FLAG,
2812                                   NEW_REC_RATE_CODE_FLAG,
2813                                   REVERSE_FLAG,
2814                                   HISTORICAL_FLAG,
2815                                   REVERSED_TAX_DIST_ID,
2816                                   REC_NREC_TAX_AMT_TAX_CURR,
2817                                   REC_NREC_TAX_AMT_FUNCL_CURR,
2818                                   INTENDED_USE,
2819                                   PROJECT_ID,
2820                                   TASK_ID,
2821                                   AWARD_ID,
2822                                   EXPENDITURE_TYPE,
2823                                   EXPENDITURE_ORGANIZATION_ID,
2824                                   EXPENDITURE_ITEM_DATE,
2825                                   REC_RATE_DET_RULE_FLAG,
2826                                   LEDGER_ID,
2827                                   SUMMARY_TAX_LINE_ID,
2828                                   RECORD_TYPE_CODE,
2829                                   CURRENCY_CONVERSION_DATE,
2830                                   CURRENCY_CONVERSION_TYPE,
2831                                   CURRENCY_CONVERSION_RATE,
2832                                   TAX_CURRENCY_CONVERSION_DATE,
2833                                   TAX_CURRENCY_CONVERSION_TYPE,
2834                                   TAX_CURRENCY_CONVERSION_RATE,
2835                                   TRX_CURRENCY_CODE,
2836                                   TAX_CURRENCY_CODE,
2837                                   TRX_LINE_DIST_QTY,
2838                                   REF_DOC_TRX_LINE_DIST_QTY,
2839                                   PRICE_DIFF,
2840                                   QTY_DIFF,
2841                                   PER_TRX_CURR_UNIT_NR_AMT,
2842                                   REF_PER_TRX_CURR_UNIT_NR_AMT,
2843                                   REF_DOC_CURR_CONV_RATE,
2844                                   UNIT_PRICE,
2845                                   REF_DOC_UNIT_PRICE,
2846                                   PER_UNIT_NREC_TAX_AMT,
2847                                   REF_DOC_PER_UNIT_NREC_TAX_AMT,
2848                                   RATE_TAX_FACTOR,
2849                                   TAX_APPORTIONMENT_FLAG,
2850                                   TRX_LINE_DIST_AMT,
2851                                   TRX_LINE_DIST_TAX_AMT,
2852                                   ORIG_REC_NREC_RATE,
2853                                   ORIG_REC_RATE_CODE,
2854                                   ORIG_REC_NREC_TAX_AMT,
2855                                   ORIG_REC_NREC_TAX_AMT_TAX_CURR,
2856                                   ACCOUNT_CCID,
2857                                   ACCOUNT_STRING,
2858                                   UNROUNDED_REC_NREC_TAX_AMT,
2859                                   APPLICABILITY_RESULT_ID,
2860                                   REC_RATE_RESULT_ID,
2861                                   BACKWARD_COMPATIBILITY_FLAG,
2862                                   OVERRIDDEN_FLAG,
2863                                   SELF_ASSESSED_FLAG,
2864                                   DECODE(tax_only_line_flag, 'Y', 'Y', FREEZE_FLAG),
2865                                   POSTING_FLAG,
2866                                   ATTRIBUTE_CATEGORY,
2867                                   ATTRIBUTE1,
2868                                   ATTRIBUTE2,
2869                                   ATTRIBUTE3,
2870                                   ATTRIBUTE4,
2871                                   ATTRIBUTE5,
2872                                   ATTRIBUTE6,
2873                                   ATTRIBUTE7,
2874                                   ATTRIBUTE8,
2875                                   ATTRIBUTE9,
2876                                   ATTRIBUTE10,
2877                                   ATTRIBUTE11,
2878                                   ATTRIBUTE12,
2879                                   ATTRIBUTE13,
2880                                   ATTRIBUTE14,
2881                                   ATTRIBUTE15,
2882                                   GLOBAL_ATTRIBUTE_CATEGORY,
2883                                   GLOBAL_ATTRIBUTE1,
2884                                   GLOBAL_ATTRIBUTE2,
2885                                   GLOBAL_ATTRIBUTE3,
2886                                   GLOBAL_ATTRIBUTE4,
2887                                   GLOBAL_ATTRIBUTE5,
2888                                   GLOBAL_ATTRIBUTE6,
2889                                   GLOBAL_ATTRIBUTE7,
2890                                   GLOBAL_ATTRIBUTE8,
2891                                   GLOBAL_ATTRIBUTE9,
2892                                   GLOBAL_ATTRIBUTE10,
2893                                   GLOBAL_ATTRIBUTE11,
2894                                   GLOBAL_ATTRIBUTE12,
2895                                   GLOBAL_ATTRIBUTE13,
2896                                   GLOBAL_ATTRIBUTE14,
2897                                   GLOBAL_ATTRIBUTE15,
2898                                   GLOBAL_ATTRIBUTE16,
2899                                   GLOBAL_ATTRIBUTE17,
2900                                   GLOBAL_ATTRIBUTE18,
2901                                   GLOBAL_ATTRIBUTE19,
2902                                   GLOBAL_ATTRIBUTE20,
2903                                   GL_DATE,
2904                                   REF_DOC_APPLICATION_ID,
2905                                   REF_DOC_ENTITY_CODE,
2906                                   REF_DOC_EVENT_CLASS_CODE,
2907                                   REF_DOC_TRX_ID,
2908                                   REF_DOC_LINE_ID,
2909                                   REF_DOC_DIST_ID,
2910                                   MINIMUM_ACCOUNTABLE_UNIT,
2911                                   PRECISION,
2912                                   ROUNDING_RULE_CODE,
2913                                   TAXABLE_AMT,
2914                                   TAXABLE_AMT_TAX_CURR,
2915                                   TAXABLE_AMT_FUNCL_CURR,
2916                                   TAX_ONLY_LINE_FLAG,
2917                                   UNROUNDED_TAXABLE_AMT,
2918                                   LEGAL_ENTITY_ID,
2919                                   PRD_TAX_AMT,
2920                                   PRD_TAX_AMT_TAX_CURR,
2921                                   PRD_TAX_AMT_FUNCL_CURR,
2922                                   PRD_TOTAL_TAX_AMT,
2923                                   PRD_TOTAL_TAX_AMT_TAX_CURR,
2924                                   PRD_TOTAL_TAX_AMT_FUNCL_CURR,
2925                                   APPLIED_FROM_TAX_DIST_ID,
2926                                   APPLIED_TO_DOC_CURR_CONV_RATE,
2927                                   ADJUSTED_DOC_TAX_DIST_ID,
2928                                   FUNC_CURR_ROUNDING_ADJUSTMENT,
2929                                   TAX_APPORTIONMENT_LINE_NUMBER,
2930                                   LAST_MANUAL_ENTRY,
2931                                   REF_DOC_TAX_DIST_ID,
2932                                   REF_DOC_TRX_LEVEL_TYPE,
2933                                   MRC_TAX_DIST_FLAG,
2934                                   MRC_LINK_TO_TAX_DIST_ID,
2935                                   1,        --OBJECT_VERSION_NUMBER,
2936                                   CREATED_BY,
2937                                   CREATION_DATE,
2938                                   LAST_UPDATED_BY,
2939                                   LAST_UPDATE_DATE,
2940                                   LAST_UPDATE_LOGIN,
2941                                   INTERNAL_ORGANIZATION_ID,
2942                                   DEF_REC_SETTLEMENT_OPTION_CODE,
2943                                   TAX_JURISDICTION_ID,
2944                                   ACCOUNT_SOURCE_TAX_RATE_ID
2945                              FROM ZX_REC_NREC_DIST_GT;
2946 
2947     IF (g_level_statement >= g_current_runtime_level ) THEN
2948       FND_LOG.STRING(g_level_statement,
2949                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions',
2950                      'Number of Rows Inserted: '||SQL%ROWCOUNT);
2951     END IF;
2952 
2953     BEGIN
2954       UPDATE zx_lines
2955          SET associated_child_frozen_flag = 'Y'
2956        WHERE tax_line_id IN
2957              (SELECT tax_line_id
2958                 FROM zx_rec_nrec_dist_gt
2959                WHERE tax_only_line_flag = 'Y'
2960              );
2961     EXCEPTION
2962       WHEN OTHERS THEN
2963         NULL;
2964     END;
2965 
2966     IF (g_level_statement >= g_current_runtime_level ) THEN
2967       FND_LOG.STRING(g_level_statement,
2968                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions',
2969                      'Number of Tax Lines Updated: '||SQL%ROWCOUNT);
2970     END IF;
2971 
2972     IF (g_level_procedure >= g_current_runtime_level ) THEN
2973       FND_LOG.STRING(g_level_procedure,
2974                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions.END',
2975                      'ZX_TRL_MANAGE_TAX_PKG: CREATE_TAX_DISTRIBUTIONS (-)');
2976     END IF;
2977 
2978   EXCEPTION
2979     WHEN DUP_VAL_ON_INDEX THEN
2980       x_return_status := FND_API.G_RET_STS_ERROR ;
2981       IF (g_level_procedure >= g_current_runtime_level ) THEN
2982         FND_LOG.STRING(g_level_procedure,
2983                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions',
2984                        'Exception:' ||SQLCODE||';'||SQLERRM);
2985 
2986         FND_LOG.STRING(g_level_procedure,
2987                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions',
2988                        'Return Status = '||x_return_status);
2989       END IF;
2990       -- bug#4893261- move to wrapper since do not
2991       -- have event_class_rec here to set message index
2992       --
2993       -- FND_MESSAGE.SET_NAME('ZX','ZX_TRL_RECORD_ALREADY_EXISTS');
2994       -- ZX_API_PUB.add_msg(l_msg_context_info_rec);
2995 
2996 
2997     WHEN OTHERS THEN
2998       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2999 
3000       IF (g_level_procedure >= g_current_runtime_level ) THEN
3001         FND_LOG.STRING(g_level_procedure,
3002                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions',
3003                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
3004 
3005         FND_LOG.STRING(g_level_procedure,
3006                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Create_Tax_Distributions',
3007                        'Return Status = '||x_return_status);
3008       END IF;
3009   END Create_Tax_Distributions;
3010 
3011 /*============================================================================*
3012  | Delete_Dist_Marked_For_Delete: Deletes all the tax distributions from      |
3013  | ZX_REC_NREC_DIST that are associated with tax lines whose                  |
3014  | Process_For_Recovery_Flag is 'Y' or Item_Dist_Changed_Flag is 'Y'.           |
3015  *============================================================================*/
3016 
3017   PROCEDURE Delete_Dist_Marked_For_Delete
3018        (x_return_status    OUT NOCOPY VARCHAR2,
3019         p_event_class_rec  IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
3020 
3021     l_api_name CONSTANT     VARCHAR2(30) := 'Delete_Dist_Marked_For_Delete';
3022     l_error_buffer          VARCHAR2(200);
3023     l_row_count             NUMBER;
3024     l_msg_context_info_rec  ZX_API_PUB.context_info_rec_type;
3025 
3026   BEGIN
3027 
3028     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3029 
3030     IF (g_level_procedure >= g_current_runtime_level ) THEN
3031       FND_LOG.STRING(g_level_procedure,
3032                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete.BEGIN',
3033                      'ZX_TRL_MANAGE_TAX_PKG: DELETE_DIST_MARKED_FOR_DELETE (+)');
3034     END IF;
3035 
3036     -- Initialize API return status to success
3037     x_return_status := FND_API.G_RET_STS_SUCCESS;
3038 
3039     --
3040     -- bug#4893261- populate message structure
3041     --
3042     l_msg_context_info_rec.application_id :=
3043               p_event_class_rec.application_id;
3044     l_msg_context_info_rec.entity_code :=
3045               p_event_class_rec.entity_code;
3046     l_msg_context_info_rec.event_class_code :=
3047               p_event_class_rec.event_class_code;
3048     l_msg_context_info_rec.trx_id := NULL;
3049     --        p_event_class_rec.trx_id;
3050     l_msg_context_info_rec.trx_line_id := NULL;
3051     l_msg_context_info_rec.trx_level_type := NULL;
3052     l_msg_context_info_rec.summary_tax_line_number := NULL;
3053     l_msg_context_info_rec.tax_line_id := NULL;
3054     l_msg_context_info_rec.trx_line_dist_id := NULL;
3055 
3056     IF p_event_class_rec.application_id IS NULL OR
3057        p_event_class_rec.entity_code IS NULL OR
3058        p_event_class_rec.event_class_code IS NULL
3059     THEN
3060       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3061 
3062       IF (g_level_procedure >= g_current_runtime_level ) THEN
3063         FND_LOG.STRING(g_level_procedure,
3064                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3065                        'Return Status = '||x_return_status);
3066       END IF;
3067 
3068       --FND_MESSAGE.SET_NAME('ZX','ZX_TRL_NULL_VALUES');
3069       --ZX_API_PUB.add_msg(l_msg_context_info_rec);
3070 
3071     ELSE
3072       IF (g_level_procedure >= g_current_runtime_level ) THEN
3073         FND_LOG.STRING(g_level_procedure,
3074                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3075                        'Application Id: '  ||p_event_class_rec.application_id);
3076         FND_LOG.STRING(g_level_procedure,
3077                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3078                        'Entity Code: '     ||p_event_class_rec.entity_code);
3079         FND_LOG.STRING(g_level_procedure,
3080                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3081                        'Event Class Code: '||p_event_class_rec.event_class_code);
3082       END IF;
3083 
3084       -- Commented the following DELETE statement for Bug#16313915 --
3085       -- and added new performance tuned DELETE statement below    --
3086       --
3087       -- DELETE FROM ZX_REC_NREC_DIST
3088       -- WHERE NVL(Reverse_Flag,'N') = 'N'
3089       --   AND TAX_LINE_ID IN (SELECT TAX_LINE_ID
3090       --                       FROM ZX_LINES L
3091       --                      WHERE APPLICATION_ID = p_event_class_rec.application_id
3092       --                        AND ENTITY_CODE      = p_event_class_rec.entity_code
3093       --                        AND EVENT_CLASS_CODE = p_event_class_rec.event_class_code
3094       --                        AND (Process_For_Recovery_Flag = 'Y' OR
3095       --                             Item_Dist_Changed_Flag = 'Y')
3096       --                        AND EXISTS
3097       --                           (SELECT 1
3098       --                                FROM zx_lines_det_factors
3099       --                               WHERE APPLICATION_ID   = L.application_id
3100       --                                 AND ENTITY_CODE      = L.entity_code
3101       --                                 AND EVENT_CLASS_CODE = L.event_class_code
3102       --                                 AND TRX_ID           = L.trx_id
3103       --                                 AND TRX_LINE_ID      = L.trx_line_id
3104       --                                 AND TRX_LEVEL_TYPE   = L.trx_level_type
3105       --                                 AND EVENT_ID         = p_event_class_rec.event_id
3106       --                            )
3107       --                      );
3108 
3109       DELETE FROM ZX_REC_NREC_DIST DIST
3110        WHERE NVL(Reverse_Flag,'N') = 'N'
3111          AND application_id   = p_event_class_rec.application_id
3112          AND entity_code      = p_event_class_rec.entity_code
3113          AND event_class_code = p_event_class_rec.event_class_code
3114          AND (trx_id, trx_line_id, trx_level_type) IN
3115                (SELECT /*+ use_hash(ZX_LINES_DET_FACTORS) */ TRX_ID, TRX_LINE_ID, TRX_LEVEL_TYPE
3116                   FROM zx_lines_det_factors
3117                  WHERE application_id   = p_event_class_rec.application_id
3118                    AND entity_code      = p_event_class_rec.entity_code
3119                    AND event_class_code = p_event_class_rec.event_class_code
3120                    AND event_id         = p_event_class_rec.event_id
3121              )
3122          AND EXISTS
3123                (SELECT 1 FROM zx_lines
3124                  WHERE tax_line_id = dist.tax_line_id
3125                    AND (Process_For_Recovery_Flag = 'Y' OR
3126                         Item_Dist_Changed_Flag = 'Y'));
3127 
3128       l_row_count := SQL%ROWCOUNT;
3129       IF (g_level_statement >= g_current_runtime_level ) THEN
3130         FND_LOG.STRING(g_level_statement,
3131                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3132                        'Rows Deleted = '||l_row_count);
3133       END IF;
3134     END IF;
3135 
3136     -- bug6890360: synchronize tax_line_number for reversed tax dustributions,
3137     --  which are not fetched back for processing
3138     --
3139     BEGIN
3140       UPDATE zx_rec_nrec_dist zd
3141          SET tax_line_number =
3142              (SELECT tax_line_number
3143                 FROM zx_lines
3144                WHERE tax_line_id = zd.tax_line_id
3145                  AND tax_line_number <> zd.tax_line_number
3146              )
3147       WHERE NVL(reverse_flag,'N') = 'Y'
3148         AND application_id = p_event_class_rec.application_id
3149         AND entity_code      = p_event_class_rec.entity_code
3150         AND event_class_code = p_event_class_rec.event_class_code
3151         AND (trx_id, trx_line_id, trx_level_type) IN
3152             (SELECT /*+ use_hash(ZX_LINES_DET_FACTORS) */ TRX_ID, TRX_LINE_ID, TRX_LEVEL_TYPE
3153                FROM zx_lines_det_factors
3154               WHERE application_id   = p_event_class_rec.application_id
3155                 AND entity_code      = p_event_class_rec.entity_code
3156                 AND event_class_code = p_event_class_rec.event_class_code
3157                 AND event_id         = p_event_class_rec.event_id
3158              )
3159         AND EXISTS
3160             (SELECT tax_line_number
3161                 FROM zx_lines
3162                WHERE tax_line_id = zd.tax_line_id
3163                  AND tax_line_number <> zd.tax_line_number
3164              );
3165 
3166     IF (g_level_statement >= g_current_runtime_level ) THEN
3167       FND_LOG.STRING(g_level_statement,
3168                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3169                      'Number of Rows Updated = '||SQL%ROWCOUNT);
3170     END IF;
3171 
3172     EXCEPTION
3173       WHEN NO_DATA_FOUND THEN
3174         NULL;
3175       WHEN OTHERS THEN
3176         NULL;
3177     END;
3178 
3179 
3180     BEGIN
3181       UPDATE zx_rec_nrec_dist zd
3182          SET summary_tax_line_id =
3183              (SELECT summary_tax_line_id
3184                 FROM zx_rec_nrec_dist_gt gt
3185                WHERE gt.tax_line_id = zd.tax_line_id
3186                  AND gt.trx_line_dist_id = zd.trx_line_dist_id
3187                  AND ROWNUM = 1
3188              )
3189        WHERE reverse_flag = 'Y'
3190          AND EXISTS
3191              (SELECT 'x'
3192                 FROM zx_lines zl
3193                WHERE zl.tax_line_id   = zd.tax_line_id
3194                  AND application_id   = p_event_class_rec.application_id
3195                  AND entity_code      = p_event_class_rec.entity_code
3196                  AND event_class_code = p_event_class_rec.event_class_code
3197                  AND (process_for_recovery_flag = 'Y' OR
3198                       item_dist_changed_flag = 'Y')
3199                  AND EXISTS
3200                     (SELECT 1
3201                        FROM zx_lines_det_factors
3202                       WHERE application_id   = zl.application_id
3203                         AND entity_code      = zl.entity_code
3204                         AND event_class_code = zl.event_class_code
3205                         AND trx_id           = zl.trx_id
3206                         AND trx_line_id      = zl.trx_line_id
3207                         AND trx_level_type   = zl.trx_level_type
3208                         AND event_id         = p_event_class_rec.event_id
3209                      )
3210               )
3211          AND (ZD.TAX_LINE_ID,  ZD.TRX_LINE_DIST_ID) IN (
3212               SELECT /*+ LEADING(GT)  CARDINALITY(GT 1) */
3213                       GT.TAX_LINE_ID, GT.TRX_LINE_DIST_ID
3214               FROM ZX_REC_NREC_DIST_GT GT);
3215 
3216     IF (g_level_statement >= g_current_runtime_level ) THEN
3217       FND_LOG.STRING(g_level_statement,
3218                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3219                      'Number of Rows Updated = '||SQL%ROWCOUNT);
3220     END IF;
3221 
3222     IF (g_level_procedure >= g_current_runtime_level ) THEN
3223       FND_LOG.STRING(g_level_procedure,
3224                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete.END',
3225                      'ZX_TRL_MANAGE_TAX_PKG: DELETE_DIST_MARKED_FOR_DELETE (-)');
3226     END IF;
3227 
3228     EXCEPTION
3229       WHEN NO_DATA_FOUND THEN
3230         NULL;
3231       WHEN OTHERS THEN
3232         NULL;
3233     END;
3234 
3235   EXCEPTION
3236     WHEN FND_API.G_EXC_ERROR THEN
3237       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3238       IF (g_level_unexpected >= g_current_runtime_level ) THEN
3239         FND_LOG.STRING(g_level_unexpected,
3240                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3241                'Unexpected Error. Return_Status = '||x_return_status);
3242         FND_LOG.STRING(g_level_unexpected,
3243                'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete.END',
3244                'ZX_TRL_MANAGE_TAX_PKG: Delete_Dist_Marked_For_Delete (-)');
3245       END IF;
3246 
3247     WHEN OTHERS THEN
3248       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3249 
3250       IF (g_level_procedure >= g_current_runtime_level ) THEN
3251         FND_LOG.STRING(g_level_procedure,
3252                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3253                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
3254 
3255         FND_LOG.STRING(g_level_procedure,
3256                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Delete_Dist_Marked_For_Delete',
3257                        'Return Status = '||x_return_status);
3258       END IF;
3259   END Delete_Dist_Marked_For_Delete;
3260 
3261 /*================================================================================*
3262  | Update_TaxLine_Rec_Nrec_Amt: Updates the total recoverable and non-recoverable |
3263  |                              tax amounts for each detail tax line and          |
3264  |                              summary tax line.                                 |
3265  *================================================================================*/
3266 
3267   PROCEDURE Update_TaxLine_Rec_Nrec_Amt
3268        (x_return_status     OUT NOCOPY VARCHAR2,
3269         p_event_class_rec   IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
3270 
3271     l_error_buffer  VARCHAR2(100);
3272 
3273   BEGIN
3274 
3275     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3276 
3277     IF (g_level_procedure >= g_current_runtime_level ) THEN
3278       FND_LOG.STRING(g_level_procedure,
3279                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_TaxLine_Rec_Nrec_Amt.BEGIN',
3280                      'ZX_TRL_MANAGE_TAX_PKG: Update_TaxLine_Rec_Nrec_Amt (+)');
3281     END IF;
3282 
3283     -- Initialize API return status to success
3284     x_return_status := FND_API.G_RET_STS_SUCCESS;
3285 
3286     select trx_id, trx_line_id, trx_level_type
3287     bulk collect into pg_trx_id_tab, pg_trx_line_id_tab ,pg_trx_level_type_tab
3288     from zx_lines_det_factors
3289     where  application_id = p_event_class_rec.application_id
3290     and    entity_code =  p_event_class_rec.entity_code
3291     and    event_class_code = p_event_class_rec.event_class_code
3292     and    event_id  = p_event_class_rec.event_id;
3293 
3294     FORALL i in nvl(pg_trx_id_tab.FIRST,0)..nvl(pg_trx_id_tab.LAST,-99)
3295       UPDATE ZX_LINES  L
3296         SET (rec_tax_amt,
3297              rec_tax_amt_tax_curr,
3298              rec_tax_amt_funcl_curr,
3299              nrec_tax_amt,
3300              nrec_tax_amt_tax_curr,
3301              nrec_tax_amt_funcl_curr,
3302              Process_For_Recovery_Flag,
3303              Item_Dist_Changed_Flag
3304             ) =
3305           (SELECT SUM(decode(Recoverable_Flag,'Y',rec_nrec_tax_amt)) rec_tax_amt,
3306                   SUM(decode(Recoverable_Flag,'Y',rec_nrec_tax_amt_tax_curr)) rec_tax_amt_tax_curr,
3307                   SUM(decode(Recoverable_Flag,'Y',rec_nrec_tax_amt_funcl_curr)) rec_tax_amt_funcl_curr,
3308                   SUM(decode(Recoverable_Flag,'N',rec_nrec_tax_amt)) nrec_tax_amt,
3309                   SUM(decode(Recoverable_Flag,'N',rec_nrec_tax_amt_tax_curr)) nrec_tax_amt_tax_curr,
3310                   SUM(decode(Recoverable_Flag,'N',rec_nrec_tax_amt_funcl_curr)) nrec_tax_amt_funcl_curr,
3311                   'N'  Process_For_Recovery_Flag,
3312                   'N'  Item_Dist_Changed_Flag
3313              FROM  ZX_REC_NREC_DIST  D
3314              WHERE D.tax_line_id      = L.tax_line_id
3315                AND D.application_id   = L.application_id
3316                AND D.entity_code      = L.entity_code
3317                AND D.event_class_code = L.event_class_code
3318                AND D.trx_id           = L.trx_id
3319                AND D.trx_line_id      = L.trx_line_id
3320                AND D.trx_level_type   = L.trx_level_type
3321           )
3322       WHERE application_id   = p_event_class_rec.application_id
3323         AND entity_code      = p_event_class_rec.entity_code
3324         AND event_class_code = p_event_class_rec.event_class_code
3325         /*AND exists
3326           ( select 1 from zx_lines_det_factors
3327             where  application_id = l.application_id
3328             and    entity_code =  l.entity_code
3329             and    event_class_code = l.event_class_code
3330             and    trx_id = l.trx_id
3331             and    trx_line_id = l.trx_line_id
3332             and    trx_level_type = l.trx_level_type
3333             and    event_id  = p_event_class_rec.event_id)
3334         */
3335        AND trx_id = pg_trx_id_tab(i)
3336        AND trx_line_id = pg_trx_line_id_tab(i)
3337        AND trx_level_type = pg_trx_level_type_tab(i);
3338 
3339     IF p_event_class_rec.summarization_flag = 'Y' THEN
3340 
3341       UPDATE ZX_LINES_SUMMARY  S
3342         SET (total_rec_tax_amt,
3343              total_nrec_tax_amt,
3344              total_rec_tax_amt_funcl_curr,
3345              total_nrec_tax_amt_funcl_curr,
3346              total_rec_tax_amt_tax_curr,
3347              total_nrec_tax_amt_tax_curr
3348             ) =
3349             (SELECT
3350                  SUM(rec_tax_amt) total_rec_tax_amt,
3351                  SUM(nrec_tax_amt) total_nrec_tax_amt,
3352                  SUM(rec_tax_amt_funcl_curr) total_rec_tax_amt_funcl_curr,
3353                  SUM(nrec_tax_amt_funcl_curr) total_nrec_tax_amt_funcl_curr,
3354                  SUM(rec_tax_amt_tax_curr) total_rec_tax_amt_tax_curr,
3355                  SUM(nrec_tax_amt_tax_curr) total_nrec_tax_amt_tax_curr
3356                FROM  ZX_LINES L
3357                WHERE L.summary_tax_line_id = S.summary_tax_line_id
3358                  AND L.application_id      = S.application_id
3359                  AND L.entity_code         = S.entity_code
3360                  AND L.event_class_code    = S.event_class_code
3361                  AND L.trx_id              = S.trx_id
3362             )
3363       WHERE application_id   = p_event_class_rec.application_id
3364         AND entity_code      = p_event_class_rec.entity_code
3365         AND event_class_code = p_event_class_rec.event_class_code
3366         AND exists
3367           ( select 1 from zx_lines_det_factors
3368             where  application_id = S.application_id
3369             and    entity_code =  S.entity_code
3370             and    event_class_code = S.event_class_code
3371             and    trx_id = S.trx_id
3372             and    event_id  = p_event_class_rec.event_id)
3373      --   AND trx_id           = p_event_class_rec.trx_id
3374      ;
3375 
3376     END IF;
3377 
3378     IF (g_level_procedure >= g_current_runtime_level ) THEN
3379       FND_LOG.STRING(g_level_procedure,
3380                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_TaxLine_Rec_Nrec_Amt.END',
3381                      'ZX_TRL_MANAGE_TAX_PKG: UPDATE_TAXLINE_REC_NREC_AMT (-)');
3382     END IF;
3383 
3384   EXCEPTION
3385     WHEN OTHERS THEN
3386       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3387 
3388       IF (g_level_procedure >= g_current_runtime_level ) THEN
3389         FND_LOG.STRING(g_level_procedure,
3390                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_TaxLine_Rec_Nrec_Amt',
3391                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
3392 
3393         FND_LOG.STRING(g_level_procedure,
3394                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_TaxLine_Rec_Nrec_Amt',
3395                        'Return Status = '||x_return_status);
3396       END IF;
3397   END Update_TaxLine_Rec_Nrec_Amt;
3398 
3399 /*============================================================================*
3400  | Update_Freeze_Flag: Freezes distributions and updates ZX_LINES             |
3401  | Associated_Child_Frozen_Flag flag to indicate that the associated        |
3402  | children are frozen.                                                       |
3403  *============================================================================*/
3404 
3405   PROCEDURE Update_Freeze_Flag
3406        (x_return_status      OUT NOCOPY VARCHAR2,
3407         p_event_class_rec    IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
3408 
3409     l_return_status             VARCHAR2(1);
3410     l_error_buffer              VARCHAR2(100);
3411     l_use_null_summary_id_flag  VARCHAR2(1);
3412     l_summary_lines_count       NUMBER;
3413     l_row_count                 NUMBER;
3414 
3415   BEGIN
3416     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3417 
3418     IF (g_level_procedure >= g_current_runtime_level ) THEN
3419       FND_LOG.STRING(g_level_procedure,
3420                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag.BEGIN',
3421                      'ZX_TRL_MANAGE_TAX_PKG: Update_Freeze_Flag (+)');
3422     END IF;
3423 
3424     -- Initialize API return status to success
3425     x_return_status := FND_API.G_RET_STS_SUCCESS;
3426 
3427     /*UPDATE ZX_REC_NREC_DIST
3428       SET Freeze_Flag = 'Y',
3429           event_type_code = p_event_class_rec.event_type_code,
3430           tax_event_type_code = p_event_class_rec.tax_event_type_code
3431       WHERE REC_NREC_TAX_DIST_ID IN (SELECT TAX_DIST_ID
3432                                      FROM ZX_TAX_DIST_ID_GT);
3433 
3434      */
3435    -- Bug 6335649, In cases where Recovery is 100% Recoverable, in ZX_REC_NREC_DIST we have both REC and NONREC(0 amount)lines.
3436    --  When we call ZX_TRD_INTERNAL_SERVICES_PVT.calc_tax_dist for the second time computation,
3437    --  freeze_flag is checked for both the REC and NONREC lines, popualting the p_rec_nrec_tbl for them.
3438    -- But for the non rec lines, freeze flag is NULL.  Below code, updates the freeze flags of the REC/NONREC lines with 0 rec_nrec_rate
3439 
3440     UPDATE ZX_REC_NREC_DIST
3441       SET freeze_flag = 'Y',
3442         event_type_code = p_event_class_rec.event_type_code,
3443         tax_event_type_code = p_event_class_rec.tax_event_type_code
3444       WHERE tax_line_id IN (SELECT tax_line_id
3445                               FROM zx_rec_nrec_dist
3446                              WHERE rec_nrec_tax_dist_id IN
3447                                    (SELECT TAX_DIST_ID FROM ZX_TAX_DIST_ID_GT)
3448                                )
3449       AND application_id = p_event_class_rec.application_id;
3450 
3451     UPDATE ZX_LINES ZL
3452       SET Associated_Child_Frozen_Flag ='Y',
3453           event_type_code = p_event_class_rec.event_type_code,
3454           tax_event_type_code = p_event_class_rec.tax_event_type_code,
3455           doc_event_status = p_event_class_rec.doc_status_code
3456       WHERE TAX_LINE_ID IN (SELECT ZD.TAX_LINE_ID
3457                             FROM ZX_REC_NREC_DIST ZD ,
3458                                  ZX_TAX_DIST_ID_GT ZGT
3459                             WHERE ZD.REC_NREC_TAX_DIST_ID = ZGT.TAX_DIST_ID);
3460 
3461   -- Bug 6456915: Associated_child_frozen_flag has been removed from grouping columns for summary tax lines
3462   --No need to regenerate summary tax lines here
3463 
3464 /*
3465     IF p_event_class_rec.summarization_flag = 'Y' THEN
3466 
3467       --
3468       --  delete all summary tax lines for this document
3469       --
3470       DELETE FROM ZX_LINES_SUMMARY
3471       WHERE APPLICATION_ID = p_event_class_rec.APPLICATION_ID
3472       AND ENTITY_CODE      = p_event_class_rec.ENTITY_CODE
3473       AND EVENT_CLASS_CODE = p_event_class_rec.EVENT_CLASS_CODE
3474       AND TRX_ID IN(SELECT ZD.trx_id
3475                       FROM ZX_REC_NREC_DIST ZD ,
3476                            ZX_TAX_DIST_ID_GT ZGT
3477                      WHERE ZD.REC_NREC_TAX_DIST_ID = ZGT.TAX_DIST_ID);
3478 
3479       IF p_event_class_rec.retain_summ_tax_line_id_flag  = 'Y' THEN
3480         --
3481         -- need to retain the current summary_tax_line_id
3482         --
3483         Summarization_For_Freeze_Event (
3484                   p_event_class_rec,
3485                   l_return_status);
3486       ELSE
3487         --
3488         -- create summary lines from zx_lines without
3489         -- retain the current summary_tax_line_id
3490         --
3491         create_summary_lines_upd_evnt(
3492           p_event_class_rec   => p_event_class_rec,
3493           x_return_status     => x_return_status );
3494 
3495         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3496           IF (g_level_error >= g_current_runtime_level ) THEN
3497             FND_LOG.STRING(g_level_error,
3498                    'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3499                    'MRC Lines: Incorrect return_status after calling ' ||
3500                    'ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt()');
3501             FND_LOG.STRING(g_level_error,
3502                    'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3503                    'RETURN_STATUS = ' || x_return_status);
3504             FND_LOG.STRING(g_level_error,
3505                    'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag.END',
3506                    'ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag(-)');
3507           END IF;
3508           RETURN;
3509         END IF;
3510 
3511       END IF; -- p_event_class_rec.retain_summ_tax_line_id_flag  = 'Y'
3512     END IF;  -- p_event_class_rec.summarization_flag = 'Y'
3513 
3514  */
3515  -- End of bug 6456915
3516 
3517     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3518       IF (g_level_procedure >= g_current_runtime_level ) THEN
3519         FND_LOG.STRING(g_level_procedure,
3520                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3521                        'Exception:' ||SQLCODE||';'||SQLERRM);
3522 
3523         FND_LOG.STRING(g_level_procedure,
3524                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3525                        'Return Status = '||l_return_status);
3526       END IF;
3527 
3528       RAISE FND_API.G_EXC_ERROR;
3529 
3530     ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3531       IF (g_level_procedure >= g_current_runtime_level ) THEN
3532         FND_LOG.STRING(g_level_procedure,
3533                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3534                        'Exception:' ||SQLCODE||';'||SQLERRM);
3535 
3536         FND_LOG.STRING(g_level_procedure,
3537                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3538                        'Return Status = '||l_return_status);
3539       END IF;
3540 
3541       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3542     END IF;
3543 
3544     IF (g_level_procedure >= g_current_runtime_level ) THEN
3545 
3546       FND_LOG.STRING(g_level_procedure,
3547                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag.END',
3548                      'ZX_TRL_MANAGE_TAX_PKG: UPDATE_FREEZE_FLAG (-)');
3549     END IF;
3550 
3551   EXCEPTION
3552     WHEN FND_API.G_EXC_ERROR THEN
3553       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3554       IF (g_level_procedure >= g_current_runtime_level ) THEN
3555         FND_LOG.STRING(g_level_procedure,
3556                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3557                        'Exception:' ||SQLCODE||';'||SQLERRM);
3558         FND_LOG.STRING(g_level_procedure,
3559                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3560                        'Return Status = '||x_return_status);
3561       END IF;
3562 
3563     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3564       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3565 
3566       FND_MESSAGE.SET_NAME('ZX','ZX_UNEXPECTED_ERROR');
3567       FND_MSG_PUB.Add;
3568 
3569       IF (g_level_procedure >= g_current_runtime_level ) THEN
3570         FND_LOG.STRING(g_level_procedure,
3571                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3572                        'Unexpected Error:' ||SQLCODE||';'||SQLERRM);
3573         FND_LOG.STRING(g_level_procedure,
3574                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3575                        'Return Status = '||x_return_status);
3576         FND_LOG.STRING(g_level_procedure,
3577                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3578                        'Unexpected error ...');
3579       END IF;
3580 
3581     WHEN OTHERS THEN
3582       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3583 
3584       IF (g_level_procedure >= g_current_runtime_level ) THEN
3585         FND_LOG.STRING(g_level_procedure,
3586                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3587                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
3588 
3589         FND_LOG.STRING(g_level_procedure,
3590                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Freeze_Flag',
3591                        'Return Status = '||x_return_status);
3592       END IF;
3593   END Update_Freeze_Flag;
3594 
3595 /*============================================================================*
3596  | Update_Item_Dist_Changed_Flag: This procedure updates tax lines (ZX_LINES) |
3597  | with changed status for given transaction line distributions.              |
3598  *============================================================================*/
3599 
3600   PROCEDURE Update_Item_Dist_Changed_Flag
3601        (x_return_status    OUT NOCOPY VARCHAR2,
3602         p_event_class_rec  IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
3603 
3604     l_error_buffer  VARCHAR2(100);
3605 
3606   BEGIN
3607 
3608     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3609 
3610     IF (g_level_procedure >= g_current_runtime_level ) THEN
3611       FND_LOG.STRING(g_level_procedure,
3612                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Item_Dist_Changed_Flag.BEGIN',
3613                      'ZX_TRL_MANAGE_TAX_PKG: Update_Item_Dist_Changed_Flag (+)');
3614     END IF;
3615 
3616     -- Initialize API return status to success
3617     x_return_status := FND_API.G_RET_STS_SUCCESS;
3618 
3619     UPDATE ZX_LINES ZL
3620       SET Item_Dist_Changed_Flag  = 'Y'
3621       WHERE APPLICATION_ID = p_event_class_rec.application_id
3622       AND ENTITY_CODE      = p_event_class_rec.entity_code
3623       AND EVENT_CLASS_CODE = p_event_class_rec.event_class_code
3624       AND TRX_ID           = p_event_class_rec.trx_id
3625       AND EXISTS (SELECT /*+ INDEX(ZX_ITM_DISTRIBUTIONS_GT ZX_ITM_DISTRIBUTIONS_GT_U1
3626                                    ZX_ITM_DISTRIBUTIONS_GT_U1) */ 1
3627                   FROM ZX_ITM_DISTRIBUTIONS_GT ZD
3628                   WHERE ZL.APPLICATION_ID = ZD.APPLICATION_ID
3629                   AND ZL.ENTITY_CODE      = ZD.ENTITY_CODE
3630                   AND ZL.EVENT_CLASS_CODE = ZD.EVENT_CLASS_CODE
3631                   AND ZL.TRX_ID           = ZD.TRX_ID
3632                   AND ZL.TRX_LINE_ID      = ZD.TRX_LINE_ID
3633                   AND ZL.TRX_LEVEL_TYPE   = ZD.TRX_LEVEL_TYPE
3634                   AND ZD.DIST_LEVEL_ACTION  IN ('UPDATE','CREATE'));
3635 
3636     IF (g_level_procedure >= g_current_runtime_level ) THEN
3637       FND_LOG.STRING(g_level_procedure,
3638                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Item_Dist_Changed_Flag.END',
3639                      'ZX_TRL_MANAGE_TAX_PKG: Update_Item_Dist_Changed_Flag (-)');
3640     END IF;
3641 
3642   EXCEPTION
3643     WHEN OTHERS THEN
3644       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3645 
3646       IF (g_level_procedure >= g_current_runtime_level ) THEN
3647         FND_LOG.STRING(g_level_procedure,
3648                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Item_Dist_Changed_Flag',
3649                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
3650 
3651         FND_LOG.STRING(g_level_procedure,
3652                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Item_Dist_Changed_Flag',
3653                        'Return Status = '||x_return_status);
3654       END IF;
3655   END Update_Item_Dist_Changed_Flag;
3656 
3657 
3658 /*============================================================================*
3659  | Discard_Tax_Only_Lines: The associated tax lines will be discarded         |
3660  |                                                                            |
3661  *============================================================================*/
3662 
3663   PROCEDURE discard_tax_only_lines
3664        (x_return_status      OUT NOCOPY VARCHAR2,
3665         p_event_class_rec IN            ZX_API_PUB.EVENT_CLASS_REC_TYPE) IS
3666 
3667     l_row_count     NUMBER;
3668     l_error_buffer  VARCHAR2(100);
3669 
3670     l_rec_nrec_tax_dist_id_tbl  num_tbl_type;
3671     l_tax_line_id_tbl    num_tbl_type;
3672     l_trx_line_dist_id_tbl  num_tbl_type;
3673     l_tax_dist_num_tbl    num_tbl_type;
3674     l_org_id_tbl                num_tbl_type;
3675     l_gl_date_tbl               date_tbl_type;
3676 
3677     l_old_tax_line_id    NUMBER;
3678     l_old_trx_line_dist_id      NUMBER;
3679     l_new_tax_dist_num    NUMBER;
3680 
3681     CURSOR  get_max_tax_dist_num_csr(
3682               c_tax_line_id    NUMBER,
3683               c_trx_line_dist_id  NUMBER) IS
3684      SELECT max(rec_nrec_tax_dist_number)
3685        FROM zx_rec_nrec_dist
3686       WHERE tax_line_id = c_tax_line_id
3687         AND trx_line_dist_id = c_trx_line_dist_id;
3688 
3689     CURSOR  get_tax_dists_csr IS
3690      SELECT rec_nrec_tax_dist_id,
3691             tax_line_id,
3692             trx_line_dist_id,
3693             rec_nrec_tax_dist_number,
3694             internal_organization_id,
3695             gl_date
3696        FROM zx_rec_nrec_dist zd
3697       WHERE zd.trx_id           = p_event_class_rec.trx_id
3698         AND zd.application_id   = p_event_class_rec.application_id
3699         AND zd.entity_code      = p_event_class_rec.entity_code
3700         AND zd.event_class_code = p_event_class_rec.event_class_code
3701         AND NVL(zd.reverse_flag, 'N')       = 'N'
3702         AND NVL(zd.tax_only_line_flag, 'N') = 'Y'
3703 --      AND zd.freeze_flag                  = 'Y'
3704       ORDER BY tax_line_id, trx_line_dist_id, rec_nrec_tax_dist_number;
3705 
3706 
3707   BEGIN
3708     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3709 
3710     IF (g_level_procedure >= g_current_runtime_level ) THEN
3711       FND_LOG.STRING(g_level_procedure,
3712                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines.BEGIN',
3713                      'ZX_TRL_MANAGE_TAX_PKG: Discard_Tax_Only_Lines (+)');
3714     END IF;
3715 
3716     -- Initialize API return status to success
3717     x_return_status := FND_API.G_RET_STS_SUCCESS;
3718 
3719     UPDATE ZX_LINES
3720        SET ORIG_TAXABLE_AMT          = NVL(orig_taxable_amt, taxable_amt),
3721            ORIG_TAXABLE_AMT_TAX_CURR = NVL(orig_taxable_amt_tax_curr, taxable_amt_tax_curr),
3722            ORIG_TAX_AMT              = NVL(orig_tax_amt, tax_amt),
3723            ORIG_TAX_AMT_TAX_CURR     = NVL(orig_tax_amt_tax_curr, tax_amt_tax_curr),
3724            UNROUNDED_TAX_AMT         = 0,
3725            UNROUNDED_TAXABLE_AMT     = 0,
3726            TAX_AMT                   = 0,
3727            TAX_AMT_TAX_CURR          = 0,
3728            TAX_AMT_FUNCL_CURR        = 0,
3729            TAXABLE_AMT               = 0,
3730            TAXABLE_AMT_TAX_CURR      = 0,
3731            TAXABLE_AMT_FUNCL_CURR    = 0,
3732            CAL_TAX_AMT               = 0,
3733            CAL_TAX_AMT_TAX_CURR      = 0,
3734            CAL_TAX_AMT_FUNCL_CURR    = 0,
3735            REC_TAX_AMT               = 0,
3736            REC_TAX_AMT_TAX_CURR      = 0,
3737            REC_TAX_AMT_FUNCL_CURR    = 0,
3738            NREC_TAX_AMT              = 0,
3739            NREC_TAX_AMT_TAX_CURR     = 0,
3740            NREC_TAX_AMT_FUNCL_CURR   = 0,
3741            PROCESS_FOR_RECOVERY_FLAG = 'N',
3742            SYNC_WITH_PRVDR_FLAG      = DECODE(TAX_PROVIDER_ID, NULL, SYNC_WITH_PRVDR_FLAG, 'Y')
3743      WHERE APPLICATION_ID    = p_event_class_rec.application_id
3744        AND ENTITY_CODE       = p_event_class_rec.entity_code
3745        AND EVENT_CLASS_CODE  = p_event_class_rec.event_class_code
3746        AND TRX_ID            = p_event_class_rec.trx_id
3747        AND tax_only_line_flag = 'Y';
3748 
3749     l_row_count := SQL%ROWCOUNT;
3750 
3751     IF (g_level_statement >= g_current_runtime_level ) THEN
3752         FND_LOG.STRING(g_level_statement,
3753                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
3754                        'Number of rows updated in zx_lines = '||l_row_count);
3755     END IF;
3756 
3757     IF p_event_class_rec.summarization_flag = 'Y' THEN
3758 
3759        UPDATE zx_lines_summary
3760          SET TAX_AMT = 0,
3761              TAX_AMT_TAX_CURR = 0,
3762              TAX_AMT_FUNCL_CURR = 0,
3763              TOTAL_REC_TAX_AMT = 0,
3764              TOTAL_REC_TAX_AMT_FUNCL_CURR = 0,
3765              TOTAL_NREC_TAX_AMT = 0,
3766              TOTAL_NREC_TAX_AMT_FUNCL_CURR = 0,
3767              TOTAL_REC_TAX_AMT_TAX_CURR = 0,
3768              TOTAL_NREC_TAX_AMT_TAX_CURR = 0
3769          WHERE APPLICATION_ID = p_event_class_rec.application_id
3770          AND ENTITY_CODE      = p_event_class_rec.entity_code
3771          AND EVENT_CLASS_CODE = p_event_class_rec.event_class_code
3772          AND TRX_ID           = p_event_class_rec.trx_id
3773          AND Tax_Only_Line_Flag = 'Y';
3774 
3775       l_row_count := SQL%ROWCOUNT;
3776 
3777       IF (g_level_statement >= g_current_runtime_level ) THEN
3778         FND_LOG.STRING(g_level_statement,
3779                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
3780                        'Number of rows updated in zx_lines_summary = '||l_row_count);
3781       END IF;
3782 
3783     END IF;
3784 
3785 
3786     -- Creates reverse distributions for frozen distribution lines
3787     --
3788     OPEN  get_tax_dists_csr;
3789     FETCH get_tax_dists_csr BULK COLLECT INTO
3790            l_rec_nrec_tax_dist_id_tbl,
3791            l_tax_line_id_tbl,
3792            l_trx_line_dist_id_tbl,
3793            l_tax_dist_num_tbl,
3794            l_org_id_tbl,
3795            l_gl_date_tbl;
3796     CLOSE get_tax_dists_csr;
3797 
3798     l_old_tax_line_id := NUMBER_DUMMY;
3799     l_old_trx_line_dist_id := NUMBER_DUMMY;
3800     l_new_tax_dist_num := 0;
3801 
3802     IF l_rec_nrec_tax_dist_id_tbl.COUNT > 0 THEN
3803 
3804       FOR i IN NVL(l_rec_nrec_tax_dist_id_tbl.FIRST, 0) ..
3805                NVL(l_rec_nrec_tax_dist_id_tbl.LAST, -1)
3806       LOOP
3807 
3808         IF l_old_tax_line_id = l_tax_line_id_tbl(i) AND
3809            l_old_trx_line_dist_id = l_trx_line_dist_id_tbl(i) THEN
3810           l_new_tax_dist_num := l_new_tax_dist_num + 1;
3811         ELSE
3812 
3813           OPEN  get_max_tax_dist_num_csr(
3814                     l_tax_line_id_tbl(i),
3815                     l_trx_line_dist_id_tbl(i));
3816           FETCH get_max_tax_dist_num_csr INTO l_new_tax_dist_num;
3817           CLOSE get_max_tax_dist_num_csr;
3818 
3819           l_new_tax_dist_num := l_new_tax_dist_num + 1;
3820 
3821           l_old_tax_line_id := l_tax_line_id_tbl(i);
3822           l_old_trx_line_dist_id := l_trx_line_dist_id_tbl(i);
3823 
3824         END IF;
3825 
3826         l_tax_dist_num_tbl(i) := l_new_tax_dist_num;
3827 
3828         -- bug 6706941: populate gl_date for the reversed tax distribution
3829         --
3830         l_gl_date_tbl(i) := AP_UTILITIES_PKG.get_reversal_gl_date(
3831                                             p_date   => l_gl_date_tbl(i),
3832                                             p_org_id => l_org_id_tbl(i));
3833 
3834       END LOOP;
3835 
3836       FORALL i IN l_rec_nrec_tax_dist_id_tbl.FIRST .. l_rec_nrec_tax_dist_id_tbl.LAST
3837 
3838         INSERT INTO ZX_REC_NREC_DIST(
3839                                   REC_NREC_TAX_DIST_ID,
3840                                   APPLICATION_ID,
3841                                   ENTITY_CODE,
3842                                   EVENT_CLASS_CODE,
3843                                   EVENT_TYPE_CODE,
3844                                   TRX_ID,
3845                                   TRX_LEVEL_TYPE,
3846                                   TRX_NUMBER,
3847                                   TRX_LINE_ID,
3848                                   TRX_LINE_NUMBER,
3849                                   TAX_LINE_ID,
3850                                   TAX_LINE_NUMBER,
3851                                   TRX_LINE_DIST_ID,
3852                                   ITEM_DIST_NUMBER,
3853                                   REC_NREC_TAX_DIST_NUMBER,
3854                                   REC_NREC_RATE,
3855                                   RECOVERABLE_FLAG,
3856                                   REC_NREC_TAX_AMT,
3857                                   TAX_EVENT_CLASS_CODE,
3858                                   TAX_EVENT_TYPE_CODE,
3859                                   CONTENT_OWNER_ID,
3860                                   TAX_REGIME_ID,
3861                                   TAX_REGIME_CODE,
3862                                   TAX_ID,
3863                                   TAX,
3864                                   TAX_STATUS_ID,
3865                                   TAX_STATUS_CODE,
3866                                   TAX_RATE_ID,
3867                                   TAX_RATE_CODE,
3868                                   TAX_RATE,
3869                                   INCLUSIVE_FLAG,
3870                                   RECOVERY_TYPE_ID,
3871                                   RECOVERY_TYPE_CODE,
3872                                   RECOVERY_RATE_ID,
3873                                   RECOVERY_RATE_CODE,
3874                                   REC_TYPE_RULE_FLAG,
3875                                   NEW_REC_RATE_CODE_FLAG,
3876                                   REVERSE_FLAG,
3877                                   HISTORICAL_FLAG,
3878                                   REVERSED_TAX_DIST_ID,
3879                                   REC_NREC_TAX_AMT_TAX_CURR,
3880                                   REC_NREC_TAX_AMT_FUNCL_CURR,
3881                                   INTENDED_USE,
3882                                   PROJECT_ID,
3883                                   TASK_ID,
3884                                   AWARD_ID,
3885                                   EXPENDITURE_TYPE,
3886                                   EXPENDITURE_ORGANIZATION_ID,
3887                                   EXPENDITURE_ITEM_DATE,
3888                                   REC_RATE_DET_RULE_FLAG,
3889                                   LEDGER_ID,
3890                                   SUMMARY_TAX_LINE_ID,
3891                                   RECORD_TYPE_CODE,
3892                                   CURRENCY_CONVERSION_DATE,
3893                                   CURRENCY_CONVERSION_TYPE,
3894                                   CURRENCY_CONVERSION_RATE,
3895                                   TAX_CURRENCY_CONVERSION_DATE,
3896                                   TAX_CURRENCY_CONVERSION_TYPE,
3897                                   TAX_CURRENCY_CONVERSION_RATE,
3898                                   TRX_CURRENCY_CODE,
3899                                   TAX_CURRENCY_CODE,
3900                                   TRX_LINE_DIST_QTY,
3901                                   REF_DOC_TRX_LINE_DIST_QTY,
3902                                   PRICE_DIFF,
3903                                   QTY_DIFF,
3904                                   PER_TRX_CURR_UNIT_NR_AMT,
3905                                   REF_PER_TRX_CURR_UNIT_NR_AMT,
3906                                   REF_DOC_CURR_CONV_RATE,
3907                                   UNIT_PRICE,
3908                                   REF_DOC_UNIT_PRICE,
3909                                   PER_UNIT_NREC_TAX_AMT,
3910                                   REF_DOC_PER_UNIT_NREC_TAX_AMT,
3911                                   RATE_TAX_FACTOR,
3912                                   TAX_APPORTIONMENT_FLAG,
3913                                   TRX_LINE_DIST_AMT,
3914                                   TRX_LINE_DIST_TAX_AMT,
3915                                   ORIG_REC_NREC_RATE,
3916                                   ORIG_REC_RATE_CODE,
3917                                   ORIG_REC_NREC_TAX_AMT,
3918                                   ORIG_REC_NREC_TAX_AMT_TAX_CURR,
3919                                   ACCOUNT_CCID,
3920                                   ACCOUNT_STRING,
3921                                   UNROUNDED_REC_NREC_TAX_AMT,
3922                                   APPLICABILITY_RESULT_ID,
3923                                   REC_RATE_RESULT_ID,
3924                                   BACKWARD_COMPATIBILITY_FLAG,
3925                                   OVERRIDDEN_FLAG,
3926                                   SELF_ASSESSED_FLAG,
3927                                   FREEZE_FLAG,
3928                                   POSTING_FLAG,
3929                                   ATTRIBUTE_CATEGORY,
3930                                   ATTRIBUTE1,
3931                                   ATTRIBUTE2,
3932                                   ATTRIBUTE3,
3933                                   ATTRIBUTE4,
3934                                   ATTRIBUTE5,
3935                                   ATTRIBUTE6,
3936                                   ATTRIBUTE7,
3937                                   ATTRIBUTE8,
3938                                   ATTRIBUTE9,
3939                                   ATTRIBUTE10,
3940                                   ATTRIBUTE11,
3941                                   ATTRIBUTE12,
3942                                   ATTRIBUTE13,
3943                                   ATTRIBUTE14,
3944                                   ATTRIBUTE15,
3945                                   GLOBAL_ATTRIBUTE_CATEGORY,
3946                                   GLOBAL_ATTRIBUTE1,
3947                                   GLOBAL_ATTRIBUTE2,
3948                                   GLOBAL_ATTRIBUTE3,
3949                                   GLOBAL_ATTRIBUTE4,
3950                                   GLOBAL_ATTRIBUTE5,
3951                                   GLOBAL_ATTRIBUTE6,
3952                                   GLOBAL_ATTRIBUTE7,
3953                                   GLOBAL_ATTRIBUTE8,
3954                                   GLOBAL_ATTRIBUTE9,
3955                                   GLOBAL_ATTRIBUTE10,
3956                                   GLOBAL_ATTRIBUTE11,
3957                                   GLOBAL_ATTRIBUTE12,
3958                                   GLOBAL_ATTRIBUTE13,
3959                                   GLOBAL_ATTRIBUTE14,
3960                                   GLOBAL_ATTRIBUTE15,
3961                                   GLOBAL_ATTRIBUTE16,
3962                                   GLOBAL_ATTRIBUTE17,
3963                                   GLOBAL_ATTRIBUTE18,
3964                                   GLOBAL_ATTRIBUTE19,
3965                                   GLOBAL_ATTRIBUTE20,
3966                                   GL_DATE,
3967                                   REF_DOC_APPLICATION_ID,
3968                                   REF_DOC_ENTITY_CODE,
3969                                   REF_DOC_EVENT_CLASS_CODE,
3970                                   REF_DOC_TRX_ID,
3971                                   REF_DOC_LINE_ID,
3972                                   REF_DOC_DIST_ID,
3973                                   MINIMUM_ACCOUNTABLE_UNIT,
3974                                   PRECISION,
3975                                   ROUNDING_RULE_CODE,
3976                                   TAXABLE_AMT,
3977                                   TAXABLE_AMT_TAX_CURR,
3978                                   TAXABLE_AMT_FUNCL_CURR,
3979                                   TAX_ONLY_LINE_FLAG,
3980                                   UNROUNDED_TAXABLE_AMT,
3981                                   LEGAL_ENTITY_ID,
3982                                   PRD_TAX_AMT,
3983                                   PRD_TAX_AMT_TAX_CURR,
3984                                   PRD_TAX_AMT_FUNCL_CURR,
3985                                   PRD_TOTAL_TAX_AMT,
3986                                   PRD_TOTAL_TAX_AMT_TAX_CURR,
3987                                   PRD_TOTAL_TAX_AMT_FUNCL_CURR,
3988                                   APPLIED_FROM_TAX_DIST_ID,
3989                                   APPLIED_TO_DOC_CURR_CONV_RATE,
3990                                   ADJUSTED_DOC_TAX_DIST_ID,
3991                                   FUNC_CURR_ROUNDING_ADJUSTMENT,
3992                                   TAX_APPORTIONMENT_LINE_NUMBER,
3993                                   LAST_MANUAL_ENTRY,
3994                                   REF_DOC_TAX_DIST_ID,
3995                                   REF_DOC_TRX_LEVEL_TYPE,
3996                                   MRC_TAX_DIST_FLAG,
3997                                   MRC_LINK_TO_TAX_DIST_ID,
3998                                   OBJECT_VERSION_NUMBER,
3999                                   CREATED_BY,
4000                                   CREATION_DATE,
4001                                   LAST_UPDATED_BY,
4002                                   LAST_UPDATE_DATE,
4003                                   LAST_UPDATE_LOGIN,
4004                                   INTERNAL_ORGANIZATION_ID,
4005                                   DEF_REC_SETTLEMENT_OPTION_CODE,
4006                                   TAX_JURISDICTION_ID,
4007                                   ACCOUNT_SOURCE_TAX_RATE_ID)
4008                            SELECT ZX_REC_NREC_DIST_S.NEXTVAL,       -- REC_NREC_TAX_DIST_ID,
4009                                   ZD.APPLICATION_ID,
4010                                   ZD.ENTITY_CODE,
4011                                   ZD.EVENT_CLASS_CODE,
4012                                   ZD.EVENT_TYPE_CODE,
4013                                   ZD.TRX_ID,
4014                                   ZD.TRX_LEVEL_TYPE,
4015                                   ZD.TRX_NUMBER,
4016                                   ZD.TRX_LINE_ID,
4017                                   ZD.TRX_LINE_NUMBER,
4018                                   ZD.TAX_LINE_ID,
4019                                   ZD.TAX_LINE_NUMBER,
4020                                   ZD.TRX_LINE_DIST_ID,
4021                                   ZD.ITEM_DIST_NUMBER,
4022                                   l_tax_dist_num_tbl(i),             -- ZD.REC_NREC_TAX_DIST_NUMBER,
4023                                   ZD.REC_NREC_RATE,
4024                                   ZD.RECOVERABLE_FLAG,
4025                                   -ZD.REC_NREC_TAX_AMT,
4026                                   ZD.TAX_EVENT_CLASS_CODE,
4027                                   ZD.TAX_EVENT_TYPE_CODE,
4028                                   ZD.CONTENT_OWNER_ID,
4029                                   ZD.TAX_REGIME_ID,
4030                                   ZD.TAX_REGIME_CODE,
4031                                   ZD.TAX_ID,
4032                                   ZD.TAX,
4033                                   ZD.TAX_STATUS_ID,
4034                                   ZD.TAX_STATUS_CODE,
4035                                   ZD.TAX_RATE_ID,
4036                                   ZD.TAX_RATE_CODE,
4037                                   ZD.TAX_RATE,
4038                                   ZD.INCLUSIVE_FLAG,
4039                                   ZD.RECOVERY_TYPE_ID,
4040                                   ZD.RECOVERY_TYPE_CODE,
4041                                   ZD.RECOVERY_RATE_ID,
4042                                   ZD.RECOVERY_RATE_CODE,
4043                                   ZD.REC_TYPE_RULE_FLAG,
4044                                   ZD.NEW_REC_RATE_CODE_FLAG,
4045                                   'Y',                              -- ZD.REVERSE_FLAG,
4046                                   ZD.HISTORICAL_FLAG,
4047                                   ZD.REC_NREC_TAX_DIST_ID,          -- ZD.REVERSED_TAX_DIST_ID,
4048                                   -ZD.REC_NREC_TAX_AMT_TAX_CURR,
4049                                   -ZD.REC_NREC_TAX_AMT_FUNCL_CURR,
4050                                   ZD.INTENDED_USE,
4051                                   ZD.PROJECT_ID,
4052                                   ZD.TASK_ID,
4053                                   ZD.AWARD_ID,
4054                                   ZD.EXPENDITURE_TYPE,
4055                                   ZD.EXPENDITURE_ORGANIZATION_ID,
4056                                   ZD.EXPENDITURE_ITEM_DATE,
4057                                   ZD.REC_RATE_DET_RULE_FLAG,
4058                                   ZD.LEDGER_ID,
4059                                   ZD.SUMMARY_TAX_LINE_ID,
4060                                   ZD.RECORD_TYPE_CODE,
4061                                   ZD.CURRENCY_CONVERSION_DATE,
4062                                   ZD.CURRENCY_CONVERSION_TYPE,
4063                                   ZD.CURRENCY_CONVERSION_RATE,
4064                                   ZD.TAX_CURRENCY_CONVERSION_DATE,
4065                                   ZD.TAX_CURRENCY_CONVERSION_TYPE,
4066                                   ZD.TAX_CURRENCY_CONVERSION_RATE,
4067                                   ZD.TRX_CURRENCY_CODE,
4068                                   ZD.TAX_CURRENCY_CODE,
4069                                   ZD.TRX_LINE_DIST_QTY,
4070                                   ZD.REF_DOC_TRX_LINE_DIST_QTY,
4071                                   ZD.PRICE_DIFF,
4072                                   ZD.QTY_DIFF,
4073                                   ZD.PER_TRX_CURR_UNIT_NR_AMT,
4074                                   ZD.REF_PER_TRX_CURR_UNIT_NR_AMT,
4075                                   ZD.REF_DOC_CURR_CONV_RATE,
4076                                   ZD.UNIT_PRICE,
4077                                   ZD.REF_DOC_UNIT_PRICE,
4078                                   ZD.PER_UNIT_NREC_TAX_AMT,
4079                                   ZD.REF_DOC_PER_UNIT_NREC_TAX_AMT,
4080                                   ZD.RATE_TAX_FACTOR,
4081                                   ZD.TAX_APPORTIONMENT_FLAG,
4082                                   -ZD.TRX_LINE_DIST_AMT,
4083                                   -ZD.TRX_LINE_DIST_TAX_AMT,
4084                                   ZD.ORIG_REC_NREC_RATE,
4085                                   ZD.ORIG_REC_RATE_CODE,
4086                                   -ZD.ORIG_REC_NREC_TAX_AMT,
4087                                   -ZD.ORIG_REC_NREC_TAX_AMT_TAX_CURR,
4088                                   ZD.ACCOUNT_CCID,
4089                                   ZD.ACCOUNT_STRING,
4090                                   -ZD.UNROUNDED_REC_NREC_TAX_AMT,
4091                                   ZD.APPLICABILITY_RESULT_ID,
4092                                   ZD.REC_RATE_RESULT_ID,
4093                                   ZD.BACKWARD_COMPATIBILITY_FLAG,
4094                                   ZD.OVERRIDDEN_FLAG,
4095                                   ZD.SELF_ASSESSED_FLAG,
4096                                   'N',                              -- ZD.FREEZE_FLAG,
4097                                   ZD.POSTING_FLAG,
4098                                   ZD.ATTRIBUTE_CATEGORY,
4099                                   ZD.ATTRIBUTE1,
4100                                   ZD.ATTRIBUTE2,
4101                                   ZD.ATTRIBUTE3,
4102                                   ZD.ATTRIBUTE4,
4103                                   ZD.ATTRIBUTE5,
4104                                   ZD.ATTRIBUTE6,
4105                                   ZD.ATTRIBUTE7,
4106                                   ZD.ATTRIBUTE8,
4107                                   ZD.ATTRIBUTE9,
4108                                   ZD.ATTRIBUTE10,
4109                                   ZD.ATTRIBUTE11,
4110                                   ZD.ATTRIBUTE12,
4111                                   ZD.ATTRIBUTE13,
4112                                   ZD.ATTRIBUTE14,
4113                                   ZD.ATTRIBUTE15,
4114                                   ZD.GLOBAL_ATTRIBUTE_CATEGORY,
4115                                   ZD.GLOBAL_ATTRIBUTE1,
4116                                   ZD.GLOBAL_ATTRIBUTE2,
4117                                   ZD.GLOBAL_ATTRIBUTE3,
4118                                   ZD.GLOBAL_ATTRIBUTE4,
4119                                   ZD.GLOBAL_ATTRIBUTE5,
4120                                   ZD.GLOBAL_ATTRIBUTE6,
4121                                   ZD.GLOBAL_ATTRIBUTE7,
4122                                   ZD.GLOBAL_ATTRIBUTE8,
4123                                   ZD.GLOBAL_ATTRIBUTE9,
4124                                   ZD.GLOBAL_ATTRIBUTE10,
4125                                   ZD.GLOBAL_ATTRIBUTE11,
4126                                   ZD.GLOBAL_ATTRIBUTE12,
4127                                   ZD.GLOBAL_ATTRIBUTE13,
4128                                   ZD.GLOBAL_ATTRIBUTE14,
4129                                   ZD.GLOBAL_ATTRIBUTE15,
4130                                   ZD.GLOBAL_ATTRIBUTE16,
4131                                   ZD.GLOBAL_ATTRIBUTE17,
4132                                   ZD.GLOBAL_ATTRIBUTE18,
4133                                   ZD.GLOBAL_ATTRIBUTE19,
4134                                   ZD.GLOBAL_ATTRIBUTE20,
4135                                   l_gl_date_tbl(i),                 -- ZD.GL_DATE,
4136                                   ZD.REF_DOC_APPLICATION_ID,
4137                                   ZD.REF_DOC_ENTITY_CODE,
4138                                   ZD.REF_DOC_EVENT_CLASS_CODE,
4139                                   ZD.REF_DOC_TRX_ID,
4140                                   ZD.REF_DOC_LINE_ID,
4141                                   ZD.REF_DOC_DIST_ID,
4142                                   ZD.MINIMUM_ACCOUNTABLE_UNIT,
4143                                   ZD.PRECISION,
4144                                   ZD.ROUNDING_RULE_CODE,
4145                                   -ZD.TAXABLE_AMT,
4146                                   -ZD.TAXABLE_AMT_TAX_CURR,
4147                                   -ZD.TAXABLE_AMT_FUNCL_CURR,
4148                                   ZD.TAX_ONLY_LINE_FLAG,
4149                                   -ZD.UNROUNDED_TAXABLE_AMT,
4150                                   ZD.LEGAL_ENTITY_ID,
4151                                   ZD.PRD_TAX_AMT,
4152                                   ZD.PRD_TAX_AMT_TAX_CURR,
4153                                   ZD.PRD_TAX_AMT_FUNCL_CURR,
4154                                   ZD.PRD_TOTAL_TAX_AMT,
4155                                   ZD.PRD_TOTAL_TAX_AMT_TAX_CURR,
4156                                   ZD.PRD_TOTAL_TAX_AMT_FUNCL_CURR,
4157                                   ZD.APPLIED_FROM_TAX_DIST_ID,
4158                                   ZD.APPLIED_TO_DOC_CURR_CONV_RATE,
4159                                   ZD.ADJUSTED_DOC_TAX_DIST_ID,
4160                                   ZD.FUNC_CURR_ROUNDING_ADJUSTMENT,
4161                                   ZD.TAX_APPORTIONMENT_LINE_NUMBER,
4162                                   ZD.LAST_MANUAL_ENTRY,
4163                                   ZD.REF_DOC_TAX_DIST_ID,
4164                                   ZD.REF_DOC_TRX_LEVEL_TYPE,
4165                                   ZD.MRC_TAX_DIST_FLAG,
4166                                   ZD.MRC_LINK_TO_TAX_DIST_ID,
4167                                   1,                                   --ZD.OBJECT_VERSION_NUMBER,
4168                                   ZD.CREATED_BY,
4169                                   ZD.CREATION_DATE,
4170                                   ZD.LAST_UPDATED_BY,
4171                                   ZD.LAST_UPDATE_DATE,
4172                                   ZD.LAST_UPDATE_LOGIN,
4173                                   ZD.INTERNAL_ORGANIZATION_ID,
4174                                   ZD.DEF_REC_SETTLEMENT_OPTION_CODE,
4175                                   ZD.TAX_JURISDICTION_ID,
4176                                   ZD.ACCOUNT_SOURCE_TAX_RATE_ID
4177                           FROM ZX_REC_NREC_DIST ZD
4178                          WHERE rec_nrec_tax_dist_id = l_rec_nrec_tax_dist_id_tbl(i);
4179 
4180       l_row_count := SQL%ROWCOUNT;
4181 
4182       IF (g_level_statement >= g_current_runtime_level ) THEN
4183         FND_LOG.STRING(g_level_statement,
4184                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
4185                        'Number of rows created in zx_rec_nrec_dist = '||l_row_count);
4186       END IF;
4187 
4188       FORALL i IN NVL(l_rec_nrec_tax_dist_id_tbl.FIRST, 0) ..
4189                   NVL(l_rec_nrec_tax_dist_id_tbl.LAST, -1)
4190         UPDATE zx_rec_nrec_dist
4191            SET reverse_flag = 'Y'
4192          WHERE rec_nrec_tax_dist_id = l_rec_nrec_tax_dist_id_tbl(i);
4193 
4194       l_row_count := SQL%ROWCOUNT;
4195 
4196       IF (g_level_statement >= g_current_runtime_level ) THEN
4197         FND_LOG.STRING(g_level_statement,
4198                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
4199                        'Number of rows updated in zx_rec_nrec_dist = '||l_row_count);
4200       END IF;
4201 
4202     END IF;    -- _rec_nrec_tax_dist_id_tbl.COUNT > 0
4203 
4204   /*
4205    *  IF (g_level_procedure >= g_current_runtime_level ) THEN
4206    *   FND_LOG.STRING(g_level_procedure,
4207    *                  'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
4208    *                  'Update ZX_REC_NREC_DIST set reverse flag to Y (+)');
4209    * END IF;
4210    *
4211    * UPDATE ZX_REC_NREC_DIST
4212    *   SET Reverse_Flag = 'Y'
4213    *   WHERE APPLICATION_ID = p_event_class_rec.application_id
4214    *   AND ENTITY_CODE      = p_event_class_rec.entity_code
4215    *   AND EVENT_CLASS_CODE = p_event_class_rec.event_class_code
4216    *   AND TRX_ID           = p_event_class_rec.trx_id
4217    *   AND Freeze_Flag      = 'Y'
4218    *   AND NVL(Tax_Only_Line_Flag, 'N') = 'Y';
4219    *
4220    * IF (g_level_procedure >= g_current_runtime_level ) THEN
4221    *   FND_LOG.STRING(g_level_procedure,
4222    *                  'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
4223    *                  'Update ZX_REC_NREC_DIST set reverse flag to Y (-)');
4224    * END IF;
4225    */
4226 
4227     IF (g_level_procedure >= g_current_runtime_level ) THEN
4228       FND_LOG.STRING(g_level_procedure,
4229                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines.END',
4230                      'ZX_TRL_MANAGE_TAX_PKG: Discard_Tax_Only_Lines (-)');
4231     END IF;
4232 
4233   EXCEPTION
4234     WHEN OTHERS THEN
4235       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4236 
4237       IF (g_level_procedure >= g_current_runtime_level ) THEN
4238         FND_LOG.STRING(g_level_procedure,
4239                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
4240                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
4241 
4242         FND_LOG.STRING(g_level_procedure,
4243                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Discard_Tax_Only_Lines',
4244                        'Return Status = '||x_return_status);
4245       END IF;
4246   END Discard_Tax_Only_Lines;
4247 
4248 /*============================================================================*
4249  | Update_GL_Date: GL Date will be obtained for Tax Distributions             |
4250  |                                                                            |
4251  *============================================================================*/
4252 
4253   PROCEDURE Update_GL_Date
4254        (p_gl_date       IN            DATE,
4255         x_return_status    OUT NOCOPY VARCHAR2) IS
4256 
4257     l_error_buffer  VARCHAR2(100);
4258 
4259   BEGIN
4260     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4261 
4262     IF (g_level_procedure >= g_current_runtime_level ) THEN
4263       FND_LOG.STRING(g_level_procedure,
4264                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_GL_Date.BEGIN',
4265                      'ZX_TRL_MANAGE_TAX_PKG: Update_GL_Date (+)');
4266     END IF;
4267 
4268     -- Initialize API return status to success
4269     x_return_status := FND_API.G_RET_STS_SUCCESS;
4270 
4271     UPDATE zx_rec_nrec_dist
4272       SET gl_date = p_gl_date,
4273           orig_gl_date = gl_date
4274     WHERE rec_nrec_tax_dist_id IN
4275          (SELECT tax_dist_id FROM zx_tax_dist_id_gt);
4276 
4277     IF (g_level_procedure >= g_current_runtime_level ) THEN
4278       FND_LOG.STRING(g_level_procedure,
4279                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_GL_Date.END',
4280                      'ZX_TRL_MANAGE_TAX_PKG: Update_GL_Date (-)');
4281     END IF;
4282 
4283   EXCEPTION
4284     WHEN OTHERS THEN
4285       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4286 
4287       IF (g_level_procedure >= g_current_runtime_level ) THEN
4288         FND_LOG.STRING(g_level_procedure,
4289                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_GL_Date',
4290                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
4291 
4292         FND_LOG.STRING(g_level_procedure,
4293                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_GL_Date',
4294                        'Return Status = '||x_return_status);
4295       END IF;
4296   END Update_GL_Date;
4297 
4298 /*============================================================================*
4299  | Update_Exchange_Rate: modify the tax amounts needed to be calculated in    |
4300  |                       functional currency using the exchange rate and      |
4301  |                       rounding needs to be done too                        |
4302  |                                                                            |
4303  *============================================================================*/
4304 
4305   PROCEDURE Update_Exchange_Rate
4306        (p_event_class_rec         IN            ZX_API_PUB.EVENT_CLASS_REC_TYPE,
4307         x_return_status              OUT NOCOPY VARCHAR2) IS
4308 
4309     l_error_buffer    VARCHAR2(100);
4310 
4311   BEGIN
4312 
4313     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4314 
4315     IF (g_level_procedure >= g_current_runtime_level ) THEN
4316       FND_LOG.STRING(g_level_procedure,
4317                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Exchange_Rate.BEGIN',
4318                      'ZX_TRL_MANAGE_TAX_PKG: Update_Exchange_Rate (+)');
4319     END IF;
4320 
4321     -- Initialize API return status to success
4322     x_return_status := FND_API.G_RET_STS_SUCCESS;
4323 
4324     IF p_event_class_rec.tax_recovery_flag = 'Y' THEN
4325 
4326       UPDATE ZX_LINES L
4327         SET (rec_tax_amt_funcl_curr,
4328              nrec_tax_amt_funcl_curr
4329             ) =
4330             (SELECT SUM(decode(Recoverable_Flag,
4331                                'Y',
4332                                rec_nrec_tax_amt_funcl_curr)
4333                        ) rec_tax_amt_funcl_curr,
4334                     SUM(decode(Recoverable_Flag,
4335                                'N',
4336                                rec_nrec_tax_amt_funcl_curr)
4337                        ) nrec_tax_amt_funcl_curr
4338                FROM  ZX_REC_NREC_DIST D
4339                WHERE L.tax_line_id      = D.tax_line_id
4340                  AND L.application_id   = D.application_id
4341                  AND L.entity_code      = D.entity_code
4342                  AND L.event_class_code = D.event_class_code
4343                  AND L.trx_id           = D.trx_id
4344             )
4345         WHERE application_id    = p_event_class_rec.application_id
4346           AND entity_code       = p_event_class_rec.entity_code
4347           AND event_class_code  = p_event_class_rec.event_class_code
4348           AND trx_id            = p_event_class_rec.trx_id
4349           AND mrc_tax_line_flag = 'N';
4350 
4351     END IF;
4352 
4353     IF p_event_class_rec.summarization_flag = 'Y' THEN
4354 
4355       UPDATE ZX_LINES_SUMMARY  S
4356         SET (tax_amt_funcl_curr,
4357              total_rec_tax_amt_funcl_curr,
4358              total_nrec_tax_amt_funcl_curr
4359             ) =
4360             (SELECT SUM(L.tax_amt_funcl_curr) tax_amt_funcl_curr,
4361                     SUM(rec_tax_amt_funcl_curr) total_rec_tax_amt_funcl_curr ,
4362                     SUM(nrec_tax_amt_funcl_curr) total_nrec_tax_amt_funcl_curr
4363                FROM  ZX_LINES L
4364                WHERE L.summary_tax_line_id = S.summary_tax_line_id
4365                  AND L.application_id      = S.application_id
4366                  AND L.entity_code         = S.entity_code
4367                  AND L.event_class_code    = S.event_class_code
4368                  AND L.trx_id              = S.trx_id
4369             )
4370           WHERE application_id    = p_event_class_rec.application_id
4371             AND entity_code       = p_event_class_rec.entity_code
4372             AND event_class_code  = p_event_class_rec.event_class_code
4373             AND trx_id            = p_event_class_rec.trx_id
4374             AND mrc_tax_line_flag = 'N';
4375 
4376     END IF;
4377 
4378     IF (g_level_procedure >= g_current_runtime_level ) THEN
4379       FND_LOG.STRING(g_level_procedure,
4380                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Exchange_Rate.END',
4381                      'ZX_TRL_MANAGE_TAX_PKG: Update_Exchange_Rate (-)');
4382     END IF;
4383 
4384   EXCEPTION
4385     WHEN OTHERS THEN
4386       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4387 
4388       IF (g_level_procedure >= g_current_runtime_level ) THEN
4389         FND_LOG.STRING(g_level_procedure,
4390                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Exchange_Rate',
4391                        'Exception:Others:' ||SQLCODE||';'||SQLERRM);
4392 
4393         FND_LOG.STRING(g_level_procedure,
4394                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.Update_Exchange_Rate',
4395                        'Return Status = '||x_return_status);
4396       END IF;
4397   END Update_Exchange_Rate;
4398 
4399 /* ===========================================================================*
4400  | PROCEDURE update_exist_summary_line_id:                                    |
4401  |           Preserve old summary_tax_line_id in g_detail_tax_lines_gt for    |
4402  |           UPDATE case, if the same summarization criteria exists in        |
4403  |           zx_lines_summary                                                 |
4404  * ===========================================================================*/
4405   PROCEDURE  update_exist_summary_line_id(
4406     p_event_class_rec   IN         ZX_API_PUB.EVENT_CLASS_REC_TYPE,
4407     x_return_status     OUT NOCOPY  VARCHAR2) IS
4408 
4409     l_row_count NUMBER;
4410     l_error_buffer VARCHAR2(100);
4411 
4412   BEGIN
4413 
4414     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4415 
4416     l_row_count :=0 ;
4417 
4418     IF (g_level_procedure >= g_current_runtime_level ) THEN
4419       FND_LOG.STRING(g_level_procedure,
4420                     'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.update_exist_summary_line_id.BEGIN',
4421                     'ZX_TRL_MANAGE_TAX_PKG: update_exist_summary_line_id (+)');
4422     END IF;
4423 
4424     x_return_status := FND_API.G_RET_STS_SUCCESS;
4425 
4426     -- Before deleting summary tax lines, we need to preserve old
4427     -- summary_tax_line_id (for UPDATE case) if the same summarization
4428     -- criteria exist.
4429     --
4430     UPDATE zx_detail_tax_lines_gt zlgt
4431        SET summary_tax_line_id =
4432            ( SELECT summary_tax_line_id
4433                FROM zx_lines_summary summ
4434               -- bug fix 5417887
4435               --WHERE summ.application_id = p_event_class_rec.application_id
4436               --  AND summ.entity_code = p_event_class_rec.entity_code
4437               --  AND summ.event_class_code = p_event_class_rec.event_class_code
4438               --  AND summ.trx_id = p_event_class_rec.trx_id
4439               WHERE summ.application_id = zlgt.application_id
4440                 AND summ.entity_code = zlgt.entity_code
4441                 AND summ.event_class_code = zlgt.event_class_code
4442                 AND summ.trx_id = zlgt.trx_id
4443            --     AND summ.tax_event_class_code = zlgt.tax_event_class_code
4444                 AND summ.internal_organization_id = zlgt.internal_organization_id
4445 --                AND NVL(summ.trx_number, 'x') = NVL(zlgt.trx_number, 'x')
4446                 AND NVL(summ.applied_from_trx_level_type, 'x') = NVL(zlgt.applied_from_trx_level_type, 'x')
4447                 AND NVL(summ.adjusted_doc_trx_level_type, 'x') = NVL(zlgt.adjusted_doc_trx_level_type, 'x')
4448                 -- bug6773534  AND NVL(summ.applied_to_trx_level_type, 'x')   = NVL(zlgt.applied_to_trx_level_type, 'x')
4449                 AND NVL(summ.applied_from_application_id, 0) = NVL(zlgt.applied_from_application_id, 0)
4450                 AND NVL(summ.applied_from_event_class_code, 'x') = NVL(zlgt.applied_from_event_class_code, 'x')
4451                 AND NVL(summ.applied_from_entity_code, 'x') = NVL(zlgt.applied_from_entity_code, 'x')
4452 --                AND NVL(summ.applied_from_trx_number, 'x') = NVL(zlgt.applied_from_trx_number, 'x')
4453                 AND NVL(summ.applied_from_trx_id, 0) = NVL(zlgt.applied_from_trx_id, 0)
4454                 AND NVL(summ.applied_from_line_id, 0) = NVL(zlgt.applied_from_line_id, 0)
4455                 AND NVL(summ.adjusted_doc_application_id, 0) = NVL(zlgt.adjusted_doc_application_id, 0)
4456                 AND NVL(summ.adjusted_doc_entity_code, 'x') = NVL(zlgt.adjusted_doc_entity_code, 'x')
4457                 AND NVL(summ.adjusted_doc_event_class_code, 'x') = NVL(zlgt.adjusted_doc_event_class_code, 'x')
4458                 AND NVL(summ.adjusted_doc_trx_id, 0) = NVL(zlgt.adjusted_doc_trx_id, 0)
4459 --                AND NVL(summ.adjusted_doc_number, 'x') = NVL(zlgt.adjusted_doc_number, 'x')
4460                 -- bug6773534  AND NVL(summ.applied_to_application_id, -999) = NVL(zlgt.applied_to_application_id, -999)
4461                 -- bug6773534  AND NVL(summ.applied_to_event_class_code, 'x')    = NVL(zlgt.applied_to_event_class_code,  'x')
4462                 -- bug6773534  AND NVL(summ.applied_to_entity_code, 'x') = NVL(zlgt.applied_to_entity_code, 'x')
4463                 -- bug6773534  AND NVL(summ.applied_to_trx_id, -999) = NVL(zlgt.applied_to_trx_id, -999)
4464                 -- bug6773534  AND NVL(summ.applied_to_line_id, -999) = NVL(zlgt.applied_to_line_id, -999)
4465                 AND NVL(summ.tax_exemption_id, -999)  = NVL(zlgt.tax_exemption_id, -999)
4466                 --AND NVL(summ.tax_rate_before_exemption, -999) = NVL(zlgt.tax_rate_before_exemption,  -999)
4467                 --AND NVL(summ.tax_rate_name_before_exemption, 'x') = NVL(zlgt.tax_rate_name_before_exemption, 'x')
4468                 --AND NVL(summ.exempt_rate_modifier, -999) = NVL(zlgt.exempt_rate_modifier, -999)
4469                 AND NVL(summ.exempt_certificate_number, 'x') = NVL(zlgt.exempt_certificate_number, 'x')
4470                 --AND NVL(summ.exempt_reason, 'x') = NVL(zlgt.exempt_reason, 'x')
4471                 AND NVL(summ.exempt_reason_code, 'x') = NVL(zlgt.exempt_reason_code, 'x')
4472                 AND NVL(summ.tax_exception_id,  -999) = NVL(zlgt.tax_exception_id, -999)
4473                 --AND NVL(summ.tax_rate_before_exception, -999) = NVL(zlgt.tax_rate_before_exception,  -999)
4474                 --AND NVL(summ.tax_rate_name_before_exception, 'x') = NVL(zlgt.tax_rate_name_before_exception, 'x')
4475                 --AND NVL(summ.exception_rate, -999) = NVL(zlgt.exception_rate, -999)
4476                 AND NVL(summ.content_owner_id, 0) = NVL(zlgt.content_owner_id, 0)
4477 --                AND NVL(summ.tax_regime_id, 0) = NVL(zlgt.tax_regime_id, 0)
4478                 AND NVL(summ.tax_regime_code, 'x') = NVL(zlgt.tax_regime_code, 'x')
4479 --                AND NVL(summ.tax_id, 0) = NVL(zlgt.tax_id, 0)
4480                 AND NVL(summ.tax, 'x') = NVL(zlgt.tax, 'x')
4481 --                AND NVL(summ.tax_status_id, 0) = NVL(zlgt.tax_status_id, 0)
4482                 AND NVL(summ.tax_status_code, 'x') = NVL(zlgt.tax_status_code, 'x')
4483                 AND NVL(summ.tax_rate_id, 0) = NVL(zlgt.tax_rate_id, 0)
4484                 AND NVL(summ.tax_rate_code, 'x') = NVL(zlgt.tax_rate_code, 'x')
4485                 AND NVL(summ.tax_rate, -99) = NVL(zlgt.tax_rate, -99)
4486 --                AND NVL(summ.tax_jurisdiction_id, 0) = NVL(zlgt.tax_jurisdiction_id, 0)
4487                 AND NVL(summ.tax_jurisdiction_code, 'x') = NVL(zlgt.tax_jurisdiction_code, 'x')
4488                 AND NVL(summ.ledger_id, 0) = NVL(zlgt.ledger_id, 0)
4489                 AND NVL(summ.legal_entity_id, 0) = NVL(zlgt.legal_entity_id, 0)
4490                 AND NVL(summ.establishment_id, 0) = NVL(zlgt.establishment_id, 0)
4491                 AND NVL(TRUNC(summ.currency_conversion_date), SYSDATE) = NVL(TRUNC(zlgt.currency_conversion_date), SYSDATE)
4492                 AND NVL(summ.currency_conversion_type,'x') = NVL(zlgt.currency_conversion_type,'x')
4493                 AND NVL(summ.currency_conversion_rate, 1) = NVL(zlgt.currency_conversion_rate, 1)
4494                 AND NVL(summ.taxable_basis_formula,'x') = NVL(zlgt.taxable_basis_formula,'x')
4495                 AND NVL(summ.tax_calculation_formula,'x') = NVL(zlgt.tax_calculation_formula,'x')
4496                 AND summ.tax_amt_included_flag = zlgt.tax_amt_included_flag
4497                 AND summ.compounding_tax_flag = zlgt.compounding_tax_flag
4498                 AND summ.self_assessed_flag = zlgt.self_assessed_flag
4499                 AND summ.reporting_only_flag = zlgt.reporting_only_flag
4500             -- commented for bug 6456915    AND summ.associated_child_frozen_flag = zlgt.associated_child_frozen_Flag
4501            --     AND summ.copied_from_other_doc_flag = zlgt.copied_from_other_doc_flag
4502                 AND NVL(summ.record_type_code,'x') = NVL(zlgt.record_type_code,'x')
4503                 AND NVL(summ.tax_provider_id, 0) = NVL(zlgt.tax_provider_id, 0)
4504               --  AND summ.overridden_flag = zlgt.overridden_flag
4505                 AND summ.manually_entered_flag =  zlgt.manually_entered_flag
4506                 AND summ.tax_only_line_flag = zlgt.tax_only_line_flag
4507                 AND summ.mrc_tax_line_flag = zlgt.mrc_tax_line_flag
4508                 AND summ.historical_flag = zlgt.historical_flag
4509                 AND rownum =1
4510            )
4511      WHERE summary_tax_line_id IS NULL;
4512 
4513     IF (g_level_procedure >= g_current_runtime_level ) THEN
4514       FND_LOG.STRING(g_level_procedure,
4515                     'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.update_exist_summary_line_id.END',
4516                     'ZX_TRL_MANAGE_TAX_PKG: update_exist_summary_line_id (-)');
4517     END IF;
4518 
4519   EXCEPTION
4520     WHEN OTHERS THEN
4521       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4522       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4523 
4524       IF (g_level_unexpected >= g_current_runtime_level ) THEN
4525         FND_LOG.STRING(g_level_unexpected,
4526                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.update_exist_summary_line_id(-)',
4527                         l_error_buffer);
4528       END IF;
4529 
4530   END update_exist_summary_line_id;
4531 
4532 /* ===========================================================================*
4533  | PROCEDURE RELEASE_DOCUMENT_TAX_HOLD : public API to release the tax hold at|
4534  | the document level by updating TAX_HOLD_RELEASED_CODE in zx_lines based on |
4535  | the input release tax code table.                                          |
4536  | Bug Fix: 3339364 by lxzhang                                                |
4537  * ===========================================================================*/
4538 
4539   PROCEDURE release_document_tax_hold(
4540       x_return_status             OUT NOCOPY VARCHAR2,
4541       p_event_class_rec IN            ZX_API_PUB.EVENT_CLASS_REC_TYPE,
4542       p_tax_hold_released_code IN     ZX_API_PUB.VALIDATION_STATUS_TBL_TYPE
4543   ) IS
4544     l_error_buffer         VARCHAR2(100);
4545 
4546     l_tax_hold_release_value NUMBER;
4547     l_tax_hold_release_mask  NUMBER;
4548 
4549     l_upg_trx_info_rec       ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
4550     l_trx_migrated_b         BOOLEAN;
4551   BEGIN
4552     g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4553 
4554     IF (g_level_procedure >= g_current_runtime_level ) THEN
4555       FND_LOG.STRING(g_level_procedure,
4556                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.release_document_tax_hold.BEGIN',
4557                      'ZX_TRL_MANAGE_TAX_PKG: release_document_tax_hold (+)');
4558     END IF;
4559 
4560     --  Initialize API return status to success
4561     x_return_status := FND_API.G_RET_STS_SUCCESS;
4562 
4563     l_tax_hold_release_mask := 0;
4564 
4565     FOR i IN 1..nvl(p_tax_hold_released_code.COUNT, 0) LOOP
4566       l_tax_hold_release_value := ZX_TRD_SERVICES_PUB_PKG.get_tax_hold_rls_val_frm_code(
4567                                       p_tax_hold_released_code(i) );
4568       l_tax_hold_release_mask := l_tax_hold_release_mask + l_tax_hold_release_value;
4569     END LOOP;
4570 
4571     -- update the tax_hold_release_code
4572       UPDATE ZX_LINES
4573         SET TAX_HOLD_RELEASED_CODE = BITAND(TAX_HOLD_CODE, l_tax_hold_release_mask )
4574          WHERE TAX_LINE_ID in (
4575              SELECT TAX_LINE_ID
4576              FROM ZX_LINES
4577              WHERE APPLICATION_ID  = p_event_class_rec.APPLICATION_ID
4578              AND ENTITY_CODE       = p_event_class_rec.ENTITY_CODE
4579              AND EVENT_CLASS_CODE  = p_event_class_rec.EVENT_CLASS_CODE
4580              AND TRX_ID            = p_event_class_rec.TRX_ID );
4581 
4582     IF SQL%NOTFOUND THEN
4583 
4584       l_upg_trx_info_rec.application_id    := p_event_class_rec.application_id;
4585       l_upg_trx_info_rec.entity_code       := p_event_class_rec.entity_code;
4586       l_upg_trx_info_rec.event_class_code  := p_event_class_rec.event_class_code;
4587       l_upg_trx_info_rec.trx_id            := p_event_class_rec.trx_id;
4588 
4589       -- check if trx line exists in the det factors table. If not exist,
4590       -- do on-the-fly migration
4591       ZX_ON_FLY_TRX_UPGRADE_PKG.is_trx_migrated(
4592         p_upg_trx_info_rec  => l_upg_trx_info_rec,
4593         x_trx_migrated_b    => l_trx_migrated_b,
4594         x_return_status     => x_return_status );
4595 
4596       IF NOT l_trx_migrated_b THEN
4597         ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(
4598           p_upg_trx_info_rec  => l_upg_trx_info_rec,
4599           x_return_status     => x_return_status
4600         );
4601       END IF;
4602 
4603       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4604         IF (g_level_statement >= g_current_runtime_level ) THEN
4605           FND_LOG.STRING(g_level_statement,
4606                  'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.release_document_tax_hold',
4607                  'Incorrect return_status after calling ' ||
4608                  ' ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly');
4609           FND_LOG.STRING(g_level_statement,
4610                         'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.release_document_tax_hold',
4611                         'RETURN_STATUS = ' || x_return_status);
4612           FND_LOG.STRING(g_level_statement,
4613                         'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.release_document_tax_hold.END',
4614                         'ZX_TRL_MANAGE_TAX_PKG.release_document_tax_hold(-)');
4615         END IF;
4616         RETURN;
4617       END IF;
4618 
4619       -- update the tax_hold_release_code
4620       UPDATE ZX_LINES
4621         SET TAX_HOLD_RELEASED_CODE = BITAND(TAX_HOLD_CODE, l_tax_hold_release_mask )
4622          WHERE TAX_LINE_ID in (
4623              SELECT TAX_LINE_ID
4624              FROM ZX_LINES
4625              WHERE APPLICATION_ID  = p_event_class_rec.APPLICATION_ID
4626              AND ENTITY_CODE       = p_event_class_rec.ENTITY_CODE
4627              AND EVENT_CLASS_CODE  = p_event_class_rec.EVENT_CLASS_CODE
4628              AND TRX_ID            = p_event_class_rec.TRX_ID );
4629 
4630     END IF; -- IF SQL%NOTFOUND THEN
4631 
4632     IF (g_level_procedure >= g_current_runtime_level ) THEN
4633 
4634       FND_LOG.STRING(g_level_procedure,
4635                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.release_document_tax_hold.END',
4636                      'ZX_TRL_MANAGE_TAX_PKG: release_document_tax_hold (-)'||x_return_status);
4637     END IF;
4638 
4639   EXCEPTION
4640     WHEN OTHERS THEN
4641       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4642       l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4643 
4644       IF (g_level_unexpected >= g_current_runtime_level ) THEN
4645         FND_LOG.STRING(g_level_unexpected,
4646                        'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.release_document_tax_hold',
4647                         l_error_buffer);
4648       END IF;
4649 
4650   END RELEASE_DOCUMENT_TAX_HOLD;
4651 
4652 ------------------------------------------------------------------------------
4653 --  PRIVATE PROCEDURE
4654 --  create_summary_lines_crt_evnt
4655 --
4656 --  DESCRIPTION
4657 --  Private procedure to create zx_lines_summary from zx_detail_tax_lines_gt
4658 --  for tax_event_type of 'CREATE' or for tax_event_type of 'UPDATE'/'OVERRIDE'
4659 --  with retain_summ_tax_line_id_flag on event_class_rec of 'N'
4660 ------------------------------------------------------------------------------
4661 -- Bug 6456915 - associated_child_frozen_flag has been removed from grouping columns for summary tax lines
4662 
4663 PROCEDURE create_summary_lines_crt_evnt(
4664   p_event_class_rec   IN          ZX_API_PUB.EVENT_CLASS_REC_TYPE,
4665   x_return_status     OUT NOCOPY  VARCHAR2
4666 ) IS
4667 
4668   l_error_buffer            VARCHAR2(100);
4669   l_index                   NUMBER;
4670   l_curr_ledger_id          NUMBER;
4671   l_summary_tax_line_number NUMBER;
4672 
4673   l_curr_trx_id             NUMBER;
4674   l_curr_entity_code        zx_evnt_cls_mappings.entity_code%TYPE;
4675   l_curr_event_class_code   zx_evnt_cls_mappings.event_class_code%TYPE;
4676 
4677 BEGIN
4678 
4679   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4680 
4681   IF (g_level_procedure >= g_current_runtime_level ) THEN
4682     FND_LOG.STRING(g_level_procedure,
4683            'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt.BEGIN',
4684            'ZX_TRL_MANAGE_TAX_PKG: create_summary_lines_crt_evnt (+)');
4685   END IF;
4686 
4687   --  Initialize API return status to success
4688   --
4689   x_return_status := FND_API.G_RET_STS_SUCCESS;
4690 
4691   -- get the summary_tax_line_id to be used and the COUNT of tax line FOR each summary_tax_line_id
4692   -- get all the column value used to create the summary tax lines.
4693 
4694   SELECT
4695          application_id,
4696          entity_code,
4697          event_class_code,
4698          trx_id,
4699          internal_organization_id,
4700          zx_lines_summary_s.NEXTVAL,
4701          count_detail_tax_line,
4702          count_detail_cancel_flag,
4703          trx_number,
4704          applied_from_application_id,
4705          applied_from_event_class_code,
4706          applied_from_entity_code,
4707          -- applied_from_trx_number,
4708          applied_from_trx_id,
4709          applied_from_trx_level_type,
4710          applied_from_line_id,
4711          adjusted_doc_application_id,
4712          adjusted_doc_entity_code,
4713          adjusted_doc_event_class_code,
4714          adjusted_doc_trx_id,
4715          adjusted_doc_trx_level_type,
4716          -- adjusted_doc_number,
4717          --ROWNUM,                      -- summary_tax_line_number
4718          content_owner_id,
4719          -- tax_regime_id,
4720          tax_regime_code,
4721          -- tax_id,
4722          tax,
4723          -- tax_status_id,
4724          tax_status_code,
4725          tax_rate_id,
4726          tax_rate_code,
4727          tax_rate,
4728          -- tax_jurisdiction_id,
4729          tax_jurisdiction_code,
4730          ledger_id,
4731          legal_entity_id,
4732          establishment_id,
4733          currency_conversion_date,
4734          currency_conversion_type,
4735          currency_conversion_rate,
4736          taxable_basis_formula,
4737          tax_calculation_formula,
4738          tax_amt_included_flag,
4739          compounding_tax_flag,
4740          self_assessed_flag,
4741          reporting_only_flag,
4742          -- associated_child_frozen_flag,
4743   --       copied_from_other_doc_flag,
4744          record_type_code,
4745          tax_provider_id,
4746          historical_flag,
4747          tax_amt,
4748          tax_amt_tax_curr,
4749          tax_amt_funcl_curr,
4750          -- orig_tax_amt,
4751          total_rec_tax_amt,
4752          total_rec_tax_amt_funcl_curr,
4753          total_rec_tax_amt_tax_curr,
4754          total_nrec_tax_amt,
4755          total_nrec_tax_amt_funcl_curr,
4756          total_nrec_tax_amt_tax_curr,
4757          -- cancel_flag,
4758          -- purge_flag,
4759          delete_flag,
4760          --overridden_flag,
4761          manually_entered_flag,
4762          -- bug6773534 applied_to_application_id,
4763          -- bug6773534 applied_to_event_class_code,
4764          -- bug6773534 applied_to_entity_code,
4765          -- bug6773534 applied_to_trx_id,
4766          -- bug6773534 applied_to_trx_level_type,
4767          -- bug6773534 applied_to_line_id,
4768          tax_exemption_id,
4769          --tax_rate_before_exemption,
4770          --tax_rate_name_before_exemption,
4771          --exempt_rate_modifier,
4772          exempt_certificate_number,
4773          --exempt_reason,
4774          exempt_reason_code,
4775          --tax_rate_before_exception,
4776          --tax_rate_name_before_exception,
4777          tax_exception_id,
4778          --exception_rate,
4779          mrc_tax_line_flag,
4780          tax_only_line_flag
4781   BULK COLLECT INTO
4782          pg_application_id_tbl,
4783          pg_entity_code_tbl,
4784          pg_event_class_code_tbl,
4785          pg_trx_id_tbl,
4786          pg_internal_org_id_tbl,
4787          pg_summary_tax_line_id_tbl,
4788          pg_count_detail_tax_line_tbl,
4789          pg_count_detail_cancel_tbl,
4790          pg_trx_number_tbl,
4791          pg_app_from_app_id_tbl,
4792          pg_app_from_evnt_cls_code_tbl,
4793          pg_app_from_entity_code_tbl,
4794          pg_app_from_trx_id_tbl,
4795          pg_app_from_trx_level_type_tbl,
4796          pg_app_from_line_id_tbl,
4797          pg_adj_doc_app_id_tbl,
4798          pg_adj_doc_entity_code_tbl,
4799          pg_adj_doc_evnt_cls_code_tbl,
4800          pg_adj_doc_trx_id_tbl,
4801          pg_adj_doc_trx_level_type_tbl,
4802          --pg_summary_tax_line_num_tbl,
4803          pg_content_owner_id_tbl,
4804          pg_tax_regime_code_tbl,
4805          pg_tax_tbl,
4806          pg_tax_status_code_tbl,
4807          pg_tax_rate_id_tbl,
4808          pg_tax_rate_code_tbl,
4809          pg_tax_rate_tbl,
4810          pg_tax_jurisdiction_code_tbl,
4811          pg_ledger_id_tbl,
4812          pg_legal_entity_id_tbl,
4813          pg_establishment_id_tbl,
4814          pg_currency_convrsn_date_tbl,
4815          pg_currency_convrsn_type_tbl,
4816          pg_currency_convrsn_rate_tbl,
4817          pg_taxable_basis_formula_tbl,
4818          pg_tax_calculation_formula_tbl,
4819          pg_tax_amt_included_flag_tbl,
4820          pg_compounding_tax_flag_tbl,
4821          pg_self_assessed_flag_tbl,
4822          pg_reporting_only_flag_tbl,
4823          -- pg_assoctd_child_frz_flag_tbl,
4824    --      pg_cpd_from_other_doc_flag_tbl,
4825          pg_record_type_code_tbl,
4826          pg_tax_provider_id_tbl,
4827          pg_historical_flag_tbl,
4828          pg_tax_amt_tbl,
4829          pg_tax_amt_tax_curr_tbl,
4830          pg_tax_amt_funcl_curr_tbl,
4831          pg_ttl_rec_tax_amt_tbl,
4832          pg_ttl_rec_tx_amt_fnc_crr_tbl,
4833          pg_ttl_rec_tx_amt_tx_crr_tbl,
4834          pg_ttl_nrec_tax_amt_tbl,
4835          pg_ttl_nrec_tx_amt_fnc_crr_tbl,
4836          pg_ttl_nrec_tx_amt_tx_crr_tbl,
4837          -- pg_cancel_flag_tbl,
4838          pg_delete_flag_tbl,
4839          --pg_overridden_flag_tbl,
4840          pg_manually_entered_flag_tbl,
4841          -- bug6773534 pg_app_to_app_id_tbl,
4842          -- bug6773534 pg_app_to_evnt_cls_code_tbl,
4843          -- bug6773534 pg_app_to_entity_code_tbl,
4844          -- bug6773534 pg_app_to_trx_id_tbl,
4845          -- bug6773534 pg_app_to_trx_level_type_tbl,
4846          -- bug6773534 pg_app_to_line_id_tbl,
4847          pg_tax_xmptn_id_tbl,
4848          --pg_tax_rate_bf_xmptn_tbl,
4849          --pg_tax_rate_name_bf_xmptn_tbl,
4850          --pg_xmpt_rate_modifier_tbl,
4851          pg_xmpt_certificate_number_tbl,
4852          --pg_xmpt_reason_tbl,
4853          pg_xmpt_reason_code_tbl,
4854          --pg_tax_rate_bf_xeptn_tbl,
4855          --pg_tax_rate_name_bf_xeptn_tbl,
4856          pg_tax_xeptn_id_tbl,
4857          --pg_xeptn_rate_tbl,
4858          pg_mrc_tax_line_flag_tbl,
4859          pg_tax_only_line_flag_tbl
4860     -- bug#7581211: remove the index hint
4861     -- FROM (SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1)*/
4862     FROM (SELECT
4863             application_id,
4864             entity_code,
4865             event_class_code,
4866             trx_id,
4867             internal_organization_id,
4868             COUNT(*)  count_detail_tax_line,  -- How many detail tax lines grouped for each summary tax line.
4869             SUM(DECODE(cancel_flag, 'Y', 1, 0)) count_detail_cancel_flag,
4870             trx_number,
4871             applied_from_application_id,
4872             applied_from_event_class_code,
4873             applied_from_entity_code,
4874             -- applied_from_trx_number,
4875             applied_from_trx_id,
4876             applied_from_trx_level_type,
4877             applied_from_line_id,
4878             adjusted_doc_application_id,
4879             adjusted_doc_entity_code,
4880             adjusted_doc_event_class_code,
4881             adjusted_doc_trx_id,
4882             adjusted_doc_trx_level_type,
4883             -- adjusted_doc_number,
4884             content_owner_id,
4885             -- tax_regime_id,
4886             tax_regime_code,
4887             -- tax_id,
4888             tax,
4889             -- tax_status_id,
4890             tax_status_code,
4891             tax_rate_id,
4892             tax_rate_code,
4893             tax_rate,
4894             -- tax_jurisdiction_id,
4895             tax_jurisdiction_code,
4896             ledger_id,
4897             legal_entity_id,
4898             establishment_id,
4899             TRUNC(currency_conversion_date) currency_conversion_date,
4900             currency_conversion_type,
4901             currency_conversion_rate,
4902             taxable_basis_formula,
4903             tax_calculation_formula,
4904             tax_amt_included_flag,
4905             compounding_tax_flag,
4906             self_assessed_flag,
4907             reporting_only_flag,
4908             -- associated_child_frozen_flag,
4909   --          copied_from_other_doc_flag,
4910             record_type_code,
4911             tax_provider_id,
4912             historical_flag,
4913             SUM(tax_amt) tax_amt,
4914             SUM(tax_amt_tax_curr) tax_amt_tax_curr,
4915             SUM(tax_amt_funcl_curr) tax_amt_funcl_curr,
4916             SUM(orig_tax_amt) orig_tax_amt,
4917             SUM(rec_tax_amt) total_rec_tax_amt,
4918             SUM(rec_tax_amt_funcl_curr) total_rec_tax_amt_funcl_curr,
4919             SUM(rec_tax_amt_tax_curr) total_rec_tax_amt_tax_curr,
4920             SUM(nrec_tax_amt) total_nrec_tax_amt,
4921             SUM(nrec_tax_amt_funcl_curr) total_nrec_tax_amt_funcl_curr,
4922             SUM(nrec_tax_amt_tax_curr) total_nrec_tax_amt_tax_curr,
4923             -- cancel_flag,
4924             -- purge_flag,
4925             delete_flag,
4926             --overridden_flag,
4927             manually_entered_flag,
4928             -- bug6773534 applied_to_application_id,
4929             -- bug6773534 applied_to_event_class_code,
4930             -- bug6773534 applied_to_entity_code,
4931             -- bug6773534 applied_to_trx_id,
4932             -- bug6773534 applied_to_trx_level_type,
4933             -- bug6773534 applied_to_line_id,
4934             tax_exemption_id,
4935             --tax_rate_before_exemption,
4936             --tax_rate_name_before_exemption,
4937             --exempt_rate_modifier,
4938             exempt_certificate_number,
4939             --exempt_reason,
4940             exempt_reason_code,
4941             --tax_rate_before_exception,
4942             --tax_rate_name_before_exception,
4943             tax_exception_id,
4944             --exception_rate,
4945             mrc_tax_line_flag,
4946             tax_only_line_flag
4947        FROM zx_detail_tax_lines_gt
4948 -- commented out for bug fix 5417887
4949 --      WHERE application_id  = p_event_class_rec.application_id
4950 --        AND entity_code       = p_event_class_rec.entity_code
4951 --        AND event_class_code  = p_event_class_rec.event_class_code
4952 --        AND trx_id            = p_event_class_rec.trx_id
4953         GROUP BY application_id,
4954                  entity_code,
4955                  event_class_code,
4956                  trx_id,
4957                  internal_organization_id,
4958                  trx_number,
4959                  applied_from_application_id,
4960                  applied_from_event_class_code,
4961                  applied_from_entity_code,
4962                  applied_from_trx_id,
4963                  applied_from_trx_level_type,
4964                  applied_from_line_id,
4965                  adjusted_doc_application_id,
4966                  adjusted_doc_entity_code,
4967                  adjusted_doc_event_class_code,
4968                  adjusted_doc_trx_id,
4969                  adjusted_doc_trx_level_type,
4970                  content_owner_id,
4971                  tax_regime_code,
4972                  tax,
4973                  tax_status_code,
4974                  tax_rate_id,
4975                  tax_rate_code,
4976                  tax_rate,
4977                  tax_jurisdiction_code,
4978                  ledger_id,
4979                  legal_entity_id,
4980                  establishment_id,
4981                  TRUNC(currency_conversion_date),
4982                  currency_conversion_type,
4983                  currency_conversion_rate,
4984                  taxable_basis_formula,
4985                  tax_calculation_formula,
4986                  tax_amt_included_flag,
4987                  compounding_tax_flag,
4988                  self_assessed_flag,
4989                  reporting_only_flag,
4990                  -- associated_child_frozen_flag,
4991    --            copied_from_other_doc_flag,
4992                  record_type_code,
4993                  tax_provider_id,
4994                  historical_flag,
4995                  -- cancel_flag,
4996                  delete_flag,
4997                  --overridden_flag,
4998                  manually_entered_flag,
4999                  -- bug6773534 applied_to_application_id,
5000                  -- bug6773534 applied_to_event_class_code,
5001                  -- bug6773534 applied_to_entity_code,
5002                  -- bug6773534 applied_to_trx_id,
5003                  -- bug6773534 applied_to_trx_level_type,
5004                  -- bug6773534 applied_to_line_id,
5005                  tax_exemption_id,
5006                  --tax_rate_before_exemption,
5007                  --tax_rate_name_before_exemption,
5008                  --exempt_rate_modifier,
5009                  exempt_certificate_number,
5010                  --exempt_reason,
5011                  exempt_reason_code,
5012                  --tax_rate_before_exception,
5013                  --tax_rate_name_before_exception,
5014                  tax_exception_id,
5015                  --exception_rate,
5016                  mrc_tax_line_flag,
5017                  tax_only_line_flag
5018         ORDER BY application_id,
5019                  entity_code,
5020                  event_class_code,
5021                  trx_id,
5022                  trx_number,
5023                  mrc_tax_line_flag,
5024                  ledger_id,
5025                  applied_from_application_id,
5026                  applied_from_event_class_code,
5027                  applied_from_entity_code,
5028                  applied_from_trx_id,
5029                  applied_from_trx_level_type,
5030                  applied_from_line_id,
5031                  adjusted_doc_application_id,
5032                  adjusted_doc_entity_code,
5033                  adjusted_doc_event_class_code,
5034                  adjusted_doc_trx_id,
5035                  adjusted_doc_trx_level_type,
5036                  content_owner_id,
5037                  tax_regime_code,
5038                  tax,
5039                  tax_status_code,
5040                  tax_rate_id,
5041                  tax_rate_code,
5042                  tax_rate,
5043                  tax_jurisdiction_code,
5044                  legal_entity_id,
5045                  establishment_id,
5046               --   TRUNC(currency_conversion_date),
5047               --   currency_conversion_type,
5048               --   currency_conversion_rate,
5049                  taxable_basis_formula,
5050                  tax_calculation_formula,
5051                  tax_amt_included_flag,
5052                  compounding_tax_flag,
5053                  self_assessed_flag,
5054                  reporting_only_flag,
5055                  -- associated_child_frozen_flag,
5056       --         copied_from_other_doc_flag,
5057                  record_type_code,
5058                  tax_provider_id,
5059                  historical_flag,
5060                  -- cancel_flag,
5061                  delete_flag,
5062                  --overridden_flag,
5063                  manually_entered_flag,
5064                  -- bug6773534 applied_to_application_id,
5065                  -- bug6773534 applied_to_event_class_code,
5066                  -- bug6773534 applied_to_entity_code,
5067                  -- bug6773534 applied_to_trx_id,
5068                  -- bug6773534 applied_to_trx_level_type,
5069                  -- bug6773534 applied_to_line_id,
5070                  tax_exemption_id,
5071                  --tax_rate_before_exemption,
5072                  --tax_rate_name_before_exemption,
5073                  --exempt_rate_modifier,
5074                  exempt_certificate_number,
5075                  --exempt_reason,
5076                  exempt_reason_code,
5077                  --tax_rate_before_exception,
5078                  --tax_rate_name_before_exception,
5079                  tax_exception_id,
5080                  --exception_rate,
5081                  tax_only_line_flag );
5082 
5083   -- get the tax line id IN the same order of the summary tax line as IN the first query.
5084   SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1) */
5085          tax_line_id  BULK COLLECT INTO  pg_tax_line_id_tbl
5086     FROM zx_detail_tax_lines_gt
5087  -- commented out for bug fix 5417887
5088  --   WHERE application_id  = p_event_class_rec.application_id
5089  --   AND entity_code       = p_event_class_rec.entity_code
5090  --   AND event_class_code  = p_event_class_rec.event_class_code
5091  --   AND trx_id            = p_event_class_rec.trx_id
5092     ORDER BY application_id,
5093              entity_code,
5094              event_class_code,
5095              trx_id,
5096              trx_number,
5097              mrc_tax_line_flag,
5098              ledger_id,
5099              applied_from_application_id,
5100              applied_from_event_class_code,
5101              applied_from_entity_code,
5102              applied_from_trx_id,
5103              applied_from_trx_level_type,
5104              applied_from_line_id,
5105              adjusted_doc_application_id,
5106              adjusted_doc_entity_code,
5107              adjusted_doc_event_class_code,
5108              adjusted_doc_trx_id,
5109              adjusted_doc_trx_level_type,
5110              content_owner_id,
5111              tax_regime_code,
5112              tax,
5113              tax_status_code,
5114              tax_rate_id,
5115              tax_rate_code,
5116              tax_rate,
5117              tax_jurisdiction_code,
5118              legal_entity_id,
5119              establishment_id,
5120           --   TRUNC(currency_conversion_date),
5121           --   currency_conversion_type,
5122           --   currency_conversion_rate,
5123              taxable_basis_formula,
5124              tax_calculation_formula,
5125              tax_amt_included_flag,
5126              compounding_tax_flag,
5127              self_assessed_flag,
5128              reporting_only_flag,
5129              -- associated_child_frozen_flag,
5130       --   copied_from_other_doc_flag,
5131              record_type_code,
5132              tax_provider_id,
5133              historical_flag,
5134              -- cancel_flag,
5135              delete_flag,
5136              --overridden_flag,
5137              manually_entered_flag,
5138              -- bug6773534 applied_to_application_id,
5139              -- bug6773534 applied_to_event_class_code,
5140              -- bug6773534 applied_to_entity_code,
5141              -- bug6773534 applied_to_trx_id,
5142              -- bug6773534 applied_to_trx_level_type,
5143              -- bug6773534 applied_to_line_id,
5144              tax_exemption_id,
5145              --tax_rate_before_exemption,
5146              --tax_rate_name_before_exemption,
5147              --exempt_rate_modifier,
5148              exempt_certificate_number,
5149              --exempt_reason,
5150              exempt_reason_code,
5151              --tax_rate_before_exception,
5152              --tax_rate_name_before_exception,
5153              tax_exception_id,
5154              --exception_rate,
5155              tax_only_line_flag ;
5156 
5157   l_index := 1;
5158   l_curr_ledger_id := -1;
5159   l_summary_tax_line_number := -1;
5160 
5161   l_curr_trx_id := -1;
5162   l_curr_entity_code := '@#$%^&*';
5163   l_curr_event_class_code := '@#$%^&*';
5164 
5165   FOR i IN 1.. pg_summary_tax_line_id_tbl.COUNT LOOP
5166 
5167 
5168     -- the following code is not needed as we are not creating MRC tax lines in eBTax repository
5169     -- due to the order by clause, it guranteed that the none_mrc line will
5170     -- come first, then followed by the mrc tax lines.
5171     --IF l_curr_ledger_id = -1 OR l_curr_ledger_id <> pg_ledger_id_tbl(i) THEN
5172     --  l_curr_ledger_id := pg_ledger_id_tbl(i);
5173     --END IF;
5174 
5175     -- populate the summary_tax_line_number
5176     -- Reset the summary tax line number whenever the entity_code, Event Class Code
5177     -- or Trx id changes
5178 
5179     IF (l_curr_entity_code = '@#$%^&*' and  l_curr_event_class_code = '@#$%^&*' and l_curr_trx_id = -1)
5180       or l_curr_event_class_code <> pg_event_class_code_tbl(i)
5181       or l_curr_trx_id <> pg_trx_id_tbl(i)
5182       or l_curr_entity_code <> pg_entity_code_tbl(i)
5183     THEN
5184       l_curr_event_class_code := pg_event_class_code_tbl(i);
5185       l_curr_trx_id := pg_trx_id_tbl(i);
5186       l_curr_entity_code := pg_entity_code_tbl(i);
5187 
5188       l_summary_tax_line_number := 1;
5189     ELSE
5190       l_summary_tax_line_number := l_summary_tax_line_number + 1;
5191     END IF;
5192 
5193     pg_summary_tax_line_num_tbl(i) := l_summary_tax_line_number;
5194 
5195     -- populate the summary_tax_line_id to the corresponding detail_tax_line_id
5196     FOR j IN 1.. pg_count_detail_tax_line_tbl(i) LOOP
5197       pg_detail_tax_smry_line_id_tbl(l_index) := pg_summary_tax_line_id_tbl(i);
5198       l_index := l_index+1;
5199     END LOOP;
5200 
5201     IF pg_count_detail_cancel_tbl(i) = pg_count_detail_tax_line_tbl(i) THEN
5202       pg_cancel_flag_tbl(i) := 'Y';
5203     ELSE
5204       pg_cancel_flag_tbl(i) := NULL;
5205     END IF;
5206 
5207   END LOOP;
5208 
5209   -- update the summary_tax_line_id column in the detail tax line table
5210   FORALL i IN 1.. pg_tax_line_id_tbl.COUNT
5211     UPDATE /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U2) */
5212            zx_detail_tax_lines_gt
5213        SET summary_tax_line_id = pg_detail_tax_smry_line_id_tbl(i)
5214      WHERE tax_line_id = pg_tax_line_id_tbl(i);
5215 
5216   -- insert the newly created summary tax lines
5217   FORALL i IN 1..pg_summary_tax_line_id_tbl.COUNT
5218     INSERT INTO zx_lines_summary(
5219                   summary_tax_line_id,
5220                   object_version_number,
5221                   created_by,
5222                   creation_date,
5223                   last_updated_by,
5224                   last_update_date,
5225                   last_update_login,
5226                   internal_organization_id,
5227                   application_id,
5228                   entity_code,
5229                   event_class_code,
5230                   -- tax_event_class_code,
5231                   trx_id,
5232                   trx_number,
5233                   applied_from_application_id,
5234                   applied_from_event_class_code,
5235                   applied_from_entity_code,
5236                   -- applied_from_trx_number,
5237                   applied_from_trx_id,
5238                   applied_from_trx_level_type,
5239                   applied_from_line_id,
5240                   adjusted_doc_application_id,
5241                   adjusted_doc_entity_code,
5242                   adjusted_doc_event_class_code,
5243                   adjusted_doc_trx_id,
5244                   adjusted_doc_trx_level_type,
5245                   -- adjusted_doc_number,
5246                   summary_tax_line_number,
5247                   content_owner_id,
5248                   -- tax_regime_id,
5249                   tax_regime_code,
5250                   -- tax_id,
5251                   tax,
5252                   -- tax_status_id,
5253                   tax_status_code,
5254                   tax_rate_id,
5255                   tax_rate_code,
5256                   tax_rate,
5257                   -- tax_jurisdiction_id,
5258                   tax_jurisdiction_code,
5259                   ledger_id,
5260                   legal_entity_id,
5261                   establishment_id,
5262                   currency_conversion_date,
5263                   currency_conversion_type,
5264                   currency_conversion_rate,
5265                   taxable_basis_formula,
5266                   tax_calculation_formula,
5267                   tax_amt_included_flag,
5268                   compounding_tax_flag,
5269                   self_assessed_flag,
5270                   reporting_only_flag,
5271                   -- associated_child_frozen_flag,
5272         --      copied_from_other_doc_flag,
5273                   record_type_code,
5274                   tax_provider_id,
5275                   historical_flag,
5276                   tax_amt,
5277                   tax_amt_tax_curr,
5278                   tax_amt_funcl_curr,
5279                   -- orig_tax_amt,
5280                   total_rec_tax_amt,
5281                   total_rec_tax_amt_funcl_curr,
5282                   total_rec_tax_amt_tax_curr,
5283                   total_nrec_tax_amt,
5284                   total_nrec_tax_amt_funcl_curr,
5285                   total_nrec_tax_amt_tax_curr,
5286                   cancel_flag,
5287                   -- purge_flag,
5288                   delete_flag,
5289              --     overridden_flag,
5290                   manually_entered_flag,
5291                   -- bug6773534 applied_to_application_id,
5292                   -- bug6773534 applied_to_event_class_code,
5293                   -- bug6773534 applied_to_entity_code,
5294                   -- bug6773534 applied_to_trx_id,
5295                   -- bug6773534 applied_to_trx_level_type,
5296                   -- bug6773534 applied_to_line_id,
5297                   tax_exemption_id,
5298               --    tax_rate_before_exemption,
5299               --    tax_rate_name_before_exemption,
5300               --    exempt_rate_modifier,
5301                   exempt_certificate_number,
5302               --    exempt_reason,
5303                   exempt_reason_code,
5304                --   tax_rate_before_exception,
5305               --    tax_rate_name_before_exception,
5306                   tax_exception_id,
5307                --   exception_rate,
5308                   mrc_tax_line_flag,
5309                   tax_only_line_flag )
5310          VALUES (
5311                   pg_summary_tax_line_id_tbl(i),
5312                   1,        -- object_version_number
5313                   FND_GLOBAL.user_id,
5314                   SYSDATE,
5315                   FND_GLOBAL.user_id,
5316                   SYSDATE,
5317                   FND_GLOBAL.user_id,
5318                   pg_internal_org_id_tbl(i),
5319                   pg_application_id_tbl(i),
5320                   pg_entity_code_tbl(i),
5321                   pg_event_class_code_tbl(i),
5322                   -- tax_event_class_code,
5323                   pg_trx_id_tbl(i),
5324                   pg_trx_number_tbl(i),
5325                   pg_app_from_app_id_tbl(i),
5326                   pg_app_from_evnt_cls_code_tbl(i),
5327                   pg_app_from_entity_code_tbl(i),
5328                   pg_app_from_trx_id_tbl(i),
5329                   pg_app_from_trx_level_type_tbl(i),
5330                   pg_app_from_line_id_tbl(i),
5331                   pg_adj_doc_app_id_tbl(i),
5332                   pg_adj_doc_entity_code_tbl(i),
5333                   pg_adj_doc_evnt_cls_code_tbl(i),
5334                   pg_adj_doc_trx_id_tbl(i),
5335                   pg_adj_doc_trx_level_type_tbl(i),
5336                   pg_summary_tax_line_num_tbl(i),
5337                   pg_content_owner_id_tbl(i),
5338                   pg_tax_regime_code_tbl(i),
5339                   pg_tax_tbl(i),
5340                   pg_tax_status_code_tbl(i),
5341                   pg_tax_rate_id_tbl(i),
5342                   pg_tax_rate_code_tbl(i),
5343                   pg_tax_rate_tbl(i),
5344                   pg_tax_jurisdiction_code_tbl(i),
5345                   pg_ledger_id_tbl(i),
5346                   pg_legal_entity_id_tbl(i),
5347                   pg_establishment_id_tbl(i),
5348                   pg_currency_convrsn_date_tbl(i),
5349                   pg_currency_convrsn_type_tbl(i),
5350                   pg_currency_convrsn_rate_tbl(i),
5351                   pg_taxable_basis_formula_tbl(i),
5352                   pg_tax_calculation_formula_tbl(i),
5353                   pg_tax_amt_included_flag_tbl(i),
5354                   pg_compounding_tax_flag_tbl(i),
5355                   pg_self_assessed_flag_tbl(i),
5356                   pg_reporting_only_flag_tbl(i),
5357                   -- pg_assoctd_child_frz_flag_tbl(i),
5358          --     pg_cpd_from_other_doc_flag_tbl(i),
5359                   pg_record_type_code_tbl(i),
5360                   pg_tax_provider_id_tbl(i),
5361                   pg_historical_flag_tbl(i),
5362                   pg_tax_amt_tbl(i),
5363                   pg_tax_amt_tax_curr_tbl(i),
5364                   pg_tax_amt_funcl_curr_tbl(i),
5365                   pg_ttl_rec_tax_amt_tbl(i),
5366                   pg_ttl_rec_tx_amt_fnc_crr_tbl(i),
5367                   pg_ttl_rec_tx_amt_tx_crr_tbl(i),
5368                   pg_ttl_nrec_tax_amt_tbl(i),
5369                   pg_ttl_nrec_tx_amt_fnc_crr_tbl(i),
5370                   pg_ttl_nrec_tx_amt_tx_crr_tbl(i),
5371                   pg_cancel_flag_tbl(i),
5372                   pg_delete_flag_tbl(i),
5373                --   pg_overridden_flag_tbl(i),
5374                   pg_manually_entered_flag_tbl(i),
5375                   -- bug6773534 pg_app_to_app_id_tbl(i),
5376                   -- bug6773534 pg_app_to_evnt_cls_code_tbl(i),
5377                   -- bug6773534 pg_app_to_entity_code_tbl(i),
5378                   -- bug6773534 pg_app_to_trx_id_tbl(i),
5379                   -- bug6773534 pg_app_to_trx_level_type_tbl(i),
5380                   -- bug6773534 pg_app_to_line_id_tbl(i),
5381                   pg_tax_xmptn_id_tbl(i),
5382                --   pg_tax_rate_bf_xmptn_tbl(i),
5383                --   pg_tax_rate_name_bf_xmptn_tbl(i),
5384                --   pg_xmpt_rate_modifier_tbl(i),
5385                   pg_xmpt_certificate_number_tbl(i),
5386                 --  pg_xmpt_reason_tbl(i),
5387                   pg_xmpt_reason_code_tbl(i),
5388                 --  pg_tax_rate_bf_xeptn_tbl(i),
5389                 --  pg_tax_rate_name_bf_xeptn_tbl(i),
5390                   pg_tax_xeptn_id_tbl(i),
5391                --   pg_xeptn_rate_tbl(i),
5392                   pg_mrc_tax_line_flag_tbl(i),
5393                   pg_tax_only_line_flag_tbl(i)
5394                 );
5395 
5396   IF (g_level_statement >= g_current_runtime_level ) THEN
5397 
5398         FND_LOG.STRING(g_level_statement,
5399                'ZX.PLSQL.ZX_TDS_TAX_LINES_DETM_PKG.create_summary_lines_crt_evnt',
5400                'Number of Rows Inserted in zx_lines_summary = ' || to_char(SQL%ROWCOUNT));
5401   END IF;
5402 
5403   IF (g_level_procedure >= g_current_runtime_level ) THEN
5404 
5405     FND_LOG.STRING(g_level_procedure,
5406            'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt.END',
5407            'ZX_TRL_MANAGE_TAX_PKG: create_summary_lines_crt_evnt (-)'||x_return_status);
5408   END IF;
5409 
5410 EXCEPTION
5411   WHEN OTHERS THEN
5412     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5413     l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5414 
5415     IF (g_level_unexpected >= g_current_runtime_level ) THEN
5416       FND_LOG.STRING(g_level_unexpected,
5417              'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_crt_evnt',
5418               l_error_buffer);
5419     END IF;
5420 
5421 END create_summary_lines_crt_evnt;
5422 
5423 ------------------------------------------------------------------------------
5424 --  PRIVATE PROCEDURE
5425 --  create_summary_lines_upd_evnt
5426 --
5427 --  DESCRIPTION
5428 --  Private procedure to create zx_lines_summary from zx_detail_tax_lines_gt
5429 --  for tax_event_type of 'UPDATE' or 'OVERRIDE' with
5430 --  retain_summ_tax_line_id_flag on event_class_rec of 'Y'
5431 ------------------------------------------------------------------------------
5432 -- Bug 6456915 - associated_child_frozen_flag has been removed from grouping columns for summary tax lines
5433 PROCEDURE create_summary_lines_upd_evnt(
5434   p_event_class_rec   IN          ZX_API_PUB.EVENT_CLASS_REC_TYPE,
5435   x_return_status     OUT NOCOPY  VARCHAR2
5436 ) IS
5437 
5438   l_error_buffer            VARCHAR2(100);
5439   l_index                   NUMBER;
5440   l_curr_ledger_id          NUMBER;
5441   l_summary_tax_line_number NUMBER;
5442 
5443   l_curr_trx_id             NUMBER;
5444   l_curr_entity_code        zx_evnt_cls_mappings.entity_code%TYPE;
5445   l_curr_event_class_code   zx_evnt_cls_mappings.event_class_code%TYPE;
5446 
5447   -- Following variables added for Error Handling Fix Bug#9765007
5448   l_err_idx                 BINARY_INTEGER;
5449   l_err_count               NUMBER;
5450   l_err_code                NUMBER;
5451   l_ora_error               VARCHAR2(10);
5452   l_err_trx_id              NUMBER;
5453   l_context_info_rec        ZX_API_PUB.context_info_rec_type;
5454 
5455   summary_error             EXCEPTION;
5456   PRAGMA exception_init(summary_error, -24381);
5457 
5458 BEGIN
5459   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5460 
5461   IF (g_level_procedure >= g_current_runtime_level ) THEN
5462     FND_LOG.STRING(g_level_procedure,
5463            'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt.BEGIN',
5464            'ZX_TRL_MANAGE_TAX_PKG: create_summary_lines_upd_evnt (+)');
5465   END IF;
5466 
5467   --  Initialize API return status to success
5468   --
5469   x_return_status := FND_API.G_RET_STS_SUCCESS;
5470 
5471   IF p_event_class_rec.retain_summ_tax_line_id_flag = 'Y' THEN
5472     -- in this case, the summary_tax_line_id on some detail lines are existed and should retain the summary tax line id
5473     SELECT   application_id,
5474              entity_code,
5475              event_class_code,
5476              trx_id,
5477              internal_organization_id,
5478              NVL(summary_tax_line_id,
5479                  zx_lines_summary_s.NEXTVAL )  summary_tax_line_id,
5480              count_detail_tax_line,
5481              count_detail_cancel_flag,
5482              trx_number,
5483              applied_from_application_id,
5484              applied_from_event_class_code,
5485              applied_from_entity_code,
5486              applied_from_trx_id,
5487              applied_from_trx_level_type,
5488              applied_from_line_id,
5489              adjusted_doc_application_id,
5490              adjusted_doc_entity_code,
5491              adjusted_doc_event_class_code,
5492              adjusted_doc_trx_id,
5493              adjusted_doc_trx_level_type,
5494              -- ROWNUM,                -- summary_tax_line_number
5495              content_owner_id,
5496              tax_regime_code,
5497              tax,
5498              tax_status_code,
5499              tax_rate_id,
5500              tax_rate_code,
5501              tax_rate,
5502              tax_jurisdiction_code,
5503              ledger_id,
5504              legal_entity_id,
5505              establishment_id,
5506              currency_conversion_date,
5507              currency_conversion_type,
5508              currency_conversion_rate,
5509              taxable_basis_formula,
5510              tax_calculation_formula,
5511              tax_amt_included_flag,
5512              compounding_tax_flag,
5513              self_assessed_flag,
5514              reporting_only_flag,
5515              -- associated_child_frozen_flag,
5516              -- copied_from_other_doc_flag,
5517              record_type_code,
5518              tax_provider_id,
5519              historical_flag,
5520              tax_amt,
5521              tax_amt_tax_curr,
5522              tax_amt_funcl_curr,
5523              total_rec_tax_amt,
5524              total_rec_tax_amt_funcl_curr,
5525              total_rec_tax_amt_tax_curr,
5526              total_nrec_tax_amt,
5527              total_nrec_tax_amt_funcl_curr,
5528              total_nrec_tax_amt_tax_curr,
5529              -- cancel_flag,
5530              'N'  delete_flag,
5531              -- overridden_flag,
5532              manually_entered_flag,
5533              -- bug6773534 applied_to_application_id,
5534              -- bug6773534 applied_to_event_class_code,
5535              -- bug6773534 applied_to_entity_code,
5536              -- bug6773534 applied_to_trx_id,
5537              -- bug6773534 applied_to_trx_level_type,
5538              -- bug6773534 applied_to_line_id,
5539              tax_exemption_id,
5540              -- tax_rate_before_exemption,
5541              -- tax_rate_name_before_exemption,
5542              -- exempt_rate_modifier,
5543              exempt_certificate_number,
5544              -- exempt_reason,
5545              exempt_reason_code,
5546              -- tax_rate_before_exception,
5547              -- tax_rate_name_before_exception,
5548              tax_exception_id,
5549              -- exception_rate,
5550              mrc_tax_line_flag,
5551              tax_only_line_flag
5552       BULK COLLECT INTO
5553              pg_application_id_tbl,
5554              pg_entity_code_tbl,
5555              pg_event_class_code_tbl,
5556              pg_trx_id_tbl,
5557              pg_internal_org_id_tbl,
5558              pg_summary_tax_line_id_tbl,
5559              pg_count_detail_tax_line_tbl,
5560              pg_count_detail_cancel_tbl,
5561              pg_trx_number_tbl,
5562              pg_app_from_app_id_tbl,
5563              pg_app_from_evnt_cls_code_tbl,
5564              pg_app_from_entity_code_tbl,
5565              pg_app_from_trx_id_tbl,
5566              pg_app_from_trx_level_type_tbl,
5567              pg_app_from_line_id_tbl,
5568              pg_adj_doc_app_id_tbl,
5569              pg_adj_doc_entity_code_tbl,
5570              pg_adj_doc_evnt_cls_code_tbl,
5571              pg_adj_doc_trx_id_tbl,
5572              pg_adj_doc_trx_level_type_tbl,
5573              -- pg_summary_tax_line_num_tbl,
5574              pg_content_owner_id_tbl,
5575              pg_tax_regime_code_tbl,
5576              pg_tax_tbl,
5577              pg_tax_status_code_tbl,
5578              pg_tax_rate_id_tbl,
5579              pg_tax_rate_code_tbl,
5580              pg_tax_rate_tbl,
5581              pg_tax_jurisdiction_code_tbl,
5582              pg_ledger_id_tbl,
5583              pg_legal_entity_id_tbl,
5584              pg_establishment_id_tbl,
5585              pg_currency_convrsn_date_tbl,
5586              pg_currency_convrsn_type_tbl,
5587              pg_currency_convrsn_rate_tbl,
5588              pg_taxable_basis_formula_tbl,
5589              pg_tax_calculation_formula_tbl,
5590              pg_tax_amt_included_flag_tbl,
5591              pg_compounding_tax_flag_tbl,
5592              pg_self_assessed_flag_tbl,
5593              pg_reporting_only_flag_tbl,
5594              -- pg_assoctd_child_frz_flag_tbl,
5595              -- pg_cpd_from_other_doc_flag_tbl,
5596              pg_record_type_code_tbl,
5597              pg_tax_provider_id_tbl,
5598              pg_historical_flag_tbl,
5599              pg_tax_amt_tbl,
5600              pg_tax_amt_tax_curr_tbl,
5601              pg_tax_amt_funcl_curr_tbl,
5602              pg_ttl_rec_tax_amt_tbl,
5603              pg_ttl_rec_tx_amt_fnc_crr_tbl,
5604              pg_ttl_rec_tx_amt_tx_crr_tbl,
5605              pg_ttl_nrec_tax_amt_tbl,
5606              pg_ttl_nrec_tx_amt_fnc_crr_tbl,
5607              pg_ttl_nrec_tx_amt_tx_crr_tbl,
5608              -- pg_cancel_flag_tbl,
5609              pg_delete_flag_tbl,
5610              -- pg_overridden_flag_tbl,
5611              pg_manually_entered_flag_tbl,
5612              -- bug6773534 pg_app_to_app_id_tbl,
5613              -- bug6773534 pg_app_to_evnt_cls_code_tbl,
5614              -- bug6773534 pg_app_to_entity_code_tbl,
5615              -- bug6773534 pg_app_to_trx_id_tbl,
5616              -- bug6773534 pg_app_to_trx_level_type_tbl,
5617              -- bug6773534 pg_app_to_line_id_tbl,
5618              pg_tax_xmptn_id_tbl,
5619              -- pg_tax_rate_bf_xmptn_tbl,
5620              -- pg_tax_rate_name_bf_xmptn_tbl,
5621              -- pg_xmpt_rate_modifier_tbl,
5622              pg_xmpt_certificate_number_tbl,
5623              -- pg_xmpt_reason_tbl,
5624              pg_xmpt_reason_code_tbl,
5625              -- pg_tax_rate_bf_xeptn_tbl,
5626              -- pg_tax_rate_name_bf_xeptn_tbl,
5627              pg_tax_xeptn_id_tbl,
5628              -- pg_xeptn_rate_tbl,
5629              pg_mrc_tax_line_flag_tbl,
5630              pg_tax_only_line_flag_tbl
5631       FROM ( SELECT application_id,
5632                     entity_code,
5633                     event_class_code,
5634                     trx_id,
5635                     internal_organization_id,
5636                     summary_tax_line_id,
5637                     COUNT(*)    count_detail_tax_line,
5638                     SUM(DECODE(cancel_flag, 'Y', 1, 0)) count_detail_cancel_flag,
5639                     trx_number,
5640                     applied_from_application_id,
5641                     applied_from_event_class_code,
5642                     applied_from_entity_code,
5643                     applied_from_trx_id,
5644                     applied_from_trx_level_type,
5645                     applied_from_line_id,
5646                     adjusted_doc_application_id,
5647                     adjusted_doc_entity_code,
5648                     adjusted_doc_event_class_code,
5649                     adjusted_doc_trx_id,
5650                     adjusted_doc_trx_level_type,
5651                     content_owner_id,
5652                     tax_regime_code,
5653                     tax,
5654                     tax_status_code,
5655                     tax_rate_id,
5656                     tax_rate_code,
5657                     tax_rate,
5658                     tax_jurisdiction_code,
5659                     ledger_id,
5660                     legal_entity_id,
5661                     establishment_id,
5662                     TRUNC(currency_conversion_date) currency_conversion_date,
5663                     currency_conversion_type,
5664                     currency_conversion_rate,
5665                     taxable_basis_formula,
5666                     tax_calculation_formula,
5667                     tax_amt_included_flag,
5668                     compounding_tax_flag,
5669                     self_assessed_flag,
5670                     reporting_only_flag,
5671                     -- associated_child_frozen_flag,
5672                     -- copied_from_other_doc_flag,
5673                     record_type_code,
5674                     tax_provider_id,
5675                     historical_flag,
5676                     SUM(tax_amt) tax_amt,
5677                     SUM(tax_amt_tax_curr) tax_amt_tax_curr,
5678                     SUM(tax_amt_funcl_curr) tax_amt_funcl_curr,
5679                     SUM(orig_tax_amt) orig_tax_amt,
5680                     SUM(rec_tax_amt) total_rec_tax_amt,
5681                     SUM(rec_tax_amt_funcl_curr) total_rec_tax_amt_funcl_curr,
5682                     SUM(rec_tax_amt_tax_curr) total_rec_tax_amt_tax_curr,
5683                     SUM(nrec_tax_amt) total_nrec_tax_amt,
5684                     SUM(nrec_tax_amt_funcl_curr) total_nrec_tax_amt_funcl_curr,
5685                     SUM(nrec_tax_amt_tax_curr) total_nrec_tax_amt_tax_curr,
5686                     -- cancel_flag,
5687                     -- overridden_flag,
5688                     manually_entered_flag,
5689                     -- bug6773534 applied_to_application_id,
5690                     -- bug6773534 applied_to_event_class_code,
5691                     -- bug6773534 applied_to_entity_code,
5692                     -- bug6773534 applied_to_trx_id,
5693                     -- bug6773534 applied_to_trx_level_type,
5694                     -- bug6773534 applied_to_line_id,
5695                     tax_exemption_id,
5696                     -- tax_rate_before_exemption,
5697                     -- tax_rate_name_before_exemption,
5698                     -- exempt_rate_modifier,
5699                     exempt_certificate_number,
5700                     -- exempt_reason,
5701                     exempt_reason_code,
5702                     -- tax_rate_before_exception,
5703                     -- tax_rate_name_before_exception,
5704                     tax_exception_id,
5705                     -- exception_rate,
5706                     mrc_tax_line_flag,
5707                     tax_only_line_flag
5708                FROM ZX_LINES tax
5709               WHERE -- bug fix 5417887
5710                     -- application_id        = p_event_class_rec.application_id
5711                     -- AND entity_code       = p_event_class_rec.entity_code
5712                     -- AND event_class_code  = p_event_class_rec.event_class_code
5713                     -- AND trx_id            = p_event_class_rec.trx_id
5714              EXISTS (SELECT 1
5715                        FROM zx_lines_det_factors line
5716                       WHERE tax.application_id = line.application_id
5717                         AND tax.event_class_code = line.event_class_code
5718                         AND tax.entity_code = line.entity_code
5719                         AND tax.trx_id = line.trx_id
5720                         AND line.event_id = p_event_class_rec.event_id)
5721               GROUP BY  application_id,
5722                         event_class_code,
5723                         entity_code,
5724                         trx_id,
5725                         internal_organization_id,
5726                         trx_number,
5727                         summary_tax_line_id,
5728                         applied_from_application_id,
5729                         applied_from_event_class_code,
5730                         applied_from_entity_code,
5731                         applied_from_trx_id,
5732                         applied_from_trx_level_type,
5733                         applied_from_line_id,
5734                         adjusted_doc_application_id,
5735                         adjusted_doc_entity_code,
5736                         adjusted_doc_event_class_code,
5737                         adjusted_doc_trx_id,
5738                         adjusted_doc_trx_level_type,
5739                         content_owner_id,
5740                         tax_regime_code,
5741                         tax,
5742                         tax_status_code,
5743                         tax_rate_id,
5744                         tax_rate_code,
5745                         tax_rate,
5746                         tax_jurisdiction_code,
5747                         ledger_id,
5748                         legal_entity_id,
5749                         establishment_id,
5750                         TRUNC(currency_conversion_date),
5751                         currency_conversion_type,
5752                         currency_conversion_rate,
5753                         taxable_basis_formula,
5754                         tax_calculation_formula,
5755                         tax_amt_included_flag,
5756                         compounding_tax_flag,
5757                         self_assessed_flag,
5758                         reporting_only_flag,
5759                         -- associated_child_frozen_flag,
5760                         -- copied_from_other_doc_flag,
5761                         record_type_code,
5762                         tax_provider_id,
5763                         historical_flag,
5764                         -- cancel_flag,
5765                         -- overridden_flag,
5766                         manually_entered_flag,
5767                         -- bug6773534 applied_to_application_id,
5768                         -- bug6773534 applied_to_event_class_code,
5769                         -- bug6773534 applied_to_entity_code,
5770                         -- bug6773534 applied_to_trx_id,
5771                         -- bug6773534 applied_to_trx_level_type,
5772                         -- bug6773534 applied_to_line_id,
5773                         tax_exemption_id,
5774                         -- tax_rate_before_exemption,
5775                         -- tax_rate_name_before_exemption,
5776                         -- exempt_rate_modifier,
5777                         exempt_certificate_number,
5778                         -- exempt_reason,
5779                         exempt_reason_code,
5780                         -- tax_rate_before_exception,
5781                         -- tax_rate_name_before_exception,
5782                         tax_exception_id,
5783                         -- exception_rate,
5784                         mrc_tax_line_flag,
5785                         tax_only_line_flag
5786                ORDER BY application_id,
5787                         event_class_code,
5788                         entity_code,
5789                         trx_id,
5790                         trx_number,
5791                         mrc_tax_line_flag,
5792                         ledger_id,
5793                         summary_tax_line_id,
5794                         applied_from_application_id,
5795                         applied_from_event_class_code,
5796                         applied_from_entity_code,
5797                         applied_from_trx_id,
5798                         applied_from_trx_level_type,
5799                         applied_from_line_id,
5800                         adjusted_doc_application_id,
5801                         adjusted_doc_entity_code,
5802                         adjusted_doc_event_class_code,
5803                         adjusted_doc_trx_id,
5804                         adjusted_doc_trx_level_type,
5805                         content_owner_id,
5806                         tax_regime_code,
5807                         tax,
5808                         tax_status_code,
5809                         tax_rate_id,
5810                         tax_rate_code,
5811                         tax_rate,
5812                         tax_jurisdiction_code,
5813                         legal_entity_id,
5814                         establishment_id,
5815                         -- TRUNC(currency_conversion_date),
5816                         -- currency_conversion_type,
5817                         -- currency_conversion_rate,
5818                         taxable_basis_formula,
5819                         tax_calculation_formula,
5820                         tax_amt_included_flag,
5821                         compounding_tax_flag,
5822                         self_assessed_flag,
5823                         reporting_only_flag,
5824                         -- associated_child_frozen_flag,
5825                         -- copied_from_other_doc_flag,
5826                         record_type_code,
5827                         tax_provider_id,
5828                         historical_flag,
5829                         -- cancel_flag,
5830                         -- overridden_flag,
5831                         manually_entered_flag,
5832                         -- bug6773534 applied_to_application_id,
5833                         -- bug6773534 applied_to_event_class_code,
5834                         -- bug6773534 applied_to_entity_code,
5835                         -- bug6773534 applied_to_trx_id,
5836                         -- bug6773534 applied_to_trx_level_type,
5837                         -- bug6773534 applied_to_line_id,
5838                         tax_exemption_id,
5839                         -- tax_rate_before_exemption,
5840                         -- tax_rate_name_before_exemption,
5841                         -- exempt_rate_modifier,
5842                         exempt_certificate_number,
5843                         -- exempt_reason,
5844                         exempt_reason_code,
5845                         -- tax_rate_before_exception,
5846                         -- tax_rate_name_before_exception,
5847                         tax_exception_id,
5848                         -- exception_rate,
5849                         tax_only_line_flag );
5850 
5851     -- get the tax line id in the same order of the summary tax line as in the first query.
5852     SELECT tax_line_id  BULK COLLECT INTO  pg_tax_line_id_tbl
5853       FROM zx_lines tax
5854       -- bug fix 5417887
5855       -- WHERE application_id  = p_event_class_rec.application_id
5856       -- AND entity_code       = p_event_class_rec.entity_code
5857       -- AND event_class_code  = p_event_class_rec.event_class_code
5858       -- AND trx_id            = p_event_class_rec.trx_id
5859      WHERE EXISTS (
5860               SELECT 1
5861                 FROM zx_lines_det_factors line
5862                WHERE tax.application_id = line.application_id
5863                  AND tax.event_class_code = line.event_class_code
5864                  AND tax.entity_code = line.entity_code
5865                  AND tax.trx_id = line.trx_id
5866                  AND line.event_id = p_event_class_rec.event_id)
5867       ORDER BY application_id,
5868                event_class_code,
5869                entity_code,
5870                trx_id,
5871                trx_number,
5872                mrc_tax_line_flag,
5873                ledger_id,
5874                summary_tax_line_id,
5875                applied_from_application_id,
5876                applied_from_event_class_code,
5877                applied_from_entity_code,
5878                applied_from_trx_id,
5879                applied_from_trx_level_type,
5880                applied_from_line_id,
5881                adjusted_doc_application_id,
5882                adjusted_doc_entity_code,
5883                adjusted_doc_event_class_code,
5884                adjusted_doc_trx_id,
5885                adjusted_doc_trx_level_type,
5886                content_owner_id,
5887                tax_regime_code,
5888                tax,
5889                tax_status_code,
5890                tax_rate_id,
5891                tax_rate_code,
5892                tax_rate,
5893                tax_jurisdiction_code,
5894                legal_entity_id,
5895                establishment_id,
5896                -- TRUNC(currency_conversion_date),
5897                -- currency_conversion_type,
5898                -- currency_conversion_rate,
5899                taxable_basis_formula,
5900                tax_calculation_formula,
5901                tax_amt_included_flag,
5902                compounding_tax_flag,
5903                self_assessed_flag,
5904                reporting_only_flag,
5905                -- associated_child_frozen_flag,
5906                --  copied_from_other_doc_flag,
5907                record_type_code,
5908                tax_provider_id,
5909                historical_flag,
5910                -- cancel_flag,
5911                -- overridden_flag,
5912                manually_entered_flag,
5913                -- bug6773534 applied_to_application_id,
5914                -- bug6773534 applied_to_event_class_code,
5915                -- bug6773534 applied_to_entity_code,
5916                -- bug6773534 applied_to_trx_id,
5917                -- bug6773534 applied_to_trx_level_type,
5918                -- bug6773534 applied_to_line_id,
5919                tax_exemption_id,
5920                -- tax_rate_before_exemption,
5921                -- tax_rate_name_before_exemption,
5922                -- exempt_rate_modifier,
5923                exempt_certificate_number,
5924                -- exempt_reason,
5925                exempt_reason_code,
5926                -- tax_rate_before_exception,
5927                -- tax_rate_name_before_exception,
5928                tax_exception_id,
5929                -- exception_rate,
5930                tax_only_line_flag ;
5931 
5932   ELSE -- p_event_class_rec.retain_summ_tax_line_id_flag = 'N'
5933     --
5934     -- no need to retain the current summary_tax_line_id
5935     -- just generate a new id
5936     --
5937     SELECT  application_id,
5938             entity_code,
5939             event_class_code,
5940             trx_id,
5941             internal_organization_id,
5942             zx_lines_summary_s.NEXTVAL,
5943             count_detail_tax_line,
5944             count_detail_cancel_flag,
5945             trx_number,
5946             applied_from_application_id,
5947             applied_from_event_class_code,
5948             applied_from_entity_code,
5949             applied_from_trx_id,
5950             applied_from_trx_level_type,
5951             applied_from_line_id,
5952             adjusted_doc_application_id,
5953             adjusted_doc_entity_code,
5954             adjusted_doc_event_class_code,
5955             adjusted_doc_trx_id,
5956             adjusted_doc_trx_level_type,
5957             -- ROWNUM,                      -- summary_tax_line_number
5958             content_owner_id,
5959             tax_regime_code,
5960             tax,
5961             tax_status_code,
5962             tax_rate_id,
5963             tax_rate_code,
5964             tax_rate,
5965             tax_jurisdiction_code,
5966             ledger_id,
5967             legal_entity_id,
5968             establishment_id,
5969             currency_conversion_date,
5970             currency_conversion_type,
5971             currency_conversion_rate,
5972             taxable_basis_formula,
5973             tax_calculation_formula,
5974             tax_amt_included_flag,
5975             compounding_tax_flag,
5976             self_assessed_flag,
5977             reporting_only_flag,
5978             -- associated_child_frozen_flag,
5979             -- copied_from_other_doc_flag,
5980             record_type_code,
5981             tax_provider_id,
5982             historical_flag,
5983             tax_amt,
5984             tax_amt_tax_curr,
5985             tax_amt_funcl_curr,
5986             total_rec_tax_amt,
5987             total_rec_tax_amt_funcl_curr,
5988             total_rec_tax_amt_tax_curr,
5989             total_nrec_tax_amt,
5990             total_nrec_tax_amt_funcl_curr,
5991             total_nrec_tax_amt_tax_curr,
5992             -- cancel_flag,
5993             delete_flag,
5994             -- overridden_flag,
5995             manually_entered_flag,
5996             -- bug6773534 applied_to_application_id,
5997             -- bug6773534 applied_to_event_class_code,
5998             -- bug6773534 applied_to_entity_code,
5999             -- bug6773534 applied_to_trx_id,
6000             -- bug6773534 applied_to_trx_level_type,
6001             -- bug6773534 applied_to_line_id,
6002             tax_exemption_id,
6003             -- tax_rate_before_exemption,
6004             -- tax_rate_name_before_exemption,
6005             -- exempt_rate_modifier,
6006             exempt_certificate_number,
6007             -- exempt_reason,
6008             exempt_reason_code,
6009             -- tax_rate_before_exception,
6010             -- tax_rate_name_before_exception,
6011             tax_exception_id,
6012             -- exception_rate,
6013             mrc_tax_line_flag,
6014             tax_only_line_flag
6015      BULK COLLECT INTO
6016             pg_application_id_tbl,
6017             pg_entity_code_tbl,
6018             pg_event_class_code_tbl,
6019             pg_trx_id_tbl,
6020             pg_internal_org_id_tbl,
6021             pg_summary_tax_line_id_tbl,
6022             pg_count_detail_tax_line_tbl,
6023             pg_count_detail_cancel_tbl,
6024             pg_trx_number_tbl,
6025             pg_app_from_app_id_tbl,
6026             pg_app_from_evnt_cls_code_tbl,
6027             pg_app_from_entity_code_tbl,
6028             pg_app_from_trx_id_tbl,
6029             pg_app_from_trx_level_type_tbl,
6030             pg_app_from_line_id_tbl,
6031             pg_adj_doc_app_id_tbl,
6032             pg_adj_doc_entity_code_tbl,
6033             pg_adj_doc_evnt_cls_code_tbl,
6034             pg_adj_doc_trx_id_tbl,
6035             pg_adj_doc_trx_level_type_tbl,
6036             -- pg_summary_tax_line_num_tbl,
6037             pg_content_owner_id_tbl,
6038             pg_tax_regime_code_tbl,
6039             pg_tax_tbl,
6040             pg_tax_status_code_tbl,
6041             pg_tax_rate_id_tbl,
6042             pg_tax_rate_code_tbl,
6043             pg_tax_rate_tbl,
6044             pg_tax_jurisdiction_code_tbl,
6045             pg_ledger_id_tbl,
6046             pg_legal_entity_id_tbl,
6047             pg_establishment_id_tbl,
6048             pg_currency_convrsn_date_tbl,
6049             pg_currency_convrsn_type_tbl,
6050             pg_currency_convrsn_rate_tbl,
6051             pg_taxable_basis_formula_tbl,
6052             pg_tax_calculation_formula_tbl,
6053             pg_tax_amt_included_flag_tbl,
6054             pg_compounding_tax_flag_tbl,
6055             pg_self_assessed_flag_tbl,
6056             pg_reporting_only_flag_tbl,
6057             -- pg_assoctd_child_frz_flag_tbl,
6058             -- pg_cpd_from_other_doc_flag_tbl,
6059             pg_record_type_code_tbl,
6060             pg_tax_provider_id_tbl,
6061             pg_historical_flag_tbl,
6062             pg_tax_amt_tbl,
6063             pg_tax_amt_tax_curr_tbl,
6064             pg_tax_amt_funcl_curr_tbl,
6065             pg_ttl_rec_tax_amt_tbl,
6066             pg_ttl_rec_tx_amt_fnc_crr_tbl,
6067             pg_ttl_rec_tx_amt_tx_crr_tbl,
6068             pg_ttl_nrec_tax_amt_tbl,
6069             pg_ttl_nrec_tx_amt_fnc_crr_tbl,
6070             pg_ttl_nrec_tx_amt_tx_crr_tbl,
6071             -- pg_cancel_flag_tbl,
6072             pg_delete_flag_tbl,
6073             -- pg_overridden_flag_tbl,
6074             pg_manually_entered_flag_tbl,
6075             -- bug6773534 pg_app_to_app_id_tbl,
6076             -- bug6773534 pg_app_to_evnt_cls_code_tbl,
6077             -- bug6773534 pg_app_to_entity_code_tbl,
6078             -- bug6773534 pg_app_to_trx_id_tbl,
6079             -- bug6773534 pg_app_to_trx_level_type_tbl,
6080             -- bug6773534 pg_app_to_line_id_tbl,
6081             pg_tax_xmptn_id_tbl,
6082             -- pg_tax_rate_bf_xmptn_tbl,
6083             -- pg_tax_rate_name_bf_xmptn_tbl,
6084             -- pg_xmpt_rate_modifier_tbl,
6085             pg_xmpt_certificate_number_tbl,
6086             -- pg_xmpt_reason_tbl,
6087             pg_xmpt_reason_code_tbl,
6088             -- pg_tax_rate_bf_xeptn_tbl,
6089             -- pg_tax_rate_name_bf_xeptn_tbl,
6090             pg_tax_xeptn_id_tbl,
6091             -- pg_xeptn_rate_tbl,
6092             pg_mrc_tax_line_flag_tbl,
6093             pg_tax_only_line_flag_tbl
6094       FROM ( SELECT application_id,
6095                     event_class_code,
6096                     entity_code,
6097                     trx_id,
6098                     internal_organization_id,
6099                     COUNT(*)  count_detail_tax_line,
6100                     SUM(DECODE(cancel_flag, 'Y', 1, 0)) count_detail_cancel_flag,
6101                     trx_number,
6102                     applied_from_application_id,
6103                     applied_from_event_class_code,
6104                     applied_from_entity_code,
6105                     applied_from_trx_id,
6106                     applied_from_trx_level_type,
6107                     applied_from_line_id,
6108                     adjusted_doc_application_id,
6109                     adjusted_doc_entity_code,
6110                     adjusted_doc_event_class_code,
6111                     adjusted_doc_trx_id,
6112                     adjusted_doc_trx_level_type,
6113                     content_owner_id,
6114                     tax_regime_code,
6115                     tax,
6116                     tax_status_code,
6117                     tax_rate_id,
6118                     tax_rate_code,
6119                     tax_rate,
6120                     tax_jurisdiction_code,
6121                     ledger_id,
6122                     legal_entity_id,
6123                     establishment_id,
6124                     TRUNC(currency_conversion_date) currency_conversion_date,
6125                     currency_conversion_type,
6126                     currency_conversion_rate,
6127                     taxable_basis_formula,
6128                     tax_calculation_formula,
6129                     tax_amt_included_flag,
6130                     compounding_tax_flag,
6131                     self_assessed_flag,
6132                     reporting_only_flag,
6133                     -- associated_child_frozen_flag,
6134                     -- copied_from_other_doc_flag,
6135                     record_type_code,
6136                     tax_provider_id,
6137                     historical_flag,
6138                     SUM(tax_amt) tax_amt,
6139                     SUM(tax_amt_tax_curr) tax_amt_tax_curr,
6140                     SUM(tax_amt_funcl_curr) tax_amt_funcl_curr,
6141                     SUM(orig_tax_amt) orig_tax_amt,
6142                     SUM(rec_tax_amt) total_rec_tax_amt,
6143                     SUM(rec_tax_amt_funcl_curr) total_rec_tax_amt_funcl_curr,
6144                     SUM(rec_tax_amt_tax_curr) total_rec_tax_amt_tax_curr,
6145                     SUM(nrec_tax_amt) total_nrec_tax_amt,
6146                     SUM(nrec_tax_amt_funcl_curr) total_nrec_tax_amt_funcl_curr,
6147                     SUM(nrec_tax_amt_tax_curr) total_nrec_tax_amt_tax_curr,
6148                     -- cancel_flag,
6149                     delete_flag,
6150                     -- overridden_flag,
6151                     manually_entered_flag,
6152                     -- bug6773534 applied_to_application_id,
6153                     -- bug6773534 applied_to_event_class_code,
6154                     -- bug6773534 applied_to_entity_code,
6155                     -- bug6773534 applied_to_trx_id,
6156                     -- bug6773534 applied_to_trx_level_type,
6157                     -- bug6773534 applied_to_line_id,
6158                     tax_exemption_id,
6159                     -- tax_rate_before_exemption,
6160                     -- tax_rate_name_before_exemption,
6161                     -- exempt_rate_modifier,
6162                     exempt_certificate_number,
6163                     -- exempt_reason,
6164                     exempt_reason_code,
6165                     -- tax_rate_before_exception,
6166                     -- tax_rate_name_before_exception,
6167                     tax_exception_id,
6168                     -- exception_rate,
6169                     mrc_tax_line_flag,
6170                     tax_only_line_flag
6171                FROM ZX_LINES tax
6172                -- bug fix 5417887
6173                -- WHERE application_id  = p_event_class_rec.application_id
6174                -- AND entity_code       = p_event_class_rec.entity_code
6175                -- AND event_class_code  = p_event_class_rec.event_class_code
6176                -- AND trx_id            = p_event_class_rec.trx_id
6177               WHERE EXISTS (
6178                       SELECT 1
6179                         FROM zx_lines_det_factors line
6180                        WHERE tax.application_id = line.application_id
6181                          AND tax.event_class_code = line.event_class_code
6182                          AND tax.entity_code = line.entity_code
6183                          AND tax.trx_id = line.trx_id
6184                          AND line.event_id = p_event_class_rec.event_id)
6185               GROUP BY  application_id,
6186                         event_class_code,
6187                         entity_code,
6188                         trx_id,
6189                         internal_organization_id,
6190                         trx_number,
6191                         applied_from_application_id,
6192                         applied_from_event_class_code,
6193                         applied_from_entity_code,
6194                         applied_from_trx_id,
6195                         applied_from_trx_level_type,
6196                         applied_from_line_id,
6197                         adjusted_doc_application_id,
6198                         adjusted_doc_entity_code,
6199                         adjusted_doc_event_class_code,
6200                         adjusted_doc_trx_id,
6201                         adjusted_doc_trx_level_type,
6202                         content_owner_id,
6203                         tax_regime_code,
6204                         tax,
6205                         tax_status_code,
6206                         tax_rate_id,
6207                         tax_rate_code,
6208                         tax_rate,
6209                         tax_jurisdiction_code,
6210                         ledger_id,
6211                         legal_entity_id,
6212                         establishment_id,
6213                         TRUNC(currency_conversion_date),
6214                         currency_conversion_type,
6215                         currency_conversion_rate,
6216                         taxable_basis_formula,
6217                         tax_calculation_formula,
6218                         tax_amt_included_flag,
6219                         compounding_tax_flag,
6220                         self_assessed_flag,
6221                         reporting_only_flag,
6222                         -- associated_child_frozen_flag,
6223                         -- copied_from_other_doc_flag,
6224                         record_type_code,
6225                         tax_provider_id,
6226                         historical_flag,
6227                         -- cancel_flag,
6228                         delete_flag,
6229                         -- overridden_flag,
6230                         manually_entered_flag,
6231                         -- bug6773534 applied_to_application_id,
6232                         -- bug6773534 applied_to_event_class_code,
6233                         -- bug6773534 applied_to_entity_code,
6234                         -- bug6773534 applied_to_trx_id,
6235                         -- bug6773534 applied_to_trx_level_type,
6236                         -- bug6773534 applied_to_line_id,
6237                         tax_exemption_id,
6238                         -- tax_rate_before_exemption,
6239                         -- tax_rate_name_before_exemption,
6240                         -- exempt_rate_modifier,
6241                         exempt_certificate_number,
6242                         -- exempt_reason,
6243                         exempt_reason_code,
6244                         -- tax_rate_before_exception,
6245                         -- tax_rate_name_before_exception,
6246                         tax_exception_id,
6247                         -- exception_rate,
6248                         mrc_tax_line_flag,
6249                         tax_only_line_flag
6250                ORDER BY application_id,
6251                         event_class_code,
6252                         entity_code,
6253                         trx_id,
6254                         trx_number,
6255                         mrc_tax_line_flag,
6256                         ledger_id,
6257                         applied_from_application_id,
6258                         applied_from_event_class_code,
6259                         applied_from_entity_code,
6260                         applied_from_trx_id,
6261                         applied_from_trx_level_type,
6262                         applied_from_line_id,
6263                         adjusted_doc_application_id,
6264                         adjusted_doc_entity_code,
6265                         adjusted_doc_event_class_code,
6266                         adjusted_doc_trx_id,
6267                         adjusted_doc_trx_level_type,
6268                         content_owner_id,
6269                         tax_regime_code,
6270                         tax,
6271                         tax_status_code,
6272                         tax_rate_id,
6273                         tax_rate_code,
6274                         tax_rate,
6275                         tax_jurisdiction_code,
6276                         legal_entity_id,
6277                         establishment_id,
6278                         -- TRUNC(currency_conversion_date),
6279                         -- currency_conversion_type,
6280                         -- currency_conversion_rate,
6281                         taxable_basis_formula,
6282                         tax_calculation_formula,
6283                         tax_amt_included_flag,
6284                         compounding_tax_flag,
6285                         self_assessed_flag,
6286                         reporting_only_flag,
6287                         -- associated_child_frozen_flag,
6288                         -- copied_from_other_doc_flag,
6289                         record_type_code,
6290                         tax_provider_id,
6291                         historical_flag,
6292                         -- cancel_flag,
6293                         delete_flag,
6294                         -- overridden_flag,
6295                         manually_entered_flag,
6296                         -- bug6773534 applied_to_application_id,
6297                         -- bug6773534 applied_to_event_class_code,
6298                         -- bug6773534 applied_to_entity_code,
6299                         -- bug6773534 applied_to_trx_id,
6300                         -- bug6773534 applied_to_trx_level_type,
6301                         -- bug6773534 applied_to_line_id,
6302                         tax_exemption_id,
6303                         -- tax_rate_before_exemption,
6304                         -- tax_rate_name_before_exemption,
6305                         -- exempt_rate_modifier,
6306                         exempt_certificate_number,
6307                         -- exempt_reason,
6308                         exempt_reason_code,
6309                         -- tax_rate_before_exception,
6310                         -- tax_rate_name_before_exception,
6311                         tax_exception_id,
6312                         -- exception_rate,
6313                         tax_only_line_flag );
6314 
6315     -- get the tax line id IN the same order of the summary tax line as IN the first query.
6316     SELECT tax_line_id  BULK COLLECT INTO  pg_tax_line_id_tbl
6317       FROM zx_lines tax
6318       -- bug fix 5417887
6319       -- WHERE application_id  = p_event_class_rec.application_id
6320       -- AND entity_code       = p_event_class_rec.entity_code
6321       -- AND event_class_code  = p_event_class_rec.event_class_code
6322       -- AND trx_id            = p_event_class_rec.trx_id
6323       WHERE EXISTS (
6324               SELECT 1
6325                 FROM zx_lines_det_factors line
6326                WHERE tax.application_id = line.application_id
6327                  AND tax.event_class_code = line.event_class_code
6328                  AND tax.entity_code = line.entity_code
6329                  AND tax.trx_id = line.trx_id
6330                  AND line.event_id = p_event_class_rec.event_id)
6331       ORDER BY application_id,
6332                event_class_code,
6333                entity_code,
6334                trx_id,
6335                trx_number,
6336                mrc_tax_line_flag,
6337                ledger_id,
6338                applied_from_application_id,
6339                applied_from_event_class_code,
6340                applied_from_entity_code,
6341                applied_from_trx_id,
6342                applied_from_trx_level_type,
6343                applied_from_line_id,
6344                adjusted_doc_application_id,
6345                adjusted_doc_entity_code,
6346                adjusted_doc_event_class_code,
6347                adjusted_doc_trx_id,
6348                adjusted_doc_trx_level_type,
6349                content_owner_id,
6350                tax_regime_code,
6351                tax,
6352                tax_status_code,
6353                tax_rate_id,
6354                tax_rate_code,
6355                tax_rate,
6356                tax_jurisdiction_code,
6357                legal_entity_id,
6358                establishment_id,
6359                -- TRUNC(currency_conversion_date),
6360                -- currency_conversion_type,
6361                -- currency_conversion_rate,
6362                taxable_basis_formula,
6363                tax_calculation_formula,
6364                tax_amt_included_flag,
6365                compounding_tax_flag,
6366                self_assessed_flag,
6367                reporting_only_flag,
6368                -- associated_child_frozen_flag,
6369                -- copied_from_other_doc_flag,
6370                record_type_code,
6371                tax_provider_id,
6372                historical_flag,
6373                -- cancel_flag,
6374                delete_flag,
6375                -- overridden_flag,
6376                manually_entered_flag,
6377                -- bug6773534 applied_to_application_id,
6378                -- bug6773534 applied_to_event_class_code,
6379                -- bug6773534 applied_to_entity_code,
6380                -- bug6773534 applied_to_trx_id,
6381                -- bug6773534 applied_to_trx_level_type,
6382                -- bug6773534 applied_to_line_id,
6383                tax_exemption_id,
6384                -- tax_rate_before_exemption,
6385                -- tax_rate_name_before_exemption,
6386                -- exempt_rate_modifier,
6387                exempt_certificate_number,
6388                -- exempt_reason,
6389                exempt_reason_code,
6390                -- tax_rate_before_exception,
6391                -- tax_rate_name_before_exception,
6392                tax_exception_id,
6393                -- exception_rate,
6394                tax_only_line_flag ;
6395 
6396 
6397   END IF; -- p_event_class_rec.retain_summ_tax_line_id_flag = 'Y'
6398 
6399   l_index := 1;
6400   l_curr_ledger_id := -1;
6401   l_summary_tax_line_number := -1;
6402 
6403   l_curr_trx_id := -1;
6404   l_curr_entity_code := '@#$%^&*';
6405   l_curr_event_class_code := '@#$%^&*';
6406 
6407 
6408   FOR i IN 1.. pg_summary_tax_line_id_tbl.COUNT LOOP
6409 
6410     -- the following code is not needed as we are not creating MRC tax lines in eBTax repository
6411     -- due to the order by clause, it guranteed that the none_mrc line will
6412     -- come first, then followed by the mrc tax lines.
6413     -- IF l_curr_ledger_id = -1 OR l_curr_ledger_id <> pg_ledger_id_tbl(i) THEN
6414     --   l_curr_ledger_id := pg_ledger_id_tbl(i);
6415     -- END IF;
6416 
6417     -- populate the summary_tax_line_number
6418     -- Reset the summary tax line number whenever the entity_code, Event Class Code
6419     -- or Trx id changes
6420 
6421     IF (l_curr_entity_code = '@#$%^&*' and  l_curr_event_class_code = '@#$%^&*' and l_curr_trx_id = -1)
6422       or l_curr_event_class_code <> pg_event_class_code_tbl(i)
6423       or l_curr_trx_id <> pg_trx_id_tbl(i)
6424       or l_curr_entity_code <> pg_entity_code_tbl(i)
6425     THEN
6426       l_curr_event_class_code := pg_event_class_code_tbl(i);
6427       l_curr_trx_id := pg_trx_id_tbl(i);
6428       l_curr_entity_code := pg_entity_code_tbl(i);
6429 
6430       l_summary_tax_line_number := 1;
6431     ELSE
6432       l_summary_tax_line_number := l_summary_tax_line_number + 1;
6433     END IF;
6434 
6435     pg_summary_tax_line_num_tbl(i) := l_summary_tax_line_number;
6436 
6437     -- populate the summary_tax_line_id to the corresponding detail_tax_line_id
6438     FOR j IN 1.. pg_count_detail_tax_line_tbl(i) LOOP
6439       pg_detail_tax_smry_line_id_tbl(l_index) := pg_summary_tax_line_id_tbl(i);
6440       l_index := l_index+1;
6441     END LOOP;
6442 
6443     IF pg_count_detail_cancel_tbl(i) = pg_count_detail_tax_line_tbl(i) THEN
6444       pg_cancel_flag_tbl(i) := 'Y';
6445     ELSE
6446       pg_cancel_flag_tbl(i) := NULL;
6447     END IF;
6448 
6449   END LOOP;
6450 
6451   -- update the summary_tax_line_id column in the detail tax line table
6452   FORALL i IN 1.. pg_tax_line_id_tbl.COUNT
6453     UPDATE zx_lines
6454        SET summary_tax_line_id = pg_detail_tax_smry_line_id_tbl(i)
6455      WHERE tax_line_id = pg_tax_line_id_tbl(i);
6456 
6457   -- insert the summary tax lines in the zx_lines_summary table.
6458   FORALL i IN 1..pg_summary_tax_line_id_tbl.COUNT SAVE EXCEPTIONS
6459     INSERT INTO zx_lines_summary(
6460                   summary_tax_line_id,
6461                   object_version_number,
6462                   created_by,
6463                   creation_date,
6464                   last_updated_by,
6465                   last_update_date,
6466                   last_update_login,
6467                   internal_organization_id,
6468                   application_id,
6469                   entity_code,
6470                   event_class_code,
6471                   -- tax_event_class_code,
6472                   trx_id,
6473                   trx_number,
6474                   applied_from_application_id,
6475                   applied_from_event_class_code,
6476                   applied_from_entity_code,
6477                   -- applied_from_trx_number,
6478                   applied_from_trx_id,
6479                   applied_from_trx_level_type,
6480                   applied_from_line_id,
6481                   adjusted_doc_application_id,
6482                   adjusted_doc_entity_code,
6483                   adjusted_doc_event_class_code,
6484                   adjusted_doc_trx_id,
6485                   adjusted_doc_trx_level_type,
6486                   -- adjusted_doc_number,
6487                   summary_tax_line_number,
6488                   content_owner_id,
6489                   -- tax_regime_id,
6490                   tax_regime_code,
6491                   -- tax_id,
6492                   tax,
6493                   -- tax_status_id,
6494                   tax_status_code,
6495                   tax_rate_id,
6496                   tax_rate_code,
6497                   tax_rate,
6498                   -- tax_jurisdiction_id,
6499                   tax_jurisdiction_code,
6500                   ledger_id,
6501                   legal_entity_id,
6502                   establishment_id,
6503                   currency_conversion_date,
6504                   currency_conversion_type,
6505                   currency_conversion_rate,
6506                   taxable_basis_formula,
6507                   tax_calculation_formula,
6508                   tax_amt_included_flag,
6509                   compounding_tax_flag,
6510                   self_assessed_flag,
6511                   reporting_only_flag,
6512                   -- associated_child_frozen_flag,
6513                   -- copied_from_other_doc_flag,
6514                   record_type_code,
6515                   tax_provider_id,
6516                   historical_flag,
6517                   tax_amt,
6518                   tax_amt_tax_curr,
6519                   tax_amt_funcl_curr,
6520                   -- orig_tax_amt,
6521                   total_rec_tax_amt,
6522                   total_rec_tax_amt_funcl_curr,
6523                   total_rec_tax_amt_tax_curr,
6524                   total_nrec_tax_amt,
6525                   total_nrec_tax_amt_funcl_curr,
6526                   total_nrec_tax_amt_tax_curr,
6527                   cancel_flag,
6528                   -- purge_flag,
6529                   delete_flag,
6530                   -- overridden_flag,
6531                   manually_entered_flag,
6532                   -- bug6773534 applied_to_application_id,
6533                   -- bug6773534 applied_to_event_class_code,
6534                   -- bug6773534 applied_to_entity_code,
6535                   -- bug6773534 applied_to_trx_id,
6536                   -- bug6773534 applied_to_trx_level_type,
6537                   -- bug6773534 applied_to_line_id,
6538                   tax_exemption_id,
6539                   -- tax_rate_before_exemption,
6540                   -- tax_rate_name_before_exemption,
6541                   -- exempt_rate_modifier,
6542                   exempt_certificate_number,
6543                   -- exempt_reason,
6544                   exempt_reason_code,
6545                   -- tax_rate_before_exception,
6546                   -- tax_rate_name_before_exception,
6547                   tax_exception_id,
6548                   -- exception_rate,
6549                   mrc_tax_line_flag,
6550                   tax_only_line_flag )
6551          VALUES (
6552                   pg_summary_tax_line_id_tbl(i),
6553                   1,        -- object_version_number
6554                   FND_GLOBAL.user_id,
6555                   SYSDATE,
6556                   FND_GLOBAL.user_id,
6557                   SYSDATE,
6558                   FND_GLOBAL.user_id,
6559                   pg_internal_org_id_tbl(i),
6560                   pg_application_id_tbl(i),
6561                   pg_entity_code_tbl(i),
6562                   pg_event_class_code_tbl(i),
6563                   -- tax_event_class_code,
6564                   pg_trx_id_tbl(i),
6565                   pg_trx_number_tbl(i),
6566                   pg_app_from_app_id_tbl(i),
6567                   pg_app_from_evnt_cls_code_tbl(i),
6568                   pg_app_from_entity_code_tbl(i),
6569                   pg_app_from_trx_id_tbl(i),
6570                   pg_app_from_trx_level_type_tbl(i),
6571                   pg_app_from_line_id_tbl(i),
6572                   pg_adj_doc_app_id_tbl(i),
6573                   pg_adj_doc_entity_code_tbl(i),
6574                   pg_adj_doc_evnt_cls_code_tbl(i),
6575                   pg_adj_doc_trx_id_tbl(i),
6576                   pg_adj_doc_trx_level_type_tbl(i),
6577                   pg_summary_tax_line_num_tbl(i),
6578                   pg_content_owner_id_tbl(i),
6579                   pg_tax_regime_code_tbl(i),
6580                   pg_tax_tbl(i),
6581                   pg_tax_status_code_tbl(i),
6582                   pg_tax_rate_id_tbl(i),
6583                   pg_tax_rate_code_tbl(i),
6584                   pg_tax_rate_tbl(i),
6585                   pg_tax_jurisdiction_code_tbl(i),
6586                   pg_ledger_id_tbl(i),
6587                   pg_legal_entity_id_tbl(i),
6588                   pg_establishment_id_tbl(i),
6589                   pg_currency_convrsn_date_tbl(i),
6590                   pg_currency_convrsn_type_tbl(i),
6591                   pg_currency_convrsn_rate_tbl(i),
6592                   pg_taxable_basis_formula_tbl(i),
6593                   pg_tax_calculation_formula_tbl(i),
6594                   pg_tax_amt_included_flag_tbl(i),
6595                   pg_compounding_tax_flag_tbl(i),
6596                   pg_self_assessed_flag_tbl(i),
6597                   pg_reporting_only_flag_tbl(i),
6598                   -- pg_assoctd_child_frz_flag_tbl(i),
6599                   -- pg_cpd_from_other_doc_flag_tbl(i),
6600                   pg_record_type_code_tbl(i),
6601                   pg_tax_provider_id_tbl(i),
6602                   pg_historical_flag_tbl(i),
6603                   pg_tax_amt_tbl(i),
6604                   pg_tax_amt_tax_curr_tbl(i),
6605                   pg_tax_amt_funcl_curr_tbl(i),
6606                   pg_ttl_rec_tax_amt_tbl(i),
6607                   pg_ttl_rec_tx_amt_fnc_crr_tbl(i),
6608                   pg_ttl_rec_tx_amt_tx_crr_tbl(i),
6609                   pg_ttl_nrec_tax_amt_tbl(i),
6610                   pg_ttl_nrec_tx_amt_fnc_crr_tbl(i),
6611                   pg_ttl_nrec_tx_amt_tx_crr_tbl(i),
6612                   pg_cancel_flag_tbl(i),
6613                   pg_delete_flag_tbl(i),
6614                   -- pg_overridden_flag_tbl(i),
6615                   pg_manually_entered_flag_tbl(i),
6616                   -- bug6773534 pg_app_to_app_id_tbl(i),
6617                   -- bug6773534 pg_app_to_evnt_cls_code_tbl(i),
6618                   -- bug6773534 pg_app_to_entity_code_tbl(i),
6619                   -- bug6773534 pg_app_to_trx_id_tbl(i),
6620                   -- bug6773534 pg_app_to_trx_level_type_tbl(i),
6621                   -- bug6773534 pg_app_to_line_id_tbl(i),
6622                   pg_tax_xmptn_id_tbl(i),
6623                   -- pg_tax_rate_bf_xmptn_tbl(i),
6624                   -- pg_tax_rate_name_bf_xmptn_tbl(i),
6625                   -- pg_xmpt_rate_modifier_tbl(i),
6626                   pg_xmpt_certificate_number_tbl(i),
6627                   -- pg_xmpt_reason_tbl(i),
6628                   pg_xmpt_reason_code_tbl(i),
6629                   -- pg_tax_rate_bf_xeptn_tbl(i),
6630                   -- pg_tax_rate_name_bf_xeptn_tbl(i),
6631                   pg_tax_xeptn_id_tbl(i),
6632                   -- pg_xeptn_rate_tbl(i),
6633                   pg_mrc_tax_line_flag_tbl(i),
6634                   pg_tax_only_line_flag_tbl(i)
6635                 );
6636 
6637   IF (g_level_statement >= g_current_runtime_level ) THEN
6638 
6639         FND_LOG.STRING(g_level_statement,
6640                'ZX.PLSQL.ZX_TDS_TAX_LINES_DETM_PKG.create_summary_lines_upd_evnt',
6641                'Number of Rows Inserted in zx_lines_summary for update = ' || to_char(SQL%ROWCOUNT));
6642   END IF;
6643 
6644   IF (g_level_procedure >= g_current_runtime_level ) THEN
6645 
6646     FND_LOG.STRING(g_level_procedure,
6647            'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt.END',
6648            'ZX_TRL_MANAGE_TAX_PKG: create_summary_lines_upd_evnt (-)'||x_return_status);
6649   END IF;
6650 
6651 EXCEPTION
6652   -- Following exception added for Error Handling Fix Bug#9765007
6653   WHEN summary_error THEN
6654     -- get error count
6655     l_err_count := SQL%BULK_EXCEPTIONS.COUNT;
6656 
6657     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6658     IF (g_level_unexpected >= g_current_runtime_level ) THEN
6659       FND_LOG.STRING(g_level_unexpected,
6660              'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt',
6661              TO_CHAR(l_err_count)||' Error(s) occured while creating Summary Tax Line(s).');
6662     END IF;
6663 
6664     -- Add error message to error_tbl along with the invoice_id
6665     l_err_trx_id := -99;
6666     FOR i IN 1 .. l_err_count LOOP
6667       l_err_idx  := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
6668       l_err_code := SQL%BULK_EXCEPTIONS(i).ERROR_CODE;
6669       IF l_err_trx_id <> pg_trx_id_tbl(l_err_idx) THEN
6670         l_context_info_rec.application_id          := pg_application_id_tbl(l_err_idx);
6671         l_context_info_rec.entity_code             := pg_entity_code_tbl(l_err_idx);
6672         l_context_info_rec.event_class_code        := pg_event_class_code_tbl(l_err_idx);
6673         l_context_info_rec.trx_id                  := pg_trx_id_tbl(l_err_idx);
6674         l_context_info_rec.trx_line_id             := TO_NUMBER(NULL);
6675         l_context_info_rec.trx_level_type          := TO_CHAR(NULL);
6676         l_context_info_rec.summary_tax_line_number := TO_NUMBER(NULL);
6677         l_context_info_rec.tax_line_id             := TO_NUMBER(NULL);
6678         l_context_info_rec.trx_line_dist_id        := TO_NUMBER(NULL);
6679 
6680         l_ora_error := 'ORA-'||SUBSTR(LPAD(TO_CHAR(l_err_code),5,'0'),1,5);
6681 
6682         FND_MESSAGE.SET_NAME('ZX','ZX_SUMMARY_CONSTRAINT_VIOLATED');
6683         FND_MESSAGE.SET_TOKEN('ERROR_CODE',l_ora_error);
6684         ZX_API_PUB.Add_Msg(l_context_info_rec);
6685 
6686         l_err_trx_id := pg_trx_id_tbl(l_err_idx);
6687 
6688         print_summary_columns(p_application_id   => pg_application_id_tbl(l_err_idx),
6689                               p_entity_code      => pg_entity_code_tbl(l_err_idx),
6690                               p_event_class_code => pg_event_class_code_tbl(l_err_idx),
6691                               p_trx_id           => pg_trx_id_tbl(l_err_idx));
6692       END IF;
6693     END LOOP;
6694 
6695   WHEN OTHERS THEN
6696     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6697     l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6698 
6699     IF (g_level_unexpected >= g_current_runtime_level ) THEN
6700       FND_LOG.STRING(g_level_unexpected,
6701              'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_upd_evnt',
6702               l_error_buffer);
6703     END IF;
6704 
6705 END create_summary_lines_upd_evnt;
6706 
6707 ------------------------------------------------------------------------------
6708 --  PUBLIC PROCEDURE
6709 --  create_summary_lines_del_evnt
6710 --
6711 --  DESCRIPTION
6712 --  Public procedure to recreate summary tax lines from zx_lines after detleting
6713 --  the detail tax lines based on the passed-in transaction line information
6714 --
6715 --  NOTE
6716 --  1. At present, we always regard the retain_summ_tax_line_id_flag as 'Y' due
6717 --  to coding consideration. If later function requirement identified for not
6718 --  retain the summary tax line id, then need to update the new summary
6719 --  tax line id back to zx_lines.
6720 --
6721 --  2. This API only used for deleting trx lines event, so that are cases that
6722 --  some summary tax lines for this trx is no need to recreate. The current
6723 --  approach is to delete all th original summary tax lines and recreate.
6724 --  Assumption is that before this API is called, all the summary tax lines
6725 --  for this trx are deleted.
6726 ------------------------------------------------------------------------------
6727 -- Bug 6456915 - associated_child_frozen_flag has been removed from grouping columns for summary tax lines
6728 
6729 PROCEDURE create_summary_lines_del_evnt(
6730   p_application_id                IN          NUMBER,
6731   p_entity_code                   IN          VARCHAR2,
6732   p_event_class_code              IN          VARCHAR2,
6733   p_trx_id                        IN          NUMBER,
6734   p_trx_line_id                   IN          NUMBER,
6735   p_trx_level_type                IN          VARCHAR2,
6736   p_retain_summ_tax_line_id_flag  IN          VARCHAR2,
6737   x_return_status                 OUT NOCOPY  VARCHAR2
6738 ) IS
6739 
6740   l_error_buffer      VARCHAR2(100);
6741   l_row_count    NUMBER;
6742   l_curr_ledger_id          NUMBER;
6743   l_summary_tax_line_number NUMBER;
6744 
6745 BEGIN
6746   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6747 
6748   IF (g_level_procedure >= g_current_runtime_level ) THEN
6749     FND_LOG.STRING(g_level_procedure,
6750       'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_del_evnt.BEGIN',
6751       'ZX_TRL_MANAGE_TAX_PKG: create_summary_lines_del_evnt (+)');
6752   END IF;
6753 
6754   --  Initialize API return status to success
6755   --
6756   x_return_status := FND_API.G_RET_STS_SUCCESS;
6757 
6758   -- At present, we always regard the retain_summ_tax_line_id_flag as 'Y' due
6759   -- to coding consideration. If later function requirement identified for not
6760   -- retain the summary tax line id, then need to update the new summary
6761   -- tax line id back to zx_lines.
6762 
6763   SELECT NVL(summary_tax_line_id,
6764              zx_lines_summary_s.NEXTVAL )  summary_tax_line_id,
6765          count_detail_tax_line,
6766          count_detail_cancel_flag,
6767          trx_number,
6768          applied_from_application_id,
6769          applied_from_event_class_code,
6770          applied_from_entity_code,
6771          applied_from_trx_id,
6772          applied_from_trx_level_type,
6773          applied_from_line_id,
6774          adjusted_doc_application_id,
6775          adjusted_doc_entity_code,
6776          adjusted_doc_event_class_code,
6777          adjusted_doc_trx_id,
6778          adjusted_doc_trx_level_type,
6779          content_owner_id,
6780          tax_regime_code,
6781          tax,
6782          tax_status_code,
6783          tax_rate_id,
6784          tax_rate_code,
6785          tax_rate,
6786          tax_jurisdiction_code,
6787          ledger_id,
6788          legal_entity_id,
6789          establishment_id,
6790          currency_conversion_date,
6791          currency_conversion_type,
6792          currency_conversion_rate,
6793          taxable_basis_formula,
6794          tax_calculation_formula,
6795          tax_amt_included_flag,
6796          compounding_tax_flag,
6797          self_assessed_flag,
6798          reporting_only_flag,
6799          record_type_code,
6800          tax_provider_id,
6801          historical_flag,
6802          tax_amt,
6803          tax_amt_tax_curr,
6804          tax_amt_funcl_curr,
6805          total_rec_tax_amt,
6806          total_rec_tax_amt_funcl_curr,
6807          total_rec_tax_amt_tax_curr,
6808          total_nrec_tax_amt,
6809          total_nrec_tax_amt_funcl_curr,
6810          total_nrec_tax_amt_tax_curr,
6811          'N'  delete_flag,
6812          manually_entered_flag,
6813          tax_exemption_id,
6814          exempt_certificate_number,
6815          exempt_reason_code,
6816          tax_exception_id,
6817          mrc_tax_line_flag,
6818          tax_only_line_flag
6819     BULK COLLECT INTO
6820          pg_summary_tax_line_id_tbl,
6821          pg_count_detail_tax_line_tbl,
6822          pg_count_detail_cancel_tbl,
6823          pg_trx_number_tbl,
6824          pg_app_from_app_id_tbl,
6825          pg_app_from_evnt_cls_code_tbl,
6826          pg_app_from_entity_code_tbl,
6827          pg_app_from_trx_id_tbl,
6828          pg_app_from_trx_level_type_tbl,
6829          pg_app_from_line_id_tbl,
6830          pg_adj_doc_app_id_tbl,
6831          pg_adj_doc_entity_code_tbl,
6832          pg_adj_doc_evnt_cls_code_tbl,
6833          pg_adj_doc_trx_id_tbl,
6834          pg_adj_doc_trx_level_type_tbl,
6835          pg_content_owner_id_tbl,
6836          pg_tax_regime_code_tbl,
6837          pg_tax_tbl,
6838          pg_tax_status_code_tbl,
6839          pg_tax_rate_id_tbl,
6840          pg_tax_rate_code_tbl,
6841          pg_tax_rate_tbl,
6842          pg_tax_jurisdiction_code_tbl,
6843          pg_ledger_id_tbl,
6844          pg_legal_entity_id_tbl,
6845          pg_establishment_id_tbl,
6846          pg_currency_convrsn_date_tbl,
6847          pg_currency_convrsn_type_tbl,
6848          pg_currency_convrsn_rate_tbl,
6849          pg_taxable_basis_formula_tbl,
6850          pg_tax_calculation_formula_tbl,
6851          pg_tax_amt_included_flag_tbl,
6852          pg_compounding_tax_flag_tbl,
6853          pg_self_assessed_flag_tbl,
6854          pg_reporting_only_flag_tbl,
6855          pg_record_type_code_tbl,
6856          pg_tax_provider_id_tbl,
6857          pg_historical_flag_tbl,
6858          pg_tax_amt_tbl,
6859          pg_tax_amt_tax_curr_tbl,
6860          pg_tax_amt_funcl_curr_tbl,
6861          pg_ttl_rec_tax_amt_tbl,
6862          pg_ttl_rec_tx_amt_fnc_crr_tbl,
6863          pg_ttl_rec_tx_amt_tx_crr_tbl,
6864          pg_ttl_nrec_tax_amt_tbl,
6865          pg_ttl_nrec_tx_amt_fnc_crr_tbl,
6866          pg_ttl_nrec_tx_amt_tx_crr_tbl,
6867          pg_delete_flag_tbl,
6868          pg_manually_entered_flag_tbl,
6869          pg_tax_xmptn_id_tbl,
6870          pg_xmpt_certificate_number_tbl,
6871          pg_xmpt_reason_code_tbl,
6872          pg_tax_xeptn_id_tbl,
6873          pg_mrc_tax_line_flag_tbl,
6874          pg_tax_only_line_flag_tbl
6875       FROM ( SELECT summary_tax_line_id,
6876                     COUNT(*) count_detail_tax_line,
6877                     SUM(DECODE(cancel_flag, 'Y', 1, 0)) count_detail_cancel_flag,
6878                     trx_number,
6879                     applied_from_application_id,
6880                     applied_from_event_class_code,
6881                     applied_from_entity_code,
6882                     applied_from_trx_id,
6883                     applied_from_trx_level_type,
6884                     applied_from_line_id,
6885                     adjusted_doc_application_id,
6886                     adjusted_doc_entity_code,
6887                     adjusted_doc_event_class_code,
6888                     adjusted_doc_trx_id,
6889                     adjusted_doc_trx_level_type,
6890                     content_owner_id,
6891                     tax_regime_code,
6892                     tax,
6893                     tax_status_code,
6894                     tax_rate_id,
6895                     tax_rate_code,
6896                     tax_rate,
6897                     tax_jurisdiction_code,
6898                     ledger_id,
6899                     legal_entity_id,
6900                     establishment_id,
6901                     TRUNC(currency_conversion_date) currency_conversion_date,
6902                     currency_conversion_type,
6903                     currency_conversion_rate,
6904                     taxable_basis_formula,
6905                     tax_calculation_formula,
6906                     tax_amt_included_flag,
6907                     compounding_tax_flag,
6908                     self_assessed_flag,
6909                     reporting_only_flag,
6910                     record_type_code,
6911                     tax_provider_id,
6912                     historical_flag,
6913                     SUM(tax_amt) tax_amt,
6914                     SUM(tax_amt_tax_curr) tax_amt_tax_curr,
6915                     SUM(tax_amt_funcl_curr) tax_amt_funcl_curr,
6916                     SUM(orig_tax_amt) orig_tax_amt,
6917                     SUM(rec_tax_amt) total_rec_tax_amt,
6918                     SUM(rec_tax_amt_funcl_curr) total_rec_tax_amt_funcl_curr,
6919                     SUM(rec_tax_amt_tax_curr) total_rec_tax_amt_tax_curr,
6920                     SUM(nrec_tax_amt) total_nrec_tax_amt,
6921                     SUM(nrec_tax_amt_funcl_curr) total_nrec_tax_amt_funcl_curr,
6922                     SUM(nrec_tax_amt_tax_curr) total_nrec_tax_amt_tax_curr,
6923                     manually_entered_flag,
6924                     tax_exemption_id,
6925                     exempt_certificate_number,
6926                     exempt_reason_code,
6927                     tax_exception_id,
6928                     mrc_tax_line_flag,
6929                     tax_only_line_flag
6930                FROM ZX_LINES
6931               WHERE application_id    = p_application_id
6932                 AND entity_code       = p_entity_code
6933                 AND event_class_code  = p_event_class_code
6934                 AND trx_id            = p_trx_id
6935               GROUP BY  trx_id,
6936                         trx_number,
6937                         summary_tax_line_id,
6938                         applied_from_application_id,
6939                         applied_from_event_class_code,
6940                         applied_from_entity_code,
6941                         applied_from_trx_id,
6942                         applied_from_trx_level_type,
6943                         applied_from_line_id,
6944                         adjusted_doc_application_id,
6945                         adjusted_doc_entity_code,
6946                         adjusted_doc_event_class_code,
6947                         adjusted_doc_trx_id,
6948                         adjusted_doc_trx_level_type,
6949                         content_owner_id,
6950                         tax_regime_code,
6951                         tax,
6952                         tax_status_code,
6953                         tax_rate_id,
6954                         tax_rate_code,
6955                         tax_rate,
6956                         tax_jurisdiction_code,
6957                         ledger_id,
6958                         legal_entity_id,
6959                         establishment_id,
6960                         TRUNC(currency_conversion_date),
6961                         currency_conversion_type,
6962                         currency_conversion_rate,
6963                         taxable_basis_formula,
6964                         tax_calculation_formula,
6965                         tax_amt_included_flag,
6966                         compounding_tax_flag,
6967                         self_assessed_flag,
6968                         reporting_only_flag,
6969                         record_type_code,
6970                         tax_provider_id,
6971                         historical_flag,
6972                         manually_entered_flag,
6973                         tax_exemption_id,
6974                         exempt_certificate_number,
6975                         exempt_reason_code,
6976                         tax_exception_id,
6977                         mrc_tax_line_flag,
6978                         tax_only_line_flag
6979                ORDER BY trx_id,
6980                         trx_number,
6981                         mrc_tax_line_flag,
6982                         ledger_id,
6983                         summary_tax_line_id,
6984                         applied_from_application_id,
6985                         applied_from_event_class_code,
6986                         applied_from_entity_code,
6987                         applied_from_trx_id,
6988                         applied_from_trx_level_type,
6989                         applied_from_line_id,
6990                         adjusted_doc_application_id,
6991                         adjusted_doc_entity_code,
6992                         adjusted_doc_event_class_code,
6993                         adjusted_doc_trx_id,
6994                         adjusted_doc_trx_level_type,
6995                         content_owner_id,
6996                         tax_regime_code,
6997                         tax,
6998                         tax_status_code,
6999                         tax_rate_id,
7000                         tax_rate_code,
7001                         tax_rate,
7002                         tax_jurisdiction_code,
7003                         legal_entity_id,
7004                         establishment_id,
7005                         taxable_basis_formula,
7006                         tax_calculation_formula,
7007                         tax_amt_included_flag,
7008                         compounding_tax_flag,
7009                         self_assessed_flag,
7010                         reporting_only_flag,
7011                         record_type_code,
7012                         tax_provider_id,
7013                         historical_flag,
7014                         manually_entered_flag,
7015                         tax_exemption_id,
7016                         exempt_certificate_number,
7017                         exempt_reason_code,
7018                         tax_exception_id,
7019                         tax_only_line_flag );
7020 
7021 
7022   l_curr_ledger_id := -1;
7023   l_summary_tax_line_number := -1;
7024   FOR i IN 1.. pg_summary_tax_line_id_tbl.COUNT LOOP
7025 
7026     -- populate the summary_tax_line_number
7027     -- due to the order by clause, it guranteed that the none_mrc line will
7028     -- come first, then followed by the mrc tax lines.
7029     IF l_curr_ledger_id = -1 OR l_curr_ledger_id <> pg_ledger_id_tbl(i) THEN
7030       l_curr_ledger_id := pg_ledger_id_tbl(i);
7031       l_summary_tax_line_number := 1;
7032     ELSE
7033       l_summary_tax_line_number := l_summary_tax_line_number + 1;
7034     END IF;
7035     pg_summary_tax_line_num_tbl(i) := l_summary_tax_line_number;
7036 
7037     IF pg_count_detail_cancel_tbl(i) = pg_count_detail_tax_line_tbl(i) THEN
7038       pg_cancel_flag_tbl(i) := 'Y';
7039     ELSE
7040       pg_cancel_flag_tbl(i) := NULL;
7041     END IF;
7042 
7043   END LOOP;
7044 
7045 
7046   FORALL i IN 1..pg_summary_tax_line_id_tbl.COUNT
7047   INSERT INTO zx_lines_summary
7048             ( summary_tax_line_id,
7049               object_version_number,
7050               created_by,
7051               creation_date,
7052               last_updated_by,
7053               last_update_date,
7054               last_update_login,
7055               internal_organization_id,
7056               application_id,
7057               entity_code,
7058               event_class_code,
7059               trx_id,
7060               trx_number,
7061               applied_from_application_id,
7062               applied_from_event_class_code,
7063               applied_from_entity_code,
7064               applied_from_trx_id,
7065               applied_from_trx_level_type,
7066               applied_from_line_id,
7067               adjusted_doc_application_id,
7068               adjusted_doc_entity_code,
7069               adjusted_doc_event_class_code,
7070               adjusted_doc_trx_id,
7071               adjusted_doc_trx_level_type,
7072               summary_tax_line_number,
7073               content_owner_id,
7074               tax_regime_code,
7075               tax,
7076               tax_status_code,
7077               tax_rate_id,
7078               tax_rate_code,
7079               tax_rate,
7080               tax_jurisdiction_code,
7081               ledger_id,
7082               legal_entity_id,
7083               establishment_id,
7084               currency_conversion_date,
7085               currency_conversion_type,
7086               currency_conversion_rate,
7087               taxable_basis_formula,
7088               tax_calculation_formula,
7089               tax_amt_included_flag,
7090               compounding_tax_flag,
7091               self_assessed_flag,
7092               reporting_only_flag,
7093               record_type_code,
7094               tax_provider_id,
7095               historical_flag,
7096               tax_amt,
7097               tax_amt_tax_curr,
7098               tax_amt_funcl_curr,
7099               total_rec_tax_amt,
7100               total_rec_tax_amt_funcl_curr,
7101               total_rec_tax_amt_tax_curr,
7102               total_nrec_tax_amt,
7103               total_nrec_tax_amt_funcl_curr,
7104               total_nrec_tax_amt_tax_curr,
7105               cancel_flag,
7106               delete_flag,
7107               manually_entered_flag,
7108               tax_exemption_id,
7109               exempt_certificate_number,
7110               exempt_reason_code,
7111               tax_exception_id,
7112               mrc_tax_line_flag,
7113               tax_only_line_flag
7114             ) VALUES(
7115        pg_summary_tax_line_id_tbl(i),
7116        1,        -- object_version_number
7117        FND_GLOBAL.user_id,
7118        SYSDATE,
7119        FND_GLOBAL.user_id,
7120        SYSDATE,
7121        FND_GLOBAL.user_id,
7122        pg_internal_org_id_tbl(i),
7123        pg_application_id_tbl(i),
7124        pg_entity_code_tbl(i),
7125        pg_event_class_code_tbl(i),
7126        pg_trx_id_tbl(i),
7127        pg_trx_number_tbl(i),
7128        pg_app_from_app_id_tbl(i),
7129        pg_app_from_evnt_cls_code_tbl(i),
7130        pg_app_from_entity_code_tbl(i),
7131        pg_app_from_trx_id_tbl(i),
7132        pg_app_from_trx_level_type_tbl(i),
7133        pg_app_from_line_id_tbl(i),
7134        pg_adj_doc_app_id_tbl(i),
7135        pg_adj_doc_entity_code_tbl(i),
7136        pg_adj_doc_evnt_cls_code_tbl(i),
7137        pg_adj_doc_trx_id_tbl(i),
7138        pg_adj_doc_trx_level_type_tbl(i),
7139        pg_summary_tax_line_num_tbl(i),
7140        pg_content_owner_id_tbl(i),
7141        pg_tax_regime_code_tbl(i),
7142        pg_tax_tbl(i),
7143        pg_tax_status_code_tbl(i),
7144        pg_tax_rate_id_tbl(i),
7145        pg_tax_rate_code_tbl(i),
7146        pg_tax_rate_tbl(i),
7147        pg_tax_jurisdiction_code_tbl(i),
7148        pg_ledger_id_tbl(i),
7149        pg_legal_entity_id_tbl(i),
7150        pg_establishment_id_tbl(i),
7151        pg_currency_convrsn_date_tbl(i),
7152        pg_currency_convrsn_type_tbl(i),
7153        pg_currency_convrsn_rate_tbl(i),
7154        pg_taxable_basis_formula_tbl(i),
7155        pg_tax_calculation_formula_tbl(i),
7156        pg_tax_amt_included_flag_tbl(i),
7157        pg_compounding_tax_flag_tbl(i),
7158        pg_self_assessed_flag_tbl(i),
7159        pg_reporting_only_flag_tbl(i),
7160        pg_record_type_code_tbl(i),
7161        pg_tax_provider_id_tbl(i),
7162        pg_historical_flag_tbl(i),
7163        pg_tax_amt_tbl(i),
7164        pg_tax_amt_tax_curr_tbl(i),
7165        pg_tax_amt_funcl_curr_tbl(i),
7166        pg_ttl_rec_tax_amt_tbl(i),
7167        pg_ttl_rec_tx_amt_fnc_crr_tbl(i),
7168        pg_ttl_rec_tx_amt_tx_crr_tbl(i),
7169        pg_ttl_nrec_tax_amt_tbl(i),
7170        pg_ttl_nrec_tx_amt_fnc_crr_tbl(i),
7171        pg_ttl_nrec_tx_amt_tx_crr_tbl(i),
7172        pg_cancel_flag_tbl(i),
7173        pg_delete_flag_tbl(i),
7174        pg_manually_entered_flag_tbl(i),
7175        pg_tax_xmptn_id_tbl(i),
7176        pg_xmpt_certificate_number_tbl(i),
7177        pg_xmpt_reason_code_tbl(i),
7178        pg_tax_xeptn_id_tbl(i),
7179        pg_mrc_tax_line_flag_tbl(i),
7180        pg_tax_only_line_flag_tbl(i) );
7181 
7182   IF (g_level_statement >= g_current_runtime_level ) THEN
7183 
7184     FND_LOG.STRING(g_level_statement,
7185       'ZX.PLSQL.ZX_TDS_TAX_LINES_DETM_PKG.create_summary_lines_del_evnt',
7186       'NON-MRC Lines: Number of Rows Inserted into zx_lines_summary retain summary tax line id: '||to_char(SQL%ROWCOUNT));
7187   END IF;
7188 
7189   IF (g_level_procedure >= g_current_runtime_level ) THEN
7190 
7191     FND_LOG.STRING(g_level_procedure,
7192                    'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_del_evnt.END',
7193                    'ZX_TRL_MANAGE_TAX_PKG: create_summary_lines_del_evnt (-)'||x_return_status);
7194   END IF;
7195 
7196 EXCEPTION
7197   WHEN OTHERS THEN
7198     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7199     l_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7200 
7201     IF (g_level_unexpected >= g_current_runtime_level ) THEN
7202       FND_LOG.STRING(g_level_unexpected,
7203                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.create_summary_lines_del_evnt',
7204                       l_error_buffer);
7205     END IF;
7206 
7207 END create_summary_lines_del_evnt;
7208 
7209 ------------------------------------------------------------------------------
7210 --  PPRIVATE PROCEDURE
7211 --  print_summary_columns
7212 --
7213 --  DESCRIPTION
7214 --  This private procedure to print the summarization columns in case of
7215 --  ZX_LINES_SUMMARY_U1 error for debug purpose
7216 --
7217 --  HISTORY
7218 --  Added by Simranjeet Sohal on 6-Aug-2010
7219 ------------------------------------------------------------------------------
7220 
7221 PROCEDURE print_summary_columns
7222     (p_application_id   IN   NUMBER,
7223      p_entity_code      IN   VARCHAR2,
7224      p_event_class_code IN   VARCHAR2,
7225      p_trx_id           IN   NUMBER)
7226 IS
7227 
7228    -- Cursor to fetch summarization columns from ZX_LINES --
7229    CURSOR get_summary_columns IS
7230    SELECT tax_line_id,
7231           summary_tax_line_id,
7232           application_id,
7233           entity_code,
7234           event_class_code,
7235           trx_id,
7236           internal_organization_id,
7237           trx_number,
7238           content_owner_id,
7239           tax_regime_code,
7240           tax,
7241           tax_status_code,
7242           tax_rate_id,
7243           tax_rate_code,
7244           tax_rate,
7245           tax_jurisdiction_code,
7246           ledger_id,
7247           legal_entity_id,
7248           establishment_id,
7249           historical_flag,
7250           record_type_code,
7251           manually_entered_flag,
7252           taxable_basis_formula,
7253           tax_calculation_formula,
7254           self_assessed_flag,
7255           reporting_only_flag,
7256           compounding_tax_flag,
7257           tax_amt_included_flag,
7258           tax_only_line_flag,
7259           tax_provider_id,
7260           TRUNC(currency_conversion_date) currency_conversion_date,
7261           currency_conversion_type,
7262           currency_conversion_rate,
7263           applied_from_application_id,
7264           applied_from_event_class_code,
7265           applied_from_entity_code,
7266           applied_from_trx_id,
7267           applied_from_trx_level_type,
7268           applied_from_line_id,
7269           adjusted_doc_application_id,
7270           adjusted_doc_entity_code,
7271           adjusted_doc_event_class_code,
7272           adjusted_doc_trx_id,
7273           adjusted_doc_trx_level_type,
7274           tax_exemption_id,
7275           exempt_certificate_number,
7276           exempt_reason_code,
7277           tax_exception_id,
7278           mrc_tax_line_flag
7279      FROM zx_lines
7280     WHERE application_id = p_application_id
7281       AND event_class_code = p_event_class_code
7282       AND entity_code = p_entity_code
7283       AND trx_id = p_trx_id
7284     ORDER BY summary_tax_line_id,
7285           tax_line_id;
7286 
7287 BEGIN
7288   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
7289 
7290   IF (g_level_procedure >= g_current_runtime_level ) THEN
7291     FND_LOG.STRING(g_level_procedure,
7292       'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.print_summary_columns.BEGIN',
7293       'ZX_TRL_MANAGE_TAX_PKG: print_summary_columns (+)');
7294   END IF;
7295 
7296   FOR rec IN get_summary_columns LOOP
7297     IF (g_level_statement >= g_current_runtime_level ) THEN
7298       FND_LOG.STRING(g_level_statement,
7299                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX.print_summary_columns',
7300                      'TAX_LINE_ID : '                  || rec.tax_line_id ||
7301                      ', SUMMARY_TAX_LINE_ID : '        || rec.summary_tax_line_id ||
7302                      ', APPLICATION_ID : '             || rec.application_id ||
7303                      ', ENTITY_CODE : '                || rec.entity_code ||
7304                      ', EVENT_CLASS_CODE : '           || rec.event_class_code ||
7305                      ', TRX_ID : '                     || rec.trx_id ||
7306                      ', INTERNAL_ORG_ID : '            || rec.internal_organization_id ||
7307                      ', TRX_NUMBER : '                 || rec.trx_number ||
7308                      ', CONTENT_OWNER_ID : '           || rec.content_owner_id ||
7309                      ', TAX_REGIME_CODE : '            || rec.tax_regime_code ||
7310                      ', TAX : '                        || rec.tax ||
7311                      ', TAX_STATUS_CODE : '            || rec.tax_status_code ||
7312                      ', TAX_RATE_ID : '                || rec.tax_rate_id ||
7313                      ', TAX_RATE_CODE : '              || rec.tax_rate_code ||
7314                      ', TAX_RATE : '                   || rec.tax_rate ||
7315                      ', TAX_JURIS_CODE : '             || rec.tax_jurisdiction_code ||
7316                      ', LEDGER_ID : '                  || rec.ledger_id ||
7317                      ', LEGAL_ENTITY_ID : '            || rec.legal_entity_id ||
7318                      ', ESTB_ID : '                    || rec.establishment_id ||
7319                      ', HISTORICAL_FLAG : '            || rec.historical_flag ||
7320                      ', RECORD_TYPE_CODE : '           || rec.record_type_code ||
7321                      ', MANUALLY_ENTERED_FLAG : '      || rec.manually_entered_flag ||
7322                      ', TAXABLE_BASIS_FORMULA : '      || rec.taxable_basis_formula ||
7323                      ', TAX_CALC_FORMULA : '           || rec.tax_calculation_formula ||
7324                      ', SELF_ASSESSED_FLAG : '         || rec.self_assessed_flag ||
7325                      ', REPORTING_ONLY_FLAG : '        || rec.reporting_only_flag ||
7326                      ', COMPOUNDING_TAX_FLAG : '       || rec.compounding_tax_flag ||
7327                      ', TAX_AMT_INCLUDED_FLAG : '      || rec.tax_amt_included_flag ||
7328                      ', TAX_ONLY_LINE_FLAG : '         || rec.tax_only_line_flag||
7329                      ', TAX_PROVIDER_ID : '            || rec.tax_provider_id ||
7330                      ', CURR_CONV_DATE : '             || rec.currency_conversion_date ||
7331                      ', CURR_CONV_TYPE : '             || rec.currency_conversion_type ||
7332                      ', CURR_CONV_RATE : '             || rec.currency_conversion_rate ||
7333                      ', APPL_FROM_APPLICATION_ID : '   || rec.applied_from_application_id ||
7334                      ', APPL_FROM_EVENT_CLASS_CODE : ' || rec.applied_from_event_class_code ||
7335                      ', APPL_FROM_ENTITY_CODE :  '     || rec.applied_from_entity_code ||
7336                      ', APPL_FROM_TRX_ID : '           || rec.applied_from_trx_id ||
7337                      ', APPL_FROM_TRX_LEVEL_TYPE : '   || rec.applied_from_trx_level_type ||
7338                      ', APPL_FROM_LINE_ID : '          || rec.applied_from_line_id ||
7339                      ', ADJ_DOC_APPLN_ID : '           || rec.adjusted_doc_application_id ||
7340                      ', ADJ_DOC_ENTITY_CODE : '        || rec.adjusted_doc_entity_code ||
7341                      ', ADJ_DOC_EVNT_CLASS_CODE : '    || rec.adjusted_doc_event_class_code ||
7342                      ', ADJ_DOC_TRX_ID : '             || rec.adjusted_doc_trx_id ||
7343                      ', ADJ_DOC_TRX_LEVEL_TYPE : '     || rec.adjusted_doc_trx_level_type ||
7344                      ', TAX_EXEMPTION_ID : '           || rec.tax_exemption_id ||
7345                      ', EXEMPT_CERT_NUMBER : '         || rec.exempt_certificate_number ||
7346                      ', EXEMPT_REASON_CODE : '         || rec.exempt_reason_code ||
7347                      ', TAX_EXCEPTION_ID : '           || rec.tax_exception_id ||
7348                      ', MRC_TAX_LINE_FLAG: '           || rec.mrc_tax_line_flag );
7349     END IF;
7350   END LOOP;
7351 
7352   IF (g_level_procedure >= g_current_runtime_level ) THEN
7353     FND_LOG.STRING(g_level_procedure,
7354       'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.print_summary_columns.END',
7355       'ZX_TRL_MANAGE_TAX_PKG: print_summary_columns (-)');
7356   END IF;
7357 
7358 EXCEPTION
7359   WHEN OTHERS THEN
7360     IF (g_level_unexpected >= g_current_runtime_level ) THEN
7361       FND_LOG.STRING(g_level_unexpected,
7362                      'ZX.PLSQL.ZX_TRL_MANAGE_TAX_PKG.print_summary_columns',
7363                      'Cannot print summary columns. Error Occured : '||SUBSTR(SQLERRM, 1, 80));
7364     END IF;
7365 END;
7366 
7367 
7368 -------------------------------------------------------------------------------
7369 --
7370 --   Package constructor
7371 --
7372 -------------------------------------------------------------------------------
7373 
7374 END ZX_TRL_MANAGE_TAX_PKG;