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