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