DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_TDS_TAX_LINES_POPU_PKG

Source


1 PACKAGE BODY ZX_TDS_TAX_LINES_POPU_PKG AS
2 /* $Header: zxditaxlnpoppkgb.pls 120.100.12020000.3 2013/03/13 06:58:10 ssohal ship $ */
3 
4 
5 g_current_runtime_level      NUMBER;
6 g_level_statement            CONSTANT  NUMBER   := FND_LOG.LEVEL_STATEMENT;
7 g_level_procedure            CONSTANT  NUMBER   := FND_LOG.LEVEL_PROCEDURE;
8 g_level_unexpected           CONSTANT  NUMBER   := FND_LOG.LEVEL_UNEXPECTED;
9 
10 -----------------------------------------------------------------------
11 --  PUBLIC PROCEDURE
12 --  cp_tsrm_val_to_zx_lines
13 --
14 --  DESCRIPTION
15 --
16 --  This procedure is called after determine tax applicability process
17 --  It copies TSRM parameter values to TDS global detail tax line structures
18 --  It is one of the entry point to Populate Tax lines process
19 --
20 --  CALLED BY
21 --    ZX_TDS_APPLICABILITY_DETM_PKG
22 --
23 
24 PROCEDURE cp_tsrm_val_to_zx_lines(
25             p_trx_line_index      IN     BINARY_INTEGER,
26             p_begin_index         IN     BINARY_INTEGER,
27             p_end_index           IN     BINARY_INTEGER,
28             p_return_status       OUT NOCOPY VARCHAR2,
29             p_error_buffer        OUT NOCOPY VARCHAR2
30          )
31 IS
32   j          BINARY_INTEGER;
33 
34 BEGIN
35 
36   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
37 
38   IF (g_level_statement >= g_current_runtime_level ) THEN
39     FND_LOG.STRING(g_level_statement,
40                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines.BEGIN',
41                    'ZX_TDS_TAX_LINES_POPU_PKG: cp_tsrm_val_to_zx_lines(+)');
42   END IF;
43 
44   --
45   -- init error buffer and return status
46   --
47   p_return_status  := FND_API.G_RET_STS_SUCCESS;
48   p_error_buffer   := NULL;
49 
50   --
51   -- check if begin_index and end_index have values
52   --
53   IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
54 
55     IF (g_level_statement >= g_current_runtime_level ) THEN
56         FND_LOG.STRING(g_level_statement,
57                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines.END',
58                    'ZX_TDS_TAX_LINES_POPU_PKG: cp_tsrm_val_to_zx_lines(-)'||'Begin index or End index is null');
59 
60     END IF;
61     RETURN;
62   END IF;
63 
64   --
65   -- get the index to transaction line table
66   --
67   j := p_trx_line_index;
68 
69   FOR i IN p_begin_index ..p_end_index LOOP
70 
71 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).account_string :=
72 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.account_string(j);
73     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_application_id :=
74             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_application_id(j);
75     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_entity_code :=
76             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_entity_code(j);
77     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_event_class_code :=
78             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_event_class_code(j);
79     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_line_id :=
80             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_line_id(j);
81     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_trx_level_type :=
82             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_level_type(j);
83     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_trx_id :=
84             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_trx_id(j);
85     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_date :=
86             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_date(j);
87     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).adjusted_doc_number :=
88             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_number(j);
89     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).application_id :=
90             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.application_id(j);
91     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_from_application_id :=
92             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_from_application_id(j);
93     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_from_entity_code   :=
94             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_from_entity_code(j);
95     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_from_event_class_code :=
96             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_from_event_class_code(j);
97     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_from_line_id :=
98             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_from_line_id(j);
99     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_from_trx_level_type :=
100             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_from_trx_level_type(j);
101     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_from_trx_id :=
102             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_from_trx_id(j);
103 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_from_trx_number :=
104 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_from_trx_number;
105     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_to_application_id :=
106             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_to_application_id(j);
107     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_to_event_class_code :=
108             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_to_event_class_code(j);
109     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_to_entity_code :=
110             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_to_entity_code(j);
111     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_to_line_id :=
112             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_to_trx_line_id(j);
113     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_to_trx_level_type :=
114             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_to_trx_level_type(j);
115     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_to_trx_id   :=
116             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_to_trx_id(j);
117     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).applied_to_trx_number :=
118              ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.applied_to_trx_number(j);
119     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_assessable_value :=
120             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.assessable_value(j);
121 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Asset_Flag  :=
122 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Asset_Flag(j);
123 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).asset_number :=
124 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.asset_number(j);
125 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).asset_accum_depreciation    :=
126 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.asset_accum_depreciation(j);
127 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).asset_cost :=
128 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.asset_cost(j);
129 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).asset_type :=
130 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.asset_type(j);
131 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).banking_tp_taxpayer_id :=
132 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.banking_tp_taxpayer_id(j);
133 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).batch_source_id :=
134 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.batch_source_id(j);
135 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).batch_source_name :=
136 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.batch_source_name(j);
137 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).bill_from_location_id :=
138 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_from_location_id(j);
139 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).bill_from_party_tax_prof_id :=
140 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_from_party_tax_prof_id(j);
141 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).bill_from_site_tax_prof_id :=
142 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_from_site_tax_prof_id(j);
143 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).bill_to_location_id  :=
144 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_to_location_id(j);
145 --   ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).bill_to_party_tax_prof_id   :=
146 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_to_party_tax_prof_id(j);
147 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).bill_to_site_tax_prof_id    :=
148 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_to_site_tax_prof_id(j);
149 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).billing_tp_taxpayer_id  :=
150 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.billing_tp_taxpayer_id(j);
151 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Billing_Tp_Tax_Reporting_Flag :=
152 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Billing_Tp_Tax_Reporting_Flag(j);
153 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).billing_trading_partner_number :=
154 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.billing_trading_partner_number(j);
155 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).billing_trading_partner_name :=
156 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.billing_trading_partner_name(j);
157 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).cash_discount :=
158 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.cash_discount(j);
159     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char1   :=
160             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char1(j);
161     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char2   :=
162             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char2(j);
163     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char3   :=
164             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char3(j);
165     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char4   :=
166             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char4(j);
167     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char5   :=
168             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char5(j);
169     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char6   :=
170             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char6(j);
171     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char7   :=
172             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char7(j);
173     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char8   :=
174             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char8(j);
175     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char9   :=
176             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char9(j);
177     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).char10  :=
178             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.char10(j);
179 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).account_ccid :=
180 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.account_ccid(j);
181     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_date :=
182             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_date(j);
183     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_rate :=
184             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_rate(j);
185     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_type :=
186             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_type(j);
187     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date1      :=
188             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date1(j);
189     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date2      :=
190             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date2(j);
191     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date3       :=
192             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date3(j);
193     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date4      :=
194             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date4(j);
195     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date5        :=
196             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date5(j);
197     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date6      :=
198             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date6(j);
199     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date7      :=
200             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date7(j);
201     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date8      :=
202             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date8(j);
203     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date9      :=
204             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date9(j);
205     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).date10     :=
206             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.date10(j);
207 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).default_taxation_country :=
208 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.default_taxation_country(j);
209     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).doc_event_status :=
210             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.doc_event_status(j);
211 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).doc_seq_id :=
212 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.doc_seq_id(j);
213 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).doc_seq_name  :=
214 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.doc_seq_name(j);
215 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).doc_seq_value :=
216 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.doc_seq_value(j);
217 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).document_sub_type :=
218 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.document_sub_type(j);
219     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).entity_code  :=
220             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.entity_code(j);
221     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).establishment_id  :=
222             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.establishment_id(j);
223     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).event_class_code  :=
224             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.event_class_code(j);
225     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).event_type_code :=
226             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.event_type_code(j);
227     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).exempt_certificate_number :=
228             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.exempt_certificate_number(j);
229 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).fob_point   :=
230 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.fob_point(j);
231 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_gl_date :=
232 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_gl_date(j);
233     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Historical_Flag is NULL THEN
234       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Historical_Flag :=
235              ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Historical_Flag(j);
236     END IF;
237     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).hq_estb_party_tax_prof_id :=
238              ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.hq_estb_party_tax_prof_id(j);
239 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).insurance_charge   :=
240 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.insurance_charge(j);
241 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_intended_use  :=
242 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_intended_use(j);
243     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).internal_organization_id :=
244             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id(j);
245     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).legal_entity_id :=
246             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.legal_entity_id(j);
247     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_amt :=
248             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_amt(j);
249 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).line_level_action :=
250 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_level_action(j);
251     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).minimum_accountable_unit  :=
252             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.minimum_accountable_unit(j);
253     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric1    :=
254             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric1(j);
255     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric2    :=
256             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric2(j);
257     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric3    :=
258             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric3(j);
259     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric4    :=
260             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric4(j);
261     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric5    :=
262             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric5(j);
263     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric6    :=
264             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric6(j);
265     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric7    :=
266             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric7(j);
267     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric8    :=
268             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric8(j);
269     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric9    :=
270             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric9(j);
271     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).numeric10   :=
272             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.numeric10(j);
273 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_charge :=
274 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.other_charge(j);
275 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).own_hq_location_id :=
276 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.own_hq_location_id(j);
277 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).own_hq_party_tax_prof_id  :=
278 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.own_hq_party_tax_prof_id(j);
279 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).own_hq_site_tax_prof_id :=
280 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.own_hq_site_tax_prof_id(j);
281 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Line_Amt_Includes_Tax_Flag :=
282 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.Line_Amt_Includes_Tax_Flag(j);
283 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).paying_location_id :=
284 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.paying_location_id(j);
285 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).paying_party_tax_prof_id  :=
286 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.paying_party_tax_prof_id(j);
287 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).paying_site_tax_prof_id :=
288 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.paying_site_tax_prof_id(j);
289 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poa_location_id :=
290 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poa_location_id(j);
291 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poa_party_tax_prof_id :=
292 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poa_party_tax_prof_id(j);
293 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poa_site_tax_prof_id  :=
294 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poa_site_tax_prof_id(j);
295 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).pod_party_tax_prof_id :=
296 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.pod_party_tax_prof_id(j);
297 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).pod_site_tax_prof_id  :=
298 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.pod_site_tax_prof_id(j);
299 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poi_party_tax_prof_id :=
300 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poi_party_tax_prof_id(j);
301 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poi_site_tax_prof_id  :=
302 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poi_site_tax_prof_id(j);
303 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poc_location_id :=
304 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poc_location_id(j);
305 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).pod_location_id   :=
306 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.pod_location_id(j);
307 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poi_location_id :=
308 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poi_location_id(j);
309 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poo_location_id  :=
310 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poo_location_id(j);
311 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poo_party_tax_prof_id :=
312 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poo_party_tax_prof_id(j);
313 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).poo_site_tax_prof_id :=
314 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.poo_site_tax_prof_id(j);
315     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).precision  :=
316             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.precision(j);
317 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).product_code :=
318 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_code(j);
319 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).product_description  :=
320 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_description(j);
321 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).product_id :=
322 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_id(j);
323 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).product_category :=
324 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_category(j);
325 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).product_fisc_classification :=
326 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_fisc_classification(j);
327 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).product_org_id :=
328 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_org_id(j);
329 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).product_type :=
330 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.product_type(j);
331     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).related_doc_application_id :=
332             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_application_id(j);
333     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).related_doc_entity_code :=
334             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_entity_code(j);
335     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).related_doc_event_class_code :=
336             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_event_class_code(j);
337     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).related_doc_trx_id :=
338             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_trx_id(j);
339     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).related_doc_number :=
340             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_number(j);
341     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).related_doc_date   :=
342             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.related_doc_date(j);
343     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ref_doc_line_quantity :=
344             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_line_quantity(j);
345     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ref_doc_application_id :=
346             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_application_id(j);
347     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ref_doc_entity_code :=
348             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_entity_code(j);
349     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ref_doc_event_class_code :=
350             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_event_class_code(j);
351     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ref_doc_line_id :=
352             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_line_id(j);
353     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ref_doc_trx_level_type :=
354             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_trx_level_type(j);
355     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ref_doc_trx_id  :=
356             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ref_doc_trx_id(j);
357     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ledger_id :=
358             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ledger_id(j);
359 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ship_from_location_id :=
360 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_location_id(j);
361 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ship_from_party_tax_prof_id :=
362 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_party_tax_prof_id(j);
363 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ship_from_site_tax_prof_id :=
364 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_site_tax_prof_id(j);
365 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ship_to_location_id :=
366 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_to_location_id(j);
367 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ship_to_party_tax_prof_id   :=
368 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_to_party_tax_prof_id(j);
369 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ship_to_site_tax_prof_id  :=
370 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_to_site_tax_prof_id(j);
371     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).content_owner_id :=
372             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.first_pty_org_id(j); -- subscriber_id(j): bug fix 3462583
373 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).supplier_tax_invoice_number :=
374 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.supplier_tax_invoice_number(j);
375 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).supplier_tax_invoice_date :=
376 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.supplier_tax_invoice_date(j);
377 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).supplier_exchange_rate :=
378 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.supplier_exchange_rate(j);
379     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_class_code  :=
380             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_event_class_code(j);
381     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_event_type_code  :=
382             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_event_type_code(j);
383 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_invoice_date :=
384 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_invoice_date(j);
385 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_invoice_number :=
386 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.tax_invoice_number(j);
387 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).merchant_party_country :=
388 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.merchant_party_country(j);
389 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).merchant_party_document_number :=
390 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.merchant_party_document_number(j);
391 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).merchant_party_name  :=
392 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.merchant_party_name(j);
393 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).merchant_party_reference :=
394 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.merchant_party_reference(j);
395 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).merchant_party_tax_prof_id :=
396 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.merchant_party_tax_prof_id(j);
397 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).merchant_party_tax_reg_number  :=
398 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.merchant_party_tax_reg_number(j);
399 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).merchant_party_taxpayer_id :=
400 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.merchant_party_taxpayer_id(j);
401 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).title_trans_party_tax_prof_id :=
402 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.title_trans_party_tax_prof_id(j);
403 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).title_trans_site_tax_prof_id :=
404 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.title_trans_site_tax_prof_id(j);
405 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).title_transfer_location_id  :=
406 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.title_transfer_location_id(j);
407 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trading_discount :=
408 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trading_discount(j);
409 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trading_hq_location_id :=
410 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trading_hq_location_id(j);
411 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trading_hq_party_tax_prof_id :=
412 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trading_hq_party_tax_prof_id(j);
413 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trading_hq_site_tax_prof_id :=
414 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trading_hq_site_tax_prof_id(j);
415     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_number :=
416             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_number(j);
417     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_currency_code :=
418             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_currency_code(j);
419     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_date    :=
420             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_date(j);
421     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_id      :=
422             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id(j);
423     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_id_level2 :=
424             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id_level2(j);
425     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_id_level3 :=
426             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id_level3(j);
427     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_id_level4 :=
428             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id_level4(j);
429     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_id_level5 :=
430             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id_level5(j);
431     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_id_level6 :=
432             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_id_level6(j);
433     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type :=
434             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_level_type(j);
435 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_description :=
436 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_description(j);
437     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id :=
438             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_id(j);
439     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_number :=
440             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_number(j);
441 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_type :=
442 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_type(j);
443 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).transfer_charge :=
444 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.transfer_charge(j);
445 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).transportation_charge :=
446 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.transportation_charge(j);
447 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_business_category :=
448 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_business_category(j);
449 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_communicated_date :=
450 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_communicated_date(j);
451 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_description :=
452 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_description(j);
453 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_doc_revision :=
454 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_doc_revision(j);
455 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_due_date  :=
456 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_due_date(j);
457     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_date :=
458             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_date(j);
459     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_quantity :=
460             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_quantity(j);
461 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_receipt_date :=
462 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_receipt_date(j);
463 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_shipping_date :=
464 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_shipping_date(j);
465 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_sic_code  :=
466 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_sic_code(j);
467 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_type_description  :=
468 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_type_description(j);
469 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).receivables_trx_type_id :=
470 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.receivables_trx_type_id(j);
471 /***********************
472     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_user_key_level1   :=
473             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_trx_user_key1(j);
474     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_user_key_level2   :=
475             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_trx_user_key2(j);
476     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_user_key_level3   :=
477             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_trx_user_key3(j);
478     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_user_key_level4   :=
479             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_trx_user_key4(j);
480     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_user_key_level5   :=
481             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_trx_user_key5(j);
482     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_user_key_level6   :=
483             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.line_trx_user_key6(j);
484 *******************/
485 --    ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_waybill_number    :=
486 --            ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_waybill_number(j);
487     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).unit_price :=
488             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.unit_price(j);
489     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).internal_org_location_id :=
490             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_org_location_id(j);
491 
492     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ctrl_total_line_tx_amt :=
493             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ctrl_total_line_tx_amt(j);
494 
495     -- bug fix 4630692
496     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_currency_code :=
497             NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_currency_code(j),
498             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_currency_code(j));
499 
500     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_currency_code =
501                      ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_currency_code(j) THEN
502       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_date :=
503             NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_date(j),
504             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_currency_conv_date(j));
505 
506       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_rate :=
507             NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_rate(j),
508             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_currency_conv_rate(j));
509 
510       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_type :=
511             NVL(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_type(j),
512             ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.trx_line_currency_conv_type(j));
513     ELSE
514       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_date(j);
515       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_rate := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_rate(j);
516       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).currency_conversion_type := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.currency_conversion_type(j);
517     END IF;
518 
519   END LOOP;
520 
521   IF (g_level_statement >= g_current_runtime_level ) THEN
522 
523     FND_LOG.STRING(g_level_statement,
524                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines.END',
525                    'ZX_TDS_TAX_LINES_POPU_PKG: cp_tsrm_val_to_zx_lines(-)'||p_return_status);
526   END IF;
527 
528 EXCEPTION
529   WHEN OTHERS THEN
530     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
531     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
532 
533     IF (g_level_unexpected >= g_current_runtime_level ) THEN
534       FND_LOG.STRING(g_level_unexpected,
535                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.cp_tsrm_val_to_zx_lines',
536                       p_error_buffer);
537     END IF;
538 
539 END cp_tsrm_val_to_zx_lines;
540 
541 -----------------------------------------------------------------------
542 --  PUBLIC PROCEDURE
543 --  populate_tax_line
544 --
545 --  DESCRIPTION
546 --  This procedure is called before tax lines summarization  process
547 --  It is one of the entry point to populate Tax lines process
548 --
549 --  NOTE : currently not use
550 
551 PROCEDURE populate_tax_line(
552             p_event_class_rec     IN     ZX_API_PUB.EVENT_CLASS_REC_TYPE,
553             p_tax_line_rec        IN OUT NOCOPY ZX_DETAIL_TAX_LINES_GT%ROWTYPE,
554             p_return_status          OUT NOCOPY VARCHAR2,
555             p_error_buffer           OUT NOCOPY VARCHAR2)
556 IS
557 BEGIN
558 
559   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
560 
561   IF (g_level_statement >= g_current_runtime_level ) THEN
562     FND_LOG.STRING(g_level_statement,
563                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_tax_lines.BEGIN',
564                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_tax_lines(+)');
565   END IF;
566 
567   p_return_status  := FND_API.G_RET_STS_SUCCESS;
568   p_error_buffer   := NULL;
569 
570 
571   /*
572    * populate orig columns in override case only
573    * and this should be done by UI
574    *
575    *IF ((p_event_class_rec.tax_event_type_code = 'CREATE'  AND
576    *    p_tax_line_rec.Manually_Entered_Flag = 'N')          OR
577    *   (p_event_class_rec.tax_event_type_code = 'UPDATE'  AND
578    *   p_tax_line_rec.line_level_action = 'CREATE')            OR
579    *  (p_event_class_rec.tax_event_type_code = 'OVERRIDE_TAX' AND
580    *   p_tax_line_rec.Manually_Entered_Flag = 'Y') )  THEN
581    * populate_orig_columns(p_tax_line_rec);
582    * END IF;
583    */
584 
585   p_tax_line_rec.line_assessable_value := p_tax_line_rec.taxable_amt;
586 
587   populate_mandatory_columns(p_tax_line_rec,
588                              p_return_status,
589                              p_error_buffer);
590 
591   IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
592     RETURN;
593   END IF;
594 
595   check_mandatory_columns(p_tax_line_rec,
596                           p_return_status,
597                           p_error_buffer);
598 
599   IF (g_level_statement >= g_current_runtime_level ) THEN
600 
601     FND_LOG.STRING(g_level_statement,
602                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_tax_lines.END',
603                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_tax_lines(-)'||p_return_status);
604   END IF;
605 
606 EXCEPTION
607   WHEN OTHERS THEN
608     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
609     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
610 
611     IF (g_level_unexpected >= g_current_runtime_level ) THEN
612       FND_LOG.STRING(g_level_unexpected,
613                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_tax_line',
614                       p_error_buffer);
615     END IF;
616 
617 END populate_tax_line;
618 
619 -----------------------------------------------------------------------
620 --  PUBLIC PROCEDURE
621 --  populate_orig_columns
622 --
623 --  DESCRIPTION
624 --  This procedure populates original columns for a tax line record
625 --
626 --  NOTE : currently not use
627 
628 PROCEDURE populate_orig_columns(
629             p_tax_line_rec IN OUT NOCOPY ZX_DETAIL_TAX_LINES_GT%ROWTYPE)
630 
631 IS
632 BEGIN
633 
634   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
635 
636   IF (g_level_statement >= g_current_runtime_level ) THEN
637     FND_LOG.STRING(g_level_statement,
638                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_orig_columns.BEGIN',
639                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_orig_columns(+)');
640   END IF;
641 
642   IF p_tax_line_rec.orig_tax_status_id IS NULL THEN
643     p_tax_line_rec.orig_tax_status_id := p_tax_line_rec.tax_status_id;
644   END IF;
645   IF p_tax_line_rec.orig_tax_status_code IS NULL THEN
646     p_tax_line_rec.orig_tax_status_code := p_tax_line_rec.tax_status_code;
647   END IF;
648   IF p_tax_line_rec.orig_tax_rate_id IS NULL THEN
649     p_tax_line_rec.orig_tax_rate_id := p_tax_line_rec.tax_rate_id;
650   END IF;
651   IF p_tax_line_rec.orig_tax_rate_code IS NULL THEN
652     p_tax_line_rec.orig_tax_rate_code  := p_tax_line_rec.tax_rate_code;
653   END IF;
654   IF p_tax_line_rec.orig_tax_rate IS NULL THEN
655     p_tax_line_rec.orig_tax_rate := p_tax_line_rec.tax_rate;
656   END IF;
657   IF p_tax_line_rec.orig_taxable_amt IS NULL THEN
658     p_tax_line_rec.orig_taxable_amt := p_tax_line_rec.taxable_amt;
659   END IF;
660   IF p_tax_line_rec.orig_taxable_amt_tax_curr IS NULL THEN
661     p_tax_line_rec.orig_taxable_amt_tax_curr :=
662                                p_tax_line_rec.taxable_amt_tax_curr;
663   END IF;
664   IF p_tax_line_rec.orig_tax_amt IS NULL THEN
665     p_tax_line_rec.orig_tax_amt := p_tax_line_rec.tax_amt;
666   END IF;
667   IF p_tax_line_rec.orig_tax_amt_tax_curr IS NULL THEN
668     p_tax_line_rec.orig_tax_amt_tax_curr :=
669                                p_tax_line_rec.tax_amt_tax_curr;
670   END IF;
671 
672 
673   IF (g_level_statement >= g_current_runtime_level ) THEN
674 
675     FND_LOG.STRING(g_level_statement,
676                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_orig_columns.END',
677                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_orig_columns(-)');
678   END IF;
679 
680 EXCEPTION
681   WHEN OTHERS THEN
682 
683     IF (g_level_unexpected >= g_current_runtime_level ) THEN
684       FND_LOG.STRING(g_level_unexpected,
685                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_orig_columns',
686                       sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80));
687     END IF;
688 
689 END populate_orig_columns;
690 
691 -----------------------------------------------------------------------
692 --  PUBLIC PROCEDURE
693 --  populate_mandatory_columns
694 --
695 --  DESCRIPTION
696 --  This procedure populates mandatory columns such as tax line id, who
697 --  columns, etc for a tax line record
698 --
699 --  CALLED BY
700 --    ZX_TDS_OFFSET_TAX_DETM_PKG
701 
702 PROCEDURE populate_mandatory_columns(
703             p_tax_line_rec IN OUT NOCOPY ZX_DETAIL_TAX_LINES_GT%ROWTYPE,
704             p_return_status          OUT NOCOPY VARCHAR2,
705             p_error_buffer           OUT NOCOPY VARCHAR2)
706 
707 IS
708 
709 BEGIN
710 
711   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
712 
713   IF (g_level_statement >= g_current_runtime_level ) THEN
714     FND_LOG.STRING(g_level_statement,
715                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_mandatory_columns.BEGIN',
716                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_mandatory_columns(+)');
717   END IF;
718 
719   p_return_status  := FND_API.G_RET_STS_SUCCESS;
720 
721   --
722   -- populate tax_line_id if it is null
723   --
724   IF p_tax_line_rec.tax_line_id IS NULL THEN
725     SELECT ZX_LINES_S.nextval
726       INTO p_tax_line_rec.tax_line_id
727       FROM dual;
728   END IF;
729 
730 
731 /******************************************
732  * move to set_detail_tax_line_def_val
733  * in ZX_TDS_CALC_SERVICES_PUB_PKG now
734  *
735  *
736  *
737  * -- populate Record_Type_Code
738  * IF p_tax_line_rec.Record_Type_Code IS NULL THEN
739  *   p_tax_line_rec.Record_Type_Code     := 'ETAX_CREATED';
740  * END IF;
741  *
742  * -- populate Historical_Flag
743  * IF p_tax_line_rec.Historical_Flag IS NULL THEN
744  *   p_tax_line_rec.Historical_Flag := 'N';
745  * END IF;
746 **********************************************/
747 
748   -- populate who columns
749 
750 
751   IF p_tax_line_rec.created_by IS NULL THEN
752     p_tax_line_rec.created_by      := fnd_global.user_id;
753   END IF;
754 
755   IF p_tax_line_rec.creation_date IS NULL THEN
756     p_tax_line_rec.creation_date   := sysdate;
757   END IF;
758 
759   p_tax_line_rec.last_updated_by   := fnd_global.user_id;
760   p_tax_line_rec.last_update_login := fnd_global.login_id;
761   p_tax_line_rec.last_update_date  := sysdate;
762 
763   IF (g_level_statement >= g_current_runtime_level ) THEN
764 
765     FND_LOG.STRING(g_level_statement,
766                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_mandatory_columns.END',
767                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_mandatory_columns(-)'||p_return_status);
768   END IF;
769 
770 EXCEPTION
771   WHEN OTHERS THEN
772     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
773     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
774 
775     IF (g_level_unexpected >= g_current_runtime_level ) THEN
776       FND_LOG.STRING(g_level_unexpected,
777                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_mandatory_columns',
778                       p_error_buffer);
779     END IF;
780 
781 END populate_mandatory_columns;
782 -----------------------------------------------------------------------
783 --  PUBLIC PROCEDURE
784 --  check_mandatory_columns
785 --
786 --  DESCRIPTION
787 --  This procedure ensures all mandatory columns are not NULL for a
788 --  tax line record
789 --
790 --  CALLED BY
791 --    populate_tax_lines
792 
793 PROCEDURE check_mandatory_columns(
794             p_tax_line_rec        IN OUT NOCOPY ZX_DETAIL_TAX_LINES_GT%ROWTYPE,
795             p_return_status          OUT NOCOPY VARCHAR2,
796             p_error_buffer           OUT NOCOPY VARCHAR2)
797 
798 IS
799 BEGIN
800 
801   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
802 
803   IF (g_level_statement >= g_current_runtime_level ) THEN
804     FND_LOG.STRING(g_level_statement,
805                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns.BEGIN',
806                    'ZX_TDS_TAX_LINES_POPU_PKG: check_mandatory_columns(+)');
807   END IF;
808 
809   p_return_status  := FND_API.G_RET_STS_SUCCESS;
810 
811   --
812   -- check mandatory columns for all tax lines
813   --
814   check_mandatory_columns_all(p_tax_line_rec,
815                               p_return_status,
816                               p_error_buffer);
817   IF (p_return_status = FND_API.G_RET_STS_SUCCESS AND
818       NVL(p_tax_line_rec.Manually_Entered_Flag,'N') = 'N') THEN
819     check_non_manual_tax_line(p_tax_line_rec,
820                               p_return_status,
821                               p_error_buffer);
822   END IF;
823 
824   IF (g_level_statement >= g_current_runtime_level ) THEN
825     FND_LOG.STRING(g_level_statement,
826                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns',
827                    'p_return_status = ' || p_return_status);
828     FND_LOG.STRING(g_level_statement,
829                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns',
830                    'p_error_buffer  = ' || p_error_buffer);
831     FND_LOG.STRING(g_level_statement,
832                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns.END',
833                    'ZX_TDS_TAX_LINES_POPU_PKG: check_mandatory_columns(-)');
834   END IF;
835 
836 EXCEPTION
837   WHEN OTHERS THEN
838     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
839     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
840 
841     IF (g_level_unexpected >= g_current_runtime_level ) THEN
842       FND_LOG.STRING(g_level_unexpected,
843                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns',
844                       p_error_buffer);
845     END IF;
846 
847 END check_mandatory_columns;
848 -----------------------------------------------------------------------
849 --  PUBLIC PROCEDURE
850 --  check_mandatory_columns_all
851 --
852 --  DESCRIPTION
853 --  This procedure ensures all mandatory columns belonged to a manual and
854 --  non manual tax line are not NULL for a tax line record
855 --
856 --  CALLED BY
857 --    check_mandatory_columns
858 
859 PROCEDURE check_mandatory_columns_all(
860             p_tax_line_rec        IN OUT NOCOPY ZX_DETAIL_TAX_LINES_GT%ROWTYPE,
861             p_return_status          OUT NOCOPY VARCHAR2,
862             p_error_buffer           OUT NOCOPY VARCHAR2)
863 
864 IS
865 BEGIN
866 
867   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
868 
869   IF (g_level_statement >= g_current_runtime_level ) THEN
870     FND_LOG.STRING(g_level_statement,
871                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns_all.BEGIN',
872                    'ZX_TDS_TAX_LINES_POPU_PKG: check_mandatory_columns_all(+)');
873   END IF;
874 
875   p_return_status  := FND_API.G_RET_STS_SUCCESS;
876 
877   IF p_tax_line_rec.application_id IS NULL THEN
878     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
879     p_error_buffer  := 'application_id can not be NULL';
880   ELSIF p_tax_line_rec.entity_code IS NULL THEN
881     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
882     p_error_buffer  := 'entity_code can not be NULL';
883   ELSIF p_tax_line_rec.event_class_code IS NULL THEN
884     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
885     p_error_buffer  := 'event_class_code can not be NULL';
886   ELSIF p_tax_line_rec.event_type_code IS NULL THEN
887     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
888     p_error_buffer  := 'event_type_code can not be NULL';
889   ELSIF p_tax_line_rec.trx_id IS NULL THEN
890     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
891     p_error_buffer  := 'trx_id can not be NULL';
892   ELSIF p_tax_line_rec.trx_line_id IS NULL THEN
893     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
894     p_error_buffer  := 'trx_line_id can not be NULL';
895   ELSIF p_tax_line_rec.trx_level_type IS NULL THEN
896     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
897     p_error_buffer  := 'trx_level_type can not be NULL';
898 
899 --  Bug#4572001- content_owner_id can be NULL
900 --  ELSIF p_tax_line_rec.content_owner_id IS NULL THEN
901 --    p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
902 --    p_error_buffer  := 'content_owner_id can not be NULL';
903 
904   ELSIF p_tax_line_rec.tax_regime_id IS NULL THEN
905     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
906     p_error_buffer  := 'tax_regime_id can not be NULL';
907   ELSIF p_tax_line_rec.tax_regime_code IS NULL THEN
908     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
909     p_error_buffer  := 'tax_regime_code can not be NULL';
910   ELSIF p_tax_line_rec.tax_id IS NULL THEN
911     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
912     p_error_buffer  := 'tax_id can not be NULL';
913   ELSIF p_tax_line_rec.tax IS NULL THEN
914     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
915     p_error_buffer  := 'tax can not be NULL';
916   ELSIF p_tax_line_rec.tax_status_id IS NULL THEN
917     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
918     p_error_buffer  := 'tax_status_id can not be NULL';
919   ELSIF p_tax_line_rec.tax_status_code IS NULL THEN
920     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
921     p_error_buffer  := 'tax_status_code can not be NULL';
922   END IF;
923 
924   IF (g_level_statement >= g_current_runtime_level ) THEN
925     FND_LOG.STRING(g_level_statement,
926                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns_all',
927                    'p_return_status = ' || p_return_status);
928     FND_LOG.STRING(g_level_statement,
929                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns_all',
930                    'p_error_buffer  = ' || p_error_buffer);
931     FND_LOG.STRING(g_level_statement,
932                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns_all.END',
933                    'ZX_TDS_TAX_LINES_POPU_PKG: check_mandatory_columns_all(-)');
934   END IF;
935 
936 EXCEPTION
937   WHEN OTHERS THEN
938     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
939     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
940 
941     IF (g_level_unexpected >= g_current_runtime_level ) THEN
942       FND_LOG.STRING(g_level_unexpected,
943                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_mandatory_columns_all',
944                       p_error_buffer);
945     END IF;
946 
947 END check_mandatory_columns_all;
948 
949 -----------------------------------------------------------------------
950 --  PUBLIC PROCEDURE
951 --  check_non_manual_tax_line
952 --
953 --  DESCRIPTION
954 --  This procedure ensures all mandatory columns belonged to a
955 --  non manually entered tax line are not NULL for a tax line record
956 --
957 --  CALLED BY
958 --    check_mandatory_columns
959 
960 
961 PROCEDURE check_non_manual_tax_line(
962             p_tax_line_rec        IN OUT NOCOPY ZX_DETAIL_TAX_LINES_GT%ROWTYPE,
963             p_return_status          OUT NOCOPY VARCHAR2,
964             p_error_buffer           OUT NOCOPY VARCHAR2)
965 
966 IS
967 BEGIN
968 
969   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
970 
971   IF (g_level_statement >= g_current_runtime_level ) THEN
972     FND_LOG.STRING(g_level_statement,
973                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_non_manual_tax_line.BEGIN',
974                    'ZX_TDS_TAX_LINES_POPU_PKG: check_non_manual_tax_line(+)');
975   END IF;
976 
977   p_return_status  := FND_API.G_RET_STS_SUCCESS;
978 
979   IF p_tax_line_rec.trx_date IS NULL THEN
980     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
981     p_error_buffer  := 'trx_date can not be NULL';
982   --ELSIF p_tax_line_rec.trx_line_date IS NULL THEN
983   --  p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
984   --  p_error_buffer  := 'trx_line_date can not be NULL';
985   ELSIF p_tax_line_rec.ledger_id IS NULL THEN
986     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
987     p_error_buffer  := 'ledger_id can not be NULL';
988 
989 /* comment out only for AP uptake testing purpose. Change to reversed later. chku
990   ELSIF p_tax_line_rec.establishment_id IS NULL THEN
991     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
992     p_error_buffer  := 'establishment_id can not be NULL';
993 */
994   ELSIF p_tax_line_rec.legal_entity_id IS NULL THEN
995     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
996     p_error_buffer  := 'legal_entity_id can not be NULL';
997   ELSIF p_tax_line_rec.tax_rate_id IS NULL THEN
998     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
999     p_error_buffer  := 'tax_rate_id can not be NULL';
1000   ELSIF p_tax_line_rec.tax_rate_code IS NULL THEN
1001     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1002     p_error_buffer  := 'tax_rate_code  can not be NULL';
1003   ELSIF p_tax_line_rec.tax_rate IS NULL THEN
1004     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1005     p_error_buffer  := 'tax_rate can not be NULL';
1006 
1007 /* comment out only for AP uptake testing purpose. Change to reversed later. chku
1008   ELSIF p_tax_line_rec.tax_apportionment_line_number IS NULL THEN
1009     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1010     p_error_buffer  := 'tax_apportionment_line_number can not be NULL';
1011 */
1012   ELSIF p_tax_line_rec.tax_date IS NULL THEN
1013     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1014     p_error_buffer  := 'tax_date can not be NULL';
1015   ELSIF p_tax_line_rec.tax_determine_date IS NULL THEN
1016     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1017     p_error_buffer  := 'tax_determine_date can not be NULL';
1018   ELSIF p_tax_line_rec.tax_point_date IS NULL THEN
1019     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1020     p_error_buffer  := 'tax_point_date can not be NULL';
1021 
1022   END IF;
1023 
1024   IF (g_level_statement >= g_current_runtime_level ) THEN
1025     FND_LOG.STRING(g_level_statement,
1026                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_non_manual_tax_line',
1027                    'p_return_status = ' || p_return_status);
1028     FND_LOG.STRING(g_level_statement,
1029                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_non_manual_tax_line',
1030                    'p_error_buffer = '  || p_error_buffer);
1031     FND_LOG.STRING(g_level_statement,
1032                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_non_manual_tax_line.END',
1033                    'ZX_TDS_TAX_LINES_POPU_PKG: check_non_manual_tax_line(-)');
1034   END IF;
1035 
1036 EXCEPTION
1037   WHEN OTHERS THEN
1038     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1039     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1040 
1041     IF (g_level_unexpected >= g_current_runtime_level ) THEN
1042       FND_LOG.STRING(g_level_unexpected,
1043                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.check_non_manual_tax_line',
1044                       p_error_buffer);
1045     END IF;
1046 
1047 END check_non_manual_tax_line;
1048 
1049 -----------------------------------------------------------------------
1050 --  PUBLIC PROCEDURE
1051 --  pop_tax_line_for_trx_line
1052 --
1053 --  DESCRIPTION
1054 --  This procedure is called after tax calculation is done for
1055 --  all tax lines belonged to a transaction line. It populates
1056 --  missing columns and ensures all mandatory columns are not
1057 --  NULL for each tax line belonged to a transaction line.
1058 --  It is one of the entry point to populate Tax lines process
1059 --
1060 --  CALLED BY
1061 --    ZX_TDS_CALC_SERVICES_PUB_PKG
1062 
1063 
1064 PROCEDURE pop_tax_line_for_trx_line(
1065             p_begin_index         IN     BINARY_INTEGER,
1066             p_end_index           IN     BINARY_INTEGER,
1067             p_return_status          OUT NOCOPY VARCHAR2,
1068             p_error_buffer           OUT NOCOPY VARCHAR2)
1069 IS
1070 
1071 BEGIN
1072 
1073   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1074 
1075   IF (g_level_statement >= g_current_runtime_level ) THEN
1076     FND_LOG.STRING(g_level_statement,
1077                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line.BEGIN',
1078                    'ZX_TDS_TAX_LINES_POPU_PKG: pop_tax_line_for_trx_line(+)');
1079     FND_LOG.STRING(g_level_statement,
1080                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line',
1081                    'p_begin_index = ' || to_char(p_begin_index));
1082     FND_LOG.STRING(g_level_statement,
1083                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line',
1084                    'p_end_index = ' || to_char(p_end_index));
1085   END IF;
1086 
1087   p_return_status  := FND_API.G_RET_STS_SUCCESS;
1088   p_error_buffer   := NULL;
1089 
1090   --
1091   -- check if begin_index and end_index have values
1092   --
1093   IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
1094 
1095     IF (g_level_statement >= g_current_runtime_level ) THEN
1096       FND_LOG.STRING(g_level_statement,
1097                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line',
1098                      'Begin index or End index is null' );
1099     END IF;
1100 
1101     RETURN;
1102   END IF;
1103 
1104   pop_mandatory_col_for_trx_line(
1105                              p_begin_index,
1106                              p_end_index,
1107                              p_return_status,
1108                              p_error_buffer);
1109 
1110   IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1111     RETURN;
1112   END IF;
1113 
1114   chk_mandatory_col_for_trx_line(
1115                           p_begin_index,
1116                           p_end_index,
1117                           p_return_status,
1118                           p_error_buffer);
1119 
1120   IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1121     RETURN;
1122   END IF;
1123 
1124   IF (g_level_statement >= g_current_runtime_level ) THEN
1125     FND_LOG.STRING(g_level_statement,
1126                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_lines',
1127                    'p_return_status = ' || p_return_status);
1128     FND_LOG.STRING(g_level_statement,
1129                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_lines',
1130                    'p_error_buffer  = ' || p_error_buffer);
1131     FND_LOG.STRING(g_level_statement,
1132                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_lines.END',
1133                    'ZX_TDS_TAX_LINES_POPU_PKG: pop_tax_line_for_trx_lines(-)');
1134   END IF;
1135 
1136 EXCEPTION
1137   WHEN OTHERS THEN
1138     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1139     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1140 
1141     IF (g_level_unexpected >= g_current_runtime_level ) THEN
1142       FND_LOG.STRING(g_level_unexpected,
1143                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_tax_line_for_trx_line',
1144                       p_error_buffer);
1145     END IF;
1146 
1147 END pop_tax_line_for_trx_line;
1148 
1149 -----------------------------------------------------------------------
1150 --  PUBLIC PROCEDURE
1151 --  pop_mandatory_col_for_trx_line
1152 --
1153 --  DESCRIPTION
1154 --  This procedure populates mandatory columns such as tax line id, who
1155 --  columns, etc for all tax lines belonged to a transaction line
1156 --
1157 --  CALLED BY
1158 --    pop_tax_line_for_trx_lines
1159 
1160 PROCEDURE pop_mandatory_col_for_trx_line(
1161             p_begin_index         IN     BINARY_INTEGER,
1162             p_end_index           IN     BINARY_INTEGER,
1163             p_return_status          OUT NOCOPY VARCHAR2,
1164             p_error_buffer           OUT NOCOPY VARCHAR2)
1165 IS
1166 
1167   --bug8517610
1168   l_process_offset_flag   VARCHAR2(1);
1169 
1170 BEGIN
1171 
1172   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1173 
1174   IF (g_level_statement >= g_current_runtime_level ) THEN
1175     FND_LOG.STRING(g_level_statement,
1176                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line.BEGIN',
1177                    'ZX_TDS_TAX_LINES_POPU_PKG: pop_mandatory_col_for_trx_line(+)');
1178     FND_LOG.STRING(g_level_statement,
1179                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1180                    'p_begin_index = ' || to_char(p_begin_index));
1181     FND_LOG.STRING(g_level_statement,
1182                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1183                    'p_end_index = ' || to_char(p_end_index));
1184   END IF;
1185 
1186   p_return_status  := FND_API.G_RET_STS_SUCCESS;
1187 
1188    --bug8517610
1189   l_process_offset_flag := 'N';
1190 
1191   --
1192   -- check if begin_index and end_index have values
1193   --
1194   IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
1195 
1196     IF (g_level_statement >= g_current_runtime_level ) THEN
1197       FND_LOG.STRING(g_level_statement,
1198                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1199                      'Begin index or End index is null' );
1200     END IF;
1201 
1202     RETURN;
1203   END IF;
1204 
1205   FOR i IN p_begin_index ..p_end_index LOOP
1206 
1207     IF (g_level_statement >= g_current_runtime_level ) THEN
1208       FND_LOG.STRING(g_level_statement,
1209                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1210                      'Processing detail line index = ' || to_char(i));
1211     END IF;
1212 
1213     --
1214     -- populate tax_line_id if it is null
1215     --
1216     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_line_id IS NULL THEN
1217       SELECT ZX_LINES_S.nextval
1218         INTO ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_line_id
1219         FROM dual;
1220     END IF;
1221 
1222 /*************************************
1223 *   -- populate assessable_value
1224 *   ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).assessable_value :=
1225 *      ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).taxable_amt;
1226 *
1227 *    -- populate Record_Type_Code
1228 *    IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Record_Type_Code IS NULL THEN
1229 *      ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Record_Type_Code :=
1230 *                                                                'ETAX_CREATED';
1231 *    END IF;
1232 *
1233 *    -- populate Historical_Flag
1234 *    IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Historical_Flag IS NULL THEN
1235 *      ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Historical_Flag := 'N';
1236 *    END IF;
1237 *
1238 ***************************************/
1239 
1240     -- populate who columns
1241 
1242     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).created_by IS NULL THEN
1243       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).created_by :=
1244                                                              fnd_global.user_id;
1245     END IF;
1246 
1247     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).creation_date IS NULL THEN
1248       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).creation_date :=
1249                                                                        sysdate;
1250     END IF;
1251 
1252     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_updated_by :=
1253                                                             fnd_global.user_id;
1254     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_update_login :=
1255                                                             fnd_global.login_id;
1256     ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).last_update_date :=
1257                                                             sysdate;
1258 
1259     --bug8517610
1260 
1261     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).offset_tax_rate_code IS NOT NULL AND
1262        ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source IN ('APPLIED_FROM','ADJUSTED') -- Changed for Bug#16418291
1263     THEN
1264       l_process_offset_flag := 'Y';
1265     END IF;
1266 
1267     IF (g_level_statement >= g_current_runtime_level ) THEN
1268       FND_LOG.STRING(g_level_statement,
1269                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1270                      'Tax_Line_Id = ' ||
1271                       to_char(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_line_id));
1272     END IF;
1273 
1274   END LOOP;
1275 
1276 
1277   --bug8517610
1278   IF l_process_offset_flag = 'Y' THEN
1279     IF (g_level_statement >= g_current_runtime_level ) THEN
1280        FND_LOG.STRING(g_level_statement,
1281                       'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1282                       'Setting Offset_Link_To_Tax_Line_Id');
1283     END IF;
1284 
1285     FOR i IN p_begin_index ..p_end_index LOOP
1286       IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).offset_tax_rate_code IS NOT NULL AND
1287          ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).other_doc_source IN ('APPLIED_FROM','ADJUSTED') -- Changed for Bug#16418291
1288       THEN
1289 
1290         FOR j IN p_begin_index ..p_end_index LOOP
1291           IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(j).tax_rate_code =
1292                ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).offset_tax_rate_code AND
1293              NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(j).tax_apportionment_line_number,1) =
1294                NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_apportionment_line_number,1)
1295           THEN
1296             ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(j).offset_link_to_tax_line_id :=
1297               ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_line_id;
1298 
1299             IF (g_level_statement >= g_current_runtime_level ) THEN
1300               FND_LOG.STRING(g_level_statement,
1301                              'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1302                              'Tax_Line_Id '||
1303                              TO_CHAR(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(j).tax_line_id)||
1304                              ' has Offset_Link_To_Tax_Line_Id '||
1305                              TO_CHAR(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(j).offset_link_to_tax_line_id));
1306             END IF;
1307 
1308           END IF;
1309         END LOOP;
1310 
1311       END IF;
1312     END LOOP;
1313 
1314   END IF;
1315 
1316   IF (g_level_statement >= g_current_runtime_level ) THEN
1317     FND_LOG.STRING(g_level_statement,
1318                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1319                    'p_return_status = ' || p_return_status);
1320     FND_LOG.STRING(g_level_statement,
1321                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1322                    'p_error_buffer  = ' || p_error_buffer);
1323     FND_LOG.STRING(g_level_statement,
1324                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line.END',
1325                    'ZX_TDS_TAX_LINES_POPU_PKG: pop_mandatory_col_for_trx_line(-)');
1326   END IF;
1327 
1328 EXCEPTION
1329   WHEN OTHERS THEN
1330     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1331     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1332 
1333     IF (g_level_unexpected >= g_current_runtime_level ) THEN
1334       FND_LOG.STRING(g_level_unexpected,
1335                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.pop_mandatory_col_for_trx_line',
1336                       p_error_buffer);
1337     END IF;
1338 
1339 END pop_mandatory_col_for_trx_line;
1340 
1341 -----------------------------------------------------------------------
1342 --  PUBLIC PROCEDURE
1343 --  chk_mandatory_col_for_trx_line
1344 --
1345 --  DESCRIPTION
1346 --  This procedure ensures all mandatory columns are not NULL
1347 --  for each tax lines belonged to a transaction line
1348 --
1349 --  CALLED BY
1350 --    pop_tax_line_for_trx_lines
1351 
1352 
1353 PROCEDURE chk_mandatory_col_for_trx_line(
1354             p_begin_index         IN     BINARY_INTEGER,
1355             p_end_index           IN     BINARY_INTEGER,
1356             p_return_status          OUT NOCOPY VARCHAR2,
1357             p_error_buffer           OUT NOCOPY VARCHAR2)
1358 
1359 IS
1360 BEGIN
1361 
1362   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1363 
1364   IF (g_level_statement >= g_current_runtime_level ) THEN
1365     FND_LOG.STRING(g_level_statement,
1366                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line.BEGIN',
1367                    'ZX_TDS_TAX_LINES_POPU_PKG: chk_mandatory_col_for_trx_line(+)');
1368     FND_LOG.STRING(g_level_statement,
1369                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line',
1370                    'p_begin_index = ' || to_char(p_begin_index));
1371     FND_LOG.STRING(g_level_statement,
1372                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line',
1373                    'p_end_index = ' || to_char(p_end_index));
1374   END IF;
1375 
1376   p_return_status  := FND_API.G_RET_STS_SUCCESS;
1377 
1378   --
1379   -- check if begin_index and end_index have values
1380   --
1381   IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
1382 
1383     IF (g_level_statement >= g_current_runtime_level ) THEN
1384       FND_LOG.STRING(g_level_statement,
1385                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line',
1386                      'Begin index or End index is null' );
1387     END IF;
1388 
1389     RETURN;
1390   END IF;
1391 
1392   --
1393   -- check mandatory columns for all tax lines
1394   --
1395   chk_mand_col_all_for_trx_line(
1396                               p_begin_index,
1397                               p_end_index,
1398                               p_return_status,
1399                               p_error_buffer);
1400 
1401   IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1402     RETURN;
1403   END IF;
1404 
1405   --
1406   -- check mandatory columns applied to non
1407   -- manually entered tax lines only
1408   --
1409   chk_non_manual_line_f_trx_line(
1410                               p_begin_index,
1411                               p_end_index,
1412                               p_return_status,
1413                               p_error_buffer);
1414   IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1415     RETURN;
1416   END IF;
1417 
1418   IF (g_level_statement >= g_current_runtime_level ) THEN
1419     FND_LOG.STRING(g_level_statement,
1420                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line',
1421                    'p_return_status = ' || p_return_status);
1422     FND_LOG.STRING(g_level_statement,
1423                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line',
1424                    'p_error_buffer  = ' || p_error_buffer);
1425     FND_LOG.STRING(g_level_statement,
1426                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line.END',
1427                    'ZX_TDS_TAX_LINES_POPU_PKG: chk_mandatory_col_for_trx_line(-)');
1428   END IF;
1429 
1430 EXCEPTION
1431   WHEN OTHERS THEN
1432     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1433     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1434 
1435     IF (g_level_unexpected >= g_current_runtime_level ) THEN
1436       FND_LOG.STRING(g_level_unexpected,
1437                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mandatory_col_for_trx_line',
1438                       p_error_buffer);
1439     END IF;
1440 
1441 END chk_mandatory_col_for_trx_line;
1442 -----------------------------------------------------------------------
1443 --  PUBLIC PROCEDURE
1444 --  chk_mand_col_all_for_trx_line
1445 --
1446 --  DESCRIPTION
1447 --  This procedure ensures all mandatory columns of a manual or  non
1448 --  manual tax line are not NULL  for each tax line belonged to
1449 --  a transaction line
1450 --
1451 --  CALLED BY
1452 --    chk_mandatory_col_for_trx_line
1453 
1454 PROCEDURE chk_mand_col_all_for_trx_line(
1455             p_begin_index         IN     BINARY_INTEGER,
1456             p_end_index           IN     BINARY_INTEGER,
1457             p_return_status          OUT NOCOPY VARCHAR2,
1458             p_error_buffer           OUT NOCOPY VARCHAR2)
1459 IS
1460 BEGIN
1461 
1462   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1463 
1464   IF (g_level_statement >= g_current_runtime_level ) THEN
1465     FND_LOG.STRING(g_level_statement,
1466                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line.BEGIN',
1467                    'ZX_TDS_TAX_LINES_POPU_PKG: chk_mand_col_all_for_trx_line(+)');
1468     FND_LOG.STRING(g_level_statement,
1469                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line',
1470                    'p_begin_index = ' || to_char(p_begin_index));
1471     FND_LOG.STRING(g_level_statement,
1472                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line',
1473                    'p_end_index = ' || to_char(p_end_index));
1474   END IF;
1475 
1476   p_return_status  := FND_API.G_RET_STS_SUCCESS;
1477 
1478   --
1479   -- check if begin_index and end_index have values
1480   --
1481   IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
1482 
1483     IF (g_level_statement >= g_current_runtime_level ) THEN
1484       FND_LOG.STRING(g_level_statement,
1485                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line',
1486                      'Begin index or End index is null' );
1487     END IF;
1488 
1489     RETURN;
1490   END IF;
1491 
1492   FOR i IN p_begin_index ..p_end_index LOOP
1493 
1494     IF (g_level_statement >= g_current_runtime_level ) THEN
1495       FND_LOG.STRING(g_level_statement,
1496                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line',
1497                      'processing detail line index = ' || to_char(i));
1498     END IF;
1499 
1500     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).application_id IS NULL THEN
1501       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1502       p_error_buffer  := 'application_id can not be NULL';
1503     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).entity_code IS NULL THEN
1504       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1505       p_error_buffer  := 'entity_code can not be NULL';
1506     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).event_class_code IS NULL THEN
1507       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1508       p_error_buffer  := 'event_class_code can not be NULL';
1509     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).event_type_code IS NULL THEN
1510       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1511       p_error_buffer  := 'event_type_code can not be NULL';
1512     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_id IS NULL THEN
1513       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1514       p_error_buffer  := 'trx_id can not be NULL';
1515     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_id IS NULL THEN
1516       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1517       p_error_buffer  := 'trx_line_id can not be NULL';
1518     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_level_type IS NULL THEN
1519       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1520       p_error_buffer  := 'trx_level_type can not be NULL';
1521 /*
1522     --  Bug#4572001- content_owner_id can be NULL
1523     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).content_owner_id IS NULL THEN
1524       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1525       p_error_buffer  := 'content_owner_id can not be NULL';
1526 */
1527     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_regime_id IS NULL THEN
1528       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1529       p_error_buffer  := 'tax_regime_id can not be NULL';
1530     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_regime_code IS NULL THEN
1531       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1532       p_error_buffer  := 'tax_regime_code can not be NULL';
1533     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_id IS NULL THEN
1534       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1535       p_error_buffer  := 'tax_id can not be NULL';
1536     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax IS NULL THEN
1537       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1538       p_error_buffer  := 'tax can not be NULL';
1539     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_status_id IS NULL THEN
1540       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1541       p_error_buffer  := 'tax_status_id can not be NULL';
1542     ELSIF  ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_status_code IS NULL THEN
1543       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1544       p_error_buffer  := 'tax_status_code can not be NULL';
1545     END IF;
1546 
1547     IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1548       EXIT;
1549     END IF;
1550 
1551   END LOOP;
1552 
1553   IF (g_level_statement >= g_current_runtime_level ) THEN
1554     FND_LOG.STRING(g_level_statement,
1555                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line',
1556                    'p_return_status = ' || p_return_status);
1557     FND_LOG.STRING(g_level_statement,
1558                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line',
1559                    'p_error_buffer  = ' || p_error_buffer);
1560     FND_LOG.STRING(g_level_statement,
1561                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line.END',
1562                    'ZX_TDS_TAX_LINES_POPU_PKG: chk_mand_col_all_for_trx_line(-)');
1563   END IF;
1564 
1565 EXCEPTION
1566   WHEN OTHERS THEN
1567     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1568     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1569 
1570     IF (g_level_unexpected >= g_current_runtime_level ) THEN
1571       FND_LOG.STRING(g_level_unexpected,
1572                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_mand_col_all_for_trx_line',
1573                       p_error_buffer);
1574     END IF;
1575 
1576 END chk_mand_col_all_for_trx_line;
1577 
1578 -----------------------------------------------------------------------
1579 --  PUBLIC PROCEDURE
1580 --  chk_non_manual_line_f_trx_line
1581 --
1582 --  DESCRIPTION
1583 --  This procedure ensures all mandatory columns of a non manually
1584 --  entered tax line are not NULL  for each tax lines belonged to
1585 --  a transaction line
1586 --
1587 --  CALLED BY
1588 --    chk_mandatory_col_for_trx_line
1589 
1590 
1591 PROCEDURE chk_non_manual_line_f_trx_line(
1592             p_begin_index         IN     BINARY_INTEGER,
1593             p_end_index           IN     BINARY_INTEGER,
1594             p_return_status          OUT NOCOPY VARCHAR2,
1595             p_error_buffer           OUT NOCOPY VARCHAR2)
1596 IS
1597 BEGIN
1598 
1599   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1600 
1601   IF (g_level_statement >= g_current_runtime_level ) THEN
1602     FND_LOG.STRING(g_level_statement,
1603                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line.BEGIN',
1604                    'ZX_TDS_TAX_LINES_POPU_PKG: chk_non_manual_line_f_trx_line(+)');
1605     FND_LOG.STRING(g_level_statement,
1606                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line',
1607                    'p_begin_index = ' || to_char(p_begin_index));
1608     FND_LOG.STRING(g_level_statement,
1609                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line',
1610                    'p_end_index = ' || to_char(p_end_index));
1611   END IF;
1612 
1613   p_return_status  := FND_API.G_RET_STS_SUCCESS;
1614 
1615   --
1616   -- check if begin_index and end_index have values
1617   --
1618   IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
1619 
1620     IF (g_level_statement >= g_current_runtime_level ) THEN
1621       FND_LOG.STRING(g_level_statement,
1622                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line',
1623                      'Begin index or End index is null' );
1624     END IF;
1625 
1626     RETURN;
1627   END IF;
1628 
1629   FOR i IN p_begin_index ..p_end_index LOOP
1630 
1631     IF (g_level_statement >= g_current_runtime_level ) THEN
1632       FND_LOG.STRING(g_level_statement,
1633                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line',
1634                      'processing detail line index = ' || to_char(i));
1635     END IF;
1636 
1637     IF (NVL(ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).Manually_Entered_Flag,'N') = 'N') THEN
1638 
1639       IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_date IS NULL THEN
1640         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1641         p_error_buffer  := 'trx_date can not be NULL';
1642      -- ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).trx_line_date IS NULL THEN
1643       --  p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1644       --  p_error_buffer  := 'trx_line_date can not be NULL';
1645       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).ledger_id IS NULL THEN
1646         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1647         p_error_buffer  := 'ledger_id can not be NULL';
1648 
1649 /* comment out only for AP uptake testing purpose. Change to reversed later. chku
1650   ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).establishment_id IS NULL THEN
1651     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1652     p_error_buffer  := 'establishment_id can not be NULL';
1653 */
1654       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).legal_entity_id IS NULL THEN
1655         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1656         p_error_buffer  := 'legal_entity_id can not be NULL';
1657       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_id IS NULL THEN
1658         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1659         p_error_buffer  := 'tax_rate_id can not be NULL';
1660       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate_code IS NULL THEN
1661         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1662         p_error_buffer  := 'tax_rate_code  can not be NULL';
1663       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_rate IS NULL THEN
1664         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1665         p_error_buffer  := 'tax_rate can not be NULL';
1666 
1667 /* comment out only for AP uptake testing purpose. Change to reversed later. chku
1668   ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_apportionment_line_number IS NULL THEN
1669     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1670     p_error_buffer  := 'tax_apportionment_line_number can not be NULL';
1671 */
1672       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_date IS NULL THEN
1673         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1674         p_error_buffer  := 'tax_date can not be NULL';
1675       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_determine_date IS NULL THEN
1676         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1677         p_error_buffer  := 'tax_determine_date can not be NULL';
1678       ELSIF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).tax_point_date IS NULL THEN
1679         p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1680         p_error_buffer  := 'tax_point_date can not be NULL';
1681       END IF;
1682 
1683       IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1684         EXIT;
1685       END IF;
1686     END IF;     -- non manual tax line
1687   END LOOP;
1688 
1689   IF (g_level_statement >= g_current_runtime_level ) THEN
1690     FND_LOG.STRING(g_level_statement,
1691                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line',
1692                    'p_return_status = ' || p_return_status);
1693     FND_LOG.STRING(g_level_statement,
1694                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line',
1695                    'p_error_buffer = '  || p_error_buffer);
1696     FND_LOG.STRING(g_level_statement,
1697                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line.END',
1698                    'ZX_TDS_TAX_LINES_POPU_PKG: chk_non_manual_line_f_trx_line(-)');
1699   END IF;
1700 
1701 EXCEPTION
1702   WHEN OTHERS THEN
1703     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1704     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1705 
1706     IF (g_level_unexpected >= g_current_runtime_level ) THEN
1707       FND_LOG.STRING(g_level_unexpected,
1708                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.chk_non_manual_line_f_trx_line',
1709                       p_error_buffer);
1710     END IF;
1711 
1712 END chk_non_manual_line_f_trx_line;
1713 
1714 
1715 -----------------------------------------------------------------------
1716 --  PUBLIC PROCEDURE
1717 --  process_cancel_tax_lines
1718 --
1719 --  DESCRIPTION
1720 --  This procedure brings all canceled tax lines from zx_lines into
1721 --  detail tax lines global temp table and marks them as cancel
1722 --
1723 --  CALLED BY
1724 --   ZX_TDS_TAX_LINES_DETM_PKG
1725 
1726 PROCEDURE process_cancel_tax_lines(
1727             p_event_class_rec   IN     ZX_API_PUB.EVENT_CLASS_REC_TYPE,
1728             p_return_status         OUT NOCOPY VARCHAR2,
1729             p_error_buffer          OUT NOCOPY VARCHAR2)
1730 
1731 IS
1732 BEGIN
1733 
1734   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1735 
1736   IF (g_level_procedure >= g_current_runtime_level ) THEN
1737     FND_LOG.STRING(g_level_procedure,
1738                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_tax_lines.BEGIN',
1739                    'ZX_TDS_TAX_LINES_POPU_PKG: process_cancel_tax_lines(+)');
1740   END IF;
1741 
1742   p_return_status := FND_API.G_RET_STS_SUCCESS;
1743 
1744 -- bug 8470599 forcing the driving table in select clause from zx_lines_det_factors
1745     INSERT INTO zx_detail_tax_lines_gt
1746     (      tax_line_id,
1747            internal_organization_id,
1748            application_id,
1749            entity_code,
1750            event_class_code,
1751            event_type_code,
1752            trx_id,
1753            trx_line_id,
1754            trx_level_type,
1755            trx_line_number,
1756            doc_event_status,
1757            -- line_event_status,
1758            tax_event_class_code,
1759            tax_event_type_code,
1760            tax_line_number,
1761            content_owner_id,
1762            tax_regime_id,
1763            tax_regime_code,
1764            tax_id,
1765            tax,
1766            tax_status_id,
1767            tax_status_code,
1768            tax_rate_id,
1769            tax_rate_code,
1770            tax_rate,
1771            tax_apportionment_line_number,
1772            trx_id_level2,
1773            trx_id_level3,
1774            trx_id_level4,
1775            trx_id_level5,
1776            trx_id_level6,
1777            trx_user_key_level1,
1778            trx_user_key_level2,
1779            trx_user_key_level3,
1780            trx_user_key_level4,
1781            trx_user_key_level5,
1782            trx_user_key_level6,
1783            mrc_tax_line_flag,
1784            ledger_id,
1785            establishment_id,
1786            legal_entity_id,
1787            legal_entity_tax_reg_number,
1788            hq_estb_reg_number,
1789            hq_estb_party_tax_prof_id,
1790            currency_conversion_date,
1791            currency_conversion_type,
1792            currency_conversion_rate,
1793            tax_currency_conversion_date,
1794            tax_currency_conversion_type,
1795            tax_currency_conversion_rate,
1796            trx_currency_code,
1797            minimum_accountable_unit,
1798            precision,
1799            trx_number,
1800            trx_date,
1801            unit_price,
1802            line_amt,
1803            trx_line_quantity,
1804            tax_base_modifier_rate,
1805            ref_doc_application_id,
1806            ref_doc_entity_code,
1807            ref_doc_event_class_code,
1808            ref_doc_trx_id,
1809            ref_doc_line_id,
1810            ref_doc_line_quantity,
1811            other_doc_line_amt,
1812            other_doc_line_tax_amt,
1813            other_doc_line_taxable_amt,
1814            unrounded_taxable_amt,
1815            unrounded_tax_amt,
1816            related_doc_application_id,
1817            related_doc_entity_code,
1818            related_doc_event_class_code,
1819            related_doc_trx_id,
1820            related_doc_number,
1821            related_doc_date,
1822            applied_from_application_id,
1823            applied_from_event_class_code,
1824            applied_from_entity_code,
1825            applied_from_trx_id,
1826            applied_from_line_id,
1827            applied_from_trx_level_type,
1828            applied_from_trx_number,
1829            adjusted_doc_application_id,
1830            adjusted_doc_entity_code,
1831            adjusted_doc_event_class_code,
1832            adjusted_doc_trx_id,
1833            adjusted_doc_line_id,
1834            adjusted_doc_trx_level_type,
1835            adjusted_doc_number,
1836            adjusted_doc_date,
1837            applied_to_application_id,
1838            applied_to_event_class_code,
1839            applied_to_entity_code,
1840            applied_to_trx_id,
1841            applied_to_line_id,
1842            applied_to_trx_number,
1843            summary_tax_line_id,
1844            offset_link_to_tax_line_id,
1845            offset_flag,
1846            process_for_recovery_flag,
1847            tax_jurisdiction_id,
1848            tax_jurisdiction_code,
1849            place_of_supply,
1850            place_of_supply_type_code,
1851            place_of_supply_result_id,
1852            tax_date_rule_id,
1853            tax_date,
1854            tax_determine_date,
1855            tax_point_date,
1856            trx_line_date,
1857            tax_type_code,
1858            tax_code,
1859            tax_registration_id,
1860            tax_registration_number,
1861            registration_party_type,
1862            rounding_level_code,
1863            rounding_rule_code,
1864            rounding_lvl_party_tax_prof_id,
1865            rounding_lvl_party_type,
1866            compounding_tax_flag,
1867            orig_tax_status_id,
1868            orig_tax_status_code,
1869            orig_tax_rate_id,
1870            orig_tax_rate_code,
1871            orig_tax_rate,
1872            orig_tax_jurisdiction_id,
1873            orig_tax_jurisdiction_code,
1874            orig_tax_amt_included_flag,
1875            orig_self_assessed_flag,
1876            tax_currency_code,
1877            tax_amt,
1878            tax_amt_tax_curr,
1879            tax_amt_funcl_curr,
1880            taxable_amt,
1881            taxable_amt_tax_curr,
1882            taxable_amt_funcl_curr,
1883            orig_taxable_amt,
1884            orig_taxable_amt_tax_curr,
1885            cal_tax_amt,
1886            cal_tax_amt_tax_curr,
1887            cal_tax_amt_funcl_curr,
1888            orig_tax_amt,
1889            orig_tax_amt_tax_curr,
1890            rec_tax_amt,
1891            rec_tax_amt_tax_curr,
1892            rec_tax_amt_funcl_curr,
1893            nrec_tax_amt,
1894            nrec_tax_amt_tax_curr,
1895            nrec_tax_amt_funcl_curr,
1896            tax_exemption_id,
1897            tax_rate_before_exemption,
1898            tax_rate_name_before_exemption,
1899            exempt_rate_modifier,
1900            exempt_certificate_number,
1901            exempt_reason,
1902            exempt_reason_code,
1903            tax_exception_id,
1904            tax_rate_before_exception,
1905            tax_rate_name_before_exception,
1906            exception_rate,
1907            tax_apportionment_flag,
1908            historical_flag,
1909            taxable_basis_formula,
1910            tax_calculation_formula,
1911            cancel_flag,
1912            purge_flag,
1913            delete_flag,
1914            tax_amt_included_flag,
1915            self_assessed_flag,
1916            overridden_flag,
1917            manually_entered_flag,
1918            freeze_until_overridden_flag,
1919            copied_from_other_doc_flag,
1920            recalc_required_flag,
1921            settlement_flag,
1922            item_dist_changed_flag,
1923            associated_child_frozen_flag,
1924            tax_only_line_flag,
1925            compounding_dep_tax_flag,
1926            last_manual_entry,
1927            tax_provider_id,
1928            record_type_code,
1929            reporting_period_id,
1930            legal_message_appl_2,
1931            legal_message_status,
1932            legal_message_rate,
1933            legal_message_basis,
1934            legal_message_calc,
1935            legal_message_threshold,
1936            legal_message_pos,
1937            legal_message_trn,
1938            legal_message_exmpt,
1939            legal_message_excpt,
1940            tax_regime_template_id,
1941            tax_applicability_result_id,
1942            direct_rate_result_id,
1943            status_result_id,
1944            rate_result_id,
1945            basis_result_id,
1946            thresh_result_id,
1947            calc_result_id,
1948            tax_reg_num_det_result_id,
1949            eval_exmpt_result_id,
1950            eval_excpt_result_id,
1951            enforce_from_natural_acct_flag,
1952            tax_hold_code,
1953            tax_hold_released_code,
1954            prd_total_tax_amt,
1955            prd_total_tax_amt_tax_curr,
1956            prd_total_tax_amt_funcl_curr,
1957            internal_org_location_id,
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            numeric1,
1991            numeric2,
1992            numeric3,
1993            numeric4,
1994            numeric5,
1995            numeric6,
1996            numeric7,
1997            numeric8,
1998            numeric9,
1999            numeric10,
2000            char1,
2001            char2,
2002            char3,
2003            char4,
2004            char5,
2005            char6,
2006            char7,
2007            char8,
2008            char9,
2009            char10,
2010            date1,
2011            date2,
2012            date3,
2013            date4,
2014            date5,
2015            date6,
2016            date7,
2017            date8,
2018            date9,
2019            date10,
2020            tax_rate_type,
2021            created_by,
2022            creation_date,
2023            last_updated_by,
2024            last_update_date,
2025            last_update_login,
2026            line_assessable_value,
2027            legal_justification_text1,
2028            legal_justification_text2,
2029            legal_justification_text3,
2030            reporting_currency_code,
2031            trx_line_index,
2032            offset_tax_rate_code,
2033            proration_code,
2034            other_doc_source,
2035            reporting_only_flag,
2036            ctrl_total_line_tx_amt,
2037            sync_with_prvdr_flag,
2038            interface_entity_code,
2039            interface_tax_line_id,
2040            taxing_juris_geography_id,
2041            adjusted_doc_tax_line_id,
2042            object_version_number,
2043            legal_reporting_status,
2044            account_source_tax_rate_id
2045     )
2046     (SELECT /*+ leading(G) index(l ZX_LINES_u1 ) */
2047            L.tax_line_id,
2048            L.internal_organization_id,
2049            L.application_id,
2050            L.entity_code,
2051            L.event_class_code,
2052            L.event_type_code,
2053            L.trx_id,
2054            L.trx_line_id,
2055            L.trx_level_type,
2056            L.trx_line_number,
2057            L.doc_event_status,
2058            -- L.line_event_status,
2059            L.tax_event_class_code,
2060            L.tax_event_type_code,
2061            L.tax_line_number,
2062            L.content_owner_id,
2063            L.tax_regime_id,
2064            L.tax_regime_code,
2065            L.tax_id,
2066            L.tax,
2067            L.tax_status_id,
2068            L.tax_status_code,
2069            L.tax_rate_id,
2070            L.tax_rate_code,
2071            L.tax_rate,
2072            L.tax_apportionment_line_number,
2073            L.trx_id_level2,
2074            L.trx_id_level3,
2075            L.trx_id_level4,
2076            L.trx_id_level5,
2077            L.trx_id_level6,
2078            L.trx_user_key_level1,
2079            L.trx_user_key_level2,
2080            L.trx_user_key_level3,
2081            L.trx_user_key_level4,
2082            L.trx_user_key_level5,
2083            L.trx_user_key_level6,
2084            L.mrc_tax_line_flag,
2085            G.ledger_id,
2086            G.establishment_id,
2087            G.legal_entity_id,
2088            L.legal_entity_tax_reg_number,
2089            L.hq_estb_reg_number,
2090            L.hq_estb_party_tax_prof_id,
2091            G.currency_conversion_date,
2092            G.currency_conversion_type,
2093            G.currency_conversion_rate,
2094            L.tax_currency_conversion_date,
2095            L.tax_currency_conversion_type,
2096            L.tax_currency_conversion_rate,
2097            L.trx_currency_code,
2098            L.minimum_accountable_unit,
2099            L.precision,
2100            G.trx_number,
2101            G.trx_date,
2102            L.unit_price,
2103            L.line_amt,
2104            L.trx_line_quantity,
2105            L.tax_base_modifier_rate,
2106            L.ref_doc_application_id,
2107            L.ref_doc_entity_code,
2108            L.ref_doc_event_class_code,
2109            L.ref_doc_trx_id,
2110            L.ref_doc_line_id,
2111            L.ref_doc_line_quantity,
2112            L.other_doc_line_amt,
2113            L.other_doc_line_tax_amt,
2114            L.other_doc_line_taxable_amt,
2115            0,
2116            0,                                     -- L.unrounded_tax_amt,
2117            L.related_doc_application_id,
2118            L.related_doc_entity_code,
2119            L.related_doc_event_class_code,
2120            L.related_doc_trx_id,
2121            L.related_doc_number,
2122            L.related_doc_date,
2123            L.applied_from_application_id,
2124            L.applied_from_event_class_code,
2125            L.applied_from_entity_code,
2126            L.applied_from_trx_id,
2127            L.applied_from_line_id,
2128            L.applied_from_trx_level_type,
2129            L.applied_from_trx_number,
2130            L.adjusted_doc_application_id,
2131            L.adjusted_doc_entity_code,
2132            L.adjusted_doc_event_class_code,
2133            L.adjusted_doc_trx_id,
2134            L.adjusted_doc_line_id,
2135            L.adjusted_doc_trx_level_type,
2136            L.adjusted_doc_number,
2137            L.adjusted_doc_date,
2138            L.applied_to_application_id,
2139            L.applied_to_event_class_code,
2140            L.applied_to_entity_code,
2141            L.applied_to_trx_id,
2142            L.applied_to_line_id,
2143            L.applied_to_trx_number,
2144            L.summary_tax_line_id,
2145            L.offset_link_to_tax_line_id,
2146            L.offset_flag,
2147            DECODE(L.historical_flag,'Y','Y',L.process_for_recovery_flag),
2148            L.tax_jurisdiction_id,
2149            L.tax_jurisdiction_code,
2150            L.place_of_supply,
2151            L.place_of_supply_type_code,
2152            L.place_of_supply_result_id,
2153            L.tax_date_rule_id,
2154            L.tax_date,
2155            L.tax_determine_date,
2156            L.tax_point_date,
2157            L.trx_line_date,
2158            L.tax_type_code,
2159            L.tax_code,
2160            L.tax_registration_id,
2161            L.tax_registration_number,
2162            L.registration_party_type,
2163            L.rounding_level_code,
2164            L.rounding_rule_code,
2165            L.rounding_lvl_party_tax_prof_id,
2166            L.rounding_lvl_party_type,
2167            L.compounding_tax_flag,
2168            L.orig_tax_status_id,
2169            L.orig_tax_status_code,
2170            L.orig_tax_rate_id,
2171            L.orig_tax_rate_code,
2172            L.orig_tax_rate,
2173            L.orig_tax_jurisdiction_id,
2174            L.orig_tax_jurisdiction_code,
2175            L.orig_tax_amt_included_flag,
2176            L.orig_self_assessed_flag,
2177            L.tax_currency_code,
2178            0,                                     -- L.tax_amt,
2179            0,                                     -- L.tax_amt_tax_curr,
2180            0,                                     -- L.tax_amt_funcl_curr,
2181            0,                                     -- L.taxable_amt
2182            0,                                     -- L.taxable_amt_tax_curr,
2183            0,                                     -- L.taxable_amt_funcl_curr,
2184            DECODE(L.orig_taxable_amt,NULL,L.taxable_amt,L.orig_taxable_amt),
2185 --orig_taxable_amt
2186            DECODE(L.orig_taxable_amt_tax_curr,NULL,L.taxable_amt_tax_curr,L.orig_taxable_amt_tax_curr),
2187 -- orig_taxable_amt_tax_curr
2188            0 ,                                     -- L.cal_tax_amt,
2189            0 ,                                     -- L.cal_tax_amt_tax_curr,
2190            0 ,                                     -- L.cal_tax_amt_funcl_curr,
2191            DECODE(L.orig_tax_amt,NULL,L.tax_amt,L.orig_tax_amt),
2192 --L.orig_tax_amt
2193            DECODE(L.orig_tax_amt_tax_curr,NULL, L.tax_amt_tax_curr,
2194 L.orig_tax_amt_tax_curr),                         -- L.orig_tax_amt_tax_curr
2195            0,                                     --L.rec_tax_amt,
2196            0,                                     --L.rec_tax_amt_tax_curr,
2197            0,                                     --L.rec_tax_amt_funcl_curr,
2198            0,                                  -- L.nrec_tax_amt,
2199            0,                                  --L.nrec_tax_amt_tax_curr,
2200            0,                                  -- L.nrec_tax_amt_funcl_curr,
2201            L.tax_exemption_id,
2202            L.tax_rate_before_exemption,
2203            L.tax_rate_name_before_exemption,
2204            L.exempt_rate_modifier,
2205            L.exempt_certificate_number,
2206            L.exempt_reason,
2207            L.exempt_reason_code,
2208            L.tax_exception_id,
2209            L.tax_rate_before_exception,
2210            L.tax_rate_name_before_exception,
2211            L.exception_rate,
2212            L.tax_apportionment_flag,
2213            L.historical_flag,
2214            L.taxable_basis_formula,
2215            L.tax_calculation_formula,
2216            L.cancel_flag,
2217            L.purge_flag,
2218            L.delete_flag,
2219            L.tax_amt_included_flag,
2220            L.self_assessed_flag,
2221            L.overridden_flag,
2222            L.manually_entered_flag,
2223            L.freeze_until_overridden_flag,
2224            L.copied_from_other_doc_flag,
2225            L.recalc_required_flag,
2226            L.settlement_flag,
2227            L.item_dist_changed_flag,
2228            L.associated_child_frozen_flag,
2229            L.tax_only_line_flag,
2230            L.compounding_dep_tax_flag,
2231            L.last_manual_entry,
2232            L.tax_provider_id,
2233            L.record_type_code,
2234            L.reporting_period_id,
2235            L.legal_message_appl_2,
2236            L.legal_message_status,
2237            L.legal_message_rate,
2238            L.legal_message_basis,
2239            L.legal_message_calc,
2240            L.legal_message_threshold,
2241            L.legal_message_pos,
2242            L.legal_message_trn,
2243            L.legal_message_exmpt,
2244            L.legal_message_excpt,
2245            L.tax_regime_template_id,
2246            L.tax_applicability_result_id,
2247            L.direct_rate_result_id,
2248            L.status_result_id,
2249            L.rate_result_id,
2250            L.basis_result_id,
2251            L.thresh_result_id,
2252            L.calc_result_id,
2253            L.tax_reg_num_det_result_id,
2254            L.eval_exmpt_result_id,
2255            L.eval_excpt_result_id,
2256            L.enforce_from_natural_acct_flag,
2257            NULL,                                  --L.tax_hold_code,
2258            NULL,                                  -- L.tax_hold_released_code,
2259            NULL,                                  --L.prd_total_tax_amt,
2260            NULL,                                  --L.prd_total_tax_amt_tax_curr,
2261            NULL,                                  --L.prd_total_tax_amt_funcl_curr,
2262            L.internal_org_location_id,
2263            L.attribute_category,
2264            L.attribute1,
2265            L.attribute2,
2266            L.attribute3,
2267            L.attribute4,
2268            L.attribute5,
2269            L.attribute6,
2270            L.attribute7,
2271            L.attribute8,
2272            L.attribute9,
2273            L.attribute10,
2274            L.attribute11,
2275            L.attribute12,
2276            L.attribute13,
2277            L.attribute14,
2278            L.attribute15,
2279            L.global_attribute_category,
2280            L.global_attribute1,
2281            L.global_attribute2,
2282            L.global_attribute3,
2283            L.global_attribute4,
2284            L.global_attribute5,
2285            L.global_attribute6,
2286            L.global_attribute7,
2287            L.global_attribute8,
2288            L.global_attribute9,
2289            L.global_attribute10,
2290            L.global_attribute11,
2291            L.global_attribute12,
2292            L.global_attribute13,
2293            L.global_attribute14,
2294            L.global_attribute15,
2295            L.numeric1,
2296            L.numeric2,
2297            L.numeric3,
2298            L.numeric4,
2299            L.numeric5,
2300            L.numeric6,
2301            L.numeric7,
2302            L.numeric8,
2303            L.numeric9,
2304            L.numeric10,
2305            L.char1,
2306            L.char2,
2307            L.char3,
2308            L.char4,
2309            L.char5,
2310            L.char6,
2311            L.char7,
2312            L.char8,
2313            L.char9,
2314            L.char10,
2315            L.date1,
2316            L.date2,
2317            L.date3,
2318            L.date4,
2319            L.date5,
2320            L.date6,
2321            L.date7,
2322            L.date8,
2323            L.date9,
2324            L.date10,
2325            L.tax_rate_type,
2326            L.created_by,
2327            L.creation_date,
2328            L.last_updated_by,
2329            L.last_update_date,
2330            L.last_update_login,
2331            L.line_assessable_value,
2332            L.legal_justification_text1,
2333            L.legal_justification_text2,
2334            L.legal_justification_text3,
2335            L.reporting_currency_code,
2336            NULL, --L.trx_line_index,
2337            L.offset_tax_rate_code,
2338            NULL, -- L.proration_code,
2339            NULL, --L.other_doc_source,
2340            L.reporting_only_flag,
2341            L.ctrl_total_line_tx_amt,
2342            L.sync_with_prvdr_flag,
2343            L.interface_entity_code,
2344            L.interface_tax_line_id,
2345            L.taxing_juris_geography_id,
2346            L.adjusted_doc_tax_line_id,
2347            1,
2348            L.legal_reporting_status,
2349            L.account_source_tax_rate_id
2350      FROM ZX_LINES L,
2351           zx_lines_det_factors G
2352     WHERE G.application_id = p_event_class_rec.application_id     AND
2353           G.entity_code = p_event_class_rec.entity_code           AND
2354           G.event_class_code = p_event_class_rec.event_class_code AND
2355   --        G.trx_id = p_event_class_rec.trx_id                     AND
2356           G.event_id = p_event_class_rec.event_id                 AND
2357           L.trx_id  = G.trx_id                                    AND
2358           L.trx_line_id  = G.trx_line_id                          AND
2359           L.trx_level_type  = G.trx_level_type                    AND
2360           L.event_class_code = G.event_class_code
2361       AND L.entity_code = G.entity_code
2362       AND L.application_id = G.application_id
2363 --    AND L.subscriber_id = G.subscriber_id
2364       AND G.line_level_action NOT IN ('SYNCHRONIZE', 'CANCEL', 'NO_CHANGE','DISCARD')
2365       AND L.Cancel_Flag = 'Y'
2366 --      AND (L.tax_provider_id IS NOT NULL OR L.Cancel_Flag = 'Y')
2367       AND NOT EXISTS
2368           (SELECT /*+ INDEX(gt ZX_DETAIL_TAX_LINES_GT_U1) */
2369                   1
2370              FROM zx_detail_tax_lines_gt gt
2371             WHERE gt.application_id = L.application_id
2372               AND gt.entity_code = L.entity_code
2373               AND gt.event_class_code = L.event_class_code
2374               AND gt.trx_id  = L.trx_id
2375               AND gt.trx_line_id  = L.trx_line_id
2376               AND gt.trx_level_type  = L.trx_level_type
2377               AND gt.tax_regime_code  = L.tax_regime_code
2378               AND gt.tax  = L.tax
2379               AND NVL(gt.tax_apportionment_line_number, -999999) =
2380                               NVL(L.tax_apportionment_line_number, -999999)
2381           )
2382     );
2383 
2384   IF (g_level_statement >= g_current_runtime_level ) THEN
2385     FND_LOG.STRING(g_level_statement,
2386                   'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_tax_lines',
2387                   'Number of Rows Inserted: ' || SQL%ROWCOUNT);
2388   END IF;
2389 
2390   IF (g_level_procedure >= g_current_runtime_level ) THEN
2391     FND_LOG.STRING(g_level_procedure,
2392                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_tax_lines',
2393                    'p_return_status = ' || p_return_status);
2394     FND_LOG.STRING(g_level_procedure,
2395                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_tax_lines',
2396                    'p_error_buffer  = ' || p_error_buffer);
2397     FND_LOG.STRING(g_level_procedure,
2398                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_tax_lines.END',
2399                    'ZX_TDS_TAX_LINES_POPU_PKG: process_cancel_tax_lines(-)');
2400   END IF;
2401 
2402 EXCEPTION
2403     WHEN OTHERS THEN
2404       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2405       p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2406 
2407       IF (g_level_unexpected >= g_current_runtime_level ) THEN
2408         FND_LOG.STRING(g_level_unexpected,
2409                        'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_tax_lines',
2410                         p_error_buffer);
2411       END IF;
2412 
2413 END process_cancel_tax_lines;
2414 
2415 -----------------------------------------------------------------------
2416 --  PUBLIC PROCEDURE
2417 --  process_frozen_tax_lines
2418 --
2419 --  DESCRIPTION
2420 --  This procedure brings all frozen tax lines which found not
2421 --  applicable into detail tax lines global temp table and
2422 --  mark them as cancel
2423 --
2424 --  CALLED BY
2425 --   ZX_TDS_TAX_LINES_DETM_PKG
2426 
2427 PROCEDURE process_frozen_tax_lines(
2428             p_event_class_rec   IN     ZX_API_PUB.EVENT_CLASS_REC_TYPE,
2429             p_return_status         OUT NOCOPY VARCHAR2,
2430             p_error_buffer          OUT NOCOPY VARCHAR2)
2431 
2432 IS
2433 BEGIN
2434 
2435   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2436 
2437   IF (g_level_procedure >= g_current_runtime_level ) THEN
2438     FND_LOG.STRING(g_level_procedure,
2439                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_frozen_tax_lines.BEGIN',
2440                    'ZX_TDS_TAX_LINES_POPU_PKG: process_frozen_tax_lines(+)');
2441   END IF;
2442 
2443   p_return_status := FND_API.G_RET_STS_SUCCESS;
2444 
2445   -- bug 6906427: 1. Add code to handle OVERRIDE_TAX
2446   --              2. Make changes for UPDATE
2447   --
2448   IF p_event_class_rec.tax_event_type_code = 'OVERRIDE_TAX' THEN
2449 
2450     -- Fetch back canceled tax lines with frozen tax distributions
2451     --
2452 
2453 -- bug 8470599 forcing the driving table in select clause from zx_lines_det_factors
2454     INSERT INTO zx_detail_tax_lines_gt
2455     (      tax_line_id,
2456            internal_organization_id,
2457            application_id,
2458            entity_code,
2459            event_class_code,
2460            event_type_code,
2461            trx_id,
2462            trx_line_id,
2463            trx_level_type,
2464            trx_line_number,
2465            doc_event_status,
2466            tax_event_class_code,
2467            tax_event_type_code,
2468            tax_line_number,
2469            content_owner_id,
2470            tax_regime_id,
2471            tax_regime_code,
2472            tax_id,
2473            tax,
2474            tax_status_id,
2475            tax_status_code,
2476            tax_rate_id,
2477            tax_rate_code,
2478            tax_rate,
2479            tax_apportionment_line_number,
2480            trx_id_level2,
2481            trx_id_level3,
2482            trx_id_level4,
2483            trx_id_level5,
2484            trx_id_level6,
2485            trx_user_key_level1,
2486            trx_user_key_level2,
2487            trx_user_key_level3,
2488            trx_user_key_level4,
2489            trx_user_key_level5,
2490            trx_user_key_level6,
2491            mrc_tax_line_flag,
2492            ledger_id,
2493            establishment_id,
2494            legal_entity_id,
2495            legal_entity_tax_reg_number,
2496            hq_estb_reg_number,
2497            hq_estb_party_tax_prof_id,
2498            currency_conversion_date,
2499            currency_conversion_type,
2500            currency_conversion_rate,
2501            tax_currency_conversion_date,
2502            tax_currency_conversion_type,
2503            tax_currency_conversion_rate,
2504            trx_currency_code,
2505            minimum_accountable_unit,
2506            precision,
2507            trx_number,
2508            trx_date,
2509            unit_price,
2510            line_amt,
2511            trx_line_quantity,
2512            tax_base_modifier_rate,
2513            ref_doc_application_id,
2514            ref_doc_entity_code,
2515            ref_doc_event_class_code,
2516            ref_doc_trx_id,
2517            ref_doc_line_id,
2518            ref_doc_line_quantity,
2519            other_doc_line_amt,
2520            other_doc_line_tax_amt,
2521            other_doc_line_taxable_amt,
2522            unrounded_taxable_amt,
2523            unrounded_tax_amt,
2524            related_doc_application_id,
2525            related_doc_entity_code,
2526            related_doc_event_class_code,
2527            related_doc_trx_id,
2528            related_doc_number,
2529            related_doc_date,
2530            applied_from_application_id,
2531            applied_from_event_class_code,
2532            applied_from_entity_code,
2533            applied_from_trx_id,
2534            applied_from_line_id,
2535            applied_from_trx_level_type,
2536            applied_from_trx_number,
2537            adjusted_doc_application_id,
2538            adjusted_doc_entity_code,
2539            adjusted_doc_event_class_code,
2540            adjusted_doc_trx_id,
2541            adjusted_doc_line_id,
2542            adjusted_doc_trx_level_type,
2543            adjusted_doc_number,
2544            adjusted_doc_date,
2545            applied_to_application_id,
2546            applied_to_event_class_code,
2547            applied_to_entity_code,
2548            applied_to_trx_id,
2549            applied_to_line_id,
2550            applied_to_trx_number,
2551            summary_tax_line_id,
2552            offset_link_to_tax_line_id,
2553            offset_flag,
2554            process_for_recovery_flag,
2555            tax_jurisdiction_id,
2556            tax_jurisdiction_code,
2557            place_of_supply,
2558            place_of_supply_type_code,
2559            place_of_supply_result_id,
2560            tax_date_rule_id,
2561            tax_date,
2562            tax_determine_date,
2563            tax_point_date,
2564            trx_line_date,
2565            tax_type_code,
2566            tax_code,
2567            tax_registration_id,
2568            tax_registration_number,
2569            registration_party_type,
2570            rounding_level_code,
2571            rounding_rule_code,
2572            rounding_lvl_party_tax_prof_id,
2573            rounding_lvl_party_type,
2574            compounding_tax_flag,
2575            orig_tax_status_id,
2576            orig_tax_status_code,
2577            orig_tax_rate_id,
2578            orig_tax_rate_code,
2579            orig_tax_rate,
2580            orig_tax_jurisdiction_id,
2581            orig_tax_jurisdiction_code,
2582            orig_tax_amt_included_flag,
2583            orig_self_assessed_flag,
2584            tax_currency_code,
2585            tax_amt,
2586            tax_amt_tax_curr,
2587            tax_amt_funcl_curr,
2588            taxable_amt,
2589            taxable_amt_tax_curr,
2590            taxable_amt_funcl_curr,
2591            orig_taxable_amt,
2592            orig_taxable_amt_tax_curr,
2593            cal_tax_amt,
2594            cal_tax_amt_tax_curr,
2595            cal_tax_amt_funcl_curr,
2596            orig_tax_amt,
2597            orig_tax_amt_tax_curr,
2598            rec_tax_amt,
2599            rec_tax_amt_tax_curr,
2600            rec_tax_amt_funcl_curr,
2601            nrec_tax_amt,
2602            nrec_tax_amt_tax_curr,
2603            nrec_tax_amt_funcl_curr,
2604            tax_exemption_id,
2605            tax_rate_before_exemption,
2606            tax_rate_name_before_exemption,
2607            exempt_rate_modifier,
2608            exempt_certificate_number,
2609            exempt_reason,
2610            exempt_reason_code,
2611            tax_exception_id,
2612            tax_rate_before_exception,
2613            tax_rate_name_before_exception,
2614            exception_rate,
2615            tax_apportionment_flag,
2616            historical_flag,
2617            taxable_basis_formula,
2618            tax_calculation_formula,
2619            cancel_flag,
2620            purge_flag,
2621            delete_flag,
2622            tax_amt_included_flag,
2623            self_assessed_flag,
2624            overridden_flag,
2625            manually_entered_flag,
2626            freeze_until_overridden_flag,
2627            copied_from_other_doc_flag,
2628            recalc_required_flag,
2629            settlement_flag,
2630            item_dist_changed_flag,
2631            associated_child_frozen_flag,
2632            tax_only_line_flag,
2633            compounding_dep_tax_flag,
2634            last_manual_entry,
2635            tax_provider_id,
2636            record_type_code,
2637            reporting_period_id,
2638            legal_message_appl_2,
2639            legal_message_status,
2640            legal_message_rate,
2641            legal_message_basis,
2642            legal_message_calc,
2643            legal_message_threshold,
2644            legal_message_pos,
2645            legal_message_trn,
2646            legal_message_exmpt,
2647            legal_message_excpt,
2648            tax_regime_template_id,
2649            tax_applicability_result_id,
2650            direct_rate_result_id,
2651            status_result_id,
2652            rate_result_id,
2653            basis_result_id,
2654            thresh_result_id,
2655            calc_result_id,
2656            tax_reg_num_det_result_id,
2657            eval_exmpt_result_id,
2658            eval_excpt_result_id,
2659            enforce_from_natural_acct_flag,
2660            tax_hold_code,
2661            tax_hold_released_code,
2662            prd_total_tax_amt,
2663            prd_total_tax_amt_tax_curr,
2664            prd_total_tax_amt_funcl_curr,
2665            internal_org_location_id,
2666            attribute_category,
2667            attribute1,
2668            attribute2,
2669            attribute3,
2670            attribute4,
2671            attribute5,
2672            attribute6,
2673            attribute7,
2674            attribute8,
2675            attribute9,
2676            attribute10,
2677            attribute11,
2678            attribute12,
2679            attribute13,
2680            attribute14,
2681            attribute15,
2682            global_attribute_category,
2683            global_attribute1,
2684            global_attribute2,
2685            global_attribute3,
2686            global_attribute4,
2687            global_attribute5,
2688            global_attribute6,
2689            global_attribute7,
2690            global_attribute8,
2691            global_attribute9,
2692            global_attribute10,
2693            global_attribute11,
2694            global_attribute12,
2695            global_attribute13,
2696            global_attribute14,
2697            global_attribute15,
2698            numeric1,
2699            numeric2,
2700            numeric3,
2701            numeric4,
2702            numeric5,
2703            numeric6,
2704            numeric7,
2705            numeric8,
2706            numeric9,
2707            numeric10,
2708            char1,
2709            char2,
2710            char3,
2711            char4,
2712            char5,
2713            char6,
2714            char7,
2715            char8,
2716            char9,
2717            char10,
2718            date1,
2719            date2,
2720            date3,
2721            date4,
2722            date5,
2723            date6,
2724            date7,
2725            date8,
2726            date9,
2727            date10,
2728            tax_rate_type,
2729            created_by,
2730            creation_date,
2731            last_updated_by,
2732            last_update_date,
2733            last_update_login,
2734            line_assessable_value,
2735            legal_justification_text1,
2736            legal_justification_text2,
2737            legal_justification_text3,
2738            reporting_currency_code,
2739            trx_line_index,
2740            offset_tax_rate_code,
2741            proration_code,
2742            other_doc_source,
2743            reporting_only_flag,
2744            ctrl_total_line_tx_amt,
2745            sync_with_prvdr_flag,
2746            interface_entity_code,
2747            interface_tax_line_id,
2748            taxing_juris_geography_id,
2749            adjusted_doc_tax_line_id,
2750            object_version_number,
2751            legal_reporting_status,
2752            account_source_tax_rate_id
2753     )
2754    (SELECT /*+ leading(G) */
2755            L.tax_line_id,
2756            L.internal_organization_id,
2757            L.application_id,
2758            L.entity_code,
2759            L.event_class_code,
2760            L.event_type_code,
2761            L.trx_id,
2762            L.trx_line_id,
2763            L.trx_level_type,
2764            L.trx_line_number,
2765            L.doc_event_status,
2766            L.tax_event_class_code,
2767            L.tax_event_type_code,
2768            L.tax_line_number,
2769            L.content_owner_id,
2770            L.tax_regime_id,
2771            L.tax_regime_code,
2772            L.tax_id,
2773            L.tax,
2774            L.tax_status_id,
2775            L.tax_status_code,
2776            L.tax_rate_id,
2777            L.tax_rate_code,
2778            L.tax_rate,
2779            L.tax_apportionment_line_number,
2780            L.trx_id_level2,
2781            L.trx_id_level3,
2782            L.trx_id_level4,
2783            L.trx_id_level5,
2784            L.trx_id_level6,
2785            L.trx_user_key_level1,
2786            L.trx_user_key_level2,
2787            L.trx_user_key_level3,
2788            L.trx_user_key_level4,
2789            L.trx_user_key_level5,
2790            L.trx_user_key_level6,
2791            L.mrc_tax_line_flag,
2792            L.ledger_id,
2793            L.establishment_id,
2794            L.legal_entity_id,
2795            L.legal_entity_tax_reg_number,
2796            L.hq_estb_reg_number,
2797            L.hq_estb_party_tax_prof_id,
2798            L.currency_conversion_date,
2799            L.currency_conversion_type,
2800            L.currency_conversion_rate,
2801            L.tax_currency_conversion_date,
2802            L.tax_currency_conversion_type,
2803            L.tax_currency_conversion_rate,
2804            L.trx_currency_code,
2805            L.minimum_accountable_unit,
2806            L.precision,
2807            G.trx_number,
2808            L.trx_date,
2809            L.unit_price,
2810            L.line_amt,
2811            L.trx_line_quantity,
2812            L.tax_base_modifier_rate,
2813            L.ref_doc_application_id,
2814            L.ref_doc_entity_code,
2815            L.ref_doc_event_class_code,
2816            L.ref_doc_trx_id,
2817            L.ref_doc_line_id,
2818            L.ref_doc_line_quantity,
2819            L.other_doc_line_amt,
2820            L.other_doc_line_tax_amt,
2821            L.other_doc_line_taxable_amt,
2822            0,                                    -- L.unrounded_taxable_amt,
2823            0,                                    -- L.unrounded_tax_amt,
2824            L.related_doc_application_id,
2825            L.related_doc_entity_code,
2826            L.related_doc_event_class_code,
2827            L.related_doc_trx_id,
2828            L.related_doc_number,
2829            L.related_doc_date,
2830            L.applied_from_application_id,
2831            L.applied_from_event_class_code,
2832            L.applied_from_entity_code,
2833            L.applied_from_trx_id,
2834            L.applied_from_line_id,
2835            L.applied_from_trx_level_type,
2836            L.applied_from_trx_number,
2837            L.adjusted_doc_application_id,
2838            L.adjusted_doc_entity_code,
2839            L.adjusted_doc_event_class_code,
2840            L.adjusted_doc_trx_id,
2841            L.adjusted_doc_line_id,
2842            L.adjusted_doc_trx_level_type,
2843            L.adjusted_doc_number,
2844            L.adjusted_doc_date,
2845            L.applied_to_application_id,
2846            L.applied_to_event_class_code,
2847            L.applied_to_entity_code,
2848            L.applied_to_trx_id,
2849            L.applied_to_line_id,
2850            L.applied_to_trx_number,
2851            L.summary_tax_line_id,
2852            L.offset_link_to_tax_line_id,
2853            L.offset_flag,
2854            DECODE(L.Reporting_Only_Flag, 'N', 'Y', 'N'), -- L.Process_For_Recovery_Flag,
2855            L.tax_jurisdiction_id,
2856            L.tax_jurisdiction_code,
2857            L.place_of_supply,
2858            L.place_of_supply_type_code,
2859            L.place_of_supply_result_id,
2860            L.tax_date_rule_id,
2861            L.tax_date,
2862            L.tax_determine_date,
2863            L.tax_point_date,
2864            L.trx_line_date,
2865            L.tax_type_code,
2866            L.tax_code,
2867            L.tax_registration_id,
2868            L.tax_registration_number,
2869            L.registration_party_type,
2870            L.rounding_level_code,
2871            L.rounding_rule_code,
2872            L.rounding_lvl_party_tax_prof_id,
2873            L.rounding_lvl_party_type,
2874            L.compounding_tax_flag,
2875            L.orig_tax_status_id,
2876            L.orig_tax_status_code,
2877            L.orig_tax_rate_id,
2878            L.orig_tax_rate_code,
2879            L.orig_tax_rate,
2880            L.orig_tax_jurisdiction_id,
2881            L.orig_tax_jurisdiction_code,
2882            L.orig_tax_amt_included_flag,
2883            L.orig_self_assessed_flag,
2884            L.tax_currency_code,
2885            0,                                    -- L.tax_amt,
2886            0,                                    -- L.tax_amt_tax_curr,
2887            0,                                    -- L.tax_amt_funcl_curr,
2888            0,                                    -- L.taxable_amt,
2889            0,                                    -- L.taxable_amt_tax_curr,
2890            0,                                    -- L.taxable_amt_funcl_curr,
2891            DECODE(L.orig_taxable_amt, NULL,L.taxable_amt,
2892                   L.orig_taxable_amt),           -- L.orig_taxable_amt
2893            DECODE(L.orig_taxable_amt_tax_curr, NULL, L.taxable_amt_funcl_curr,
2894                   L.orig_taxable_amt_tax_curr),  -- L.orig_taxable_amt_tax_curr
2895            0,                                    -- L.cal_tax_amt,
2896            0,                                    -- L.cal_tax_amt_tax_curr,
2897            0,                                    -- L.cal_tax_amt_funcl_curr,
2898            DECODE(L.orig_tax_amt, NULL, L.tax_amt,
2899                   L.orig_tax_amt),               -- L.orig_tax_amt
2900            DECODE(L.orig_tax_amt_tax_curr, NULL, L.tax_amt,
2901                   L.orig_tax_amt_tax_curr),      -- L.orig_tax_amt_tax_curr
2902            0,                                    -- L.rec_tax_amt,
2903            0,                                    -- L.rec_tax_amt_tax_curr,
2904            0,                                    -- L.rec_tax_amt_funcl_curr,
2905            0,                                    -- L.nrec_tax_amt,
2906            0,                                    -- L.nrec_tax_amt_tax_curr,
2907            0,                                    -- L.nrec_tax_amt_funcl_curr,
2908            L.tax_exemption_id,
2909            L.tax_rate_before_exemption,
2910            L.tax_rate_name_before_exemption,
2911            L.exempt_rate_modifier,
2912            L.exempt_certificate_number,
2913            L.exempt_reason,
2914            L.exempt_reason_code,
2915            L.tax_exception_id,
2916            L.tax_rate_before_exception,
2917            L.tax_rate_name_before_exception,
2918            L.exception_rate,
2919            L.tax_apportionment_flag,
2920            L.historical_flag,
2921            L.taxable_basis_formula,
2922            L.tax_calculation_formula,
2923            'Y',                                   -- L.cancel_flag
2924            L.purge_flag,
2925            L.delete_flag,
2926            L.tax_amt_included_flag,
2927            L.self_assessed_flag,
2928            L.overridden_flag,
2929            L.manually_entered_flag,
2930            L.freeze_until_overridden_flag,
2931            L.copied_from_other_doc_flag,
2932            L.recalc_required_flag,
2933            L.settlement_flag,
2934            L.item_dist_changed_flag,
2935            L.associated_child_frozen_flag,
2936            L.tax_only_line_flag,
2937            L.compounding_dep_tax_flag,
2938            L.last_manual_entry,
2939            L.tax_provider_id,
2940            L.record_type_code,
2941            L.reporting_period_id,
2942            L.legal_message_appl_2,
2943            L.legal_message_status,
2944            L.legal_message_rate,
2945            L.legal_message_basis,
2946            L.legal_message_calc,
2947            L.legal_message_threshold,
2948            L.legal_message_pos,
2949            L.legal_message_trn,
2950            L.legal_message_exmpt,
2951            L.legal_message_excpt,
2952            L.tax_regime_template_id,
2953            L.tax_applicability_result_id,
2954            L.direct_rate_result_id,
2955            L.status_result_id,
2956            L.rate_result_id,
2957            L.basis_result_id,
2958            L.thresh_result_id,
2959            L.calc_result_id,
2960            L.tax_reg_num_det_result_id,
2961            L.eval_exmpt_result_id,
2962            L.eval_excpt_result_id,
2963            L.enforce_from_natural_acct_flag,
2964            NULL,                                 -- L.tax_hold_code,
2965            NULL,                                 -- L.tax_hold_released_code,
2966            NULL,                                 -- L.prd_total_tax_amt,
2967            NULL,                                 -- L.prd_total_tax_amt_tax_curr,
2968            NULL,                                 -- L.prd_total_tax_amt_funcl_curr,
2969            L.internal_org_location_id,
2970            L.attribute_category,
2971            L.attribute1,
2972            L.attribute2,
2973            L.attribute3,
2974            L.attribute4,
2975            L.attribute5,
2976            L.attribute6,
2977            L.attribute7,
2978            L.attribute8,
2979            L.attribute9,
2980            L.attribute10,
2981            L.attribute11,
2982            L.attribute12,
2983            L.attribute13,
2984            L.attribute14,
2985            L.attribute15,
2986            L.global_attribute_category,
2987            L.global_attribute1,
2988            L.global_attribute2,
2989            L.global_attribute3,
2990            L.global_attribute4,
2991            L.global_attribute5,
2992            L.global_attribute6,
2993            L.global_attribute7,
2994            L.global_attribute8,
2995            L.global_attribute9,
2996            L.global_attribute10,
2997            L.global_attribute11,
2998            L.global_attribute12,
2999            L.global_attribute13,
3000            L.global_attribute14,
3001            L.global_attribute15,
3002            L.numeric1,
3003            L.numeric2,
3004            L.numeric3,
3005            L.numeric4,
3006            L.numeric5,
3007            L.numeric6,
3008            L.numeric7,
3009            L.numeric8,
3010            L.numeric9,
3011            L.numeric10,
3012            L.char1,
3013            L.char2,
3014            L.char3,
3015            L.char4,
3016            L.char5,
3017            L.char6,
3018            L.char7,
3019            L.char8,
3020            L.char9,
3021            L.char10,
3022            L.date1,
3023            L.date2,
3024            L.date3,
3025            L.date4,
3026            L.date5,
3027            L.date6,
3028            L.date7,
3029            L.date8,
3030            L.date9,
3031            L.date10,
3032            L.tax_rate_type,
3033            L.created_by,
3034            L.creation_date,
3035            L.last_updated_by,
3036            L.last_update_date,
3037            L.last_update_login,
3038            L.line_assessable_value,
3039            L.legal_justification_text1,
3040            L.legal_justification_text2,
3041            L.legal_justification_text3,
3042            L.reporting_currency_code,
3043            NULL,                           -- L.trx_line_index
3044            NULL,                           -- L.offset_tax_rate_code
3045            NULL,                           -- L.proration_code
3046            NULL,                           -- L.other_doc_source
3047            L.reporting_only_flag,
3048            L.ctrl_total_line_tx_amt,
3049            DECODE(L.tax_provider_id, NULL, L.sync_with_prvdr_flag, 'Y'),
3050            L.interface_entity_code,
3051            L.interface_tax_line_id,
3052            L.taxing_juris_geography_id,
3053            L.adjusted_doc_tax_line_id,
3054            1,
3055            legal_reporting_status,
3056            L.account_source_tax_rate_id
3057     FROM  zx_lines L,
3058           zx_lines_det_factors G
3059     WHERE G.application_id = p_event_class_rec.application_id
3060       AND G.entity_code = p_event_class_rec.entity_code
3061       AND G.event_class_code = p_event_class_rec.event_class_code
3062       AND G.trx_id = p_event_class_rec.trx_id
3063       AND G.event_id = p_event_class_rec.event_id
3064       AND L.trx_id = G.trx_id
3065       AND L.trx_line_id = G.trx_line_id
3066       AND L.trx_level_type = G.trx_level_type
3067       AND L.event_class_code = G.event_class_code
3068       AND L.entity_code = G.entity_code
3069       AND L.application_id = G.application_id
3070       AND L.associated_child_frozen_flag = 'Y'
3071       AND L.cancel_flag = 'Y'
3072       AND L.tax_apportionment_line_number < 0
3073       AND NOT EXISTS ( SELECT 1
3074                          FROM  zx_detail_tax_lines_gt T
3075                          WHERE T.tax_line_id = L.tax_line_id
3076 -- bug 8470599 these columns are redundant and are doing index range scan on ZX_DETAIL_TAX_LINES_GT_U1
3077 --                           AND T.trx_id = L.trx_id
3078 --                           AND T.trx_line_id = L.trx_line_id
3079 --                           AND T.event_class_code = L.event_class_code
3080 --                           AND T.entity_code = L.entity_code
3081 --                           AND T.application_id = L.application_id
3082 --                           AND T.trx_level_type = L.trx_level_type
3083                        )
3084       );
3085 
3086   ELSE
3087 
3088     -- bug 6906427: update tax line id if no grouping criteria change
3089     --
3090     --bug8517610
3091 
3092     UPDATE zx_detail_tax_lines_gt zlgt
3093        SET (tax_line_id, associated_child_frozen_flag, summary_tax_line_id,offset_link_to_tax_line_id) =
3094            ( SELECT /*+ INDEX(zl ZX_LINES_U1) */
3095                     tax_line_id, associated_child_frozen_flag, summary_tax_line_id,offset_link_to_tax_line_id
3096                FROM zx_lines zl
3097               WHERE zl.application_id = zlgt.application_id
3098                 AND zl.entity_code = zlgt.entity_code
3099                 AND zl.event_class_code = zlgt.event_class_code
3100                 AND zl.trx_id = zlgt.trx_id
3101                 and zl.trx_line_id = zlgt.trx_line_id
3102                 AND zl.trx_level_type = zlgt.trx_level_type
3103                 AND zl.internal_organization_id = zlgt.internal_organization_id
3104                 AND NVL(zl.applied_from_trx_level_type, 'x') = NVL(zlgt.applied_from_trx_level_type, 'x')
3105                 AND NVL(zl.adjusted_doc_trx_level_type, 'x') = NVL(zlgt.adjusted_doc_trx_level_type, 'x')
3106                 AND NVL(zl.applied_from_application_id, 0) = NVL(zlgt.applied_from_application_id, 0)
3107                 AND NVL(zl.applied_from_event_class_code, 'x') = NVL(zlgt.applied_from_event_class_code, 'x')
3108                 AND NVL(zl.applied_from_entity_code, 'x') = NVL(zlgt.applied_from_entity_code, 'x')
3109                 AND NVL(zl.applied_from_trx_id, 0) = NVL(zlgt.applied_from_trx_id, 0)
3110                 AND NVL(zl.applied_from_line_id, 0) = NVL(zlgt.applied_from_line_id, 0)
3111                 AND NVL(zl.adjusted_doc_application_id, 0) = NVL(zlgt.adjusted_doc_application_id, 0)
3112                 AND NVL(zl.adjusted_doc_entity_code, 'x') = NVL(zlgt.adjusted_doc_entity_code, 'x')
3113                 AND NVL(zl.adjusted_doc_event_class_code, 'x') = NVL(zlgt.adjusted_doc_event_class_code, 'x')
3114                 AND NVL(zl.adjusted_doc_trx_id, 0) = NVL(zlgt.adjusted_doc_trx_id, 0)
3115                 AND NVL(zl.tax_exemption_id, -999)  = NVL(zlgt.tax_exemption_id, -999)
3116                 --AND NVL(zl.tax_rate_before_exemption, -999) = NVL(zlgt.tax_rate_before_exemption,  -999)
3117                 --AND NVL(zl.tax_rate_name_before_exemption, 'x') = NVL(zlgt.tax_rate_name_before_exemption, 'x')
3118                 --AND NVL(zl.exempt_rate_modifier, -999) = NVL(zlgt.exempt_rate_modifier, -999)
3119                 AND NVL(zl.exempt_certificate_number, 'x') = NVL(zlgt.exempt_certificate_number, 'x')
3120                 --AND NVL(zl.exempt_reason, 'x') = NVL(zlgt.exempt_reason, 'x')
3121                 AND NVL(zl.exempt_reason_code, 'x') = NVL(zlgt.exempt_reason_code, 'x')
3122                 AND NVL(zl.tax_exception_id,  -999) = NVL(zlgt.tax_exception_id, -999)
3123                 --AND NVL(zl.tax_rate_before_exception, -999) = NVL(zlgt.tax_rate_before_exception,  -999)
3124                 --AND NVL(zl.tax_rate_name_before_exception, 'x') = NVL(zlgt.tax_rate_name_before_exception, 'x')
3125                 --AND NVL(zl.exception_rate, -999) = NVL(zlgt.exception_rate, -999)
3126                 AND NVL(zl.content_owner_id, 0) = NVL(zlgt.content_owner_id, 0)
3127                 AND zl.tax_regime_code = zlgt.tax_regime_code
3128                 AND zl.tax = zlgt.tax
3129                 AND NVL(zl.tax_status_code, 'x') = NVL(zlgt.tax_status_code, 'x')
3130                 AND NVL(zl.tax_rate_id, 0) = NVL(zlgt.tax_rate_id, 0)
3131                 AND NVL(zl.tax_rate_code, 'x') = NVL(zlgt.tax_rate_code, 'x')
3132                 AND NVL(zl.tax_rate, -99) = NVL(zlgt.tax_rate, -99)
3133                 AND NVL(zl.tax_jurisdiction_code, 'x') = NVL(zlgt.tax_jurisdiction_code, 'x')
3134                 AND NVL(zl.ledger_id, 0) = NVL(zlgt.ledger_id, 0)
3135                 AND NVL(zl.legal_entity_id, 0) = NVL(zlgt.legal_entity_id, 0)
3136                 AND NVL(zl.establishment_id, 0) = NVL(zlgt.establishment_id, 0)
3137                 AND NVL(TRUNC(zl.currency_conversion_date), SYSDATE) = NVL(TRUNC(zlgt.currency_conversion_date), SYSDATE)
3138                 AND NVL(zl.currency_conversion_type,'x') = NVL(zlgt.currency_conversion_type,'x')
3139                 AND NVL(zl.currency_conversion_rate, 1) = NVL(zlgt.currency_conversion_rate, 1)
3140                 AND NVL(zl.taxable_basis_formula,'x') = NVL(zlgt.taxable_basis_formula,'x')
3141                 AND NVL(zl.tax_calculation_formula,'x') = NVL(zlgt.tax_calculation_formula,'x')
3142                 AND zl.tax_amt_included_flag = zlgt.tax_amt_included_flag
3143                 AND zl.compounding_tax_flag = zlgt.compounding_tax_flag
3144                 AND zl.self_assessed_flag = zlgt.self_assessed_flag
3145                 AND zl.reporting_only_flag = zlgt.reporting_only_flag
3146                 AND zl.copied_from_other_doc_flag = zlgt.copied_from_other_doc_flag
3147                 AND NVL(zl.record_type_code,'x') = NVL(zlgt.record_type_code,'x')
3148                 AND NVL(zl.tax_provider_id, 0) = NVL(zlgt.tax_provider_id, 0)
3149                 AND zl.overridden_flag = zlgt.overridden_flag
3150                 AND zl.manually_entered_flag =  zlgt.manually_entered_flag
3151                 AND zl.tax_only_line_flag = zlgt.tax_only_line_flag
3152                 AND zl.mrc_tax_line_flag = zlgt.mrc_tax_line_flag
3153                 AND zl.historical_flag = zlgt.historical_flag
3154                 AND NVL(zl.tax_apportionment_line_number, 1) = NVL(zlgt.tax_apportionment_line_number, 1)
3155                 AND zl.tax_line_id <> zlgt.tax_line_id
3156                 AND zl.cancel_flag <> 'Y'
3157                 AND ROWNUM = 1
3158            )
3159      WHERE NVL(associated_child_frozen_flag, 'N') ='N'
3160        -- Bug 8348107
3161        AND (summary_tax_line_id IS NULL OR nvl(historical_flag,'N') = 'Y')
3162        AND NVL(tax_only_line_flag, 'N') = 'N'
3163        AND EXISTS (SELECT /*+ INDEX(zl ZX_LINES_U1) */
3164                           tax_line_id, associated_child_frozen_flag
3165                      FROM zx_lines zl
3166                     WHERE zl.application_id = zlgt.application_id
3167                       AND zl.entity_code = zlgt.entity_code
3168                       AND zl.event_class_code = zlgt.event_class_code
3169                       AND zl.trx_id = zlgt.trx_id
3170                       and zl.trx_line_id = zlgt.trx_line_id
3171                       AND zl.trx_level_type = zlgt.trx_level_type
3172                       AND zl.internal_organization_id = zlgt.internal_organization_id
3173                       AND NVL(zl.applied_from_trx_level_type, 'x') = NVL(zlgt.applied_from_trx_level_type, 'x')
3174                       AND NVL(zl.adjusted_doc_trx_level_type, 'x') = NVL(zlgt.adjusted_doc_trx_level_type, 'x')
3175                       AND NVL(zl.applied_from_application_id, 0) = NVL(zlgt.applied_from_application_id, 0)
3176                       AND NVL(zl.applied_from_event_class_code, 'x') = NVL(zlgt.applied_from_event_class_code, 'x')
3177                       AND NVL(zl.applied_from_entity_code, 'x') = NVL(zlgt.applied_from_entity_code, 'x')
3178                       AND NVL(zl.applied_from_trx_id, 0) = NVL(zlgt.applied_from_trx_id, 0)
3179                       AND NVL(zl.applied_from_line_id, 0) = NVL(zlgt.applied_from_line_id, 0)
3180                       AND NVL(zl.adjusted_doc_application_id, 0) = NVL(zlgt.adjusted_doc_application_id, 0)
3181                       AND NVL(zl.adjusted_doc_entity_code, 'x') = NVL(zlgt.adjusted_doc_entity_code, 'x')
3182                       AND NVL(zl.adjusted_doc_event_class_code, 'x') = NVL(zlgt.adjusted_doc_event_class_code, 'x')
3183                       AND NVL(zl.adjusted_doc_trx_id, 0) = NVL(zlgt.adjusted_doc_trx_id, 0)
3184                       AND NVL(zl.tax_exemption_id, -999)  = NVL(zlgt.tax_exemption_id, -999)
3185                 --      AND NVL(zl.tax_rate_before_exemption, -999) = NVL(zlgt.tax_rate_before_exemption,  -999)
3186                 --      AND NVL(zl.tax_rate_name_before_exemption, 'x') = NVL(zlgt.tax_rate_name_before_exemption, 'x')
3187                 --      AND NVL(zl.exempt_rate_modifier, -999) = NVL(zlgt.exempt_rate_modifier, -999)
3188                       AND NVL(zl.exempt_certificate_number, 'x') = NVL(zlgt.exempt_certificate_number, 'x')
3189                 --      AND NVL(zl.exempt_reason, 'x') = NVL(zlgt.exempt_reason, 'x')
3190                       AND NVL(zl.exempt_reason_code, 'x') = NVL(zlgt.exempt_reason_code, 'x')
3191                       AND NVL(zl.tax_exception_id,  -999) = NVL(zlgt.tax_exception_id, -999)
3192                 --      AND NVL(zl.tax_rate_before_exception, -999) = NVL(zlgt.tax_rate_before_exception,  -999)
3193                 --      AND NVL(zl.tax_rate_name_before_exception, 'x') = NVL(zlgt.tax_rate_name_before_exception, 'x')
3194                 --      AND NVL(zl.exception_rate, -999) = NVL(zlgt.exception_rate, -999)
3195                       AND NVL(zl.content_owner_id, 0) = NVL(zlgt.content_owner_id, 0)
3196                       AND zl.tax_regime_code = zlgt.tax_regime_code
3197                       AND zl.tax = zlgt.tax
3198                       AND NVL(zl.tax_status_code, 'x') = NVL(zlgt.tax_status_code, 'x')
3199                       AND NVL(zl.tax_rate_id, 0) = NVL(zlgt.tax_rate_id, 0)
3200                       AND NVL(zl.tax_rate_code, 'x') = NVL(zlgt.tax_rate_code, 'x')
3201                       AND NVL(zl.tax_rate, -99) = NVL(zlgt.tax_rate, -99)
3202                       AND NVL(zl.tax_jurisdiction_code, 'x') = NVL(zlgt.tax_jurisdiction_code, 'x')
3203                       AND NVL(zl.ledger_id, 0) = NVL(zlgt.ledger_id, 0)
3204                       AND NVL(zl.legal_entity_id, 0) = NVL(zlgt.legal_entity_id, 0)
3205                       AND NVL(zl.establishment_id, 0) = NVL(zlgt.establishment_id, 0)
3206                       AND NVL(TRUNC(zl.currency_conversion_date), SYSDATE) = NVL(TRUNC(zlgt.currency_conversion_date), SYSDATE)
3207                       AND NVL(zl.currency_conversion_type,'x') = NVL(zlgt.currency_conversion_type,'x')
3208                       AND NVL(zl.currency_conversion_rate, 1) = NVL(zlgt.currency_conversion_rate, 1)
3209                       AND NVL(zl.taxable_basis_formula,'x') = NVL(zlgt.taxable_basis_formula,'x')
3210                       AND NVL(zl.tax_calculation_formula,'x') = NVL(zlgt.tax_calculation_formula,'x')
3211                       AND zl.tax_amt_included_flag = zlgt.tax_amt_included_flag
3212                       AND zl.compounding_tax_flag = zlgt.compounding_tax_flag
3213                       AND zl.self_assessed_flag = zlgt.self_assessed_flag
3214                       AND zl.reporting_only_flag = zlgt.reporting_only_flag
3215                       AND zl.copied_from_other_doc_flag = zlgt.copied_from_other_doc_flag
3216                       AND NVL(zl.record_type_code,'x') = NVL(zlgt.record_type_code,'x')
3217                       AND NVL(zl.tax_provider_id, 0) = NVL(zlgt.tax_provider_id, 0)
3218                       AND zl.overridden_flag = zlgt.overridden_flag
3219                       AND zl.manually_entered_flag =  zlgt.manually_entered_flag
3220                       AND zl.tax_only_line_flag = zlgt.tax_only_line_flag
3221                       AND zl.mrc_tax_line_flag = zlgt.mrc_tax_line_flag
3222                       AND zl.historical_flag = zlgt.historical_flag
3223                       AND NVL(zl.tax_apportionment_line_number, 1) = NVL(zlgt.tax_apportionment_line_number, 1)
3224                       AND zl.tax_line_id <> zlgt.tax_line_id
3225                       AND zl.cancel_flag <> 'Y'
3226                   );
3227 
3228     IF (g_level_statement >= g_current_runtime_level ) THEN
3229       FND_LOG.STRING(g_level_statement,
3230                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_frozen_tax_lines',
3231                      'Number of Rows Updated: ' || SQL%ROWCOUNT);
3232     END IF;
3233 
3234 -- bug 8470599 forcing the driving table in select clause from zx_lines_det_factors
3235     INSERT INTO zx_detail_tax_lines_gt
3236     (      tax_line_id,
3237            internal_organization_id,
3238            application_id,
3239            entity_code,
3240            event_class_code,
3241            event_type_code,
3242            trx_id,
3243            trx_line_id,
3244            trx_level_type,
3245            trx_line_number,
3246            doc_event_status,
3247            tax_event_class_code,
3248            tax_event_type_code,
3249            tax_line_number,
3250            content_owner_id,
3251            tax_regime_id,
3252            tax_regime_code,
3253            tax_id,
3254            tax,
3255            tax_status_id,
3256            tax_status_code,
3257            tax_rate_id,
3258            tax_rate_code,
3259            tax_rate,
3260            tax_apportionment_line_number,
3261            trx_id_level2,
3262            trx_id_level3,
3263            trx_id_level4,
3264            trx_id_level5,
3265            trx_id_level6,
3266            trx_user_key_level1,
3267            trx_user_key_level2,
3268            trx_user_key_level3,
3269            trx_user_key_level4,
3270            trx_user_key_level5,
3271            trx_user_key_level6,
3272            mrc_tax_line_flag,
3273            ledger_id,
3274            establishment_id,
3275            legal_entity_id,
3276            legal_entity_tax_reg_number,
3277            hq_estb_reg_number,
3278            hq_estb_party_tax_prof_id,
3279            currency_conversion_date,
3280            currency_conversion_type,
3281            currency_conversion_rate,
3282            tax_currency_conversion_date,
3283            tax_currency_conversion_type,
3284            tax_currency_conversion_rate,
3285            trx_currency_code,
3286            minimum_accountable_unit,
3287            precision,
3288            trx_number,
3289            trx_date,
3290            unit_price,
3291            line_amt,
3292            trx_line_quantity,
3293            tax_base_modifier_rate,
3294            ref_doc_application_id,
3295            ref_doc_entity_code,
3296            ref_doc_event_class_code,
3297            ref_doc_trx_id,
3298            ref_doc_line_id,
3299            ref_doc_line_quantity,
3300            other_doc_line_amt,
3301            other_doc_line_tax_amt,
3302            other_doc_line_taxable_amt,
3303            unrounded_taxable_amt,
3304            unrounded_tax_amt,
3305            related_doc_application_id,
3306            related_doc_entity_code,
3307            related_doc_event_class_code,
3308            related_doc_trx_id,
3309            related_doc_number,
3310            related_doc_date,
3311            applied_from_application_id,
3312            applied_from_event_class_code,
3313            applied_from_entity_code,
3314            applied_from_trx_id,
3315            applied_from_line_id,
3316            applied_from_trx_level_type,
3317            applied_from_trx_number,
3318            adjusted_doc_application_id,
3319            adjusted_doc_entity_code,
3320            adjusted_doc_event_class_code,
3321            adjusted_doc_trx_id,
3322            adjusted_doc_line_id,
3323            adjusted_doc_trx_level_type,
3324            adjusted_doc_number,
3325            adjusted_doc_date,
3326            applied_to_application_id,
3327            applied_to_event_class_code,
3328            applied_to_entity_code,
3329            applied_to_trx_id,
3330            applied_to_line_id,
3331            applied_to_trx_number,
3332            summary_tax_line_id,
3333            offset_link_to_tax_line_id,
3334            offset_flag,
3335            process_for_recovery_flag,
3336            tax_jurisdiction_id,
3337            tax_jurisdiction_code,
3338            place_of_supply,
3339            place_of_supply_type_code,
3340            place_of_supply_result_id,
3341            tax_date_rule_id,
3342            tax_date,
3343            tax_determine_date,
3344            tax_point_date,
3345            trx_line_date,
3346            tax_type_code,
3347            tax_code,
3348            tax_registration_id,
3349            tax_registration_number,
3350            registration_party_type,
3351            rounding_level_code,
3352            rounding_rule_code,
3353            rounding_lvl_party_tax_prof_id,
3354            rounding_lvl_party_type,
3355            compounding_tax_flag,
3356            orig_tax_status_id,
3357            orig_tax_status_code,
3358            orig_tax_rate_id,
3359            orig_tax_rate_code,
3360            orig_tax_rate,
3361            orig_tax_jurisdiction_id,
3362            orig_tax_jurisdiction_code,
3363            orig_tax_amt_included_flag,
3364            orig_self_assessed_flag,
3365            tax_currency_code,
3366            tax_amt,
3367            tax_amt_tax_curr,
3368            tax_amt_funcl_curr,
3369            taxable_amt,
3370            taxable_amt_tax_curr,
3371            taxable_amt_funcl_curr,
3372            orig_taxable_amt,
3373            orig_taxable_amt_tax_curr,
3374            cal_tax_amt,
3375            cal_tax_amt_tax_curr,
3376            cal_tax_amt_funcl_curr,
3377            orig_tax_amt,
3378            orig_tax_amt_tax_curr,
3379            rec_tax_amt,
3380            rec_tax_amt_tax_curr,
3381            rec_tax_amt_funcl_curr,
3382            nrec_tax_amt,
3383            nrec_tax_amt_tax_curr,
3384            nrec_tax_amt_funcl_curr,
3385            tax_exemption_id,
3386            tax_rate_before_exemption,
3387            tax_rate_name_before_exemption,
3388            exempt_rate_modifier,
3389            exempt_certificate_number,
3390            exempt_reason,
3391            exempt_reason_code,
3392            tax_exception_id,
3393            tax_rate_before_exception,
3394            tax_rate_name_before_exception,
3395            exception_rate,
3396            tax_apportionment_flag,
3397            historical_flag,
3398            taxable_basis_formula,
3399            tax_calculation_formula,
3400            cancel_flag,
3401            purge_flag,
3402            delete_flag,
3403            tax_amt_included_flag,
3404            self_assessed_flag,
3405            overridden_flag,
3406            manually_entered_flag,
3407            freeze_until_overridden_flag,
3408            copied_from_other_doc_flag,
3409            recalc_required_flag,
3410            settlement_flag,
3411            item_dist_changed_flag,
3412            associated_child_frozen_flag,
3413            tax_only_line_flag,
3414            compounding_dep_tax_flag,
3415            last_manual_entry,
3416            tax_provider_id,
3417            record_type_code,
3418            reporting_period_id,
3419            legal_message_appl_2,
3420            legal_message_status,
3421            legal_message_rate,
3422            legal_message_basis,
3423            legal_message_calc,
3424            legal_message_threshold,
3425            legal_message_pos,
3426            legal_message_trn,
3427            legal_message_exmpt,
3428            legal_message_excpt,
3429            tax_regime_template_id,
3430            tax_applicability_result_id,
3431            direct_rate_result_id,
3432            status_result_id,
3433            rate_result_id,
3434            basis_result_id,
3435            thresh_result_id,
3436            calc_result_id,
3437            tax_reg_num_det_result_id,
3438            eval_exmpt_result_id,
3439            eval_excpt_result_id,
3440            enforce_from_natural_acct_flag,
3441            tax_hold_code,
3442            tax_hold_released_code,
3443            prd_total_tax_amt,
3444            prd_total_tax_amt_tax_curr,
3445            prd_total_tax_amt_funcl_curr,
3446            internal_org_location_id,
3447            attribute_category,
3448            attribute1,
3449            attribute2,
3450            attribute3,
3451            attribute4,
3452            attribute5,
3453            attribute6,
3454            attribute7,
3455            attribute8,
3456            attribute9,
3457            attribute10,
3458            attribute11,
3459            attribute12,
3460            attribute13,
3461            attribute14,
3462            attribute15,
3463            global_attribute_category,
3464            global_attribute1,
3465            global_attribute2,
3466            global_attribute3,
3467            global_attribute4,
3468            global_attribute5,
3469            global_attribute6,
3470            global_attribute7,
3471            global_attribute8,
3472            global_attribute9,
3473            global_attribute10,
3474            global_attribute11,
3475            global_attribute12,
3476            global_attribute13,
3477            global_attribute14,
3478            global_attribute15,
3479            numeric1,
3480            numeric2,
3481            numeric3,
3482            numeric4,
3483            numeric5,
3484            numeric6,
3485            numeric7,
3486            numeric8,
3487            numeric9,
3488            numeric10,
3489            char1,
3490            char2,
3491            char3,
3492            char4,
3493            char5,
3494            char6,
3495            char7,
3496            char8,
3497            char9,
3498            char10,
3499            date1,
3500            date2,
3501            date3,
3502            date4,
3503            date5,
3504            date6,
3505            date7,
3506            date8,
3507            date9,
3508            date10,
3509            tax_rate_type,
3510            created_by,
3511            creation_date,
3512            last_updated_by,
3513            last_update_date,
3514            last_update_login,
3515            line_assessable_value,
3516            legal_justification_text1,
3517            legal_justification_text2,
3518            legal_justification_text3,
3519            reporting_currency_code,
3520            trx_line_index,
3521            offset_tax_rate_code,
3522            proration_code,
3523            other_doc_source,
3524            reporting_only_flag,
3525            ctrl_total_line_tx_amt,
3526            sync_with_prvdr_flag,
3527            interface_entity_code,
3528            interface_tax_line_id,
3529            taxing_juris_geography_id,
3530            adjusted_doc_tax_line_id,
3531            object_version_number,
3532            legal_reporting_status,
3533            account_source_tax_rate_id
3534     )
3535    (SELECT /*+ leading(G) index(l ZX_LINES_u1 ) */
3536            L.tax_line_id,
3537            L.internal_organization_id,
3538            L.application_id,
3539            L.entity_code,
3540            L.event_class_code,
3541            L.event_type_code,
3542            L.trx_id,
3543            L.trx_line_id,
3544            L.trx_level_type,
3545            L.trx_line_number,
3546            L.doc_event_status,
3547            L.tax_event_class_code,
3548            L.tax_event_type_code,
3549            L.tax_line_number,
3550            L.content_owner_id,
3551            L.tax_regime_id,
3552            L.tax_regime_code,
3553            L.tax_id,
3554            L.tax,
3555            L.tax_status_id,
3556            L.tax_status_code,
3557            L.tax_rate_id,
3558            L.tax_rate_code,
3559            L.tax_rate,
3560            -- bug 6906427
3561            NVL(-((SELECT max(ABS(tax_apportionment_line_number))
3562                     FROM zx_detail_tax_lines_gt gt1
3563                    WHERE gt1.application_id = L.application_id
3564                      AND gt1.entity_code = L.entity_code
3565                      AND gt1.event_class_code = L.event_class_code
3566                      AND gt1.trx_id = L.trx_id
3567                      AND gt1.trx_line_id = L.trx_line_id
3568                      AND gt1.trx_level_type = L.trx_level_type
3569                      AND gt1.tax_regime_code = L.tax_regime_code
3570                      AND gt1.tax = L.tax
3571                   -- ) + 1                             -- Commented as a fix for Bug#7340317
3572                   ) + L.tax_apportionment_line_number  -- Added as a fix for Bug#7340317
3573                 ),
3574                -L.tax_apportionment_line_number
3575               ),
3576            L.trx_id_level2,
3577            L.trx_id_level3,
3578            L.trx_id_level4,
3579            L.trx_id_level5,
3580            L.trx_id_level6,
3581            L.trx_user_key_level1,
3582            L.trx_user_key_level2,
3583            L.trx_user_key_level3,
3584            L.trx_user_key_level4,
3585            L.trx_user_key_level5,
3586            L.trx_user_key_level6,
3587            L.mrc_tax_line_flag,
3588            L.ledger_id,
3589            L.establishment_id,
3590            L.legal_entity_id,
3591            L.legal_entity_tax_reg_number,
3592            L.hq_estb_reg_number,
3593            L.hq_estb_party_tax_prof_id,
3594            L.currency_conversion_date,
3595            L.currency_conversion_type,
3596            L.currency_conversion_rate,
3597            L.tax_currency_conversion_date,
3598            L.tax_currency_conversion_type,
3599            L.tax_currency_conversion_rate,
3600            L.trx_currency_code,
3601            L.minimum_accountable_unit,
3602            L.precision,
3603            G.trx_number,
3604            L.trx_date,
3605            L.unit_price,
3606            L.line_amt,
3607            L.trx_line_quantity,
3608            L.tax_base_modifier_rate,
3609            L.ref_doc_application_id,
3610            L.ref_doc_entity_code,
3611            L.ref_doc_event_class_code,
3612            L.ref_doc_trx_id,
3613            L.ref_doc_line_id,
3614            L.ref_doc_line_quantity,
3615            L.other_doc_line_amt,
3616            L.other_doc_line_tax_amt,
3617            L.other_doc_line_taxable_amt,
3618            0,                                    -- L.unrounded_taxable_amt,
3619            0,                                    -- L.unrounded_tax_amt,
3620            L.related_doc_application_id,
3621            L.related_doc_entity_code,
3622            L.related_doc_event_class_code,
3623            L.related_doc_trx_id,
3624            L.related_doc_number,
3625            L.related_doc_date,
3626            L.applied_from_application_id,
3627            L.applied_from_event_class_code,
3628            L.applied_from_entity_code,
3629            L.applied_from_trx_id,
3630            L.applied_from_line_id,
3631            L.applied_from_trx_level_type,
3632            L.applied_from_trx_number,
3633            L.adjusted_doc_application_id,
3634            L.adjusted_doc_entity_code,
3635            L.adjusted_doc_event_class_code,
3636            L.adjusted_doc_trx_id,
3637            L.adjusted_doc_line_id,
3638            L.adjusted_doc_trx_level_type,
3639            L.adjusted_doc_number,
3640            L.adjusted_doc_date,
3641            L.applied_to_application_id,
3642            L.applied_to_event_class_code,
3643            L.applied_to_entity_code,
3644            L.applied_to_trx_id,
3645            L.applied_to_line_id,
3646            L.applied_to_trx_number,
3647            L.summary_tax_line_id,
3648            L.offset_link_to_tax_line_id,
3649            L.offset_flag,
3650            DECODE(L.Reporting_Only_Flag, 'N', 'Y', 'N'), -- L.Process_For_Recovery_Flag,
3651            L.tax_jurisdiction_id,
3652            L.tax_jurisdiction_code,
3653            L.place_of_supply,
3654            L.place_of_supply_type_code,
3655            L.place_of_supply_result_id,
3656            L.tax_date_rule_id,
3657            L.tax_date,
3658            L.tax_determine_date,
3659            L.tax_point_date,
3660            L.trx_line_date,
3661            L.tax_type_code,
3662            L.tax_code,
3663            L.tax_registration_id,
3664            L.tax_registration_number,
3665            L.registration_party_type,
3666            L.rounding_level_code,
3667            L.rounding_rule_code,
3668            L.rounding_lvl_party_tax_prof_id,
3669            L.rounding_lvl_party_type,
3670            L.compounding_tax_flag,
3671            L.orig_tax_status_id,
3672            L.orig_tax_status_code,
3673            L.orig_tax_rate_id,
3674            L.orig_tax_rate_code,
3675            L.orig_tax_rate,
3676            L.orig_tax_jurisdiction_id,
3677            L.orig_tax_jurisdiction_code,
3678            L.orig_tax_amt_included_flag,
3679            L.orig_self_assessed_flag,
3680            L.tax_currency_code,
3681            0,                                    -- L.tax_amt,
3682            0,                                    -- L.tax_amt_tax_curr,
3683            0,                                    -- L.tax_amt_funcl_curr,
3684            0,                                    -- L.taxable_amt,
3685            0,                                    -- L.taxable_amt_tax_curr,
3686            0,                                    -- L.taxable_amt_funcl_curr,
3687            DECODE(L.orig_taxable_amt, NULL,L.taxable_amt,
3688                   L.orig_taxable_amt),           -- L.orig_taxable_amt
3689            DECODE(L.orig_taxable_amt_tax_curr, NULL, L.taxable_amt_funcl_curr,
3690                   L.orig_taxable_amt_tax_curr),  -- L.orig_taxable_amt_tax_curr
3691            0,                                    -- L.cal_tax_amt,
3692            0,                                    -- L.cal_tax_amt_tax_curr,
3693            0,                                    -- L.cal_tax_amt_funcl_curr,
3694            DECODE(L.orig_tax_amt, NULL, L.tax_amt,
3695                   L.orig_tax_amt),               -- L.orig_tax_amt
3696            DECODE(L.orig_tax_amt_tax_curr, NULL, L.tax_amt,
3697                   L.orig_tax_amt_tax_curr),      -- L.orig_tax_amt_tax_curr
3698            0,                                    -- L.rec_tax_amt,
3699            0,                                    -- L.rec_tax_amt_tax_curr,
3700            0,                                    -- L.rec_tax_amt_funcl_curr,
3701            0,                                    -- L.nrec_tax_amt,
3702            0,                                    -- L.nrec_tax_amt_tax_curr,
3703            0,                                    -- L.nrec_tax_amt_funcl_curr,
3704            L.tax_exemption_id,
3705            L.tax_rate_before_exemption,
3706            L.tax_rate_name_before_exemption,
3707            L.exempt_rate_modifier,
3708            L.exempt_certificate_number,
3709            L.exempt_reason,
3710            L.exempt_reason_code,
3711            L.tax_exception_id,
3712            L.tax_rate_before_exception,
3713            L.tax_rate_name_before_exception,
3714            L.exception_rate,
3715            L.tax_apportionment_flag,
3716            L.historical_flag,
3717            L.taxable_basis_formula,
3718            L.tax_calculation_formula,
3719            'Y',                                   -- L.cancel_flag
3720            L.purge_flag,
3721            L.delete_flag,
3722            L.tax_amt_included_flag,
3723            L.self_assessed_flag,
3724            L.overridden_flag,
3725            L.manually_entered_flag,
3726            L.freeze_until_overridden_flag,
3727            L.copied_from_other_doc_flag,
3728            L.recalc_required_flag,
3729            L.settlement_flag,
3730            L.item_dist_changed_flag,
3731            L.associated_child_frozen_flag,
3732            L.tax_only_line_flag,
3733            L.compounding_dep_tax_flag,
3734            L.last_manual_entry,
3735            L.tax_provider_id,
3736            L.record_type_code,
3737            L.reporting_period_id,
3738            L.legal_message_appl_2,
3739            L.legal_message_status,
3740            L.legal_message_rate,
3741            L.legal_message_basis,
3742            L.legal_message_calc,
3743            L.legal_message_threshold,
3744            L.legal_message_pos,
3745            L.legal_message_trn,
3746            L.legal_message_exmpt,
3747            L.legal_message_excpt,
3748            L.tax_regime_template_id,
3749            L.tax_applicability_result_id,
3750            L.direct_rate_result_id,
3751            L.status_result_id,
3752            L.rate_result_id,
3753            L.basis_result_id,
3754            L.thresh_result_id,
3755            L.calc_result_id,
3756            L.tax_reg_num_det_result_id,
3757            L.eval_exmpt_result_id,
3758            L.eval_excpt_result_id,
3759            L.enforce_from_natural_acct_flag,
3760            NULL,                                 -- L.tax_hold_code,
3761            NULL,                                 -- L.tax_hold_released_code,
3762            NULL,                                 -- L.prd_total_tax_amt,
3763            NULL,                                 -- L.prd_total_tax_amt_tax_curr,
3764            NULL,                                 -- L.prd_total_tax_amt_funcl_curr,
3765            L.internal_org_location_id,
3766            L.attribute_category,
3767            L.attribute1,
3768            L.attribute2,
3769            L.attribute3,
3770            L.attribute4,
3771            L.attribute5,
3772            L.attribute6,
3773            L.attribute7,
3774            L.attribute8,
3775            L.attribute9,
3776            L.attribute10,
3777            L.attribute11,
3778            L.attribute12,
3779            L.attribute13,
3780            L.attribute14,
3781            L.attribute15,
3782            L.global_attribute_category,
3783            L.global_attribute1,
3784            L.global_attribute2,
3785            L.global_attribute3,
3786            L.global_attribute4,
3787            L.global_attribute5,
3788            L.global_attribute6,
3789            L.global_attribute7,
3790            L.global_attribute8,
3791            L.global_attribute9,
3792            L.global_attribute10,
3793            L.global_attribute11,
3794            L.global_attribute12,
3795            L.global_attribute13,
3796            L.global_attribute14,
3797            L.global_attribute15,
3798            L.numeric1,
3799            L.numeric2,
3800            L.numeric3,
3801            L.numeric4,
3802            L.numeric5,
3803            L.numeric6,
3804            L.numeric7,
3805            L.numeric8,
3806            L.numeric9,
3807            L.numeric10,
3808            L.char1,
3809            L.char2,
3810            L.char3,
3811            L.char4,
3812            L.char5,
3813            L.char6,
3814            L.char7,
3815            L.char8,
3816            L.char9,
3817            L.char10,
3818            L.date1,
3819            L.date2,
3820            L.date3,
3821            L.date4,
3822            L.date5,
3823            L.date6,
3824            L.date7,
3825            L.date8,
3826            L.date9,
3827            L.date10,
3828            L.tax_rate_type,
3829            L.created_by,
3830            L.creation_date,
3831            L.last_updated_by,
3832            L.last_update_date,
3833            L.last_update_login,
3834            L.line_assessable_value,
3835            L.legal_justification_text1,
3836            L.legal_justification_text2,
3837            L.legal_justification_text3,
3838            L.reporting_currency_code,
3839            NULL,                           -- L.trx_line_index
3840            NULL,                           -- L.offset_tax_rate_code
3841            NULL,                           -- L.proration_code
3842            NULL,                           -- L.other_doc_source
3843            L.reporting_only_flag,
3844            L.ctrl_total_line_tx_amt,
3845            DECODE(L.tax_provider_id, NULL, L.sync_with_prvdr_flag, 'Y'),
3846            L.interface_entity_code,
3847            L.interface_tax_line_id,
3848            L.taxing_juris_geography_id,
3849            L.adjusted_doc_tax_line_id,
3850            1,
3851            DECODE(L.legal_reporting_status, '111111111111111',
3852                   '000000000000000', L.legal_reporting_status),
3853            L.account_source_tax_rate_id
3854     FROM  zx_lines L,
3855           zx_lines_det_factors G
3856     WHERE G.application_id = p_event_class_rec.application_id
3857       AND G.entity_code = p_event_class_rec.entity_code
3858       AND G.event_class_code = p_event_class_rec.event_class_code
3859       --  AND G.trx_id = p_event_class_rec.trx_id
3860       AND G.event_id = p_event_class_rec.event_id
3861       AND L.trx_id = G.trx_id
3862       AND L.trx_line_id = G.trx_line_id
3863       AND L.trx_level_type = G.trx_level_type
3864       AND L.event_class_code = G.event_class_code
3865       AND L.entity_code = G.entity_code
3866       AND L.application_id = G.application_id
3867       AND L.associated_child_frozen_flag = 'Y'
3868       AND L.cancel_flag <> 'Y'
3869       -- bug 6906427
3870       AND G.line_level_action = 'UPDATE'
3871       AND NOT EXISTS ( SELECT 1
3872                          FROM  zx_detail_tax_lines_gt T
3873                          WHERE T.tax_line_id = L.tax_line_id
3874 -- bug 8470599 these columns are redundant and are doing index range scan on ZX_DETAIL_TAX_LINES_GT_U1
3875 --                           AND T.trx_id = L.trx_id
3876 --                           AND T.trx_line_id = L.trx_line_id
3877 --                           AND T.event_class_code = L.event_class_code
3878 --                           AND T.entity_code = L.entity_code
3879 --                           AND T.application_id = L.application_id
3880 --                           AND T.trx_level_type = L.trx_level_type
3881                            --  AND T.tax = L.tax
3882                            --  AND T.tax_regime_code = L.tax_regime_code
3883                            --  AND T.tax_status_code = L.tax_status_code
3884                            --  AND T.tax_line_number = L.tax_line_number
3885                        )
3886       );
3887 
3888     IF (g_level_statement >= g_current_runtime_level ) THEN
3889       FND_LOG.STRING(g_level_statement,
3890                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_frozen_tax_lines',
3891                      'Number of Rows Inserted: ' || SQL%ROWCOUNT);
3892     END IF;
3893 
3894   END IF;   -- tax_event_type_code = OVERRIDE_TAX, or else
3895 
3896   IF (g_level_procedure >= g_current_runtime_level ) THEN
3897     FND_LOG.STRING(g_level_procedure,
3898                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_frozen_tax_lines',
3899                    'p_return_status = ' || p_return_status);
3900     FND_LOG.STRING(g_level_procedure,
3901                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_frozen_tax_lines',
3902                    'p_error_buffer  = ' || p_error_buffer);
3903     FND_LOG.STRING(g_level_procedure,
3904                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_frozen_tax_lines.END',
3905                    'ZX_TDS_TAX_LINES_POPU_PKG: process_frozen_tax_lines(-)');
3906   END IF;
3907 
3908 EXCEPTION
3909     WHEN OTHERS THEN
3910       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3911       p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3912 
3913       IF (g_level_unexpected >= g_current_runtime_level ) THEN
3914         FND_LOG.STRING(g_level_unexpected,
3915                        'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_frozen_tax_lines',
3916                         p_error_buffer);
3917       END IF;
3918 
3919 END process_frozen_tax_lines;
3920 
3921 -----------------------------------------------------------------------
3922 --  PUBLIC PROCEDURE
3923 --  process_discard_tax_lines
3924 --
3925 --  DESCRIPTION
3926 --  This procedure brings all discarded tax lines from zx_lines into
3927 --  detail tax lines global temp table
3928 --
3929 --  CALLED BY
3930 --   ZX_TDS_TAX_LINES_DETM_PKG
3931 
3932 PROCEDURE process_discard_tax_lines(
3933             p_event_class_rec   IN     ZX_API_PUB.EVENT_CLASS_REC_TYPE,
3934             p_return_status         OUT NOCOPY VARCHAR2,
3935             p_error_buffer          OUT NOCOPY VARCHAR2)
3936 
3937 IS
3938 BEGIN
3939 
3940   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3941 
3942   IF (g_level_procedure >= g_current_runtime_level ) THEN
3943     FND_LOG.STRING(g_level_procedure,
3944                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_discard_tax_lines.BEGIN',
3945                    'ZX_TDS_TAX_LINES_POPU_PKG: process_discard_tax_lines(+)');
3946   END IF;
3947 
3948   p_return_status := FND_API.G_RET_STS_SUCCESS;
3949 
3950 -- bug 8470599 forcing the driving table in select clause from zx_lines_det_factors
3951     INSERT INTO zx_detail_tax_lines_gt
3952     (      tax_line_id,
3953            internal_organization_id,
3954            application_id,
3955            entity_code,
3956            event_class_code,
3957            event_type_code,
3958            trx_id,
3959            trx_line_id,
3960            trx_level_type,
3961            trx_line_number,
3962            doc_event_status,
3963            -- line_event_status,
3964            tax_event_class_code,
3965            tax_event_type_code,
3966            tax_line_number,
3967            content_owner_id,
3968            tax_regime_id,
3969            tax_regime_code,
3970            tax_id,
3971            tax,
3972            tax_status_id,
3973            tax_status_code,
3974            tax_rate_id,
3975            tax_rate_code,
3976            tax_rate,
3977            tax_apportionment_line_number,
3978            trx_id_level2,
3979            trx_id_level3,
3980            trx_id_level4,
3981            trx_id_level5,
3982            trx_id_level6,
3983            trx_user_key_level1,
3984            trx_user_key_level2,
3985            trx_user_key_level3,
3986            trx_user_key_level4,
3987            trx_user_key_level5,
3988            trx_user_key_level6,
3989            mrc_tax_line_flag,
3990            ledger_id,
3991            establishment_id,
3992            legal_entity_id,
3993            legal_entity_tax_reg_number,
3994            hq_estb_reg_number,
3995            hq_estb_party_tax_prof_id,
3996            currency_conversion_date,
3997            currency_conversion_type,
3998            currency_conversion_rate,
3999            tax_currency_conversion_date,
4000            tax_currency_conversion_type,
4001            tax_currency_conversion_rate,
4002            trx_currency_code,
4003            minimum_accountable_unit,
4004            precision,
4005            trx_number,
4006            trx_date,
4007            unit_price,
4008            line_amt,
4009            trx_line_quantity,
4010            tax_base_modifier_rate,
4011            ref_doc_application_id,
4012            ref_doc_entity_code,
4013            ref_doc_event_class_code,
4014            ref_doc_trx_id,
4015            ref_doc_line_id,
4016            ref_doc_line_quantity,
4017            other_doc_line_amt,
4018            other_doc_line_tax_amt,
4019            other_doc_line_taxable_amt,
4020            unrounded_taxable_amt,
4021            unrounded_tax_amt,
4022            related_doc_application_id,
4023            related_doc_entity_code,
4024            related_doc_event_class_code,
4025            related_doc_trx_id,
4026            related_doc_number,
4027            related_doc_date,
4028            applied_from_application_id,
4029            applied_from_event_class_code,
4030            applied_from_entity_code,
4031            applied_from_trx_id,
4032            applied_from_line_id,
4033            applied_from_trx_level_type,
4034            applied_from_trx_number,
4035            adjusted_doc_application_id,
4036            adjusted_doc_entity_code,
4037            adjusted_doc_event_class_code,
4038            adjusted_doc_trx_id,
4039            adjusted_doc_line_id,
4040            adjusted_doc_trx_level_type,
4041            adjusted_doc_number,
4042            adjusted_doc_date,
4043            applied_to_application_id,
4044            applied_to_event_class_code,
4045            applied_to_entity_code,
4046            applied_to_trx_id,
4047            applied_to_line_id,
4048            applied_to_trx_level_type,
4049            applied_to_trx_number,
4050            summary_tax_line_id,
4051            offset_link_to_tax_line_id,
4052            offset_flag,
4053            process_for_recovery_flag,
4054            tax_jurisdiction_id,
4055            tax_jurisdiction_code,
4056            place_of_supply,
4057            place_of_supply_type_code,
4058            place_of_supply_result_id,
4059            tax_date_rule_id,
4060            tax_date,
4061            tax_determine_date,
4062            tax_point_date,
4063            trx_line_date,
4064            tax_type_code,
4065            tax_code,
4066            tax_registration_id,
4067            tax_registration_number,
4068            registration_party_type,
4069            rounding_level_code,
4070            rounding_rule_code,
4071            rounding_lvl_party_tax_prof_id,
4072            rounding_lvl_party_type,
4073            compounding_tax_flag,
4074            orig_tax_status_id,
4075            orig_tax_status_code,
4076            orig_tax_rate_id,
4077            orig_tax_rate_code,
4078            orig_tax_rate,
4079            orig_tax_jurisdiction_id,
4080            orig_tax_jurisdiction_code,
4081            orig_tax_amt_included_flag,
4082            orig_self_assessed_flag,
4083            tax_currency_code,
4084            tax_amt,
4085            tax_amt_tax_curr,
4086            tax_amt_funcl_curr,
4087            taxable_amt,
4088            taxable_amt_tax_curr,
4089            taxable_amt_funcl_curr,
4090            orig_taxable_amt,
4091            orig_taxable_amt_tax_curr,
4092            cal_tax_amt,
4093            cal_tax_amt_tax_curr,
4094            cal_tax_amt_funcl_curr,
4095            orig_tax_amt,
4096            orig_tax_amt_tax_curr,
4097            rec_tax_amt,
4098            rec_tax_amt_tax_curr,
4099            rec_tax_amt_funcl_curr,
4100            nrec_tax_amt,
4101            nrec_tax_amt_tax_curr,
4102            nrec_tax_amt_funcl_curr,
4103            tax_exemption_id,
4104            tax_rate_before_exemption,
4105            tax_rate_name_before_exemption,
4106            exempt_rate_modifier,
4107            exempt_certificate_number,
4108            exempt_reason,
4109            exempt_reason_code,
4110            tax_exception_id,
4111            tax_rate_before_exception,
4112            tax_rate_name_before_exception,
4113            exception_rate,
4114            tax_apportionment_flag,
4115            historical_flag,
4116            taxable_basis_formula,
4117            tax_calculation_formula,
4118            cancel_flag,
4119            purge_flag,
4120            delete_flag,
4121            tax_amt_included_flag,
4122            self_assessed_flag,
4123            overridden_flag,
4124            manually_entered_flag,
4125            freeze_until_overridden_flag,
4126            copied_from_other_doc_flag,
4127            recalc_required_flag,
4128            settlement_flag,
4129            item_dist_changed_flag,
4130            associated_child_frozen_flag,
4131            tax_only_line_flag,
4132            compounding_dep_tax_flag,
4133            last_manual_entry,
4134            tax_provider_id,
4135            record_type_code,
4136            reporting_period_id,
4137            legal_message_appl_2,
4138            legal_message_status,
4139            legal_message_rate,
4140            legal_message_basis,
4141            legal_message_calc,
4142            legal_message_threshold,
4143            legal_message_pos,
4144            legal_message_trn,
4145            legal_message_exmpt,
4146            legal_message_excpt,
4147            tax_regime_template_id,
4148            tax_applicability_result_id,
4149            direct_rate_result_id,
4150            status_result_id,
4151            rate_result_id,
4152            basis_result_id,
4153            thresh_result_id,
4154            calc_result_id,
4155            tax_reg_num_det_result_id,
4156            eval_exmpt_result_id,
4157            eval_excpt_result_id,
4158            enforce_from_natural_acct_flag,
4159            tax_hold_code,
4160            tax_hold_released_code,
4161            prd_total_tax_amt,
4162            prd_total_tax_amt_tax_curr,
4163            prd_total_tax_amt_funcl_curr,
4164            internal_org_location_id,
4165            attribute_category,
4166            attribute1,
4167            attribute2,
4168            attribute3,
4169            attribute4,
4170            attribute5,
4171            attribute6,
4172            attribute7,
4173            attribute8,
4174            attribute9,
4175            attribute10,
4176            attribute11,
4177            attribute12,
4178            attribute13,
4179            attribute14,
4180            attribute15,
4181            global_attribute_category,
4182            global_attribute1,
4183            global_attribute2,
4184            global_attribute3,
4185            global_attribute4,
4186            global_attribute5,
4187            global_attribute6,
4188            global_attribute7,
4189            global_attribute8,
4190            global_attribute9,
4191            global_attribute10,
4192            global_attribute11,
4193            global_attribute12,
4194            global_attribute13,
4195            global_attribute14,
4196            global_attribute15,
4197            numeric1,
4198            numeric2,
4199            numeric3,
4200            numeric4,
4201            numeric5,
4202            numeric6,
4203            numeric7,
4204            numeric8,
4205            numeric9,
4206            numeric10,
4207            char1,
4208            char2,
4209            char3,
4210            char4,
4211            char5,
4212            char6,
4213            char7,
4214            char8,
4215            char9,
4216            char10,
4217            date1,
4218            date2,
4219            date3,
4220            date4,
4221            date5,
4222            date6,
4223            date7,
4224            date8,
4225            date9,
4226            date10,
4227            tax_rate_type,
4228            created_by,
4229            creation_date,
4230            last_updated_by,
4231            last_update_date,
4232            last_update_login,
4233            line_assessable_value,
4234            legal_justification_text1,
4235            legal_justification_text2,
4236            legal_justification_text3,
4237            reporting_currency_code,
4238            trx_line_index,
4239            offset_tax_rate_code,
4240            proration_code,
4241            other_doc_source,
4242            reporting_only_flag,
4243            ctrl_total_line_tx_amt,
4244            sync_with_prvdr_flag,
4245            interface_entity_code,
4246            interface_tax_line_id,
4247            taxing_juris_geography_id,
4248            adjusted_doc_tax_line_id,
4249            object_version_number,
4250            legal_reporting_status,
4251            account_source_tax_rate_id
4252     )
4253    (SELECT /*+ leading(G) */
4254            L.tax_line_id,
4255            L.internal_organization_id,
4256            L.application_id,
4257            L.entity_code,
4258            L.event_class_code,
4259            L.event_type_code,
4260            L.trx_id,
4261            L.trx_line_id,
4262            L.trx_level_type,
4263            L.trx_line_number,
4264            L.doc_event_status,
4265            -- L.line_event_status,
4266            L.tax_event_class_code,
4267            L.tax_event_type_code,
4268            L.tax_line_number,
4269            L.content_owner_id,
4270            L.tax_regime_id,
4271            L.tax_regime_code,
4272            L.tax_id,
4273            L.tax,
4274            L.tax_status_id,
4275            L.tax_status_code,
4276            L.tax_rate_id,
4277            L.tax_rate_code,
4278            L.tax_rate,
4279            L.tax_apportionment_line_number,
4280            L.trx_id_level2,
4281            L.trx_id_level3,
4282            L.trx_id_level4,
4283            L.trx_id_level5,
4284            L.trx_id_level6,
4285            L.trx_user_key_level1,
4286            L.trx_user_key_level2,
4287            L.trx_user_key_level3,
4288            L.trx_user_key_level4,
4289            L.trx_user_key_level5,
4290            L.trx_user_key_level6,
4291            L.mrc_tax_line_flag,
4292            G.ledger_id,
4293            G.establishment_id,
4294            G.legal_entity_id,
4295            L.legal_entity_tax_reg_number,
4296            L.hq_estb_reg_number,
4297            L.hq_estb_party_tax_prof_id,
4298            G.currency_conversion_date,
4299            G.currency_conversion_type,
4300            G.currency_conversion_rate,
4301            L.tax_currency_conversion_date,
4302            L.tax_currency_conversion_type,
4303            L.tax_currency_conversion_rate,
4304            L.trx_currency_code,
4305            L.minimum_accountable_unit,
4306            L.precision,
4307            G.trx_number,
4308            G.trx_date,
4309            L.unit_price,
4310            L.line_amt,
4311            L.trx_line_quantity,
4312            L.tax_base_modifier_rate,
4313            L.ref_doc_application_id,
4314            L.ref_doc_entity_code,
4315            L.ref_doc_event_class_code,
4316            L.ref_doc_trx_id,
4317            L.ref_doc_line_id,
4318            L.ref_doc_line_quantity,
4319            L.other_doc_line_amt,
4320            L.other_doc_line_tax_amt,
4321            L.other_doc_line_taxable_amt,
4322            0,                                     -- L.unrounded_taxable_amt
4323            0,                                     -- L.unrounded_tax_amt
4324            L.related_doc_application_id,
4325            L.related_doc_entity_code,
4326            L.related_doc_event_class_code,
4327            L.related_doc_trx_id,
4328            L.related_doc_number,
4329            L.related_doc_date,
4330            L.applied_from_application_id,
4331            L.applied_from_event_class_code,
4332            L.applied_from_entity_code,
4333            L.applied_from_trx_id,
4334            L.applied_from_line_id,
4335            L.applied_from_trx_level_type,
4336            L.applied_from_trx_number,
4337            L.adjusted_doc_application_id,
4338            L.adjusted_doc_entity_code,
4339            L.adjusted_doc_event_class_code,
4340            L.adjusted_doc_trx_id,
4341            L.adjusted_doc_line_id,
4342            L.adjusted_doc_trx_level_type,
4343            L.adjusted_doc_number,
4344            L.adjusted_doc_date,
4345            L.applied_to_application_id,
4346            L.applied_to_event_class_code,
4347            L.applied_to_entity_code,
4348            L.applied_to_trx_id,
4349            L.applied_to_line_id,
4350            L.applied_to_trx_level_type,
4351            L.applied_to_trx_number,
4352            L.summary_tax_line_id,
4353            L.offset_link_to_tax_line_id,
4354            L.offset_flag,
4355            DECODE(L.historical_flag,'Y','Y','N'), -- L.Process_For_Recovery_Flag
4356            L.tax_jurisdiction_id,
4357            L.tax_jurisdiction_code,
4358            L.place_of_supply,
4359            L.place_of_supply_type_code,
4360            L.place_of_supply_result_id,
4361            L.tax_date_rule_id,
4362            L.tax_date,
4363            L.tax_determine_date,
4364            L.tax_point_date,
4365            L.trx_line_date,
4366            L.tax_type_code,
4367            L.tax_code,
4368            L.tax_registration_id,
4369            L.tax_registration_number,
4370            L.registration_party_type,
4371            L.rounding_level_code,
4372            L.rounding_rule_code,
4373            L.rounding_lvl_party_tax_prof_id,
4374            L.rounding_lvl_party_type,
4375            L.compounding_tax_flag,
4376            L.orig_tax_status_id,
4377            L.orig_tax_status_code,
4378            L.orig_tax_rate_id,
4379            L.orig_tax_rate_code,
4380            L.orig_tax_rate,
4381            L.orig_tax_jurisdiction_id,
4382            L.orig_tax_jurisdiction_code,
4383            L.orig_tax_amt_included_flag,
4384            L.orig_self_assessed_flag,
4385            L.tax_currency_code,
4386            0,                                     -- L.tax_amt
4387            0,                                     -- L.tax_amt_tax_curr
4388            0,                                     -- L.tax_amt_funcl_curr   ??
4389            0,                                     -- taxable_amt
4390            0,                                     -- taxable_amt_tax_curr
4391            0,                                     -- L.taxable_amt_funcl_curr   ??
4392            DECODE(L.orig_taxable_amt, NULL, L.taxable_amt,
4393                   L.orig_taxable_amt),            -- orig_taxable_amt
4394            DECODE(L.orig_taxable_amt_tax_curr, NULL, L.taxable_amt_tax_curr,
4395                   L.orig_taxable_amt_tax_curr),   -- orig_taxable_amt_tax_curr
4396            0,                                     -- L.cal_tax_amt
4397            0,                                     -- L.cal_tax_amt_tax_curr
4398            0,                                     -- L.cal_tax_amt_funcl_curr   ??
4399            DECODE(L.orig_tax_amt, NULL, L.tax_amt,
4400                   L.orig_tax_amt),                -- L.orig_tax_amt,
4401            DECODE(L.orig_tax_amt_tax_curr, NULL,  L.tax_amt_tax_curr,
4402                   L.orig_tax_amt_tax_curr),       -- L.orig_tax_amt_tax_curr
4403            0,                                     -- L.rec_tax_amt
4404            0,                                     -- L.rec_tax_amt_tax_curr
4405            0,                                     -- L.rec_tax_amt_funcl_curr        ??
4406            0,                                     -- L.nrec_tax_amt
4407            0,                                     -- L.nrec_tax_amt_tax_curr
4408            0,                                     -- L.nrec_tax_amt_funcl_curr       ??
4409            L.tax_exemption_id,
4410            L.tax_rate_before_exemption,
4411            L.tax_rate_name_before_exemption,
4412            L.exempt_rate_modifier,
4413            L.exempt_certificate_number,
4414            L.exempt_reason,
4415            L.exempt_reason_code,
4416            L.tax_exception_id,
4417            L.tax_rate_before_exception,
4418            L.tax_rate_name_before_exception,
4419            L.exception_rate,
4420            L.tax_apportionment_flag,
4421            L.historical_flag,
4422            L.taxable_basis_formula,
4423            L.tax_calculation_formula,
4424            'Y',                                   -- DECODE(L.historical_flag, 'Y', 'Y', L.cancel_flag),
4425            L.purge_flag,
4426            L.delete_flag,
4427            L.tax_amt_included_flag,
4428            L.self_assessed_flag,
4429            L.overridden_flag,
4430            L.manually_entered_flag,
4431            L.freeze_until_overridden_flag,
4432            L.copied_from_other_doc_flag,
4433            L.recalc_required_flag,
4434            L.settlement_flag,
4435            L.item_dist_changed_flag,
4436            L.associated_child_frozen_flag,
4437            L.tax_only_line_flag,
4438            L.compounding_dep_tax_flag,
4439            L.last_manual_entry,
4440            L.tax_provider_id,
4441            L.record_type_code,
4442            L.reporting_period_id,
4443            L.legal_message_appl_2,
4444            L.legal_message_status,
4445            L.legal_message_rate,
4446            L.legal_message_basis,
4447            L.legal_message_calc,
4448            L.legal_message_threshold,
4449            L.legal_message_pos,
4450            L.legal_message_trn,
4451            L.legal_message_exmpt,
4452            L.legal_message_excpt,
4453            L.tax_regime_template_id,
4454            L.tax_applicability_result_id,
4455            L.direct_rate_result_id,
4456            L.status_result_id,
4457            L.rate_result_id,
4458            L.basis_result_id,
4459            L.thresh_result_id,
4460            L.calc_result_id,
4461            L.tax_reg_num_det_result_id,
4462            L.eval_exmpt_result_id,
4463            L.eval_excpt_result_id,
4464            L.enforce_from_natural_acct_flag,
4465            NULL,                                  --L.tax_hold_code,
4466            NULL,                                  --L.tax_hold_released_code,
4467            NULL,                                  -- L.prd_total_tax_amt
4468            NULL,                                  -- L.prd_total_tax_amt_tax_curr
4469            NULL,                                  -- L.prd_total_tax_amt_funcl_curr
4470            L.internal_org_location_id,
4471            L.attribute_category,
4472            L.attribute1,
4473            L.attribute2,
4474            L.attribute3,
4475            L.attribute4,
4476            L.attribute5,
4477            L.attribute6,
4478            L.attribute7,
4479            L.attribute8,
4480            L.attribute9,
4481            L.attribute10,
4482            L.attribute11,
4483            L.attribute12,
4484            L.attribute13,
4485            L.attribute14,
4486            L.attribute15,
4487            L.global_attribute_category,
4488            L.global_attribute1,
4489            L.global_attribute2,
4490            L.global_attribute3,
4491            L.global_attribute4,
4492            L.global_attribute5,
4493            L.global_attribute6,
4494            L.global_attribute7,
4495            L.global_attribute8,
4496            L.global_attribute9,
4497            L.global_attribute10,
4498            L.global_attribute11,
4499            L.global_attribute12,
4500            L.global_attribute13,
4501            L.global_attribute14,
4502            L.global_attribute15,
4503            L.numeric1,
4504            L.numeric2,
4505            L.numeric3,
4506            L.numeric4,
4507            L.numeric5,
4508            L.numeric6,
4509            L.numeric7,
4510            L.numeric8,
4511            L.numeric9,
4512            L.numeric10,
4513            L.char1,
4514            L.char2,
4515            L.char3,
4516            L.char4,
4517            L.char5,
4518            L.char6,
4519            L.char7,
4520            L.char8,
4521            L.char9,
4522            L.char10,
4523            L.date1,
4524            L.date2,
4525            L.date3,
4526            L.date4,
4527            L.date5,
4528            L.date6,
4529            L.date7,
4530            L.date8,
4531            L.date9,
4532            L.date10,
4533            L.tax_rate_type,
4534            L.created_by,
4535            L.creation_date,
4536            fnd_global.user_id, --L.last_updated_by,
4537            SYSDATE,            --L.last_update_date,
4538            fnd_global.login_id,--L.last_update_login,
4539            L.line_assessable_value,
4540            L.legal_justification_text1,
4541            L.legal_justification_text2,
4542            L.legal_justification_text3,
4543            L.reporting_currency_code,
4544            NULL,                           -- L.trx_line_index
4545            NULL,                           -- L.offset_tax_rate_code
4546            NULL,                           -- L.proration_code
4547            NULL,                           -- L.other_doc_source
4548            L.reporting_only_flag,
4549            L.ctrl_total_line_tx_amt,
4550            L.sync_with_prvdr_flag,
4551            L.interface_entity_code,
4552            L.interface_tax_line_id,
4553            L.taxing_juris_geography_id,
4554            L.adjusted_doc_tax_line_id,
4555            1,
4556            decode(L.legal_reporting_status,'111111111111111',
4557                   '000000000000000',L.legal_reporting_status),
4558            L.account_source_tax_rate_id
4559     FROM  ZX_LINES L,
4560           zx_lines_det_factors G
4561     WHERE G.application_id = p_event_class_rec.application_id      AND
4562           G.entity_code = p_event_class_rec.entity_code            AND
4563           G.event_class_code = p_event_class_rec.event_class_code  AND
4564           -- G.trx_id = p_event_class_rec.trx_id                   AND
4565           G.event_id = p_event_class_rec.event_id                  AND
4566           L.trx_id = G.trx_id                                      AND
4567           L.trx_line_id = G.trx_line_id                            AND
4568           L.trx_level_type = G.trx_level_type                      AND
4569           L.event_class_code = G.event_class_code                  AND
4570           -- L.event_type_code = G.event_type_code                 AND
4571           L.entity_code = G.entity_code                            AND
4572           L.application_id = G.application_id                      AND
4573           -- L.subscriber_id = G.subscriber_id                     AND
4574           G.line_level_action IN ('DISCARD', 'UNAPPLY_FROM')       AND
4575           L.tax_provider_id IS NULL
4576       AND NOT EXISTS
4577           (SELECT /*+ INDEX(gt ZX_DETAIL_TAX_LINES_GT_U1) */
4578                   1
4579              FROM zx_detail_tax_lines_gt gt
4580             WHERE gt.application_id = L.application_id
4581               AND gt.entity_code = L.entity_code
4582               AND gt.event_class_code = L.event_class_code
4583               AND gt.trx_id  = L.trx_id
4584               AND gt.trx_line_id  = L.trx_line_id
4585               AND gt.trx_level_type  = L.trx_level_type
4586               AND gt.tax_regime_code  = L.tax_regime_code
4587               AND gt.tax  = L.tax
4588               AND NVL(gt.tax_apportionment_line_number, -999999) =
4589                               NVL(L.tax_apportionment_line_number, -999999)
4590           )
4591    );
4592 
4593   IF (g_level_procedure >= g_current_runtime_level ) THEN
4594     FND_LOG.STRING(g_level_procedure,
4595                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_discard_tax_lines',
4596                    'Number of Rows Inserted: ' || SQL%ROWCOUNT);
4597     FND_LOG.STRING(g_level_procedure,
4598                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_discard_tax_lines',
4599                    'p_return_status = ' || p_return_status);
4600     FND_LOG.STRING(g_level_procedure,
4601                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_discard_tax_lines',
4602                    'p_error_buffer  = ' || p_error_buffer);
4603     FND_LOG.STRING(g_level_procedure,
4604                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_discard_tax_lines.END',
4605                    'ZX_TDS_TAX_LINES_POPU_PKG: process_discard_tax_lines(-)');
4606   END IF;
4607 
4608 EXCEPTION
4609     WHEN OTHERS THEN
4610       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4611       p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4612 
4613       IF (g_level_unexpected >= g_current_runtime_level ) THEN
4614         FND_LOG.STRING(g_level_unexpected,
4615                        'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_discard_tax_lines',
4616                         p_error_buffer);
4617       END IF;
4618 
4619 END process_discard_tax_lines;
4620 
4621 -----------------------------------------------------------------------
4622 --  PUBLIC PROCEDURE
4623 --  process_cancel_trx_lines
4624 --
4625 --  DESCRIPTION
4626 --  This procedure processes cancelled trx lines (line_level_action='CANCEL')
4627 --   It brings all tax lines from zx_lines into detail tax lines global temp table
4628 --   and mark them as cancelled
4629 --
4630 --  CALLED BY
4631 --   ZX_TDS_TAX_LINES_DETM_PKG
4632 
4633 PROCEDURE process_cancel_trx_lines(
4634             p_event_class_rec   IN     ZX_API_PUB.EVENT_CLASS_REC_TYPE,
4635             p_return_status         OUT NOCOPY VARCHAR2,
4636             p_error_buffer          OUT NOCOPY VARCHAR2)
4637 
4638 IS
4639 BEGIN
4640 
4641   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4642 
4643   IF (g_level_procedure >= g_current_runtime_level ) THEN
4644     FND_LOG.STRING(g_level_procedure,
4645                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_trx_lines.BEGIN',
4646                    'ZX_TDS_TAX_LINES_POPU_PKG: process_cancel_trx_lines(+)');
4647   END IF;
4648 
4649   p_return_status := FND_API.G_RET_STS_SUCCESS;
4650 
4651 -- bug 8470599 forcing the driving table in select clause from zx_lines_det_factors
4652     INSERT INTO zx_detail_tax_lines_gt
4653     (      tax_line_id,
4654            internal_organization_id,
4655            application_id,
4656            entity_code,
4657            event_class_code,
4658            event_type_code,
4659            trx_id,
4660            trx_line_id,
4661            trx_level_type,
4662            trx_line_number,
4663            doc_event_status,
4664            tax_event_class_code,
4665            tax_event_type_code,
4666            tax_line_number,
4667            content_owner_id,
4668            tax_regime_id,
4669            tax_regime_code,
4670            tax_id,
4671            tax,
4672            tax_status_id,
4673            tax_status_code,
4674            tax_rate_id,
4675            tax_rate_code,
4676            tax_rate,
4677            tax_apportionment_line_number,
4678            trx_id_level2,
4679            trx_id_level3,
4680            trx_id_level4,
4681            trx_id_level5,
4682            trx_id_level6,
4683            trx_user_key_level1,
4684            trx_user_key_level2,
4685            trx_user_key_level3,
4686            trx_user_key_level4,
4687            trx_user_key_level5,
4688            trx_user_key_level6,
4689            mrc_tax_line_flag,
4690            ledger_id,
4691            establishment_id,
4692            legal_entity_id,
4693            legal_entity_tax_reg_number,
4694            hq_estb_reg_number,
4695            hq_estb_party_tax_prof_id,
4696            currency_conversion_date,
4697            currency_conversion_type,
4698            currency_conversion_rate,
4699            tax_currency_conversion_date,
4700            tax_currency_conversion_type,
4701            tax_currency_conversion_rate,
4702            trx_currency_code,
4703            minimum_accountable_unit,
4704            precision,
4705            trx_number,
4706            trx_date,
4707            unit_price,
4708            line_amt,
4709            trx_line_quantity,
4710            tax_base_modifier_rate,
4711            ref_doc_application_id,
4712            ref_doc_entity_code,
4713            ref_doc_event_class_code,
4714            ref_doc_trx_id,
4715            ref_doc_line_id,
4716            ref_doc_line_quantity,
4717            other_doc_line_amt,
4718            other_doc_line_tax_amt,
4719            other_doc_line_taxable_amt,
4720            unrounded_taxable_amt,
4721            unrounded_tax_amt,
4722            related_doc_application_id,
4723            related_doc_entity_code,
4724            related_doc_event_class_code,
4725            related_doc_trx_id,
4726            related_doc_number,
4727            related_doc_date,
4728            applied_from_application_id,
4729            applied_from_event_class_code,
4730            applied_from_entity_code,
4731            applied_from_trx_id,
4732            applied_from_line_id,
4733            applied_from_trx_level_type,
4734            applied_from_trx_number,
4735            adjusted_doc_application_id,
4736            adjusted_doc_entity_code,
4737            adjusted_doc_event_class_code,
4738            adjusted_doc_trx_id,
4739            adjusted_doc_line_id,
4740            adjusted_doc_trx_level_type,
4741            adjusted_doc_number,
4742            adjusted_doc_date,
4743            applied_to_application_id,
4744            applied_to_event_class_code,
4745            applied_to_entity_code,
4746            applied_to_trx_id,
4747            applied_to_line_id,
4748            applied_to_trx_number,
4749            summary_tax_line_id,
4750            offset_link_to_tax_line_id,
4751            offset_flag,
4752            process_for_recovery_flag,
4753            tax_jurisdiction_id,
4754            tax_jurisdiction_code,
4755            place_of_supply,
4756            place_of_supply_type_code,
4757            place_of_supply_result_id,
4758            tax_date_rule_id,
4759            tax_date,
4760            tax_determine_date,
4761            tax_point_date,
4762            trx_line_date,
4763            tax_type_code,
4764            tax_code,
4765            tax_registration_id,
4766            tax_registration_number,
4767            registration_party_type,
4768            rounding_level_code,
4769            rounding_rule_code,
4770            rounding_lvl_party_tax_prof_id,
4771            rounding_lvl_party_type,
4772            compounding_tax_flag,
4773            orig_tax_status_id,
4774            orig_tax_status_code,
4775            orig_tax_rate_id,
4776            orig_tax_rate_code,
4777            orig_tax_rate,
4778            orig_tax_jurisdiction_id,
4779            orig_tax_jurisdiction_code,
4780            orig_tax_amt_included_flag,
4781            orig_self_assessed_flag,
4782            tax_currency_code,
4783            tax_amt,
4784            tax_amt_tax_curr,
4785            tax_amt_funcl_curr,
4786            taxable_amt,
4787            taxable_amt_tax_curr,
4788            taxable_amt_funcl_curr,
4789            orig_taxable_amt,
4790            orig_taxable_amt_tax_curr,
4791            cal_tax_amt,
4792            cal_tax_amt_tax_curr,
4793            cal_tax_amt_funcl_curr,
4794            orig_tax_amt,
4795            orig_tax_amt_tax_curr,
4796            rec_tax_amt,
4797            rec_tax_amt_tax_curr,
4798            rec_tax_amt_funcl_curr,
4799            nrec_tax_amt,
4800            nrec_tax_amt_tax_curr,
4801            nrec_tax_amt_funcl_curr,
4802            tax_exemption_id,
4803            tax_rate_before_exemption,
4804            tax_rate_name_before_exemption,
4805            exempt_rate_modifier,
4806            exempt_certificate_number,
4807            exempt_reason,
4808            exempt_reason_code,
4809            tax_exception_id,
4810            tax_rate_before_exception,
4811            tax_rate_name_before_exception,
4812            exception_rate,
4813            tax_apportionment_flag,
4814            historical_flag,
4815            taxable_basis_formula,
4816            tax_calculation_formula,
4817            cancel_flag,
4818            purge_flag,
4819            delete_flag,
4820            tax_amt_included_flag,
4821            self_assessed_flag,
4822            overridden_flag,
4823            manually_entered_flag,
4824            freeze_until_overridden_flag,
4825            copied_from_other_doc_flag,
4826            recalc_required_flag,
4827            settlement_flag,
4828            item_dist_changed_flag,
4829            associated_child_frozen_flag,
4830            tax_only_line_flag,
4831            compounding_dep_tax_flag,
4832            last_manual_entry,
4833            tax_provider_id,
4834            record_type_code,
4835            reporting_period_id,
4836            legal_message_appl_2,
4837            legal_message_status,
4838            legal_message_rate,
4839            legal_message_basis,
4840            legal_message_calc,
4841            legal_message_threshold,
4842            legal_message_pos,
4843            legal_message_trn,
4844            legal_message_exmpt,
4845            legal_message_excpt,
4846            tax_regime_template_id,
4847            tax_applicability_result_id,
4848            direct_rate_result_id,
4849            status_result_id,
4850            rate_result_id,
4851            basis_result_id,
4852            thresh_result_id,
4853            calc_result_id,
4854            tax_reg_num_det_result_id,
4855            eval_exmpt_result_id,
4856            eval_excpt_result_id,
4857            enforce_from_natural_acct_flag,
4858            tax_hold_code,
4859            tax_hold_released_code,
4860            prd_total_tax_amt,
4861            prd_total_tax_amt_tax_curr,
4862            prd_total_tax_amt_funcl_curr,
4863            internal_org_location_id,
4864            attribute_category,
4865            attribute1,
4866            attribute2,
4867            attribute3,
4868            attribute4,
4869            attribute5,
4870            attribute6,
4871            attribute7,
4872            attribute8,
4873            attribute9,
4874            attribute10,
4875            attribute11,
4876            attribute12,
4877            attribute13,
4878            attribute14,
4879            attribute15,
4880            global_attribute_category,
4881            global_attribute1,
4882            global_attribute2,
4883            global_attribute3,
4884            global_attribute4,
4885            global_attribute5,
4886            global_attribute6,
4887            global_attribute7,
4888            global_attribute8,
4889            global_attribute9,
4890            global_attribute10,
4891            global_attribute11,
4892            global_attribute12,
4893            global_attribute13,
4894            global_attribute14,
4895            global_attribute15,
4896            numeric1,
4897            numeric2,
4898            numeric3,
4899            numeric4,
4900            numeric5,
4901            numeric6,
4902            numeric7,
4903            numeric8,
4904            numeric9,
4905            numeric10,
4906            char1,
4907            char2,
4908            char3,
4909            char4,
4910            char5,
4911            char6,
4912            char7,
4913            char8,
4914            char9,
4915            char10,
4916            date1,
4917            date2,
4918            date3,
4919            date4,
4920            date5,
4921            date6,
4922            date7,
4923            date8,
4924            date9,
4925            date10,
4926            tax_rate_type,
4927            created_by,
4928            creation_date,
4929            last_updated_by,
4930            last_update_date,
4931            last_update_login,
4932            line_assessable_value,
4933            legal_justification_text1,
4934            legal_justification_text2,
4935            legal_justification_text3,
4936            reporting_currency_code,
4937            trx_line_index,
4938            offset_tax_rate_code,
4939            proration_code,
4940            other_doc_source,
4941            reporting_only_flag,
4942            ctrl_total_line_tx_amt,
4943            sync_with_prvdr_flag,
4944            interface_entity_code,
4945            interface_tax_line_id,
4946            taxing_juris_geography_id,
4947            adjusted_doc_tax_line_id,
4948            object_version_number,
4949            legal_reporting_status,
4950            account_source_tax_rate_id
4951     )
4952    (SELECT /*+ leading(G) */
4953            L.tax_line_id,
4954            L.internal_organization_id,
4955            L.application_id,
4956            L.entity_code,
4957            L.event_class_code,
4958            L.event_type_code,
4959            L.trx_id,
4960            L.trx_line_id,
4961            L.trx_level_type,
4962            L.trx_line_number,
4963            L.doc_event_status,
4964            L.tax_event_class_code,
4965            L.tax_event_type_code,
4966            L.tax_line_number,
4967            L.content_owner_id,
4968            L.tax_regime_id,
4969            L.tax_regime_code,
4970            L.tax_id,
4971            L.tax,
4972            L.tax_status_id,
4973            L.tax_status_code,
4974            L.tax_rate_id,
4975            L.tax_rate_code,
4976            L.tax_rate,
4977            L.tax_apportionment_line_number,
4978            L.trx_id_level2,
4979            L.trx_id_level3,
4980            L.trx_id_level4,
4981            L.trx_id_level5,
4982            L.trx_id_level6,
4983            L.trx_user_key_level1,
4984            L.trx_user_key_level2,
4985            L.trx_user_key_level3,
4986            L.trx_user_key_level4,
4987            L.trx_user_key_level5,
4988            L.trx_user_key_level6,
4989            L.mrc_tax_line_flag,
4990            L.ledger_id,
4991            L.establishment_id,
4992            L.legal_entity_id,
4993            L.legal_entity_tax_reg_number,
4994            L.hq_estb_reg_number,
4995            L.hq_estb_party_tax_prof_id,
4996            L.currency_conversion_date,
4997            L.currency_conversion_type,
4998            L.currency_conversion_rate,
4999            L.tax_currency_conversion_date,
5000            L.tax_currency_conversion_type,
5001            L.tax_currency_conversion_rate,
5002            L.trx_currency_code,
5003            L.minimum_accountable_unit,
5004            L.precision,
5005            G.trx_number,
5006            L.trx_date,
5007            L.unit_price,
5008            L.line_amt,
5009            L.trx_line_quantity,
5010            L.tax_base_modifier_rate,
5011            L.ref_doc_application_id,
5012            L.ref_doc_entity_code,
5013            L.ref_doc_event_class_code,
5014            L.ref_doc_trx_id,
5015            L.ref_doc_line_id,
5016            L.ref_doc_line_quantity,
5017            L.other_doc_line_amt,
5018            L.other_doc_line_tax_amt,
5019            L.other_doc_line_taxable_amt,
5020            L.unrounded_taxable_amt,
5021            0,                                     -- L.unrounded_tax_amt,
5022            L.related_doc_application_id,
5023            L.related_doc_entity_code,
5024            L.related_doc_event_class_code,
5025            L.related_doc_trx_id,
5026            L.related_doc_number,
5027            L.related_doc_date,
5028            L.applied_from_application_id,
5029            L.applied_from_event_class_code,
5030            L.applied_from_entity_code,
5031            L.applied_from_trx_id,
5032            L.applied_from_line_id,
5033            L.applied_from_trx_level_type,
5034            L.applied_from_trx_number,
5035            L.adjusted_doc_application_id,
5036            L.adjusted_doc_entity_code,
5037            L.adjusted_doc_event_class_code,
5038            L.adjusted_doc_trx_id,
5039            L.adjusted_doc_line_id,
5040            L.adjusted_doc_trx_level_type,
5041            L.adjusted_doc_number,
5042            L.adjusted_doc_date,
5043            L.applied_to_application_id,
5044            L.applied_to_event_class_code,
5045            L.applied_to_entity_code,
5046            L.applied_to_trx_id,
5047            L.applied_to_line_id,
5048            L.applied_to_trx_number,
5049            L.summary_tax_line_id,
5050            L.offset_link_to_tax_line_id,
5051            L.offset_flag,
5052            DECODE(L.reporting_only_flag, 'N', 'Y', 'N'), -- L.process_for_recovery_flag,
5053            L.tax_jurisdiction_id,
5054            L.tax_jurisdiction_code,
5055            L.place_of_supply,
5056            L.place_of_supply_type_code,
5057            L.place_of_supply_result_id,
5058            L.tax_date_rule_id,
5059            L.tax_date,
5060            L.tax_determine_date,
5061            L.tax_point_date,
5062            L.trx_line_date,
5063            L.tax_type_code,
5064            L.tax_code,
5065            L.tax_registration_id,
5066            L.tax_registration_number,
5067            L.registration_party_type,
5068            L.rounding_level_code,
5069            L.rounding_rule_code,
5070            L.rounding_lvl_party_tax_prof_id,
5071            L.rounding_lvl_party_type,
5072            L.compounding_tax_flag,
5073            L.orig_tax_status_id,
5074            L.orig_tax_status_code,
5075            L.orig_tax_rate_id,
5076            L.orig_tax_rate_code,
5077            L.orig_tax_rate,
5078            L.orig_tax_jurisdiction_id,
5079            L.orig_tax_jurisdiction_code,
5080            L.orig_tax_amt_included_flag,
5081            L.orig_self_assessed_flag,
5082            L.tax_currency_code,
5083            0,                                    -- L.tax_amt,
5084            0,                                    -- L.tax_amt_tax_curr,
5085            0,                                    -- L.tax_amt_funcl_curr,
5086            taxable_amt,
5087            taxable_amt_tax_curr,
5088            L.taxable_amt_funcl_curr,
5089            L.orig_taxable_amt,
5090            L.orig_taxable_amt_tax_curr,
5091            L.cal_tax_amt,
5092            L.cal_tax_amt_tax_curr,
5093            L.cal_tax_amt_funcl_curr,
5094            L.orig_tax_amt,
5095            L.orig_tax_amt_tax_curr,
5096            L.rec_tax_amt,
5097            L.rec_tax_amt_tax_curr,
5098            L.rec_tax_amt_funcl_curr,
5099            L.nrec_tax_amt,
5100            L.nrec_tax_amt_tax_curr,
5101            L.nrec_tax_amt_funcl_curr,
5102            L.tax_exemption_id,
5103            L.tax_rate_before_exemption,
5104            L.tax_rate_name_before_exemption,
5105            L.exempt_rate_modifier,
5106            L.exempt_certificate_number,
5107            L.exempt_reason,
5108            L.exempt_reason_code,
5109            L.tax_exception_id,
5110            L.tax_rate_before_exception,
5111            L.tax_rate_name_before_exception,
5112            L.exception_rate,
5113            L.tax_apportionment_flag,
5114            L.historical_flag,
5115            L.taxable_basis_formula,
5116            L.tax_calculation_formula,
5117            'Y',                                  -- L.cancel_flag,
5118            L.purge_flag,
5119            L.delete_flag,
5120            L.tax_amt_included_flag,
5121            L.self_assessed_flag,
5122            L.overridden_flag,
5123            L.manually_entered_flag,
5124            L.freeze_until_overridden_flag,
5125            L.copied_from_other_doc_flag,
5126            L.recalc_required_flag,
5127            L.settlement_flag,
5128            L.item_dist_changed_flag,
5129            L.associated_child_frozen_flag,
5130            L.tax_only_line_flag,
5131            L.compounding_dep_tax_flag,
5132            L.last_manual_entry,
5133            L.tax_provider_id,
5134            L.record_type_code,
5135            L.reporting_period_id,
5136            L.legal_message_appl_2,
5137            L.legal_message_status,
5138            L.legal_message_rate,
5139            L.legal_message_basis,
5140            L.legal_message_calc,
5141            L.legal_message_threshold,
5142            L.legal_message_pos,
5143            L.legal_message_trn,
5144            L.legal_message_exmpt,
5145            L.legal_message_excpt,
5146            L.tax_regime_template_id,
5147            L.tax_applicability_result_id,
5148            L.direct_rate_result_id,
5149            L.status_result_id,
5150            L.rate_result_id,
5151            L.basis_result_id,
5152            L.thresh_result_id,
5153            L.calc_result_id,
5154            L.tax_reg_num_det_result_id,
5155            L.eval_exmpt_result_id,
5156            L.eval_excpt_result_id,
5157            L.enforce_from_natural_acct_flag,
5158            NULL,              -- L.tax_hold_code,
5159            NULL,              -- L.tax_hold_released_code,
5160            NULL,              -- L.prd_total_tax_amt,
5161            NULL,              -- L.prd_total_tax_amt_tax_curr,
5162            NULL,              -- L.prd_total_tax_amt_funcl_curr,
5163            L.internal_org_location_id,
5164            L.attribute_category,
5165            L.attribute1,
5166            L.attribute2,
5167            L.attribute3,
5168            L.attribute4,
5169            L.attribute5,
5170            L.attribute6,
5171            L.attribute7,
5172            L.attribute8,
5173            L.attribute9,
5174            L.attribute10,
5175            L.attribute11,
5176            L.attribute12,
5177            L.attribute13,
5178            L.attribute14,
5179            L.attribute15,
5180            L.global_attribute_category,
5181            L.global_attribute1,
5182            L.global_attribute2,
5183            L.global_attribute3,
5184            L.global_attribute4,
5185            L.global_attribute5,
5186            L.global_attribute6,
5187            L.global_attribute7,
5188            L.global_attribute8,
5189            L.global_attribute9,
5190            L.global_attribute10,
5191            L.global_attribute11,
5192            L.global_attribute12,
5193            L.global_attribute13,
5194            L.global_attribute14,
5195            L.global_attribute15,
5196            L.numeric1,
5197            L.numeric2,
5198            L.numeric3,
5199            L.numeric4,
5200            L.numeric5,
5201            L.numeric6,
5202            L.numeric7,
5203            L.numeric8,
5204            L.numeric9,
5205            L.numeric10,
5206            L.char1,
5207            L.char2,
5208            L.char3,
5209            L.char4,
5210            L.char5,
5211            L.char6,
5212            L.char7,
5213            L.char8,
5214            L.char9,
5215            L.char10,
5216            L.date1,
5217            L.date2,
5218            L.date3,
5219            L.date4,
5220            L.date5,
5221            L.date6,
5222            L.date7,
5223            L.date8,
5224            L.date9,
5225            L.date10,
5226            L.tax_rate_type,
5227            L.created_by,
5228            L.creation_date,
5229            L.last_updated_by,
5230            L.last_update_date,
5231            L.last_update_login,
5232            L.line_assessable_value,
5233            L.legal_justification_text1,
5234            L.legal_justification_text2,
5235            L.legal_justification_text3,
5236            L.reporting_currency_code,
5237            L.trx_line_index,
5238            L.offset_tax_rate_code,
5239            L.proration_code,
5240            L.other_doc_source,
5241            L.reporting_only_flag,
5242            L.ctrl_total_line_tx_amt,
5243            L.sync_with_prvdr_flag,
5244            L.interface_entity_code,
5245            L.interface_tax_line_id,
5246            L.taxing_juris_geography_id,
5247            L.adjusted_doc_tax_line_id,
5248            1,
5249            decode(L.legal_reporting_status, '111111111111111',
5250                   '000000000000000', L.legal_reporting_status),
5251            L.account_source_tax_rate_id
5252     FROM  ZX_LINES L,
5253           zx_lines_det_factors G
5254     WHERE G.application_id = p_event_class_rec.application_id      AND
5255           G.entity_code = p_event_class_rec.entity_code            AND
5256           G.event_class_code = p_event_class_rec.event_class_code  AND
5257  --          G.trx_id = p_event_class_rec.trx_id                      AND
5258           G.event_id = p_event_class_rec.event_id                  AND
5259           L.trx_id = G.trx_id                                      AND
5260           L.trx_line_id = G.trx_line_id                            AND
5261           L.trx_level_type = G.trx_level_type                      AND
5262           L.event_class_code = G.event_class_code  AND
5263           -- L.event_type_code = G.event_type_code AND
5264           L.entity_code = G.entity_code            AND
5265           L.application_id = G.application_id      AND
5266           -- L.subscriber_id = G.subscriber_id     AND
5267           G.line_level_action =  'CANCEL'          AND
5268           L.tax_provider_id IS NULL
5269 
5270    );
5271 
5272   IF (g_level_procedure >= g_current_runtime_level ) THEN
5273     FND_LOG.STRING(g_level_procedure,
5274                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_trx_lines',
5275                    'p_return_status = ' || p_return_status);
5276     FND_LOG.STRING(g_level_procedure,
5277                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_trx_lines',
5278                    'p_error_buffer  = ' || p_error_buffer);
5279     FND_LOG.STRING(g_level_procedure,
5280                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_trx_lines.END',
5281                    'ZX_TDS_TAX_LINES_POPU_PKG: process_cancel_trx_lines(-)');
5282   END IF;
5283 
5284 EXCEPTION
5285     WHEN OTHERS THEN
5286       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5287       p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5288 
5289       IF (g_level_unexpected >= g_current_runtime_level ) THEN
5290         FND_LOG.STRING(g_level_unexpected,
5291                        'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_cancel_trx_lines',
5292                         p_error_buffer);
5293       END IF;
5294 
5295 END process_cancel_trx_lines;
5296 
5297 -----------------------------------------------------------------------
5298 --  PUBLIC PROCEDURE
5299 --  process_tax_tolerance
5300 --
5301 --  DESCRIPTION
5302 --  This procedure determines tax hold code and tax hold released code for
5303 --  each tax line that tax amount tax currency has been overridden by
5304 --  the users
5305 --
5306 --  CALLED BY
5307 --   ZX_TDS_TAX_LINES_DETM_PKG
5308 
5309 PROCEDURE process_tax_tolerance(
5310             p_event_class_rec     IN ZX_API_PUB.EVENT_CLASS_REC_TYPE,
5311             p_return_status      OUT NOCOPY VARCHAR2,
5312             p_error_buffer       OUT NOCOPY VARCHAR2)
5313 
5314 IS
5315   l_tax_low_boundary           NUMBER;
5316   l_tax_high_boundary          NUMBER;
5317   l_count                      NUMBER;
5318   l_tax_id                     ZX_TAXES_B.TAX_ID%TYPE;
5319   l_tax_precision              ZX_TAXES_B.TAX_PRECISION%TYPE;
5320   l_tax_min_acct_unit          ZX_TAXES_B.MINIMUM_ACCOUNTABLE_UNIT%TYPE;
5321   l_tax_line_id_tbl            ZX_TDS_TAX_ROUNDING_PKG.TAX_ID_TBL;
5322   l_tax_amt_tax_curr_tbl       ZX_TDS_TAX_ROUNDING_PKG.TAX_AMT_TAX_CURR_TBL;
5323   l_tax_id_tbl                 ZX_TDS_TAX_ROUNDING_PKG.TAX_ID_TBL;
5324   l_rounding_rule_tbl          ZX_TDS_TAX_ROUNDING_PKG.ROUNDING_RULE_TBL;
5325   l_tax_hold_released_code_tbl TAX_HOLD_RELEASED_CODE_TBL;
5326   l_tax_hold_code_tbl          TAX_HOLD_CODE_TBL;
5327   l_orig_tax_amt_tax_curr_tbl  ORIG_TAX_AMT_TAX_CURR_TBL;
5328 
5329   CURSOR get_tax_tolerance_csr
5330   IS
5331   SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1) */
5332          tax_line_id,
5333          orig_tax_amt_tax_curr,
5334          tax_amt_tax_curr,
5335          tax_id,
5336          tax_hold_released_code,
5337          Rounding_Rule_Code
5338     FROM  ZX_DETAIL_TAX_LINES_GT
5339     WHERE application_id      = p_event_class_rec.application_id
5340       AND entity_code         = p_event_class_rec.entity_code
5341       AND event_class_code    = p_event_class_rec.event_class_code
5342       AND trx_id              = p_event_class_rec.trx_id
5343       AND tax_event_type_code = 'OVERRIDE_TAX'
5344       AND offset_link_to_tax_line_id IS NULL
5345       AND orig_tax_amt_tax_curr IS NOT NULL
5346       AND mrc_tax_line_flag = 'N';
5347 
5348   -- Start Bugfix: 5617541
5349   CURSOR get_tax_tol_ctrl_hdr_amt_csr
5350   IS
5351   SELECT /*+ INDEX(tax_line ZX_DETAIL_TAX_LINES_GT_U1) */
5352          tax_line.tax_line_id,
5353          tax_line.orig_tax_amt_tax_curr,
5354          tax_line.tax_amt_tax_curr,
5355          tax_line.tax_id,
5356          tax_line.tax_hold_released_code,
5357          tax_line.Rounding_Rule_Code
5358     FROM  ZX_DETAIL_TAX_LINES_GT tax_line,
5359        zx_lines_det_factors  trx_line
5360     WHERE tax_line.application_id      = p_event_class_rec.application_id
5361       AND tax_line.entity_code         = p_event_class_rec.entity_code
5362       AND tax_line.event_class_code    = p_event_class_rec.event_class_code
5363       AND tax_line.trx_id              = p_event_class_rec.trx_id
5364       AND tax_line.application_id      = trx_line.application_id
5365       AND tax_line.event_class_code    = trx_line.event_class_code
5366       AND tax_line.entity_code         = trx_line.entity_code
5367       AND tax_line.trx_id              = trx_line.trx_id
5368       AND tax_line.trx_line_id         = trx_line.trx_line_id
5369       AND tax_line.trx_level_type      = trx_line.trx_level_type
5370       AND trx_line.ctrl_total_hdr_tx_amt IS NOT NULL
5371       AND tax_line.offset_link_to_tax_line_id IS NULL
5372       AND tax_line.orig_tax_amt IS NOT NULL
5373       AND tax_line.mrc_tax_line_flag = 'N';
5374 
5375   CURSOR get_tax_tol_ctrl_line_amt_csr
5376   IS
5377   SELECT /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U1) */
5378          tax_line_id,
5379          orig_tax_amt_tax_curr,
5380          tax_amt_tax_curr,
5381          tax_id,
5382          tax_hold_released_code,
5383          Rounding_Rule_Code
5384     FROM  ZX_DETAIL_TAX_LINES_GT
5385     WHERE application_id      = p_event_class_rec.application_id
5386       AND entity_code         = p_event_class_rec.entity_code
5387       AND event_class_code    = p_event_class_rec.event_class_code
5388       AND trx_id              = p_event_class_rec.trx_id
5389       AND ctrl_total_line_tx_amt IS NOT NULL
5390       AND offset_link_to_tax_line_id IS NULL
5391       AND orig_tax_amt IS NOT NULL
5392       AND mrc_tax_line_flag = 'N';
5393   -- End Bugfix: 5617541
5394 
5395   -- bug 5684123
5396   CURSOR get_tax_tolerance_upd_csr
5397   IS
5398   SELECT /*+ INDEX(gt ZX_DETAIL_TAX_LINES_GT_U1) */
5399           tax_line_id,
5400           orig_tax_amt_tax_curr,
5401           tax_amt_tax_curr,
5402           tax_id,
5403           tax_hold_released_code,
5404           Rounding_Rule_Code
5405     FROM  zx_detail_tax_lines_gt gt
5406     WHERE gt.application_id = p_event_class_rec.application_id
5407       AND gt.entity_code = p_event_class_rec.entity_code
5408       AND gt.event_class_code = p_event_class_rec.event_class_code
5409       AND (gt.tax_event_type_code = 'UPDATE' AND
5410             gt.last_manual_entry IS NOT NULL AND
5411             NVL(gt.manually_entered_flag, 'N') <> 'Y'
5412            )
5413       AND gt.offset_link_to_tax_line_id IS NULL
5414       AND gt.orig_tax_amt_tax_curr IS NOT NULL
5415       AND gt.mrc_tax_line_flag = 'N'
5416       AND EXISTS
5417           (SELECT /*+ index(LINE ZX_LINES_DET_FACTORS_U1) */ 1
5418              FROM zx_lines_det_factors line
5419             WHERE line.application_id = p_event_class_rec.application_id
5420               AND line.entity_code = p_event_class_rec.entity_code
5421               AND line.event_class_code = p_event_class_rec.event_class_code
5422               AND line.event_id = p_event_class_rec.event_id
5423               AND line.trx_id = gt.trx_id
5424               AND line.trx_line_id = gt.trx_line_id
5425               AND line.trx_level_type = gt.trx_level_type
5426 
5427           );
5428 
5429   -- bug 6634198
5430   --
5431   CURSOR get_tax_tolerance_import_csr
5432   IS
5433   SELECT /*+ INDEX(gt ZX_DETAIL_TAX_LINES_GT_U1) */
5434           tax_line_id,
5435           orig_tax_amt_tax_curr,
5436           tax_amt_tax_curr,
5437           tax_id,
5438           tax_hold_released_code,
5439           Rounding_Rule_Code
5440     FROM  zx_detail_tax_lines_gt gt
5441     WHERE gt.application_id = p_event_class_rec.application_id
5442       AND gt.entity_code = p_event_class_rec.entity_code
5443       AND gt.event_class_code = p_event_class_rec.event_class_code
5444       AND (gt.tax_event_type_code = 'CREATE' AND
5445             gt.last_manual_entry = 'TAX_AMOUNT' AND
5446             NVL(gt.manually_entered_flag, 'N') = 'Y'
5447            )
5448       AND gt.offset_link_to_tax_line_id IS NULL
5449       AND gt.orig_tax_amt_tax_curr IS NOT NULL
5450       AND gt.mrc_tax_line_flag = 'N'
5451       AND EXISTS
5452           (SELECT 1
5453              FROM zx_transaction_lines_gt lines_gt
5454             WHERE lines_gt.application_id = p_event_class_rec.application_id
5455               AND lines_gt.entity_code = p_event_class_rec.entity_code
5456               AND lines_gt.event_class_code = p_event_class_rec.event_class_code
5457               AND lines_gt.trx_id = gt.trx_id
5458               AND lines_gt.trx_line_id = gt.trx_line_id
5459               AND lines_gt.trx_level_type = gt.trx_level_type
5460               AND lines_gt.line_level_action IN ('CREATE_WITH_TAX', 'LINE_INFO_TAX_ONLY')
5461           );
5462 
5463 BEGIN
5464 
5465   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5466 
5467   IF (g_level_statement >= g_current_runtime_level ) THEN
5468     FND_LOG.STRING(g_level_statement,
5469                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance.BEGIN',
5470                    'ZX_TDS_TAX_LINES_POPU_PKG: process_tax_tolerance(+)');
5471   END IF;
5472 
5473   p_return_status := FND_API.G_RET_STS_SUCCESS;
5474 
5475   IF p_event_class_rec.tax_tolerance IS NOT NULL OR
5476      p_event_class_rec.tax_tol_amt_range IS NOT NULL
5477   THEN
5478     IF (g_level_statement >= g_current_runtime_level ) THEN
5479       FND_LOG.STRING(g_level_statement,
5480                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5481                      'Tax Tolerance: '||TO_CHAR(p_event_class_rec.tax_tolerance)||
5482                      ', Tax Tolerance Amount Range: '||TO_CHAR(p_event_class_rec.tax_tol_amt_range)
5483                     );
5484     END IF;
5485 
5486     -- Start : Tolerance processing for Override_Tax : Bug 9752670 --
5487     IF p_event_class_rec.tax_event_type_code = 'OVERRIDE_TAX' THEN
5488       OPEN get_tax_tolerance_csr;
5489       FETCH get_tax_tolerance_csr BULK COLLECT INTO
5490          l_tax_line_id_tbl,
5491          l_orig_tax_amt_tax_curr_tbl,
5492          l_tax_amt_tax_curr_tbl,
5493          l_tax_id_tbl,
5494          l_tax_hold_released_code_tbl,
5495          l_rounding_rule_tbl
5496       LIMIT C_LINES_PER_COMMIT;
5497 
5498       l_count := l_orig_tax_amt_tax_curr_tbl.COUNT;
5499 
5500       IF (g_level_statement >= g_current_runtime_level ) THEN
5501         FND_LOG.STRING(g_level_statement,
5502                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5503                          'Number of rows fetched for OVERRIDE_TAX = ' || to_char(l_count));
5504       END IF;
5505 
5506       IF l_count > 0 THEN
5507         FOR i IN 1..l_count LOOP
5508           --
5509           -- determine tax hold code
5510           --
5511           l_tax_hold_code_tbl(i) := NULL;
5512           l_tax_id := l_tax_id_tbl(i);
5513           ZX_TDS_UTILITIES_PKG.populate_tax_cache (
5514                  p_tax_id         => l_tax_id,
5515                  p_return_status  => p_return_status,
5516                  p_error_buffer   => p_error_buffer);
5517           l_tax_precision := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).tax_precision;
5518           l_tax_min_acct_unit := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).minimum_accountable_unit;
5519 
5520           --
5521           -- check tax tolerance
5522           --
5523           IF p_event_class_rec.tax_tolerance IS NOT NULL THEN
5524             l_tax_low_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5525                (1 - p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5526                 l_rounding_rule_tbl(i),
5527                 l_tax_min_acct_unit,
5528                 l_tax_precision,
5529                 p_return_status,
5530                 p_error_buffer);
5531 
5532             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5533               EXIT;
5534             END IF;
5535 
5536             l_tax_high_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5537                (1 + p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5538                 l_rounding_rule_tbl(i),
5539                 l_tax_min_acct_unit,
5540                 l_tax_precision,
5541                 p_return_status,
5542                 p_error_buffer);
5543             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5544               EXIT;
5545             END IF;
5546 
5547             IF (ABS(l_tax_amt_tax_curr_tbl(i)) < ABS(l_tax_low_boundary)  OR
5548                 ABS(l_tax_amt_tax_curr_tbl(i)) > ABS(l_tax_high_boundary)) THEN
5549               l_tax_hold_code_tbl(i) := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val;
5550             END IF;
5551 
5552           END IF; -- if tax_tolerance is not null
5553 
5554           --
5555           -- check tax tolerance amount range
5556           --
5557           IF p_event_class_rec.tax_tol_amt_range IS NOT NULL THEN
5558             IF ABS( l_tax_amt_tax_curr_tbl(i) -
5559                     l_orig_tax_amt_tax_curr_tbl(i)) >
5560                p_event_class_rec.tax_tol_amt_range THEN
5561               IF l_tax_hold_code_tbl(i)  IS NULL THEN
5562                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5563               ELSE
5564                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val
5565                                          + ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5566               END IF;
5567             END IF; -- abs
5568           END IF;   --tax_tol_amt_range
5569 
5570           --
5571           -- determine tax hold released code
5572           --
5573           IF l_tax_hold_code_tbl(i) IS NOT NULL THEN
5574             l_tax_hold_released_code_tbl(i) := BITAND(l_tax_hold_code_tbl(i),
5575                                                  nvl(l_tax_hold_released_code_tbl(i),0));
5576           ELSE
5577             l_tax_hold_released_code_tbl(i) := NULL;
5578           END IF;
5579 
5580         END LOOP;
5581 
5582         --
5583         -- bulk update the current rows processed
5584         -- before fetch the next set of rows
5585         --
5586         IF (g_level_statement >= g_current_runtime_level) THEN
5587           FND_LOG.STRING(g_level_statement,
5588                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5589                          'Update ZX_DETAIL_TAX_LINES_GT with Tax Hold Info - OVERRIDE_TAX');
5590         END IF;
5591 
5592         FORALL  i IN 1..l_count
5593           UPDATE /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U2) */
5594                 ZX_DETAIL_TAX_LINES_GT
5595             SET tax_hold_code = nvl(l_tax_hold_code_tbl(i),tax_hold_code),
5596                 tax_hold_released_code = nvl(l_tax_hold_released_code_tbl(i), tax_hold_released_code)
5597             WHERE tax_line_id = l_tax_line_id_tbl(i);
5598 
5599         IF (g_level_statement >= g_current_runtime_level ) THEN
5600           FND_LOG.STRING(g_level_statement,
5601                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5602                          'Number of Rows Updated: ' || SQL%ROWCOUNT);
5603         END IF;
5604       END IF; -- IF l_count
5605 
5606       -- Close the cursor
5607       IF get_tax_tolerance_csr%ISOPEN THEN
5608         CLOSE get_tax_tolerance_csr;
5609       END IF;
5610 
5611     END IF;
5612     -- End : Tolerance processing for Override_Tax : Bug 9752670 --
5613 
5614     -- Start : Tolerance processing for Control Line Amount : Bug 9752670 --
5615     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_ctrl_total_line_tx_amt_flg = 'Y'
5616     THEN
5617       OPEN get_tax_tol_ctrl_line_amt_csr;
5618       FETCH get_tax_tol_ctrl_line_amt_csr BULK COLLECT INTO
5619          l_tax_line_id_tbl,
5620          l_orig_tax_amt_tax_curr_tbl,
5621          l_tax_amt_tax_curr_tbl,
5622          l_tax_id_tbl,
5623          l_tax_hold_released_code_tbl,
5624          l_rounding_rule_tbl
5625       LIMIT C_LINES_PER_COMMIT;
5626 
5627       l_count := l_orig_tax_amt_tax_curr_tbl.COUNT;
5628 
5629       IF (g_level_statement >= g_current_runtime_level ) THEN
5630         FND_LOG.STRING(g_level_statement,
5631                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5632                          'Number of rows fetched for Control Line Amount = ' || to_char(l_count));
5633       END IF;
5634 
5635       IF l_count > 0 THEN
5636         FOR i IN 1..l_count LOOP
5637           --
5638           -- determine tax hold code
5639           --
5640           l_tax_hold_code_tbl(i) := NULL;
5641           l_tax_id := l_tax_id_tbl(i);
5642           ZX_TDS_UTILITIES_PKG.populate_tax_cache (
5643                  p_tax_id         => l_tax_id,
5644                  p_return_status  => p_return_status,
5645                  p_error_buffer   => p_error_buffer);
5646           l_tax_precision := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).tax_precision;
5647           l_tax_min_acct_unit := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).minimum_accountable_unit;
5648 
5649           --
5650           -- check tax tolerance
5651           --
5652           IF p_event_class_rec.tax_tolerance IS NOT NULL THEN
5653             l_tax_low_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5654                (1 - p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5655                 l_rounding_rule_tbl(i),
5656                 l_tax_min_acct_unit,
5657                 l_tax_precision,
5658                 p_return_status,
5659                 p_error_buffer);
5660 
5661             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5662               EXIT;
5663             END IF;
5664 
5665             l_tax_high_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5666                (1 + p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5667                 l_rounding_rule_tbl(i),
5668                 l_tax_min_acct_unit,
5669                 l_tax_precision,
5670                 p_return_status,
5671                 p_error_buffer);
5672             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5673               EXIT;
5674             END IF;
5675 
5676             IF (ABS(l_tax_amt_tax_curr_tbl(i)) < ABS(l_tax_low_boundary)  OR
5677                 ABS(l_tax_amt_tax_curr_tbl(i)) > ABS(l_tax_high_boundary)) THEN
5678               l_tax_hold_code_tbl(i) := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val;
5679             END IF;
5680 
5681           END IF; -- if tax _tolerance is not null
5682 
5683           --
5684           -- check tax tolerance amount range
5685           --
5686           IF p_event_class_rec.tax_tol_amt_range IS NOT NULL THEN
5687             IF ABS( l_tax_amt_tax_curr_tbl(i) -
5688                     l_orig_tax_amt_tax_curr_tbl(i)) >
5689                p_event_class_rec.tax_tol_amt_range THEN
5690               IF l_tax_hold_code_tbl(i)  IS NULL THEN
5691                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5692               ELSE
5693                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val
5694                                          + ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5695               END IF;
5696             END IF; -- abs
5697           END IF;   --tax_tol_amt_range
5698 
5699           --
5700           -- determine tax hold released code
5701           --
5702           IF l_tax_hold_code_tbl(i) IS NOT NULL THEN
5703             l_tax_hold_released_code_tbl(i) := BITAND(l_tax_hold_code_tbl(i),
5704                                                  nvl(l_tax_hold_released_code_tbl(i),0));
5705           ELSE
5706             l_tax_hold_released_code_tbl(i) := NULL;
5707           END IF;
5708 
5709         END LOOP;
5710 
5711         --
5712         -- bulk update the current rows processed
5713         -- before fetch the next set of rows
5714         --
5715         IF (g_level_statement >= g_current_runtime_level ) THEN
5716           FND_LOG.STRING(g_level_statement,
5717                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5718                          'Update ZX_DETAIL_TAX_LINES_GT with Tax Hold Info - Control Line Amount');
5719         END IF;
5720 
5721         FORALL  i IN 1..l_count
5722           UPDATE /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U2) */
5723                 ZX_DETAIL_TAX_LINES_GT
5724             SET tax_hold_code = nvl(l_tax_hold_code_tbl(i), tax_hold_code),
5725                 tax_hold_released_code = nvl(l_tax_hold_released_code_tbl(i), tax_hold_released_code)
5726             WHERE tax_line_id = l_tax_line_id_tbl(i);
5727 
5728         IF (g_level_statement >= g_current_runtime_level ) THEN
5729           FND_LOG.STRING(g_level_statement,
5730                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5731                          'Number of Rows Updated: ' || SQL%ROWCOUNT);
5732         END IF;
5733       END IF; -- IF l_count
5734 
5735       -- Close the cursor
5736       IF get_tax_tol_ctrl_line_amt_csr%ISOPEN THEN
5737         CLOSE get_tax_tol_ctrl_line_amt_csr;
5738       END IF;
5739 
5740     END IF;
5741     -- End : Tolerance processing for Control Line Amount : Bug 9752670 --
5742 
5743     -- Start : Tolerance processing for Control Header Amount : Bug 9752670 --
5744     IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_ctrl_total_hdr_tx_amt_flg = 'Y'
5745     THEN
5746       OPEN get_tax_tol_ctrl_hdr_amt_csr;
5747       FETCH get_tax_tol_ctrl_hdr_amt_csr BULK COLLECT INTO
5748          l_tax_line_id_tbl,
5749          l_orig_tax_amt_tax_curr_tbl,
5750          l_tax_amt_tax_curr_tbl,
5751          l_tax_id_tbl,
5752          l_tax_hold_released_code_tbl,
5753          l_rounding_rule_tbl
5754       LIMIT C_LINES_PER_COMMIT;
5755 
5756       l_count := l_orig_tax_amt_tax_curr_tbl.COUNT;
5757 
5758       IF (g_level_statement >= g_current_runtime_level ) THEN
5759         FND_LOG.STRING(g_level_statement,
5760                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5761                          'Number of rows fetched for Control Header Amount = ' || to_char(l_count));
5762       END IF;
5763 
5764       IF l_count > 0 THEN
5765         FOR i IN 1..l_count LOOP
5766           --
5767           -- determine tax hold code
5768           --
5769           l_tax_hold_code_tbl(i) := NULL;
5770           l_tax_id := l_tax_id_tbl(i);
5771           ZX_TDS_UTILITIES_PKG.populate_tax_cache (
5772                  p_tax_id         => l_tax_id,
5773                  p_return_status  => p_return_status,
5774                  p_error_buffer   => p_error_buffer);
5775           l_tax_precision := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).tax_precision;
5776           l_tax_min_acct_unit := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).minimum_accountable_unit;
5777 
5778           --
5779           -- check tax tolerance
5780           --
5781           IF p_event_class_rec.tax_tolerance IS NOT NULL THEN
5782             l_tax_low_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5783                (1 - p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5784                 l_rounding_rule_tbl(i),
5785                 l_tax_min_acct_unit,
5786                 l_tax_precision,
5787                 p_return_status,
5788                 p_error_buffer);
5789 
5790             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5791               EXIT;
5792             END IF;
5793 
5794             l_tax_high_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5795                (1 + p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5796                 l_rounding_rule_tbl(i),
5797                 l_tax_min_acct_unit,
5798                 l_tax_precision,
5799                 p_return_status,
5800                 p_error_buffer);
5801             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5802               EXIT;
5803             END IF;
5804 
5805             IF (ABS(l_tax_amt_tax_curr_tbl(i)) < ABS(l_tax_low_boundary)  OR
5806                 ABS(l_tax_amt_tax_curr_tbl(i)) > ABS(l_tax_high_boundary)) THEN
5807               l_tax_hold_code_tbl(i) := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val;
5808             END IF;
5809 
5810           END IF; -- if tax_tolerance is not null
5811 
5812           --
5813           -- check tax tolerance amount range
5814           --
5815           IF p_event_class_rec.tax_tol_amt_range IS NOT NULL THEN
5816             IF ABS( l_tax_amt_tax_curr_tbl(i) -
5817                     l_orig_tax_amt_tax_curr_tbl(i)) >
5818                p_event_class_rec.tax_tol_amt_range THEN
5819               IF l_tax_hold_code_tbl(i)  IS NULL THEN
5820                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5821               ELSE
5822                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val
5823                                          + ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5824               END IF;
5825             END IF; -- abs
5826           END IF;   --tax_tol_amt_range
5827 
5828           --
5829           -- determine tax hold released code
5830           --
5831           IF l_tax_hold_code_tbl(i) IS NOT NULL THEN
5832             l_tax_hold_released_code_tbl(i) := BITAND(l_tax_hold_code_tbl(i),
5833                                                  nvl(l_tax_hold_released_code_tbl(i),0));
5834           ELSE
5835             l_tax_hold_released_code_tbl(i) := NULL;
5836           END IF;
5837 
5838         END LOOP;
5839 
5840         --
5841         -- bulk update the current rows processed
5842         -- before fetch the next set of rows
5843         --
5844         IF (g_level_statement >= g_current_runtime_level ) THEN
5845           FND_LOG.STRING(g_level_statement,
5846                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5847                          'Update ZX_DETAIL_TAX_LINES_GT with Tax Hold Info - Control Header Amount');
5848         END IF;
5849 
5850         FORALL  i IN 1..l_count
5851           UPDATE /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U2) */
5852                 ZX_DETAIL_TAX_LINES_GT
5853             SET tax_hold_code = nvl(l_tax_hold_code_tbl(i), tax_hold_code),
5854                 tax_hold_released_code = nvl(l_tax_hold_released_code_tbl(i), tax_hold_released_code)
5855             WHERE tax_line_id = l_tax_line_id_tbl(i);
5856 
5857         IF (g_level_statement >= g_current_runtime_level ) THEN
5858           FND_LOG.STRING(g_level_statement,
5859                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5860                          'Number of Rows Updated: ' || SQL%ROWCOUNT);
5861         END IF;
5862       END IF; -- IF l_count
5863 
5864       -- Close the cursor
5865       IF get_tax_tol_ctrl_hdr_amt_csr%ISOPEN THEN
5866        CLOSE get_tax_tol_ctrl_hdr_amt_csr;
5867       END IF;
5868 
5869     END IF;
5870     -- End : Tolerance processing for Control Header Amount : Bug 9752670 --
5871 
5872     -- Start : Tolerance processing for Update Event : Bug 9752670 --
5873     IF (p_event_class_rec.tax_event_type_code = 'UPDATE' OR (ZX_TDS_CALC_SERVICES_PUB_PKG.g_ln_action_update_exist_flg = 'Y'))
5874     THEN
5875       OPEN get_tax_tolerance_upd_csr;
5876       FETCH get_tax_tolerance_upd_csr BULK COLLECT INTO
5877          l_tax_line_id_tbl,
5878          l_orig_tax_amt_tax_curr_tbl,
5879          l_tax_amt_tax_curr_tbl,
5880          l_tax_id_tbl,
5881          l_tax_hold_released_code_tbl,
5882          l_rounding_rule_tbl
5883       LIMIT C_LINES_PER_COMMIT;
5884 
5885       l_count := l_orig_tax_amt_tax_curr_tbl.COUNT;
5886 
5887       IF (g_level_statement >= g_current_runtime_level ) THEN
5888         FND_LOG.STRING(g_level_statement,
5889                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5890                          'Number of rows fetched for UPDATE = ' || to_char(l_count));
5891       END IF;
5892 
5893       IF l_count > 0 THEN
5894         FOR i IN 1..l_count LOOP
5895           --
5896           -- determine tax hold code
5897           --
5898           l_tax_hold_code_tbl(i) := NULL;
5899           l_tax_id := l_tax_id_tbl(i);
5900           ZX_TDS_UTILITIES_PKG.populate_tax_cache (
5901                  p_tax_id         => l_tax_id,
5902                  p_return_status  => p_return_status,
5903                  p_error_buffer   => p_error_buffer);
5904           l_tax_precision := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).tax_precision;
5905           l_tax_min_acct_unit := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).minimum_accountable_unit;
5906 
5907           --
5908           -- check tax tolerance
5909           --
5910           IF p_event_class_rec.tax_tolerance IS NOT NULL THEN
5911             l_tax_low_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5912                (1 - p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5913                 l_rounding_rule_tbl(i),
5914                 l_tax_min_acct_unit,
5915                 l_tax_precision,
5916                 p_return_status,
5917                 p_error_buffer);
5918 
5919             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5920               EXIT;
5921             END IF;
5922 
5923             l_tax_high_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
5924                (1 + p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
5925                 l_rounding_rule_tbl(i),
5926                 l_tax_min_acct_unit,
5927                 l_tax_precision,
5928                 p_return_status,
5929                 p_error_buffer);
5930             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5931               EXIT;
5932             END IF;
5933 
5934             IF (ABS(l_tax_amt_tax_curr_tbl(i)) < ABS(l_tax_low_boundary)  OR
5935                 ABS(l_tax_amt_tax_curr_tbl(i)) > ABS(l_tax_high_boundary)) THEN
5936               l_tax_hold_code_tbl(i) := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val;
5937             END IF;
5938 
5939           END IF; -- if tax_tolerance is not null
5940 
5941           --
5942           -- check tax tolerance amount range
5943           --
5944           IF p_event_class_rec.tax_tol_amt_range IS NOT NULL THEN
5945             IF ABS( l_tax_amt_tax_curr_tbl(i) -
5946                     l_orig_tax_amt_tax_curr_tbl(i)) >
5947                p_event_class_rec.tax_tol_amt_range THEN
5948               IF l_tax_hold_code_tbl(i)  IS NULL THEN
5949                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5950               ELSE
5951                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val
5952                                          + ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
5953               END IF;
5954             END IF; -- abs
5955           END IF;   --tax_tol_amt_range
5956 
5957           --
5958           -- determine tax hold released code
5959           --
5960           IF l_tax_hold_code_tbl(i) IS NOT NULL THEN
5961             l_tax_hold_released_code_tbl(i) := BITAND( l_tax_hold_code_tbl(i),
5962                                                  nvl(l_tax_hold_released_code_tbl(i),0));
5963           ELSE
5964             l_tax_hold_released_code_tbl(i) := NULL;
5965           END IF;
5966 
5967         END LOOP;
5968 
5969         --
5970         -- bulk update the current rows processed
5971         -- before fetch the next set of rows
5972         --
5973         IF (g_level_statement >= g_current_runtime_level ) THEN
5974           FND_LOG.STRING(g_level_statement,
5975                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5976                          'Update ZX_DETAIL_TAX_LINES_GT with Tax Hold Info - UPDATE event');
5977         END IF;
5978 
5979         FORALL  i IN 1..l_count
5980           UPDATE /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U2) */
5981                 ZX_DETAIL_TAX_LINES_GT
5982             SET tax_hold_code = nvl(l_tax_hold_code_tbl(i), tax_hold_code),
5983                 tax_hold_released_code = nvl(l_tax_hold_released_code_tbl(i), tax_hold_released_code)
5984             WHERE tax_line_id = l_tax_line_id_tbl(i);
5985 
5986         IF (g_level_statement >= g_current_runtime_level ) THEN
5987           FND_LOG.STRING(g_level_statement,
5988                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
5989                          'Number of Rows Updated: ' || SQL%ROWCOUNT);
5990         END IF;
5991       END IF; -- IF l_count
5992 
5993       -- Close the cursor
5994       IF get_tax_tolerance_upd_csr%ISOPEN THEN
5995         CLOSE get_tax_tolerance_upd_csr;
5996       END IF;
5997 
5998     END IF;
5999     -- End : Tolerance processing for Update Event : Bug 9752670 --
6000 
6001     -- Start : Tolerance processing for Create Event : Bug 9752670 --
6002     IF p_event_class_rec.tax_event_type_code = 'CREATE'
6003     THEN
6004       OPEN get_tax_tolerance_import_csr;
6005       FETCH get_tax_tolerance_import_csr BULK COLLECT INTO
6006          l_tax_line_id_tbl,
6007          l_orig_tax_amt_tax_curr_tbl,
6008          l_tax_amt_tax_curr_tbl,
6009          l_tax_id_tbl,
6010          l_tax_hold_released_code_tbl,
6011          l_rounding_rule_tbl
6012       LIMIT C_LINES_PER_COMMIT;
6013 
6014       l_count := l_orig_tax_amt_tax_curr_tbl.COUNT;
6015 
6016       IF (g_level_statement >= g_current_runtime_level ) THEN
6017         FND_LOG.STRING(g_level_statement,
6018                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
6019                          'Number of rows fetched for CREATE event = ' || to_char(l_count));
6020       END IF;
6021 
6022       IF l_count > 0 THEN
6023         FOR i IN 1..l_count LOOP
6024           --
6025           -- determine tax hold code
6026           --
6027           l_tax_hold_code_tbl(i) := NULL;
6028           l_tax_id := l_tax_id_tbl(i);
6029           ZX_TDS_UTILITIES_PKG.populate_tax_cache (
6030                  p_tax_id         => l_tax_id,
6031                  p_return_status  => p_return_status,
6032                  p_error_buffer   => p_error_buffer);
6033           l_tax_precision := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).tax_precision;
6034           l_tax_min_acct_unit := ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl(l_tax_id).minimum_accountable_unit;
6035 
6036           --
6037           -- check tax tolerance
6038           --
6039           IF p_event_class_rec.tax_tolerance IS NOT NULL THEN
6040             l_tax_low_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
6041                (1 - p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
6042                 l_rounding_rule_tbl(i),
6043                 l_tax_min_acct_unit,
6044                 l_tax_precision,
6045                 p_return_status,
6046                 p_error_buffer);
6047 
6048             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6049               EXIT;
6050             END IF;
6051 
6052             l_tax_high_boundary:= ZX_TDS_TAX_ROUNDING_PKG.ROUND_TAX(
6053                (1 + p_event_class_rec.tax_tolerance / 100) * l_orig_tax_amt_tax_curr_tbl(i),
6054                 l_rounding_rule_tbl(i),
6055                 l_tax_min_acct_unit,
6056                 l_tax_precision,
6057                 p_return_status,
6058                 p_error_buffer);
6059             IF p_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6060               EXIT;
6061             END IF;
6062 
6063             IF (ABS(l_tax_amt_tax_curr_tbl(i)) < ABS(l_tax_low_boundary)  OR
6064                 ABS(l_tax_amt_tax_curr_tbl(i)) > ABS(l_tax_high_boundary)) THEN
6065               l_tax_hold_code_tbl(i) := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val;
6066             END IF;
6067 
6068           END IF; -- if tax_tolerance is not null
6069 
6070           --
6071           -- check tax tolerance amount range
6072           --
6073           IF p_event_class_rec.tax_tol_amt_range IS NOT NULL THEN
6074             IF ABS( l_tax_amt_tax_curr_tbl(i) -
6075                     l_orig_tax_amt_tax_curr_tbl(i)) >
6076                p_event_class_rec.tax_tol_amt_range THEN
6077               IF l_tax_hold_code_tbl(i)  IS NULL THEN
6078                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
6079               ELSE
6080                 l_tax_hold_code_tbl(i)  := ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_variance_hold_val
6081                                          + ZX_TDS_CALC_SERVICES_PUB_PKG.g_tax_amt_range_hold_val;
6082               END IF;
6083             END IF; -- abs
6084           END IF;   --tax_tol_amt_range
6085 
6086           --
6087           -- determine tax hold released code
6088           --
6089           IF l_tax_hold_code_tbl(i) IS NOT NULL THEN
6090             l_tax_hold_released_code_tbl(i) := BITAND(l_tax_hold_code_tbl(i),
6091                                                  nvl(l_tax_hold_released_code_tbl(i),0));
6092           ELSE
6093             l_tax_hold_released_code_tbl(i) := NULL;
6094           END IF;
6095 
6096         END LOOP;
6097 
6098         --
6099         -- bulk update the current rows processed
6100         -- before fetch the next set of rows
6101         --
6102         IF (g_level_statement >= g_current_runtime_level) THEN
6103           FND_LOG.STRING(g_level_statement,
6104                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
6105                          'Update ZX_DETAIL_TAX_LINES_GT with Tax Hold Info - CREATE event');
6106         END IF;
6107 
6108         FORALL  i IN 1..l_count
6109           UPDATE /*+ INDEX(ZX_DETAIL_TAX_LINES_GT ZX_DETAIL_TAX_LINES_GT_U2) */
6110                 ZX_DETAIL_TAX_LINES_GT
6111             SET tax_hold_code = nvl(l_tax_hold_code_tbl(i), tax_hold_code),
6112                 tax_hold_released_code = nvl(l_tax_hold_released_code_tbl(i), tax_hold_released_code)
6113             WHERE tax_line_id = l_tax_line_id_tbl(i);
6114 
6115         IF (g_level_statement >= g_current_runtime_level ) THEN
6116           FND_LOG.STRING(g_level_statement,
6117                          'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
6118                          'Number of Rows Updated: ' || SQL%ROWCOUNT);
6119         END IF;
6120       END IF; -- IF l_count
6121 
6122       -- Close the cursor
6123       IF get_tax_tolerance_upd_csr%ISOPEN THEN
6124         CLOSE get_tax_tolerance_import_csr;
6125       END IF;
6126 
6127     END IF;
6128     -- End : Tolerance processing for Create Event : Bug 9752670 --
6129 
6130   END IF; -- end if p_event_class_rec.tax_tolerance is not null
6131 
6132   IF (g_level_statement >= g_current_runtime_level ) THEN
6133     FND_LOG.STRING(g_level_statement,
6134                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
6135                    'p_return_status = ' || p_return_status);
6136     FND_LOG.STRING(g_level_statement,
6137                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
6138                    'p_error_buffer  = ' || p_error_buffer);
6139     FND_LOG.STRING(g_level_statement,
6140                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance.END',
6141                    'ZX_TDS_TAX_LINES_POPU_PKG: process_tax_tolerance(-)');
6142   END IF;
6143 
6144 EXCEPTION
6145     WHEN OTHERS THEN
6146       p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6147       p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6148 
6149       IF (g_level_unexpected >= g_current_runtime_level ) THEN
6150         FND_LOG.STRING(g_level_unexpected,
6151                        'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.process_tax_tolerance',
6152                         p_error_buffer);
6153       END IF;
6154 
6155 END process_tax_tolerance;
6156 
6157 -----------------------------------------------------------------------
6158 --  PUBLIC PROCEDURE
6159 --  populate_recovery_flg
6160 --
6161 --  DESCRIPTION
6162 --  This procedure populates Process_For_Recovery_Flag based on
6163 --  tax_recovery_flag in event class record,  and
6164 --  Reporting_Only_Flag of a tax line
6165 --
6166 
6167 PROCEDURE populate_recovery_flg(
6168             p_begin_index      IN     BINARY_INTEGER,
6169             p_end_index        IN     BINARY_INTEGER,
6170             p_event_class_rec  IN     ZX_API_PUB.EVENT_CLASS_REC_TYPE,
6171             p_return_status       OUT NOCOPY VARCHAR2,
6172             p_error_buffer        OUT NOCOPY VARCHAR2)
6173 
6174 IS
6175 
6176 BEGIN
6177 
6178   g_current_runtime_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6179 
6180   IF (g_level_statement >= g_current_runtime_level ) THEN
6181     FND_LOG.STRING(g_level_statement,
6182                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_recovery_flg.BEGIN',
6183                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_recovery_flg(+)');
6184     FND_LOG.STRING(g_level_statement,
6185                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_recovery_flg',
6186                    'begin_index = ' || to_char(p_begin_index) || ' end_index= '
6187                    || to_char(p_end_index));
6188   END IF;
6189 
6190   p_return_status  := FND_API.G_RET_STS_SUCCESS;
6191 
6192   --
6193   -- check if begin_index and end_index have values
6194   --
6195   IF (p_begin_index IS NULL OR p_end_index IS NULL) THEN
6196 
6197     IF (g_level_statement >= g_current_runtime_level ) THEN
6198       FND_LOG.STRING(g_level_statement,
6199                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_recovery_flg',
6200                      'Begin index or End index is null' );
6201     END IF;
6202 
6203     RETURN;
6204   END IF;
6205 
6206   -- If the value of p_event_class_rec.tax_recovery_flag is 'N',
6207   -- populate process_for_recovery_flag to 'N'. If it is 'Y', check
6208   -- reporting_only_flag to set tax_recovery_flag
6209   --
6210   IF NVL(p_event_class_rec.tax_recovery_flag, 'N') = 'N' THEN
6211     FOR i IN p_begin_index ..p_end_index LOOP
6212       ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).process_for_recovery_flag := 'N';
6213     END LOOP;
6214   ELSE
6215     FOR i IN p_begin_index ..p_end_index LOOP
6216       IF ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).reporting_only_flag = 'Y' THEN  -- bugfix 5399549
6217         ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).process_for_recovery_flag := 'N';
6218       ELSE
6219         ZX_TDS_CALC_SERVICES_PUB_PKG.g_detail_tax_lines_tbl(i).process_for_recovery_flag := 'Y';
6220       END IF;
6221 
6222     END LOOP;
6223   END IF;
6224 
6225   IF (g_level_statement >= g_current_runtime_level ) THEN
6226     FND_LOG.STRING(g_level_statement,
6227                    'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_recovery_flg.END',
6228                    'ZX_TDS_TAX_LINES_POPU_PKG: populate_recovery_flg(-)');
6229   END IF;
6230 
6231 EXCEPTION
6232   WHEN OTHERS THEN
6233     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6234     p_error_buffer  := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6235     IF (g_level_unexpected >= g_current_runtime_level ) THEN
6236       FND_LOG.STRING(g_level_unexpected,
6237                      'ZX.PLSQL.ZX_TDS_TAX_LINES_POPU_PKG.populate_recovery_flg',
6238                       p_error_buffer);
6239     END IF;
6240 
6241 END populate_recovery_flg;
6242 
6243 END  ZX_TDS_TAX_LINES_POPU_PKG;