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